can we use two SPFx extensions in one application - sharepoint

I am pretty new SharePoint.
I would like to know if we can use two SPFx extensions in one application. Because i want the functionality of both field customizer and application customizer.
And if yes then how can we get the details of a selected file in a library using #pnp/sp.
sp.web.fields.getByTitle("Name").get().then((item)=>{
console.log(item);
});
Code used by me. But it didn't seem to work

Yes, you can use two (or more) SPFx extensions in one SPFx project. Just run the yo #microsoft/sharepoint generator again, and it will give you the opportunity to add another extension (or web part, even) to the project.
To your second question, if you want to get a SharePoint file, you can use the File or Folder endpoints in #pnp/sp. Here's some documentation. An example:
sp.web.getFileByServerRelativeUrl('/sites/MySite/MyLibrary/MyFile.doc').get().then((file) => {
console.log(file);
})

Related

Automatic way of export / import pages from liferay

I have created portlets for liferay and prepare couple of pages. Now I want to create installation script, which create pages definition in customer liferay server. I know that pages export/import is possible using LAR file, but this could be done only manualy, or using remote publishing which i am not able to do.
I was searching on net and found ddm tool. Which should be able to do that. Unfortunately i'm not able to get it work as it export only web content, blogs, wikis, etc, but not pages with portlets. It is probably because one of the condition is "Every Template must be assigned to a Structure. Don't create any templates on the Liferay server which does not have a structure connected to it.
". But how can I assign page to structure ? Cant find anything.
Or is there any other option for automatic page creation, which could be used ?
In case you created a custom theme, you can easily use the "resources importer" to create an entire site via the "sitemap.json" file (define pages: choose layout, assign portlets to the columns, ...). You can also export existing content as xml from the current instance and import them via the theme. Same thing for web content structures and templates.
for more details: https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-1/importing-resources-with-your-themes
Unfortunately theme is produced by another supplier, so this solution isn't suitable for me.
at the end i find working solution which consist of following steps:
create plugin hook
in hook setup upgrade process
in the upgrade process create pages with appropriate layout, friendlyUrl, etc. All these is possible to do using liferay api
Don't have enough reputation, so at least two links
https://www.liferay.com/de/web/james.falkner/blog/-/blogs/7cogs-is-dead-long-live-7cogs-
https://github.com/azzazzel/liferay-official-plugins/tree/master/hooks/sevencogs-hook/docroot/WEB-INF/src/com/liferay/sevencogs/hook/upgrade

One time javascript function run in custom action

I have a request from the customer that they want every time they create a subsite (publishing site) .We have to add a custom column to OOTB Documents list.
I have done some researching the way to add the custom column to
Documents list in onet.xml but have no luck .
Then i think about the work around solution that i create a
ScriptBlock custom action that will call javascript function which
will add the custom column to document list , then i will put this
custom action to a feature ,and finally i will reference that feature
in onet.xml.
It run well but the javascript function call every time i refresh the page. I just want it run one time when i active the feature.
Does anyone have any suggestion ? I use sandbox solution and Sharepoint Online .Sorry for my bad English
I don't think a custom action is the right way to do this, Custom actions generally need some sort of user interaction.
Get CKS dev tools in Visual studio
Create a new SharePoint solution
Add a new web template(CKS Dev) to your solution from the Add new item menu in VS
Create an additional feature (web) with a list template (Your documents Library and add your column)
Update the Web templates onet file
Also sometimes it's better to put up what your having issues with as you have said you have had no luck with the above, What is the issue you are having, Post some code up etc rather than going down the route of changing the way you implement the solution
Many Thanks
Truez

Deploying a list instance to SharePoint 2010 error "Unable to find the default new form for list"

