###### Výpisy ###### ============== List-container ============== Výpis produktů dle šablony *list-item*. Pokud nejsou nalezeny žádné produkty, použije se zpráva definovaná v *list-empty*. Do **volitelného** *data-role="pagination"* je doplněn obsah definovaný přes *pagination* v souboru *_listing.tpl* (*_listing_article.tpl* pro články atd.). Různé šablony lze určit atributem *data-name*. **POZOR!** Není možné obalovat stránkování podmínkou pro zobrazení. Takový kód by nefungoval při fitrování přes AJAX. Pokud je potřeba například skrýt stránkování u výpisů s jen jednou stranou, stačí přidat podmínku do ** .. code-block:: html+twig {# použije šablonu "default" (nebo bez jména) z _listing.tpl #}
.. code-block:: html+twig
.. code-block:: html+twig {# obalit boxy po třech do .wrap, proložit
a přidat třídu "third" #}
.. code-block:: html+twig {# obalit boxy po třech do .wrap a .www-rap, proložit
a přidat třídu "third" #}
.. code-block:: html+twig {# použije šablonu "news" z _listing.tpl #}
.. csv-table:: Atributy **list-container** :header: "data-role", Povinný, "Popis" **type**, **ano**, typ výpisu source, *ne*, Twig object s parametry výpisu (nelze kombinovat s *collection*) collection, *ne*, seznam položek k vypsání (nelze kombinovat s *source* a nepodporuje stránkování) name, *ne*, šablona položky (dle *list-item*) analytics-name, *ne*, pojmenování pro měření (např "product.detail.bottom") wrap, *ne*, obalovat skupiny boxů append, *ne*, přidat tag za skupinu boxů box-class, *ne*, přidat třídu hide-empty, *ne*, "skýt celý container, pokud neobsahuje položky (bez hodnoty)" scroll-offset, *ne*, CSS selector pro započítání fixní hlavičky insert-before, *ne*, název šablony listing-insert pro vložení před každou položku insert-after, *ne*, název šablony listing-insert pro vložení za každou položku insert-arguments, *ne*, argumenty k předání do šablony prepend-insert - twig zapsán jako {{ {abc: product.id} }} bude zpracován přes json_encode, takže pouze jednoduché hodnoty (čísla, pole, jednoduché objekty) class, --- , třída hide-empty - skrýt výpis bez položek ------------------------------------ Při uvedení atributu *hide-empty* (uvádí se bez hodnoty) se container vůbec nevypíše, pokud neobsahuje žádné položky. S tímto atributem se pak vůbec nepoužívá definice prázdného výpisu. .. code-block:: html+twig
source - parametry výpisu ------------------------- Pokud není atribut *source* uveden, použije se defaultní výpis pro danou stránku. Například v kategorii se budou vypisovat produkty z kategorie atd. Výpis bez uvedeného *source* aktualizuje URL při změně (strana, filtr, ...) V parametrech je možné použít globální proměnné, ale není možné použít žádnou lokální proměnou. Tzn. zápis musí fungovat úplně stejně, pokud se smaže zbytek šablony. .. code-block:: html+twig
.. code-block:: html+twig
wrap - obalení boxů do jednoho tagu ----------------------------------- Atributem *wrap* lze definovat, jakým tagem s jakou třídou *(třída je nepovinná)* a z jakých podmínek se mají boxy obalit. .. code-block:: html+twig
.. code-block:: html
  • product
  • product
  • product
  • product
  • product
  • product
  • product
append - přidání tagu dle pořádí -------------------------------- Atribut *append* určuje tag, který se má vkládat za vypisované boxy dle podmínek. Podmínek lze zapsat i více a oddělit je čárkou - použije se první tag, který splňuje podmínku. .. code-block:: html+twig
.. code-block:: html
product
product
product

product
product
product

product

=============== List pagination =============== Definice stránkování - vždy v souboru **_listing.tpl**. Definuje makro, které se následně využívá pro výpis produktů v *list-container*. Obvykle obsahuje stránkování, informace o počtu záznamů atd. Nelze přistupovat ke globálním proměnným a je dostupná pouze proměnná **pagination** a **filterActive**. .. code-block:: html+twig {# _listing.tpl #} {%if pagination.stran > 1%} {%trans%}celkem položek{%endtrans%}: {{pagination.nsum}} {%trans%}strana{%endtrans%}: {{pagination.strany|raw}} {%endif%} .. code-block:: html+twig {# _listing.tpl #} {# přidá další stranu do výpisu místo změny strany #} .. csv-table:: Atributy **pagination** :header: "data-role", "Default", "Popis" **type**, --- , "typ položky *(product, article, ...)*" name, *default*, název boxu pro provázání s *list-container* .. csv-table:: Atributy **pagination.strany** :header: Atribut, Hodnoty, "Popis" spaces, true/false , vkládat mezi stránky nedělitelnou mezeru size, 1/2/3/4/5/... , počet zobrazených odkazů label_next, 'string' , text odkazu na další stránku label_previous, 'string' , text odkazu na předchozí stránku hash, 'string' , do odkazu se doplní hash za # .. code-block:: html+twig {# _listing.tpl #} {{pagination.strany({spaces: true, label_next: 'next-page'|trans})}} ========== List empty ========== Definice zpráv při prázdném výpisu - vždy v souboru **_listing.tpl**. Definuje makro, které se následně využívá pro výpis produktů v *list-container*. Je dostupná pouze proměnná *url*. .. code-block:: html+twig Nebyly nalezeny žádné produkty .. code-block:: html+twig
Nebyly nalezeny žádné produkty
Filtr nenalezl žádné produkty. Zkuste upravit hledané vlastnosti nebo zrušit filtr.
.. csv-table:: Atributy **list-empty** :header: "data-role", "Default", "Popis" **type**, --- , "typ položky *(product, article, ...)*" name, *default*, název pro provázání s *list-container* .. csv-table:: Dostupné proměnné :header: "název", "hodnota" url.reset, URL bez filtru a strany =========== List insert =========== Definice šablony, která se vloží před (nebo za) každou vypisovanou položku - vždy v souboru **_listing.tpl**. Definuje makro, které se následně využívá pro výpis produktů v *list-container*. .. code-block:: html+twig {% if limit == 16 and position % 5 === 0 %} {% set article = repository.article.findOneBy({id:arguments.id}) %} {{ article.name }} {% endif %}
.. csv-table:: Atributy **list-insert** :header: "data-role", "Popis" **type**, "typ položky *(product, article, ...)*" name, název pro provázání s *list-container* .. csv-table:: Dostupné proměnné :header: "název", "hodnota" pagePosition, Pozice na stránce (počítáno od 1) page, Číslo stránky výpisu (počítáno od 1) limit, Počet záznamů na stránku (maximum) recordsOnPage, Počet záznamů na stránce (aktuální) arguments, vstupní data definovaná na listing-container - pouze skalární (prošla skrz json_encode) ========= List Item ========= Definice položky výpisu - vždy v souboru **_listing.tpl**. Definuje makro, které se následně využívá pro výpis produktů v *list-container*. Nelze přistupovat ke globálním proměnným a nelze zjistit pozici ve výpisu. .. code-block:: html+twig {# _listing.tpl #}

{{product.nazev}}

.. code-block:: html+twig

{{product.nazev}}

.. csv-table:: Atributy **list-item** :header: "data-role", "Default", "Popis" **type**, --- , "typ položky *(product, article, ...)*" tag, *div*, jakým tagem obalit výsledný box name, *default*, název boxu pro provázání s *list-container* class, --- , třída