Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
check if viewing category/author in section context
Hi again gurus,
Can you let me know how I can check whether a category/author list is being viewed within a section context? i.e. when viewed via…
<txp:category title link this_section />
<txp:author link this_section />
…as opposed to the sectionless…
<txp:category title link />
<txp:author link />
Thanks all!
Offline
Offline
Re: check if viewing category/author in section context
Probably 😀
Will check on Monday and let you know either way. Ta!
Offline
Re: check if viewing category/author in section context
Hi again, is there a more DRY way of writing this in Textpattern? Seems like a lot of repeated code to me which I’m sure there’s a clever way to reduce?
<nav class="breadcrumbs-container" aria-label="<txp:text item="breadcrumb_nav" />">
<ol class="breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="<txp:site_url />"><span itemprop="name"><txp:text item="home" /></span></a>
<meta itemprop="position" content="1">
</li>
<txp:if_search>
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:text item="search_results" /></b>
<meta itemprop="item" content="<txp:site_url />?q=">
<meta itemprop="position" content="2">
</li>
<txp:else />
<txp:if_author>
<txp:if_section>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="<txp:section url />"><span itemprop="name"><txp:section title /></span></a>
<meta itemprop="position" content="2">
</li>
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:author /></b>
<meta itemprop="item" content="<txp:author format="url" />">
<meta itemprop="position" content="3">
</li>
<txp:else />
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:author /></b>
<meta itemprop="item" content="<txp:author format="url" />">
<meta itemprop="position" content="2">
</li>
<txp:if_section>
<txp:else />
<txp:if_category>
<txp:if_section>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="<txp:section url />"><span itemprop="name"><txp:section title /></span></a>
<meta itemprop="position" content="2">
</li>
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:category title /></b>
<meta itemprop="item" content="<txp:category url />">
<meta itemprop="position" content="3">
</li>
<txp:else />
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:category title /></b>
<meta itemprop="item" content="<txp:category url />">
<meta itemprop="position" content="2">
</li>
<txp:if_section>
<txp:else />
<txp:if_article_list>
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:section title /></b>
<meta itemprop="item" content="<txp:section url />">
<meta itemprop="position" content="2">
</li>
<txp:else />
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="<txp:section url />"><span itemprop="name"><txp:section title /></span></a>
<meta itemprop="position" content="2">
</li>
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:title /></b>
<meta itemprop="item" content="<txp:permlink />">
<meta itemprop="position" content="3">
</li>
</txp:if_article_list>
</txp:if_category>
</txp:if_author>
</txp:if_search>
</ol>
</nav>
Offline
Re: check if viewing category/author in section context
As far as I can see, a common pattern is
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><!-- name --></b>
<meta itemprop="item" content="<!-- item -->">
<meta itemprop="position" content="<!-- position -->">
</li>
You could try to fill <!-- items -->
inside your conditional blocks, like
<txp:if_author>
<txp:variable name="name" value='<txp:author />' />
<txp:if_section>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="<txp:section url />"><span itemprop="name"><txp:section title /></span></a>
<meta itemprop="position" content="2">
</li>
<txp:variable name="position" value="3" />
<txp:else />
<txp:variable name="position" value="2" />
<txp:if_section>
<txp:else />
....
and the append the common block after conditionals:
<li class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<b itemprop="name" aria-current="location"><txp:variable name="name" /></b>
<meta itemprop="item" content="<txp:variable name="item" >">
<meta itemprop="position" content="<txp:variable name="position" />">
</li>
Offline