Autor: JIz

_primary

Aktuální primární sekce.

Pojmem primární se rozumí nejhlubší zobrazovaná sekce ve struktuře prezentace; odlišuje tedy skutečně aktuální sekci od její rodičovské sekce a všech dalších nadřazených sekcí.

Podobně jako u obsahového assetu se jedná o položku obsaženou ve struktuře identifikátoru aktuální stránky; na rozdíl od obsahového assetu je ale tato položka vždy definovaná.

Typické použití této hodnoty zahrnuje jednak výpis navigačních struktur (menu, drobečková navigace), jednak nalezení šablony pro výpis obsahu sekce.

Příklad: Zvýraznění aktuální položky v hlavním menu
Základ výpisu menu
<ul id="main-menu">
{while _template.main_menu}
  <li>
    <a href="{link(_.asset)}">
      {_.title}
    </a>
  </li>
{/while}
</ul>
Výpis menu se zvýrazněním
<ul id="main-menu">
{while _template.main_menu}
  <li>
    <a href="{link(_.asset)}">
      {if isParent(_.asset, _primary)}
        <strong>{_.title}</strong>
      {else}
        {_.title}
      {/if}
    </a>
  </li>
{/while}
</ul>
Konvence pro volitelný odkaz
<ul id="main-menu">
{while _template.main_menu}
  <li>
    <a href="{value(target(_.asset), link(_.asset))}">
      {if isParent(_.asset, _primary)}
        <strong>{_.title}</strong>
      {else}
        {_.title}
      {/if}
    </a>
  </li>
{/while}
</ul>

Hlavní menu je reprezentované výčtovým datovým zdrojem obsahujícím seznam sekcí. V tomto příkladu je tento datový zdroj připojený k aktuální šabloně referencí main_menu.

Při výpisu se u každé položky zkontroluje, zda je rodičem aktuální primární sekce. Pokud ano, je třeba ji v menu zvýraznit – vyznačit jako aktuální.

Díky vlastnostem funkce isParent se jako aktuální zvýrazní i ta položka hlavního menu, která je aktuální primární sekcí.

Dále je užitečné dodržovat konvenci, která umožní volit libovolně cíl odkazu pro dané položky menu; třetí ukázka demonstruje, jak lze k tomuto účelu využít funkci target. Viz také podrobný výklad.

Příklad: Výpis drobečkové navigace
Šablona
<div id="breadcrumbs">
  <a href="{link(_site.homeSection)}">Domů</a>
  {while parentsOf(_primary, false, _publish)}
    &gt; <a href="{value(target(_), link(_))}">{_.title}</a>
  {/while}
</div>

Pro jednoduchost opět předpokládáme, že je prezentace symetrická. V takovém případě je prvním potomkem kořenové sekce prezentace hned sekce první úrovně, kterou má drobečková navigace obsahovat na druhém místě (po odkazu na domovskou stránku).

V příkladu se používá také proměnná _site, jejíž hodnotou je aktuální Konfigurace prezentace. Tento asset má atribut Domovská sekce (systémový název je homeSection), který využijeme při konstrukci odkazu na domovskou stránku. Toto je pochopitelně možné jen v případě, že je buď prezentace jednojazyčná, nebo že má datový slovník v přesně tolika jazycích, kolik je jazyků prezentace.

Výpis používá možnosti konfigurovat cíle odkazů v navigační struktuře. Viz podrobný výklad.

Při výpisu obsahu primární sekce je vhodné jako default vypsat její dětský asset se systémovým názvem index.

Primární sekce je jedním z hlavních vstupů, určujících, jak bude probíhat výpis stránky.

Pro vložení příspěvku do diskuse se přihlašte.