Proměnné v šablonách

this.page

Obsahuje informace o aktuální stránce a její konfiguraci.

{{ this.page.title }}        <!-- Název stránky -->
{{ this.page.url }}          <!-- URL stránky -->
{{ this.page.description }}  <!-- Popis stránky -->
{{ this.page.meta_title }}   <!-- Meta název -->
{{ this.page.meta_description }} <!-- Meta popis -->

Vlastnosti stránky

VlastnostPopis
titlenázev stránky definovaný v konfiguraci
urlURL adresa stránky
descriptionpopis stránky
meta_titleSEO název stránky
meta_descriptionSEO popis stránky
is_hiddenzda je stránka skrytá

this.layout

Obsahuje informace o aktuálním layoutu.

{{ this.layout.id }}          <!-- ID layoutu -->
{{ this.layout.fileName }}    <!-- Název souboru layoutu -->
{{ this.layout.content }}     <!-- Obsah layoutu -->

Vlastnosti layoutu

VlastnostPopis
ididentifikátor layoutu
fileNamenázev souboru layoutu bez přípony
contentobsah layoutu
mtimečas poslední modifikace

this.theme

Poskytuje přístup ke konfiguraci šablony a vlastním nastavením.

{{ this.theme.id }}                    <!-- ID šablony -->
{{ this.theme.description }}           <!-- Popis šablony -->
{{ this.theme.site_name }}             <!-- Vlastní konfigurace -->
{{ this.theme.custom_setting }}        <!-- Další vlastní nastavení -->

Vlastní konfigurace

Pokud máte v theme.yaml definované vlastní pole:

form:
    fields:
        site_name:
            label: Název webu
            default: Můj web
        logo_url:
            label: URL loga
            type: text

Můžete je používat v šablonách:

<h1>{{ this.theme.site_name }}</h1>
<img src="{{ this.theme.logo_url }}" alt="Logo">

this.param

Obsahuje parametry z URL adresy stránky.

<!-- Pro URL: /blog/category/novinky -->
{{ this.param.category }}   <!-- zobrazí: novinky -->

<!-- Pro URL s více parametry: /produkt/123/detail -->
{{ this.param.id }}         <!-- zobrazí: 123 -->
{{ this.param.action }}     <!-- zobrazí: detail -->

Definice parametrů

V konfiguraci stránky:

url = "/blog/:category"
url = "/produkt/:id/:action?"

Použití v šabloně:

<h1>Kategorie: {{ this.param.category }}</h1>
{% if this.param.action %}
    <p>Akce: {{ this.param.action }}</p>
{% endif %}

this.controller

Poskytuje přístup k controlleru a jeho metodám.

{{ this.controller.action }}        <!-- Aktuální akce -->
{{ this.controller.ajax }}          <!-- Zda je AJAX požadavek -->

Kontrola AJAX

{% if this.controller.ajax %}
    <!-- Obsah pro AJAX požadavky -->
    <div id="ajax-content">{{ content }}</div>
{% else %}
    <!-- Obsah pro běžné požadavky -->
    <div class="full-page">{{ content }}</div>
{% endif %}

this.environment

Obsahuje informace o prostředí aplikace.

{{ this.environment }}              <!-- Název prostředí (local, production) -->

Podmíněné zobrazení podle prostředí

{% if this.environment == 'local' %}
    <!-- Debug informace pouze v local prostředí -->
    <div class="debug-info">
        <p>Debug mode active</p>
    </div>
{% endif %}

{% if this.environment == 'production' %}
    <!-- Google Analytics pouze v produkci -->
    <script>
        // GA tracking code
    </script>
{% endif %}

this.session

Poskytuje přístup k session datům.

{{ this.session.get('user_id') }}           <!-- Získání hodnoty ze session -->
{{ this.session.get('cart_items', 0) }}     <!-- S výchozí hodnotou -->

Kontrola přihlášení

{% if this.session.get('user_id') %}
    <p>Vítejte zpět, uživateli!</p>
    <a href="/logout">Odhlásit se</a>
{% else %}
    <a href="/login">Přihlásit se</a>
    <a href="/register">Registrovat se</a>
{% endif %}

Flash zprávy

{% if this.session.get('success') %}
    <div class="alert alert-success">
        {{ this.session.get('success') }}
    </div>
{% endif %}

{% if this.session.get('error') %}
    <div class="alert alert-error">
        {{ this.session.get('error') }}
    </div>
{% endif %}

Praktické příklady

Komplexní navigace

<nav class="main-navigation">
    <a href="/" class="{{ this.page.url == '/' ? 'active' : '' }}">
        {{ 'Domů'|_ }}
    </a>
    
    {% if this.param.category %}
        <span class="breadcrumb">
            {{ this.param.category|title }}
        </span>
    {% endif %}
</nav>

Podmíněné meta tagy

<head>
    <title>
        {% if this.page.meta_title %}
            {{ this.page.meta_title }}
        {% else %}
            {{ this.page.title }} - {{ this.theme.site_name }}
        {% endif %}
    </title>
    
    {% if this.page.meta_description %}
        <meta name="description" content="{{ this.page.meta_description }}">
    {% endif %}
</head>