- Compatible XF 2.x versions
- 2.1
- 2.2
Adds a new template variable $xf.itemsThisPage containing how many posts/media items/resources/etc. are shown on a page.
This is useful in templates if you want to adjust the display of some element based on how many posts or threads or media items there are displayed.
For example, you might want to hide an element from the sidebar on short threads (or on the last page of a thread where only one or two posts are shown), to prevent the sidebar from being much longer than the content.
Usage example:
The following code might be used in a sidebar ad placement to hide the advert on short thread pages.
An even easier way
If we combine this addon with the Template Parent addon, which gives us a shorthand way of referencing all of the various thread and forum types in template names using a new $xf.reply.templateParent template variable - we can simplify the above example even further:
This is useful in templates if you want to adjust the display of some element based on how many posts or threads or media items there are displayed.
For example, you might want to hide an element from the sidebar on short threads (or on the last page of a thread where only one or two posts are shown), to prevent the sidebar from being much longer than the content.
Usage example:
The following code might be used in a sidebar ad placement to hide the advert on short thread pages.
HTML:
<xf:if is="in_array($xf.reply.template, [
'thread_view',
'thread_view_type_article',
'thread_view_type_poll',
'thread_view_type_question',
'thread_view_type_suggestion'
]) && $xf.itemsThisPage <= 1">
<!-- show nothing -->
<xf:else />
<!-- show the item -->
</xf:if>
An even easier way
If we combine this addon with the Template Parent addon, which gives us a shorthand way of referencing all of the various thread and forum types in template names using a new $xf.reply.templateParent template variable - we can simplify the above example even further:
HTML:
<xf:if is="$xf.reply.templateParent == 'thread_view' && $xf.itemsThisPage <= 1">
<!-- show nothing -->
<xf:else />
<!-- show the item -->
</xf:if>