{"id":17,"date":"2015-07-05T14:45:00","date_gmt":"2015-07-05T14:45:00","guid":{"rendered":""},"modified":"2020-01-17T07:40:11","modified_gmt":"2020-01-17T07:40:11","slug":"aem-templates-in-details","status":"publish","type":"post","link":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/","title":{"rendered":"AEM Templates in Details"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left;\">\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">In this post, I will explain most useful properties of templates or you can say most useful features provided by templates. Most of AEM developers&nbsp;familiar&nbsp;with&nbsp;these properties but don&#8217;t know how to use them.&nbsp;In this post I will explain all of these properties in details.<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><b><i><span style=\"color: #660000;\">Agenda<\/span><\/i><\/b><\/div>\n<div style=\"text-align: justify;\">&nbsp;<\/div>\n<ol>\n<li><span style=\"color: #274e13;\">Allowed Paths Property&nbsp;<b><i>(allowedPaths)<\/i><\/b><\/span><\/li>\n<li><span style=\"color: #274e13;\">Allowed Templates Property <b><i>(cq:allowedTemplates)<\/i><\/b><\/span><\/li>\n<li><span style=\"color: #274e13;\">Allowed Parents Property <b><i>(allowedParents)<\/i><\/b><\/span><\/li>\n<li><span style=\"color: #274e13;\">Allowed Children Property <b><i>(allowedChildren)<\/i><\/b><\/span><\/li>\n<\/ol>\n<p><b><span style=\"color: #660000;\">Use of these Properties<\/span><\/b><br \/>\n<i><span style=\"color: #0c343d;\"><br \/>\n<\/span><\/i><i><span style=\"color: #274e13;\">&#8220;All of these properties are used to hide and show different templates at different page hierarchies at the time of page creation. For example &#8211; some templates are visible only under <b>\/content<\/b> directory some are visible for page creation under <b>\/content\/geometrixx<\/b> hierarchy some are visible under <b>\/content\/geometrixx\/en<\/b> hierarchy and some are visible at every level of page hierarchy.&#8221;<\/span><\/i><br \/>\n<i><span style=\"color: #0c343d;\"><br \/>\n<\/span><\/i><i><span style=\"color: #274e13;\"><b>Note : &#8211;<\/b> These properties are very important part in AEM component developer certification exam. So let&#8217;s play with these properties.<\/span><\/i><\/p>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><b><i>allowedPaths<\/i><\/b><\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><i><b>1).<\/b> This property is a template level property so must be defined at template node.<\/i><\/span><br \/>\n<span style=\"color: #274e13;\"><i><b>2).<\/b> Type of this property is string array.<\/i><\/span><br \/>\n<span style=\"color: #274e13;\"><i><b>3).<\/b> It&#8217;s value will be the path under which this template will be visible for page creation in siteadmin.&nbsp;<\/i><\/span><br \/>\n<span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">i.e. for showing a template under <b><i>\/content<\/i><\/b> directory we have to add this property with a value of <b><i>\/content(\/.*)?<\/i><\/b>.&nbsp;This is a regex string represents that this template is visible under each and every page in <b><i>\/content <\/i><\/b>directory.<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">If you change it&#8217;s value as&nbsp;<b><i>\/content\/geometrixx\/en\/?<\/i><\/b> then this template will be visible under <b><i>\/content\/geometrixx\/en<\/i><\/b> page not under it&#8217;s child pages. i.e. this template will not be visible under <b><i>\/content\/geometrixx\/en\/toolbar<\/i><\/b> page.<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">So for base template you must define this <b><i>allowedPaths<\/i><\/b> property as <b><i>\/content(\/.*)?<\/i><\/b>, So that this template is visible for page creation.<\/span><br \/>\n<span style=\"color: #274e13;\"><br \/>\n<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><i><b>Note :-<\/b> This property is required only for the top level page creation. If you don&#8217;t provide this property then this template will not be visible in siteadmin. This property is also required if you don&#8217;t add cq:allowedTemplates property at top level page jcr:content node.&nbsp;<\/i><\/span><br \/>\n<span style=\"color: #274e13;\"><i>If you provide&nbsp;<\/i><\/span><i style=\"color: #274e13;\">cq:allowedTemplates property at top level page then for all child templates, you don&#8217;t need to add allowedPaths property. This property will be explained in details in this post.<\/i><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">For explaining these properties my Project structure is &#8211;<\/span><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"clear: left; float: left; margin-bottom: 1em; margin-right: 1em;\" href=\"http:\/\/4.bp.blogspot.com\/-lDuCCqT1vVY\/VZjLhWkPGcI\/AAAAAAAABHk\/YqF3nnQ3GdY\/s1600\/blog.png\"><span style=\"color: #274e13;\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png\" width=\"200\" height=\"137\" border=\"0\"><\/span><\/a><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">At homepage node, I have added a property named as <b><i>allowedPaths<\/i><\/b> with a value <b><i>\/content\/?<\/i><\/b> &nbsp;so that this template will be visible in siteadmin page creation dialog.<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">Now add one more property named as <b><i>cq:allowedTemplates<\/i><\/b> on <b><i>jcr:content<\/i><\/b> node of this template.&nbsp;<\/span><br \/>\n<span style=\"color: #274e13;\">I will explain this property after creating a page. Value of this property as <b><i>\/apps\/blog\/templates\/.*<\/i><\/b><\/span><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">This will look like &#8211;<\/span><\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"clear: left; float: left; margin-bottom: 1em; margin-right: 1em;\" href=\"http:\/\/2.bp.blogspot.com\/-OPLNDWXCQ7c\/VZjNpkbqNOI\/AAAAAAAABHw\/y8lByxio5jI\/s1600\/blog_1.png\"><span style=\"color: #274e13;\"><img fetchpriority=\"high\" decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog_1-300x89.png\" width=\"640\" height=\"187\" border=\"0\"><\/span><\/a><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: left;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">Now go to siteadmin and create a new page using this template.<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><b>Note : &#8211; <\/b><i>allowedPaths property is required only for the template using that you are going to create your website top level page. For ex.<\/i>&nbsp;<b><i>\/content\/geometrixx<\/i><\/b>&nbsp;,&nbsp;<b><i>\/content\/geometrixx-outdoors<\/i><\/b>&nbsp;etc pages.<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><b><i>cq:allowedTemplates&nbsp;<\/i><\/b><\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><i><b>1).<\/b> This property is a page level property, so must be defined on the <b>jcr:content<\/b> node of the template.&nbsp;<\/i><\/span><br \/>\n<i><span style=\"color: #274e13;\"><b>2).<\/b> Type of this property is string array.<\/span><\/i><br \/>\n<i><span style=\"color: #274e13;\"><b>3).<\/b>&nbsp;It&#8217;s value will be the path of templates those will be visible for page creation under current page in siteadmin.<\/span><\/i><br \/>\n<span style=\"color: #274e13;\">This property provides the restrictions on all templates those will be visible under the page created using this template. For example &#8211;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">I have added this property on my <b><i>homepage template<\/i><\/b> with a value of <b><i>\/apps\/blog\/template\/.* <\/i><\/b>, it means that under the page created using <b><i>homepage<\/i><\/b> template, only those templates will be visible those are present in&nbsp;<\/span><span style=\"color: #274e13;\"><b><i>\/apps\/blog\/template<\/i><\/b> directory.&nbsp;<\/span><br \/>\n<span style=\"color: #274e13;\">If you define a particular template path then only that particular template will be displayed for ex. if the value of this property is <b><i>&nbsp;\/apps\/blog\/template\/templateRes<\/i><\/b> then only this template will be visible.<\/span><br \/>\n<span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">You can think it as, first AEM check <b><i>cq:allowedTemplates<\/i><\/b> property and select a template group that can be displayed under the page created using this template.<\/span><br \/>\n<span style=\"color: #274e13;\">Then AEM check for <b><i>allowedPaths<\/i><\/b> property of these selected template group and check that path present in this property matches with the path of page, yes or not, if yes then this template will be displayed else not. In short &#8211;<\/span>&nbsp;<\/p>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/3.bp.blogspot.com\/-gsuYCpfRayk\/VZkOnaZ1GgI\/AAAAAAAABIA\/jFYgj3tttNg\/s1600\/a.png\"><span style=\"color: #274e13;\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/a-279x300.png\" width=\"371\" height=\"400\" border=\"0\"><\/span><\/a><\/div>\n<div style=\"clear: both; text-align: center;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<p><span style=\"color: #274e13;\"><b><i>allowedParents<\/i><\/b><\/span><br \/>\n<span style=\"color: #274e13;\"><i><b>1).<\/b>&nbsp;<\/i><i>This property is a template level property so must be defined at template node.<\/i><i>&nbsp;<\/i><\/span><br \/>\n<i><span style=\"color: #274e13;\"><b>2).<\/b>&nbsp;Type of this property is string array.<\/span><\/i><br \/>\n<i><span style=\"color: #274e13;\"><b>3).<\/b>&nbsp;It&#8217;s value will be the path of templates those can behave as the parent of this template at the time of page creation in siteadmin.<\/span><\/i><br \/>\n<span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">This property is used to add another level of restriction i.e. if your templates satisfies both of above defined criteria or they are not present or defined empty then this property will be checked.<\/span><br \/>\n<span style=\"color: #274e13;\">If this property exists then AEM will check the value of this property. This property can have the path of the templates that can behave as parent of this template.<\/span><\/p>\n<div style=\"clear: both; text-align: center;\"><a style=\"clear: left; float: left; margin-bottom: 1em; margin-right: 1em;\" href=\"http:\/\/2.bp.blogspot.com\/-gfTuFjZ2Z2I\/VZkRDt2buOI\/AAAAAAAABIM\/wjy9RV9kL48\/s1600\/c.png\"><span style=\"color: #274e13;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/c-300x75.png\" width=\"640\" height=\"158\" border=\"0\"><\/span><\/a><\/div>\n<p><span style=\"color: #274e13;\">&nbsp;<\/span><\/p>\n<\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"text-align: justify;\"><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\">now the criteria for showing a template becomes &#8211;&nbsp;<\/span><br \/>\n<span style=\"color: #274e13;\"><br \/>\n<\/span><span style=\"color: #274e13;\"><b><i>cq:allowedTemplates (Parent Page) + allowedPaths (Parent &nbsp;Template) + allowedParents (Child Template) = template to be displayed.<\/i><\/b><\/span><br \/>\n<span style=\"color: #274e13;\"><br \/>\n<\/span><\/div>\n<div style=\"text-align: justify;\">\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/1.bp.blogspot.com\/-hslS4Md4nwQ\/VZkSsSZa_yI\/AAAAAAAABIY\/UftpAu49cQM\/s1600\/d.png\"><span style=\"color: #274e13;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/d-300x300.png\" width=\"397\" height=\"400\" border=\"0\"><\/span><\/a><\/div>\n<div style=\"clear: both; text-align: center;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: center;\"><b style=\"text-align: justify;\"><i><span style=\"color: #274e13;\">&nbsp;<\/span><\/i><\/b><\/div>\n<div style=\"clear: both; text-align: center;\"><b style=\"text-align: justify;\"><i><span style=\"color: #274e13;\">&nbsp;<\/span><\/i><\/b><\/div>\n<div style=\"clear: both; text-align: center;\"><b style=\"text-align: justify;\"><i><span style=\"color: #274e13;\">&nbsp;<\/span><\/i><\/b><\/div>\n<div style=\"clear: both; text-align: left;\"><b style=\"text-align: justify;\"><i><span style=\"color: #274e13;\">allowedChildren<\/span><\/i><\/b><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\"><i><b>1).<\/b> This property is a template level property so must be defined at template node.<\/i><\/span><\/div>\n<p><span style=\"color: #274e13;\"><i><b>2).<\/b> Type of this property is string array.<\/i><\/span><br \/>\n<span style=\"color: #274e13;\"><i><b>3).<\/b> It&#8217;s value will be the path of the templates those are allowed or visible for page creation under this template in siteadmin.&nbsp;<\/i><\/span><\/p>\n<div><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">This is a template level property. In my case, I have added this property at my <b><i>homepage<\/i><\/b> template.<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">If above defined properties and this property are not empty then a new level of restrictions will be added for showing templates in siteadmin.<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/4.bp.blogspot.com\/-933kEiNiTsw\/VZkUCsN4-rI\/AAAAAAAABIg\/4NLRDKZI7nw\/s1600\/f.png\"><span style=\"color: #274e13;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/f-300x293.png\" width=\"400\" height=\"390\" border=\"0\"><\/span><\/a><\/div>\n<div style=\"clear: both; text-align: center;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: center;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">So you can say the final template list will be shown on the basic of this criteria&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><b style=\"color: #274e13;\"><i>cq:allowedTemplates (Parent Page) + allowedPaths (Parent &nbsp;Template) + allowedParents (Child Template) + allowedChildren (Parent Template)&nbsp;= template to be displayed.<\/i><\/b><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: center;\">&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/z.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/z-300x300.png\" width=\"400\" height=\"397\" border=\"0\"><\/a><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">I tried my level best for making clear these propeties and I have pushed the code related to this POC on my git repository and If I am not clear at any point, you can contact me. All details are listed below. Your views are welcome.<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\">&nbsp;<\/span><\/div>\n<div style=\"clear: both; text-align: justify;\"><span style=\"color: #274e13;\"><b style=\"background-color: #eefff0; font-family: 'Times New Roman', Times, FreeSerif, serif; font-size: 15.3999996185303px; line-height: 21.5599994659424px;\">reference documentation &#8211;&nbsp;<\/b><br style=\"background-color: #eefff0; font-family: 'Times New Roman', Times, FreeSerif, serif; font-size: 15.3999996185303px; line-height: 21.5599994659424px;\"><span style=\"font-family: Times New Roman, Times, FreeSerif, serif;\"><span style=\"font-size: 15.3999996185303px; line-height: 21.5599994659424px;\"><b><i><a href=\"https:\/\/docs.adobe.com\/docs\/en\/cq\/5-6-1\/developing\/templates.html\">https:\/\/docs.adobe.com\/docs\/en\/cq\/5-6-1\/developing\/templates.html<\/a><\/i><\/b><\/span><\/span><\/span><\/div>\n<div style=\"background-color: #eefff0; font-family: 'Times New Roman', Times, FreeSerif, serif; font-size: 15px; line-height: 21.5599994659424px;\"><b><span style=\"color: #274e13;\"><br \/>\n<\/span><\/b><b><span style=\"color: #274e13;\">github repository link<\/span><\/b><\/div>\n<div style=\"background-color: #eefff0;\"><span style=\"color: #274e13; font-family: Times New Roman, Times, FreeSerif, serif;\"><span style=\"font-size: 15px; line-height: 21.5599994659424px;\"><b><i><a href=\"https:\/\/github.com\/vietankur009\/blog.git\">https:\/\/github.com\/vietankur009\/blog.git<\/a><\/i><\/b><\/span><\/span><\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p><strong>Happy Coding<\/strong><br \/>\n<strong>Namah Shivay<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post, I will explain most useful properties of templates or you can say most useful features provided by [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,51,49,56,54,50,55,53,33,52],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-aem","category-allowedchildren-in-aem","category-allowedchildren-in-cq","category-allowedparents-in-aem","category-allowedparents-in-cq","category-allowedpaths-in-aem","category-allowedpaths-in-cq","category-allowedtemplate-in-aem","category-cq","category-templates"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AEM Templates in Details - AEM Blog | Lhotse Technologies<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AEM Templates in Details - AEM Blog | Lhotse Technologies\" \/>\n<meta property=\"og:description\" content=\"In this post, I will explain most useful properties of templates or you can say most useful features provided by [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\" \/>\n<meta property=\"og:site_name\" content=\"AEM Blog | Lhotse Technologies\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-05T14:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-17T07:40:11+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png\" \/>\n<meta name=\"author\" content=\"Team Lhotse\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Team Lhotse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\"},\"author\":{\"name\":\"Team Lhotse\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d\"},\"headline\":\"AEM Templates in Details\",\"datePublished\":\"2015-07-05T14:45:00+00:00\",\"dateModified\":\"2020-01-17T07:40:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\"},\"wordCount\":1108,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png\",\"articleSection\":[\"AEM\",\"allowedChildren in AEM\",\"allowedChildren in CQ\",\"allowedParents in AEM\",\"allowedParents in CQ\",\"allowedPaths in AEM\",\"allowedPaths in CQ\",\"allowedTemplate in AEM\",\"CQ\",\"Templates\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\",\"name\":\"AEM Templates in Details - AEM Blog | Lhotse Technologies\",\"isPartOf\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png\",\"datePublished\":\"2015-07-05T14:45:00+00:00\",\"dateModified\":\"2020-01-17T07:40:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png\",\"contentUrl\":\"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png\",\"width\":208,\"height\":143},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lhotsetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AEM Templates in Details\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/\",\"name\":\"AEM Blog | Lhotse Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lhotsetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#organization\",\"name\":\"AEM Blog | Lhotse Technologies\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png\",\"contentUrl\":\"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png\",\"width\":539,\"height\":172,\"caption\":\"AEM Blog | Lhotse Technologies\"},\"image\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d\",\"name\":\"Team Lhotse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"Team Lhotse\"},\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/author\/team-lhotse\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AEM Templates in Details - AEM Blog | Lhotse Technologies","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/","og_locale":"en_US","og_type":"article","og_title":"AEM Templates in Details - AEM Blog | Lhotse Technologies","og_description":"In this post, I will explain most useful properties of templates or you can say most useful features provided by [&hellip;]","og_url":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/","og_site_name":"AEM Blog | Lhotse Technologies","article_published_time":"2015-07-05T14:45:00+00:00","article_modified_time":"2020-01-17T07:40:11+00:00","og_image":[{"url":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png","type":"","width":"","height":""}],"author":"Team Lhotse","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Team Lhotse","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#article","isPartOf":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/"},"author":{"name":"Team Lhotse","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d"},"headline":"AEM Templates in Details","datePublished":"2015-07-05T14:45:00+00:00","dateModified":"2020-01-17T07:40:11+00:00","mainEntityOfPage":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/"},"wordCount":1108,"commentCount":0,"publisher":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#organization"},"image":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage"},"thumbnailUrl":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png","articleSection":["AEM","allowedChildren in AEM","allowedChildren in CQ","allowedParents in AEM","allowedParents in CQ","allowedPaths in AEM","allowedPaths in CQ","allowedTemplate in AEM","CQ","Templates"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/","url":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/","name":"AEM Templates in Details - AEM Blog | Lhotse Technologies","isPartOf":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage"},"image":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage"},"thumbnailUrl":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png","datePublished":"2015-07-05T14:45:00+00:00","dateModified":"2020-01-17T07:40:11+00:00","breadcrumb":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#primaryimage","url":"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png","contentUrl":"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2015\/07\/blog.png","width":208,"height":143},{"@type":"BreadcrumbList","@id":"https:\/\/lhotsetechnologies.com\/blog\/aem-templates-in-details\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lhotsetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AEM Templates in Details"}]},{"@type":"WebSite","@id":"https:\/\/lhotsetechnologies.com\/blog\/#website","url":"https:\/\/lhotsetechnologies.com\/blog\/","name":"AEM Blog | Lhotse Technologies","description":"","publisher":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lhotsetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/lhotsetechnologies.com\/blog\/#organization","name":"AEM Blog | Lhotse Technologies","url":"https:\/\/lhotsetechnologies.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png","contentUrl":"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png","width":539,"height":172,"caption":"AEM Blog | Lhotse Technologies"},"image":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d","name":"Team Lhotse","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Team Lhotse"},"url":"https:\/\/lhotsetechnologies.com\/blog\/author\/team-lhotse\/"}]}},"_links":{"self":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":3,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"predecessor-version":[{"id":564,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/17\/revisions\/564"}],"wp:attachment":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}