How to create templates in Kentico 9? - kentico

I need to create few templates for E-commerce site. Can anyone guide me as how to create templates in Kentico 9 ? There is an existing site and I need to create five other templates for the same. Am totally new to Kentico.
Please help.

There are many generic templates in Kentico, so you could clone any of them and modify to your needs - this might be easier for you to edit existing one as you'll have an example.
I'd recommend you to take following steps:
Go to Pages application in Kentico administration
Select any page in content tree on the left
go to properties -> template
Save as new template (so you do not screw up exting one) and save your changes
Switch to Design tab - this is where you build/configure you template
On the Design tab there is green line with template name and hamburger menu, where you can choose edit layout - this is where you can implement markup of the page as well as split your page into zones. After you accomplish html for you page save changes and close current dialog.
Now you should be back to Design tab. Here you can add web parts to zones you've specified in the layout. There is huge amount of different web parts (user controls). All they have different purpose and settings, so you should check documentation and figure out which one should be used in your particular case.
Try editable text, editable image, repeater, navigation in order to get an idea how it works.

Related

Is it possible to hardcode Kentico webparts into a layout?

Kentico 8.2.
I've got a layout "master" file - the creatively named Master.ascx.
I've got three web part zones in the layout: header, main and footer. Main just includes a content placeholder which is overridden by the next layout down - home, standard, whatever.
I could just drag and drop web parts onto the header and footer web part zones on to the "design" tab, but I don't want to for a few reasons:
Which web parts go in which zone is stored in the database, which isn't versioned in Git. The layout file itself is versioned via the "store CMS Virtual Files on disk" option.
The layout markup inside the header is complicated enough that I'll end up needing to have 4 or 5 web part zones for 4 or 5 web parts - or I'll need to write a layout web part or drag row layouts / column layouts in, etc - it seems much simpler to just hardcode web parts inside bespoke markup.
I find editing a plain text file with Visual Studio much faster than dragging and dropping web parts into a zone, and the same applies for anyone else who'll ever work on this site.
Which web parts go in which web part zone doesn't ever change - there's always a primary nav, share-on-facebook, etc - which web parts are included will never need to be in any way dynamic.
Is it possible to just hardcode a web part into my layout?
To answer your question, no you cannot hard code webparts in your layout. Simple reasoning is webparts are not part of a layout, they are part of a template . The webpart definition for each template is stored with the template in the database as XML. You can see this by going to a template and selecting the Webparts tab and it will display all the XML for each of the webparts on that page template.
Understand where you're coming from with your 4 points. What you also need to consider is:
what happens when you want/need upgrade or apply a hotfix?
from the client, content editor and content administrators perspective, having everything in code, renders the CMS pretty useless.
if you code everything in a physical file, it's then pretty pointless to have a CMS if it requires a developer or a physical code change for every request
The point of the CMS is to be dynamic and database driven. Not everything can reside in the file system, database or a code repository. Kentico has some very strong developer tools you can enable like workflow, versioning, and check-in/out.
I'd also enable your DBA and ensure they have a valid backup and recovery plan in the event of some disaster.
It's not possible, because it goes against the Portal Engine development model. If your main issue is the unavailability of these objects in GIT consider the option to save virtual objects (https://docs.kentico.com/display/K82/Deployment+mode+for+virtual+objects) to the file system, so they are picked up by GIT. I'd also suggest to keep the website upgrade safe (e.g. by using the Portal model), because the next version will feature CI support (saving of all DB objects to the file system) http://www.kentico.com/product/roadmap which is due to be released in 2 months

SharePoint 2010 - Combine existing web parts

I love the simplicity of SP Wiki. I have further enhanced the wiki page by adding an additional column/field to categorize each page. I then embedded:
- a CEWP to include SCRIPTS and STYLES,
- a list to create a heirarchy (breadcrumb navigation)
- a document library to highlight resources applicable to that page.
The dynamic effect is acheived by:
1. setting my resource doocuments and breadcrumb list to that exact category and
2. filtering the list/library web parts via 'connections'.
Whilst it was easy to this set up on 2 or 3 wiki pages, it is time consuming and would be confusing for the person to whom I would soon be handing over this function to create and manage hundreds of pages.
Is there a way to combine all the 3 web parts (and their customization) and export it as a single web part? Or any other way to achieve this?
Note: Unfortunately I am a front end user only - I dont have access to the backend admin access or SP Designer.
Save the site as a template :)
Reference: http://msdn.microsoft.com/en-us/library/office/jj938033(v=office.15).aspx
You create one template wiki, save it as a template including content and you can then create a new site, based on that template.

Sharepoint2010 custom design as WSP

I am trying to get a solution for my issue. I have a set of HTML CSS and Images, which I want to apply to my sharepoint portal as a part of branding.
My concern is I want to make my design as WSP or any other kind of solution so that it can be installed in any sharepoint 2010 portal so that the user can switch back between actual sharepoint design and this custom design.
In short I have a custom HTML design which I need to implement to any sharepoint website, this design can be turned On or Off by the administrator just using the portal/Site screens.
Thanks in advance
SharePoint branding is always a tricky job. The safest way to achieve your goal is to create a separate masterpage with your new branding. So the user can choose to apply the default branding with the default masterpage and when he wants another branding your customized masterpage can be used.
Create a new SharePoint project and add the needed css inside a mapped layouts folder. Then you can reference your own css file in the new masterpage. Watch out with changing the masterpage, because it contains a lot of placeholders which will render different parts of the page. Try to work around these placeholders and make sure the masterpage works in different scenario's (ex. that the layout isn't broken when page is in edit mode, ...)
Once you are finished with the design, the user can use it by applying it in the settings. Another option to make it easier for the enduser, is to create a control that is a switch to apply your masterpage (ex. with custom action).

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.

How to control order of the tabs in the template selection of SharePoint site creation page?

The New SharePoint Site page has a Template Selection section which can contains multiple tabs. For example, Meetings and Collaboration. These are controlled in webtemp.xml using DisplayCategory. While hiding and unhiding different OOTB templates, I somehow ended up switching the order of the tabs so that Meetings show up first. Can't seem to find any references on how to control the order of the tabs and make Collaboration first again.
Has webtemp.xml been reordered or edited so that Team Site, Blank Site, and Document Workspace are now either below the Meetings sites or are marked as hidden? I captured the output of GetAvailableWebTemplates for a test Team Site and the first 12 templates match the contents and order of an OOTB webtemp.xml. If any of those Collaboration templates are visible in your list, try moving it above the Meeting templates, save, and recycle the app pool.
Is this a Publishing Site? If so, check Site Settings > Page Layout and Site Template Settings to see if any Site Templates are being restricted. From what I can tell in Reflector, the TemplatePicker control calls SPWeb.GetAvailableWebTemplates, which should consistently return OOTB templates first followed by any custom templates. TemplatePicker then loops through the templates and creates a tab each time it encounters a new SPWebTemplate.DisplayCategory.

Resources