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
Vlastnost | Popis |
---|---|
title | název stránky definovaný v konfiguraci |
url | URL adresa stránky |
description | popis stránky |
meta_title | SEO název stránky |
meta_description | SEO popis stránky |
is_hidden | zda 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
Vlastnost | Popis |
---|---|
id | identifikátor layoutu |
fileName | název souboru layoutu bez přípony |
content | obsah 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>
Obsah
- Proměnné v šablonách
- this.page
- Vlastnosti stránky
- this.layout
- Vlastnosti layoutu
- this.theme
- Vlastní konfigurace
- this.param
- Definice parametrů
- this.controller
- Kontrola AJAX
- this.environment
- Podmíněné zobrazení podle prostředí
- this.session
- Kontrola přihlášení
- Flash zprávy
- Praktické příklady
- Komplexní navigace
- Podmíněné meta tagy