Struktura tématu
Šablona (theme) je složka Blade šablon, která určuje vzhled webu. Weby v režimu šablony si ji vybírají v administraci a jedna instalace může obsahovat libovolný počet šablon. Tento článek popisuje anatomii složky a vytvoření vlastní šablony.
Kde šablony žijí
Šablony sedí v kořeni aplikace ve složce themes/:
themes/
└── default/
├── theme.json
├── preview.png (volitelné)
├── assets/
└── views/
├── layouts/app.blade.php
├── default.blade.php
├── page/show.blade.php
├── post/show.blade.php
├── archive/show.blade.php
├── preview/nav.blade.php
└── blocks/
├── text.blade.php
├── hero.blade.php
└── ...
Každý adresář v themes/ se automaticky registruje jako Blade view namespace: themes/default/views/page/show.blade.php je dostupný jako themes.default::page.show. Seznam šablon v administraci (zakládání webu a Nastavení → Vzhled) je prostě seznam těchto adresářů.
Jednotlivé části
-
theme.json— manifest s metadaty:{ "name": "Default", "version": "1.0.0", "author": "Laravix" } -
preview.svg/preview.webp/preview.png/preview.jpg— volitelný screenshot zobrazený vedle šablony ve výběru v administraci. -
views/{type}/show.blade.php— šablona typu obsahu (page,post,archive, pluginové typy). Když typ šablonu nemá, vykreslí seviews/default.blade.php— šablona tak funguje i pro typy obsahu, o kterých nikdy neslyšela. -
views/layouts/app.blade.php— sdílený layout:<head>se SEO tagy, hlavičková navigace,@yield('content'), patička. Výchozí šablona navíc definuje@stack('head')a@stack('scripts'), přes které view obsahu z builderu vkládá styly a skripty. -
views/blocks/{key}.blade.php— jedno view pro každý klasický typ bloku (text,hero,cards,columns,button,button_group,divider). Použijí se, když obsah vznikl z klasického pole bloků, ne ve vizuálním builderu — viz Šablony a data ve views. -
views/preview/nav.blade.php— volitelný partial, který živý náhled navigace v administraci používá k vykreslení samotné navigace. -
views/docs/…,views/changelog/…— pluginy nejdřív hledají svá views v aktivní šabloně (themes.{theme}::docs.show) a teprve pak sahají po vlastních přibalených views, takže šablona může přestylovat i stránky pluginů.
Vytvoření šablony
-
Zkopírujte výchozí šablonu jako výchozí bod:
cp -r themes/default themes/mytheme -
Upravte
themes/mytheme/theme.json(název, verze, autor). -
Upravte šablony — začněte u
layouts/app.blade.php. -
Volitelně přihoďte
preview.png. -
V administraci otevřete Nastavení → Vzhled a novou šablonu vyberte. Změna platí okamžitě.
Tip: Výchozí šablona načítá stylesheet dodávaný s jádrem (
Laravix::asset('app.css')→public/vendor/laravix/app.css) plus Font Awesome z CDN. Vlastní šablona si může přinést vlastní asset pipeline — nalinkujte libovolné CSS/JS, které si sestavíte.
Šablony a aktualizace
php artisan laravix:upgrade se složky themes/ nikdy nedotýká — patří vám. Výchozí šablona se publikuje jen jednou, při instalaci (instalátor publikaci přeskočí, když themes/default už existuje). Čistou kopii výchozí šablony později získáte ručně:
php artisan vendor:publish --tag=laravix-theme
Související články
- Šablony a data ve views — jaká data každá šablona dostává
- Vlastní bloky