composer install
npm install
Používá se knihovna Laravel Mix.
Dostupné npm příkazy
npm run dev/prod/watch
- dev – vytvoří všechny CSS styly pro TailwindCSS (nepoužívat na produkci)
- prod – vyexportuje pouze CSS styly použíté v .twig šablonách. JS minifikuje
- watch – browsersync nastavitelný ve webpack.mix.js
Je použitý framework TailwindCSS. Tím pádem lze rovnou používat předvytvořené CSS třídy knihovny TailwindCSS do HTML.
Šablona má nadefinované vlastní Tailwind Config v souboru tailwind.config.js. Styly, které případně neexistují, lze definovat v /assets/sass/.
Poprosím akorát dodržet strukturu, že se řadí skripta podle použitých knihoven. Preferovat co nejméně jQuery.
Web je stavěný do MVC struktury, kdy je logika oddělená od vykreslovacích šablon.
Definované konstanty pro šablonu. V základu obsahuje informace o šabloně, lokalizaci jazyka pro DateScript a podpora pro Nette Tracy.
Různé rozšíření šablony. Převážně Custom Post Types, Taxonomies.. možnost přidat i custom rožšíření.
Logika každé stránky je oddělené podle typu CPT, stránky, tak jak definuje WordPress. V těchto souborech se nastavují všechny PHP funkce tak, aby bylo vše předefinované pro Timber/Twig, aby se to mohlo už pouze zobrazit.
Logika pro rozšíření šablony o custom Rest API. Je zde vytvořený RestApiController, který lze použít jako extended class. Třídy je poté zapotřebí definovat do functions.php, aby se zavolala při spuštění webu/šablony.
Filtry, action hooks pro WordPress. Zde lze najít i hooks pro Twig.
Obsahuje dodatečné vlastní knihovny, facades a vše, co může zjednodušit práci. V základu je tu knihovna Image, která vytváří SVG inline soubory nebo podporu SVG v administraci.
Dodatečné knihovny mimo Composer. Je potřeba je doupravit, aby se správně volali ve WordPressu.
Obsahuje soubory Timber/Twig.
Je tu vytvořený vlastní jednoduchý modulární systém postavený na Advanced Custom Fields (ACF).
ACF pole se definuje v administraci (je potřeba si případně zapnout ACF nastavení) a je nutné dodržet název komponenty ve formátu nazevKomponenty, kde první písmeno je malé a další slovo začíná už velkým.
Controller/Řadič Komponent pak podle názvu komponentu volá samotnou komponentu ze složky app/Views/components/nazevKomponenty.twig.
Pro případ, že by komponenta potřebovala ještě informace mimo ACF pole. Například články, tak se vytvoří nový controller/řadič ve složce app/Http/Controllers/Components/nazevKomponenty.twig a dodají se potřebné informace do funkce prepareTwigData. Stačí zkopírovat již nějaký existující controller a přepsat data. Příklad zde.
V projektu je již přiložený SFTP config soubor pro VSCode plugin vscode-sftp. Tím pádem pokud je použitý VSCode, tak lze rovnou nahrávat na DEV, a není zapotřebí si vytvářet vlastní local prostředí.