Forms and Resources Custom Page
Read a Sample Issue of The American Quarter Horse Journal
Sign up to access the digital version of the March-April 2026 issue of The American Quarter Horse Journal.
Mardi Gras Futurity Qualifiers
MC Blue Cartel is the fastest qualifier from two days of trials at Louisiana Downs.
Oklahoma Futurity Night 2 Qualifiers
The field is now set for the $435,395 final to be run on March 21.
An error occurred while processing the template.
Can't convert this string to number: "{}"
The blamed expression:
==> item?number [in template "20116#20152#83629" at line 116, column 35]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign linkPageId = item?number [in template "20116#20152#83629" in function "getFriendlyURL" at line 116, column 13]
- Reached through: ${getEntryViewURL(article)} [in template "20116#20152#83629" at line 39, column 46]
----
1<#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] />
2<@liferay_theme["defineObjects"] />
3
4<#assign layout = themeDisplay['plid'] />
5<#assign portletID = themeDisplay.getPortletDisplay().getId() />
6
7<#-- New Version -->
8<#if entries?has_content>
9 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
10 <#assign wcmutil = serviceLocator.findService("com.base22.liferay.wcm.api.WCMUtilities") />
11 <#assign ignoreVocabularies = ["User Segment", "Portal Locations", "Portal Components", "Time", "Geographic Locations"]>
12 <#assign ignoreCategories = []>
13 <#assign index = wcmutil.getCategories(entries, ignoreVocabularies, ignoreCategories, portletPreferences['queryValues0']) />
14
15 <div class="center-categories-menu nav-side-menu">
16 <div class="menu-list">
17 <ul id="categories-menu-content" class="categories-menu">
18 <#if index?has_content>
19 <span><@liferay.language key="translations.text.topicDirectory.thereAre"/> <strong>${getNumOfServices(index)}</strong> <@liferay.language key="translations.text.topicDirectory.resourceAvailable"/> <strong>${index?size}</strong> <@liferay.language key="translations.text.topicDirectory.categories"/></span>
20 <#list index as indexEntry>
21 <li data-toggle="collapse" data-target="#${portletID}-${indexEntry.getCategoryId()}" class="collapsed active hasChildrens">
22 <div class="row">
23 <div class="col-xs-7 col-md-9">
24 <strong>${indexEntry.getName()?upper_case}</strong>
25 </div>
26 <div class="col-xs-5 col-md-3">
27 <div class="b-categories-menu__arrow">
28 <i class="b-chevron--down fa fa-angle-down" aria-hidden="true"></i>
29 </div>
30 <div class="b-categories-menu__num-of-elements">
31 ${getNumOfElements(indexEntry)} <@pluralize numOfElements "item" "items" />
32 </div>
33 </div>
34 </div>
35 </li>
36 <ul class="sub-menu collapse" id="${portletID}-${indexEntry.getCategoryId()}">
37 <#list indexEntry.getArticles() as article>
38 <li class="">
39 <a href="${getEntryViewURL(article)}" class="">
40 ${article.getTitle(locale)}
41 </a>
42 </li>
43 </#list>
44 </ul>
45 </#list>
46 </#if>
47 </ul>
48 </div>
49 </div>
50</#if>
51<#-- New Version -->
52
53<#-- Start Macros -->
54<#macro pluralize number singular plural >
55 <#if (number == 1) >
56 ${singular}
57 <#else>
58 ${plural}
59 </#if>
60</#macro>
61<#-- End Macros -->
62
63<#-- Start Functions -->
64<#function getNumOfElements entries>
65 <#assign numOfElements = 0 />
66 <#if entries.getArticles()?size gt 0>
67 <#assign numOfElements = entries.getArticles()?size />
68 </#if>
69 <#return numOfElements>
70</#function>
71
72<#function getNumOfServices entries>
73 <#assign numOfservices = 0 />
74 <#if entries?size gt 0>
75 <#list entries as entry>
76 <#list entry.getArticles() as article>
77 <#assign numOfservices = numOfservices + 1 />
78 </#list>
79 </#list>
80 </#if>
81 <#return numOfservices>
82</#function>
83
84<#function getEntryViewURL entry>
85 <#assign entryViewURL = "" />
86 <#assign document = saxReaderUtil.read(entry.getContentByLocale(locale))/>
87 <#assign internalLink = getFriendlyURL(clean_string(document.valueOf("//dynamic-element[@name='internalLink']")))!"" />
88 <#assign externalLink = document.valueOf("//dynamic-element[@name='externalLink']")!"" />
89
90 <#if internalLink?trim != "">
91 <#assign entryViewURL = internalLink?trim />
92 <#elseif externalLink?trim != "">
93 <#assign entryViewURL = externalLink?trim />
94 <#else>
95 <#assign layout = themeDisplay.getLayout() />
96 <#assign pageGroup = layout.getGroup() />
97 <#assign siteDefaultURL = htmlUtil.escape(pageGroup.getDisplayURL(themeDisplay, false)) />
98 <#assign entryViewURL = siteDefaultURL+"/-/"+entry.getUrlTitle() + "?redirect=" + themeDisplay.getURLCurrent() />
99 </#if>
100
101 <#return entryViewURL>
102</#function>
103
104<#function clean_string string>
105 <#if string != "">
106 <#return string?replace("\n", "")?replace("\t", "")?replace("\r", "")>
107 <#else>
108 <#return "">
109 </#if>
110</#function>
111
112<#function getFriendlyURL string>
113 <#if string != "">
114 <#list string?split("@") as item>
115 <#if item_index == 0>
116 <#assign linkPageId = item?number>
117 </#if>
118 <#if item_index == 1>
119 <#if item == "private">
120 <#assign linkPrivate = true>
121 <#else>
122 <#assign linkPrivate = false>
123 </#if>
124 </#if>
125 <#if item_index = 2>
126 <#assign linkGroupId = item?number>
127 </#if>
128 </#list>
129 <#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"]>
130 <#assign pageLayout = layoutLocalService.getLayout(linkGroupId, linkPrivate, linkPageId)>
131 <#-- get Friendly URL -->
132 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]>
133 <#assign friendly_page_link = portalUtil.getLayoutFriendlyURL(pageLayout, themeDisplay)>
134
135 <#return friendly_page_link>
136 <#else>
137 <#return "">
138 </#if>
139</#function>
140<#-- End functions -->
141
142<script>
143 AUI().ready(function(){
144 var $currentWE = $(".center-categories-menu");
145 $currentWE.find(".hasChildrens").on("click", function(element) {
146 $currentWE.find(".collapse").collapse('hide');
147
148 var $currentE = $(element.currentTarget);
149
150
151 $currentWE.find("i").not($currentE.find("i")).removeClass("fa-angle-up").addClass("fa-angle-down");
152
153 $currentE.find(".b-categories-menu__arrow i").toggleClass("fa-angle-down");
154 $currentE.find(".b-categories-menu__arrow i").toggleClass("fa-angle-up");
155 });
156 });
157</script>