Motivy jsou jedním z možných typů pluginu. Jsou to podadresáře v plugins/templates/.
Systém ve výchozím stavu obsahuje motiv s názvem Blank
. Je to motiv s minimálními styly
ze kterého se dá vycházet při tvorbě vlastního motivu.
Soubor template.php (a případně další šablony uvedené v layouts) slouží k vykreslení struktury a obsahu těla stránky.
Úplně minimální šablona by mohla vypadat nějak takto:
<?php use Sunlight\Template; ?>
<?= Template::content() ?>
Pomocí třídy Template
je možné vykreslit jednotlivé sekce stránky.
Metoda | Popis |
---|---|
Template::content() |
Vykreslit obsah stránky. |
Template::boxes('slot') |
Vykreslit boxy pro daný slot. Možné sloty se definují v plugin.json v layouts. Viz také další nastavení boxů. |
Template::heading() |
Vykreslit titulek stránky (<h1> ). |
Template::backlink() |
Vykreslit zpětný odkaz (návrat zpět). |
Template::links() |
Vykreslit odkazy motivu. Metodě je možné předat pole s následujícími klíči:
<ul>
|
Template::asset() |
Sestavit URL k souboru motivu.
<?= _e(Template::asset('images/logo.jpg')) ?>
|
Template::menu() |
Vykreslit menu.
<?= Template::menu() ?>
Pomocí argumentů je možné definovat rozsah pořadí a definovat class:
<?= Template::menu(0, 10, 'main-menu') ?>
|
Template::treeMenu() |
Vykreslit stromové menu.
<?= Template::treeMenu(['css_class' => 'tree-menu']) ?>
Pomocí pole je možné předat více nastavení:
(Pokročilejší možnosti jsou popsány v dokumentaci metody ve zdrojovém kódu.) |
Template::breadcrumbs() |
Vykreslit drobečkovou navigaci.
<?= Template::breadcrumbs() ?>
Pomocí argumentů lze předat vlastní drobečky (seznam polí s klíči
<?= Template::breadcrumbs([], true) ?>
|
Template::userMenu() |
Vykreslit uživatelské menu.
<?= Template::userMenu() ?>
Pomocí argumentů je možné vypnout odkaz na profil a odkaz do administrace:
<?= Template::userMenu(false, false) ?>
|
Template::title() |
Vykreslit titulek aktuální stránky. |
Template::siteTitle() |
Vykreslit titulek stránek. |
Template::siteDescription() |
Vykreslit popis stránek. |
Template::siteUrl() |
Vykreslit absolutní URL ke hlavní stránce.
<?= _e(Template::siteUrl()) ?>
|
Template::sitePath() |
Vykreslit cestu ke hlavní stránce.
<?= _e(Template::sitePath()) ?>
|
Template::currentID() |
Vrátí ID aktuální stránky nebo null . |
Template::currentIsPage() |
Vrátí true , pokud je aktuální obsah typu "stránka", jinak false . |
Template::currentIsArticle() |
Vrátí true , pokud je aktuální obsah typu "článek", jinak false . |
Template::currentIsTopic() |
Vrátí true , pokud je aktuální obsah typu "topic", jinak false . |
Template::currentIsModule() |
Vrátí true , pokud je aktuální obsah typu "modul", jinak false . |
Template::currentIsIndex() |
Vrátí true , pokud je aktuální obsah typu "hlavní strana", jinak false . |
Seznam klíčů, které můžou být uvedeny v plugin.json. Klíče označeny "*" jsou povinné.
Hlavní nastavení pluginu | ||
---|---|---|
Klíč | Typ | Popis |
$schema
|
string
|
Cesta k JSON schématu. Pomáhá editorům v napovídání klíčů a validaci plugin.json. Nepovinné. "$schema": "../../../system/schema/template.json" |
name
|
string
|
Čitelný název pluginu. |
description
|
string
|
Stručný popis pluginu. |
authors
|
object[]
|
Seznam autorů pluginu. "authors": [ {"name": "Author1", "url": "https://example.com/"}, {"name": "Author2"}, {"url": "https://example.com/"} ] |
version
|
string
|
Verze pluginu. Např. "1.0.0" .
|
environment
|
object
|
Prostředí vyžadované pluginem.
"environment": { "system": "~8.0.2", "php": ">=7.4", "php_extensions": ["curl", "iconv"], "debug": null } |
Nastavení motivu | ||
Klíč | Typ | Popis |
layouts
|
object
|
Mapa možných variant motivu.
"layouts": { "default": { "template": "template.php", "slots": ["right"] } } Viz také popis možného obsahu šablony. |
css
|
string[]
|
CSS soubory motivu. Ve výchozím stavu je vložen pouze soubor style.css.
"css": [ "style.css", "another-style.css" ] |
js
|
string[]
|
JavaScript soubory motivu.
"js": [ "template.js", "another-script.js" ] |
responsive
|
bool
|
Pokud je nastaveno na true , je do hlavičky automaticky vložen následující meta tag:
<meta name="viewport" content="width=device-width, initial-scale=1"> |
dark
|
bool
|
Pokud je nastaveno na |
bbcode.buttons
|
bool
|
Zobrazit BBCode tlačítka při psání příspěvků a komentářů. Výchozí stav je |
box.parent
|
string
|
Název tagu, který obalí boxy. Výchozí je |
box.item
|
string
|
Název tagu, který obalí jednotlivé boxy. Výchozí je |
box.title
|
string
|
Název tagu, který obalí titulek boxu. Výchozí je |
box.title.inside
|
bool
|
Příznak, zda má být titulek uvnitř boxu nebo před ním. Výchozí je |
lang_dir
|
string
|
Název adresáře, kde jsou umístěny popisky layoutů a slotů. Výchozí je <?php return array( 'default.label' => 'výchozí', 'default.slot.right' => 'pravý sloupec', ); Pokud je váš motiv určen pro širší distribuci, je doporučeno mít popisky alespoň v češtině (cs.php) a angličtině (en.php). |
events
|
object[]
|
Seznam událostí, které motiv zpracovává. Viz dokumentace callbacků pro více informací o specifikaci callbacků. "events": [ {"event": "tpl.title", "script": "event/title.php"} ]
Klíč |
Pokročilé nastavení pluginu | ||
Klíč | Typ | Popis |
dependencies
|
object
|
Mapa pluginů, na kterých tento plugin závisí a jejich požadovaných verzí (viz formát).
Názvy pluginů jsou ve formátu "dependencies": { "extend/some-plugin": "^1.0", "another-plugin": "*" } |
installer
|
string
|
Relativní cesta ke skriptu, který vrátí instalátor pluginu. Poznámka: Instalátor se spouští během načítání pluginů a nejsou tedy dostupné ostatní pluginy ani autoloading class samotného pluginu. "installer": "installer.php" Příklad instalátoru:
<?php |
autoload
|
object
|
Dodatečné nastavení autoloadingu ve stejném formátu, jako má Composer. Viz dokumentace.
|
class
|
string
|
Název vlastní třídy pluginu.
|
namespace
|
string
|
Namespace pluginu.
Pokud není uveden žádný namespace, je vytvořen z kombinace |
inject_composer
|
bool
|
Povolit automatickou integraci Composer závislostí pluginu. Výchozí stav je
|
actions
|
object
|
Vlastní akce pluginu, které je možné spouštět v administraci ve správě rozšíření. "actions": { "custom-action": "CustomActionClass" }
|
config_defaults
|
object
|
Výchozí nastavení pluginu. "config_defaults": { "example_toggle": true, "example_string": "hello world!" }
|
extra
|
object
|
Extra nastavení pluginu pro účely jiných pluginů.
Je možné k nim přistupovat pomocí metody |