wakers/cms-structure-module

Structure module of Wakers CMS 5

1.0.4-alpha 2019-08-11 00:53 UTC

This package is auto-updated.

Last update: 2024-04-11 13:44:24 UTC


README

Modul umožňuje definovat datové struktury. Podle zvolených pravidel generuje editační formuláře. Na základě dalších pravidel předává data z formulářů do šablon.

Jak to funguje?

Viz video: Jak implementovat one-page web (na míru) za 15 minut.

Komponenty

  1. Frontend\Printer - Vypisuje data ze struktur.
  2. Frontend\RecipeSummaryModal - Přehled všech definovaných předpisů struktur.
  3. Frontend\RecipeModal - Vytváření a editace předpisů struktur.
  4. Frontend\RecipeRemoveModal - Odstranění celého předpisu struktury.
  5. Frontend\RecipeSlugModal - Vytváření, editace a přehled slugů (klíčů) u předpisu struktury.
  6. Frontend\RecipeSlugRemoveModal - Odstranění slugu (klíče) z předpisu struktury.
  7. Frontend\VariableSummaryModal - Přehled všech proměnných v předpisu struktury.
  8. Frontend\VariableModal - Vytvoření a editace proměnné v předpisu struktury.
  9. Frontend\VariableRemoveModal - Odstranění proměnné z předpisu struktury.
  10. Frontend\StructureModal - Automaticky generovaný formulář pro přidávání a editaci hodnot struktury.
  11. Frontend\StructureRemoveModal - Odstranění struktury.

Rozdělení struktur

  • Statické jsou opakující se části webu - menu, hlavička, patička, atp.
  • Dynamické se neopakují, jsou to například aktuality, články, atp.

Výpis struktur

Stuktury lze zařazovat i do kategorií. Pro výpis struktur existují 4 základní metody viz Wakers\StructureModule\Repository\PrinterRepository.

Je vyloženě nutné se s metodami podrobně seznámit - je velmi důležité znát, jaké parametry přejímají a jak získávají data z databáze.

Metody pro výpis dle kategorií (categorySlugs)

  1. findByCategorySlugs
  2. findRecursiveByCategorySlugs

Metody pro výpis dle klíče předpisu (recipeSlugs)

  1. findByRecipeSlugsAndPage
  2. findRecursiveByRecipeSlugsAndPage

V šabloně lze použít

Zrychlený zápis, který zavolá příslušnou metodu, předá parametry a výsledné struktury vrátí jako (flat / tree) array objektů typu Wakers\StructureModule\Entity\StructureResult.

{* Rekurzivní výpis statických struktur dle recipeSlugs *}

{control structurePrinter [
    'method' => 'findRecursiveByRecipeSlugsAndPage',
    'params' => [
        'recipeSlugs' => [
            'staticke-menu'
        ],
        'sort' => 'ASC',

    ],
    'template' => 'static/navbar.latte'
]}
{* Výpis dynamických struktur dle kategorií (categorySlugs) *}

{control structurePrinter [
    'method' => 'findByCategorySlugs',
    'params' => [
        'categorySlugs' => [
            'aktuality'
        ],
        'paginationLimit' => 1,
        'sort' => 'DESC',
        'filterByPagePublished' => TRUE
    ],
    'template' => 'dynamic/homepageNews.latte'
]}
{* Výpis dynamických struktur dle recipeSlugs - svázaných s určitou page *}

{control structurePrinter [
    'method' => 'findByRecipeSlugsAndPage',
    'params' => [
        'recipeSlugs' => [
            'news'
        ],
        'sort' => 'DESC',
        'page' => $presenter->template->pageEntity,
    ],
    'template' => 'dynamic/newsDetail.latte'
]}

Přidávání a editace struktur

Struktury se musejí nějakým způsobem vytvářet a editovat proto je v sandboxu předpřipraven soubor _buttons.latte, který obsahuje předdefinované bloky pro snazší použití.