In the first step, let's create the Authoring and Publishing Site Collections.
Authoring Site collection allows authors to manage their website content while the Publishing Site collection reviews the content from the authoring site collection.
Open the Authoring Site Collection.
Create a list named “Accordion” that contains title and description.


Let’s create a control and a template to display the items.
- Control Template
It provides the overall structure (layout) of the HTML elements along with start and end tags. - Item Template
It renders the items from the list, and contains text and pictures.
Now, let's create two display templates for displaying a bootstrap carousel menu control and a menu item.
Code – Accordion Control Template
Upload the script and CSS into style library.

Add the scripts and CSS into Control template.
- <script>
- $includeScript(this.url, "~sitecollection/Style%20Library/Accordion/jquery-ui.css");
- $includeCSS(this.url, "~sitecollection/Style%20Library/Accordion/jquery-1.12.4.js");
- $includeScript(this.url, "~sitecollection/Style%20Library/Accordion/jquery-ui.js");
- </script>
- <div id="accordion">
- _#= ctx.RenderItems(ctx) =#_
- </div>
- <html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
- <head>
- <title>Accordion Control</title>
- <!--[if gte mso 9]><xml>
- <mso:CustomDocumentProperties>
- <mso:TemplateHidden msdt:dt="string">0</mso:TemplateHidden>
- <mso:MasterPageDescription msdt:dt="string">Display a menu Item</mso:MasterPageDescription>
- <mso:ContentTypeId msdt:dt="string">0x0101002039C03B61C64EC4A04F5361F385106601</mso:ContentTypeId>
- <mso:TargetControlType msdt:dt="string">;#SearchResults;#Content Web Parts;#</mso:TargetControlType>
- <mso:HtmlDesignAssociated msdt:dt="string">1</mso:HtmlDesignAssociated>
- <mso:HtmlDesignConversionSucceeded msdt:dt="string">True</mso:HtmlDesignConversionSucceeded>
- <mso:CrawlerXSLFile msdt:dt="string"></mso:CrawlerXSLFile>
- <mso:HtmlDesignPreviewUrl msdt:dt="string"></mso:HtmlDesignPreviewUrl>
- <mso:HtmlDesignStatusAndPreview msdt:dt="string">http://technologygeeks/sites/publishing/_catalogs/masterpage/Display Templates/Content Web Parts/banner/bannercontrol.html, Conversion successful.</mso:HtmlDesignStatusAndPreview>
- </mso:CustomDocumentProperties>
- </xml><![endif]-->
- </head>
- <body>
- <script>
- $includeScript(this.url, "~sitecollection/Style%20Library/Accordion/jquery-ui.css");
- $includeCSS(this.url, "~sitecollection/Style%20Library/Accordion/jquery-1.12.4.js");
- $includeScript(this.url, "~sitecollection/Style%20Library/Accordion/jquery-ui.js");
- </script>
- <div>
- <!--#_if (!$isNull(ctx.ClientControl) && !$isNull(ctx.ClientControl.shouldRenderControl) && !ctx.ClientControl.shouldRenderControl()){return "";}
- ctx.ListDataJSONGroupsKey = "ResultTables";
- ctx["CurrentItems"] = ctx.ListData.ResultTables[0].ResultRows;
- var siteURL = SP.PageContextInfo.get_siteAbsoluteUrl();
- AddPostRenderCallback(ctx, function() {
- $.getScript(siteURL + "");
- $( function() {
- var icons = {
- header: "ui-icon-circle-arrow-e",
- activeHeader: "ui-icon-circle-arrow-s"
- };
- $( "#accordion" ).accordion({
- icons: icons
- });
- $( "#toggle" ).button().on( "click", function() {
- if ( $( "#accordion" ).accordion( "option", "icons" ) ) {
- $( "#accordion" ).accordion( "option", "icons", null );
- } else {
- $( "#accordion" ).accordion( "option", "icons", icons );
- }
- });
- });
- });
- _#-->
- <div id="accordion">
- _#= ctx.RenderItems(ctx) =#_
- </div>
- <button id="toggle">Toggle icons</button>
- </div>
- </body>
- </html>











Join the conversation! Your thoughts help the community grow.