Having a problem deploying a list instance via a feature, which should really be a noddy task, I know. I have come across many a post with the same issue, but there is no resolution.
I created the list in the UI with content and views.
Exported the site template as WSP.
Imported into Visual Studio the list instance, pages module and property bags.
Copied into my new solution.
Deploy list instance as a site-scoped feature.
List deploys fine with content and views. However, I receive the following error when trying to add a new item: “Unable to find the default new form for list”. The same applies for editing items.
Strangely, deploying via a web scoped feature works just fine.
I am thinking that this is probably something quite simple but cannot see it nor find a satisfactory resolution.
Many thanks in advance.
I discovered almost the same thing this afternoon, and solved it. For some reason the schema.xml has an empty Forms tag. You need to replace it with the stock forms tag as described by Microsoft - I wrote it up here;
http://notes.jonbeckett.com/2012/04/20/missing-forms-schema-with-sharepoint-2010-visual-studio/
The Microsoft page I discovered it on is here;
http://msdn.microsoft.com/en-us/library/ms459356.aspx

Which is the better approach in custom pages?

I want to create a custom new item page for sharepoint but there are two approached that I
can use and I want to share your experience in determining which is better.
The first: is to create a page in a library then create a C# library project to handle
the events of the controls on the page.
The second: is to define a feature of the content type of my list and specify the new
item form to be my custom form, then create a website containing the custom form and put
this site at the layouts folder.
for me the first approach is fine but the problem is that a user may access the default
sharepoint new item form which I don't want to happen.
but I don't like the idea of placing the form in a library on the site.
so which is better in your opinion ?
thanks
i suggest you to go with your second approach ...
Create a completely new feature that allows you add your functionalty of page creation and any customization realted to that and deploy this one to the 12 hive features folder as a new feature and every time you want have such a page created you can you this template and create the page...
Well, frankly, I'm confused by both of your suggestions.
I don't see how the first one would ever work.
And the second one; you don't "put sites in the layouts folder".
Here's what I would suggest you to do:
Download and install the WSS Extensions for Visual Studio.
Create a List Definition using these new templates.
Copy the NewForm.aspx from the 12 hive and Customize it.
Download and install the WSP Builder from Codeplex.com
Add your custom list definitions and files to a new Feature project in WSP Builder.
Package the Feature up to a .wsp using WSP Builder and you are good to go.
Your custom page(s) should be placed in your custom folders in my opinion.
Hope this helps.
Your concern in the first approach is that people will still be able to access the default form. If you are not opposed to using a custom control template for a content type definition, I recommend creating a very simple redirect control template and assigning it to the content type's "New Form". Such a control template need only contain one custom control, which has an OnInit or OnLoad method that contains little more than a Page.Response.Redirect call. Make that redirect point to the page you create in your first approach, and now whenever anyone tries to access the default new form for that content type, they will instead be directed to your custom page with all of your custom code. It is perhaps a bit of a hack, but it's definitely functional.

Sharepoint: Modify the page template of views

I have a sharepoint list with several views. I can modify the view pages (such as AllItems.aspx) via the sharepoint designer. However I would prefer to modify the underlying template instead.
Now I could directly modify the default view page template located in templates\pages\viewpage.aspx but this would affect the whole sharepoint installation.
I would rather make a copy of this template and make my list (or views) point to it. Is there a way I can accomplish this?
Note: The list/views were created via the Web UI without any custom XML.
Check out this blog:
http://weblogs.asp.net/soever/archive/2006/11/11/SharePoint-Solution-Generator-2D00-part-1_3A00_-create-a-site-definition-from-an-existing-site.aspx
Basically, use the sharepoint solution generator to create a VS solution of your SharePoint list. The solution will contain a file called schema.xml that defines the list and associated views. You can then customize the aspx pages like viewlist.aspx and point the schema at your custom pages. When you deploy the solution/feature it will deploy your custom pages with it.
There's really a wealth of info out on the internets, it's just difficult to find when you don't know what you're looking for. But this should get you started in the right direction.
Also, in my experience, once you create the solution you should port it (read: copy teh contents) into an STSDEV project. STSDEV really shows you what's happening behind the scenes, whereas the other VS tools for SP development can do some hand-waving magic which will leave you in the dark when things go wrong. Just my 2 cents.

Resources