Jakmile se pustíte do definice typu obsahu v Drupalu 7, nemůžete vynechat ani Správu zobrazení. Zde pro jednotlivé režimy zobrazení určujete, která políčka (respektive jejich obsah) se v daném režimu zobrazí a v jaké podobě.
Základní možnosti, které vám tu Drupal 7 nabídne, jsou však pro potřeby větších webů omezené. V podstatě pracujete vždy s plným zobrazením a zkrácenou verzí (teaser). Hodí se to perfektně pro textový obsah typu články.
Jenže díky univerzálnosti Drupalu si můžete definovat libovolné další typy obsahu s políčky, která vůbec nejsou určena k zobrazování dlouhých a zkrácených verzí textů v nějakém výpisu. Kdysi jsem tu v jiném návodu zmínil vytvoření typu obsahu Pozemek pro nějaký realitní web. Tento typ obsahu má mimo jiné definována políčka Fotografie, Rozloha a Inženýrské sítě.
Představte si, že na webu chcete v různé formě vypisovat seznam těchto pozemků. Ať už pomocí Views nebo ručním voláním v kódu nějakého na míru psaného modulu. Jistě, ve Views zobrazíte zkrácenou či plnou verzi uzlu, v kódu modulu zase zavoláte funkci drupal_render(node_view($node,'teaser')), kde teaser případně vyměníte za full.
Teď si ale představte, že se vám na webu střídají požadavky na zobrazení plné verze obsahu, zkrácené a ještě několika dalších - typicky v boxících pro související obsah nebo pro nějaké TOP upozornění či slideshow. To máme minimálně tři další „zobrazovátka", která se liší od plné verze i teaseru, ale musíme je vykreslovat tak, že ve Views naklikáme jednotlivá políčka nebo si je v kódu vlastního modulu vyseparujeme z objektu $node.
Je to ale docela pracné, zvlášť v momentě, kdy si uvědomíte, že stejný seznam políček naklikáváte nebo píšete už po několikáté. Jak z toho ven?
Entity View Modes - neocenitelný pomocník pro větší weby
S problémem nastíněným výše vám pomůže modul Entity View Modes. Poté, co jej zapnete, přibude vám nová část v administraci - Nastavení > Systém > Entity view modes. Vyhledejte položku Uzly a klepněte na odkaz Add new view mode. Zadejte název nového zobrazovacího režimu a vyberte typy obsahu, pro které bude dostupný.
Poté přejděte do sekce Struktura > Typy obsahu > xxx > Správa zobrazení. Rozklepněte si nově přidaný režim zobrazení a upravte si seznam a vzhled políček, která se v tomto režimu budou vykreslovat.
A to je vše. Pokud budete nyní ve Views zobrazovat uzly, můžete si říci, zda je chcete kromě plného a zkráceného režimu zobrazení vykreslit také v tomto nově přidaném. Podobně při volání node_view() můžete jako druhý parametr zadat řetězec se strojovým označením nově přidaného režimu.
Entity View Modes není jen pro obsahové uzly
Jak jste si možná na výše uvedených screenshotech všimli, Entity View Modes nenabízí jen definice nových způsobů zobrazení pro obsahové uzly. Stejně tak lze definovat další režimy zobrazení i pro jiné entity v Drupalu. Typicky tedy pro komentáře, kategorie a uživatele (i zde přeci pracujete s políčky), ale také pro Soubory. U nich určujete, zda je nový režim zobrazení určen pro audio, obrázkové, video nebo další typy souborů.
Modul najdete na jeho projektové stránce Entity View Modes. Pokud byste hledali něco podobného pro Drupal 6, zkuste Build modes.
Tip: Hledáte-li nástroj, jak si naklikat layout v různých způsobech zobrazení v Drupalu, koukněte na článek Display suite: naklikejte si layout článků v Drupalu bez úprav CSS.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
Je to podobné, ale Display Suite je primárně na něco jiného. Navíc, pokud jen potřebujete nové režimy zobrazení a nepotřebujete si naklikávat layout, je Display Suite jako kanón na vrabce.
Dobrý den, měla bych dotaz k použití nově vytvořeného režimu Zobrazení.
Vytvořila jsem se dle výše uvedeného následující:
A) Vlastní typ obsahu "Herec"
B) Add Entity view mode pro UZLY "Profil" a povolila pro typ "Herec"
C) Typ obsahu "Herec" > Správa Zobrazení jsem vybrala horní záložku "Profil" a naklikala jednotlivé pole dle své líbivosti.
Nyní se však dostávám k tomu, jak standardně použít toto zobrazení "Profil" na místo standardního "Výchozí", které se mi tam nabízí defaultně po uložení?
Děkuju
No, to je otázka. Standardně Drupal používá Úvodník, je-li to nějaký výpis obsahu a Celý obsah, je-li uzel rozklepnut do detailu. Vlastní typy zobrazení použijete obvykle při výpisu pomocí Views nebo v momentě, kdy programujete nějaký modul a chcete v něm funkcí node_view() volat zobrazení nějakého uzlu v konkrétním typu zobrazení.
Jestli to dobře chápu, chcete upravit, jak bude vypadat vizitka herce po rozkliknutí jeho uzlu. V tom případě asi nepotřebujete nový view mode, jen to upravte v typu zobrazení Celý obsah.
dole v článku zmiňujete Display suite, ale jestli se nemýlím, tak podobnou funkcionalitou disponuje i on?