Tvorba WP šablony – 4. díl – Osazujeme Index podruhé

05.06.2015 | Tomáš Kocifaj

V minulém díle jsme provedli základní vytvoření kostry šablony, načetli jsme do FE externí zdroje, jako jsou obrázky, javascriptové a stylové soubory. Stejně tak jsme si připravili vstupy pro uživatele, kteří budou se samotnou šablonou pracovat. Dnes bychom měli vše spojit a osadit potřebné informace uložené v administraci do FE. K tomu budeme potřebovat vytvořit také model šablony a presenter úvodní stránky. Pojďme tedy na to.

Zdroj šablony po dokončení čtvrtého dílu

Co bude dnešním úkolem dílu?

  1. Definovat model s nastavením šablony.
  2. Vytvořit presenter úvodní stránky a připravit data pro výpis.
  3. Data vypsat na front-endu.

Definice modelu s nastavení šablony

Všechny modely našeho projektu vkládáme do složky models, kterou vytvoříme v naší složce yours. V této složce nyní vytvoříme nový soubor, který pojmenujeme jako kt_theme_settings_model.inc.php

Abych si usnadnili práci, využijeme připravený model pro tyto účely KT_WP_Options_Base_Model a rozšíříme ním model náš. Obecný Base model zajišťuje snadnou práci s daty, které jsou uloženy v tabulce wp_options a to jsou přesně ty, které potřebujeme. Náš model bude vypadata nějak takto:

Každý model by měl mít konstruktor, který se volá jako první funkce po inicializaci modelu. V něm pouze budeme volat rodičovský konstruktor našeho obecného modelu a jako parametr předáme prefix z našeho configu. To nám zajistí, aby model pracoval pouze s určitou sadou dat a my jsme tak ušetřili řadu SQL requestů díky čemu ulehčíme serveru a tím i zrychlíme náš projekt.

Funkce pro získávání dat

Nyní bude potřeba do modelu vypsat několik funkcí, které nám budou vracet námi potřebné data. Protože jsme si v našem configu definovali sadu fieldsetů, pojmenujeme názvy funkcí velmi podobně a trochu je „shlukneme“ k sobě. Pokud je to potřeba, měli bychom také myslet na komentáře, abychom věděli, co jaká funkce dělá, až se k ní vrátíme za nějaký čas nebo kdyby někdo z kolegů potřeboval v kódu provést nějaké změny. Náš model by měl vypadat nějak takto.

Jak jste si jistě všimli, do modelu jsem dodal funkce, které nám vrátí nastavení. Protože jsme náš modul rozšířili o obecný model, je v rámci třídy dostupná funkce getOption(), která z připravené sady dat vrátí ten klíč, který po ní chceme – protože jsme si klíč původně zapsali do konstanty, stačí nám zavolat ji. O ostatní se postará model sám.

Více toho prozatím v modelu potřebovat nebudeme. Můžeme se pustit do vytvoření presenteru.

Vytvoření presenteru pro úvodní stránku

Když se podíváme na náš index.php vidíme, že na samotné úvodní stránce toho moc nemáme. Vše je zabalené v potřebných částí (partials) – tato šablona tedy nemá příliš složitý index a určitě by Vás napadlo, že bychom to mohli udělat prostě bez presenteru. To ale nedělejme. Nikdy nevíme, kam se náš projekt vydá, s čím trh nebo klient přijde. Proto už od začátku tvořme vše správně, čistě a objektově, ať se nám projekt snadno rozšiřuje.

  1. Index presenter bude obsluhovat jenom titulek.
  2. Budeme potřebovat presenter pro úvodní slider (ten nyní vynecháme pro složitost – ukážeme si v dalších dílech).
  3. Budeme potřebovat presenter pro hlavní nabídku služeb.
  4. Budeme potřebovat presenter pro výpis našich prací.

Nyní je potřeba se zamyslet nad tím, že v každém z výše popisovaném presenteru, budeme potřebovat náš model šablony – mu v sobě data, který budeme potřebovat. Abychom šetřili výkon naší aplikace, nebudeme ho vždy volat, ale napíšeme si jednoduchou třídu, kam postupně budeme přidávat další metody.

