Limiting The Custom Web Templates

Limiting The Custom Web Templates

By Jubaraj Pandit  •  November 18, 2014  •  2739 Views

Netwoven Blog


You are using SharePoint 2013 On-Premises. You want to be able to filter the Site Templates that users see when the user tries to create a sub site. As Site administrator you can do this by navigating to Site Setting> Page layouts and site templates.

Limiting The Custom Web Templates

In this blog I will explain how you can implement the same capabilities via the code.

Limiting Custom Web Templates using CSOM

Removing all OOTB Filter Tabs using JQuery 

  • Site creation page is a regular application layout page NewSbWeb.aspx located in _layouts/15 folder on file system of web server. So you can modify this page by hiding template picker control which is InputFormTemplatePickerControl
  • Need to hide the OOTB Filter Tabs so that end user won’t be selecting any tabs
  • Remove the existing OOTB Filter Tab options
var hiddenFieldElement = $("input[id*='InputFormTemplatePickerControl']");;

var select =;

var opts = select.find('option');




Get All Available Templates of the site collection and add only Custom Web Templates

  • Get All Available Templates of the site collection using  GetAllAvailableTemplates Method
//getting all available web templates from root web

templateCollection = web.getAvailableWebTemplates(1033, false);
  • Filter only the Custom Web Templates required
  • Add only the custom Web Templates needed to InputFormTemplatePickerControl which displays the Template
var templatePicker = $("input[id*='InputFormTemplatePickerControl']").next().next();



var siteTemplate = siteTemplatesEnum.get_current();

if (siteTemplate.get_name().toUpperCase().indexOf("CUSTOM") != -1)


Templates +=  siteTemplate.get_name() + "----"  + siteTemplate.get_id() +   ',';

sitename = siteTemplate.get_name().substring(siteTemplate.get_name().indexOf("#")+1);

templatePicker.append("<option value='" + siteTemplate.get_name() + "'>" + sitename + "</option>");



templatePicker.prop("selectedIndex",0); //selecting the first option

//This is to hide the WebTemplate Label which shows the description of the OOTB web templates

var webtemplatelabel = $("input[id*='InputFormTemplatePickerControl']").next().next().next();



1 comment

Leave a comment

Your email address will not be published. Required fields are marked *

Microsoft Partner
Microsoft Partner
Microsoft Partner
Microsoft Partner
Microsoft Partner
Microsoft Partner
Microsoft Partner
Unravel The Complex
Stay Connected

Subscribe and receive the latest insights

Netwoven Inc. - Microsoft Solutions Partner

Get involved by tagging Netwoven experiences using our official hashtag #UnravelTheComplex