Obecná třída KT_WPFW

Třídu v rámci projektu pojmenujeme vždy s prefixem KT a následně názvem (zkratkou) Vašeho projektu. Je na Vás, jak název zvolíte, ale my to děláme právě takto.

Tato třída bude umístěna ve složce yours/classes a soubor pojmenujeme kt_wpfw.inc.php

Obsah naší třídy bude vypadat nějak takto:

Co díky této funkci získáme? Protože Theme Settings Model budeme potřebovat na více místech, při prvním zavolání si ho uložíme do statické proměnné. Vždy, když ho budeme potřebovat (včetně dat z DB) se nám vrátí právě z této proměnné. Nebude nutné volat dotazy do DB znovu a znovu.

Index presenter

Všechny presentery ukládáme do yours/presenters/

Náš presenter hned aplikujeme na náš index.php

Presenter pro hlavní nabídku

Hlavní nabídka je trochu komplikovanější, ale zároveň velmi jednoduchá. Jedná se o nějaký výpis stránek, kde se nám mění data uložená v databázi u každé stránky. Jediná věc, která je jinak, je ikonka.

Pro snadnější pochopení tutoriálu jsem zvolil jednoduchou formu výpisu, kdy ikonky necháme statické dle grafického návrhu.

Náš soubor loop-main-offer-page.php bude vypadat nyní takto:

Nyní nám už postačí osadit pouze příslušný soubor ve složce partials, který jsme si nazvali jako main-offer-list.php

Nyní, když si nastavíme stránky v našem nastavíme a obnovíme úvodní stránku, vše uvidíme tak, jak jsme si potřebný obsah nastavili.

Presenter – naše práce

Nyní nás čeká podobné osazení části s naší prací. To si ukážeme ale v dalším díle, protože na tuto část si budeme zakládat vlastní post type, kde bude potřeba vytvořit config, model a presenter samotný. Následně tyto data vypíšeme do této části. Ale to až příště.

Závěrem

Dnes jsme si ukázali, jak snadno pracovat s daty, které si ukládáme do tabulky wp_options. Pokud chcete pracovat s framework opravdu efektivně i do budoucna, logika presenterů a modelů by Vám neměla být cizí a měli byste jí velmi dobře ovládat. Pokud budete používat výchozí modely, zjistíte, že je to velmi snadné.

V příštím díle se pustíme do definice vlastního typu obsahu, kde budeme využívat hlavně KT WP Post Base Model. Provedeme si také nějaké nastaví sloupců v administraci pomocí KT Admin Columns. Následně do naší úvodní stránky přidámé jednotlivé záznamy.

Podobné články

To, proč jsme s tímto projektem začali, byl důvod, že jsme jednotlivé šablony pro WordPress chtěli vytvářet opravdu efektivně, kvalitně…

Na úvodní stránce nám chybí už jen vytvořit seznam referencí, které chceme prezentovat. K tomu budeme potřebovat vlastní post_type a…

V minulém díle jsme si ukázali, jak vytvořit základní kostru šablonu společně s nainstalovaný KT Frameworkem. V dnešním díle bychom…

V minulém díle jsme naší šablonu zhotovili do stavu, kde již máme potřebné prvky ve WordPressu. Nyní bude potřeba zhotovit pro…

O autorovi: Tomáš Kocifaj

Tomáš Kocifaj

Tomáš aktivně v oboru tvorby webových stránek podniká už 6. rok. Za tu dobu nasbíral spoustu zkušeností, dovedností a představu o tom, jak by měla práce takového člověka probíhat. Čím by se neměl zdržovat, zatěžovat a podle toho také s kolegou Martinem začal psát tento projekt.



Odebírejte novinky z FW

Sledujte nás!

Tyto stránky využívají Cookies. Používáním těchto stránek vyjadřujete souhlas s používáním Cookies.Zjistit víceOK, rozumím