přejít na obsah přejít na navigaci

Linux E X P R E S, Etomite CMS: Snippety

Etomite CMS: Snippety

etomite_logo.jpg

Snippet je vlastně PHP funkce, kterou můžete vytvořit přímo v administračním rozhraní Etomite. Můžete tak vytvořit dynamický obsah webu. V dnešním díle se dozvíte, jak snippety tvořit, jak je upravovat i jak s nimi pracovat v dokumentech. V neposlední řadě také kde sehnat již hotové snippety.


Snippety činí z Etomite nástroj, který je prakticky bez jakýkoliv omezení. Kromě jednoduchých snippetů, které vám usnadňují práci, můžete vytvářet v podstatě libovolné PHP funkce, které zvládnou cokoli. Existují snippety, které mají funkčnost galerie, jiné fungují jako návštěvní kniha. Můžete zobrazovat novinky, vytvořit RSS kanál, jeden můj kamarád dokonce používá Etomite jako blog.

Správa snippetů

Pokud chcete tvořit vlastní snippety, měli byste znát alespoň základy jazyka PHP. Pokud ani nevíte, co to je, a nechcete to vědět, můžete se na konci dnešního článku dočíst, kde sehnat snippety hotové.

Když potřebujete snippety prohlížet, upravovat a tvořit, učiníte tak ve Správě funkcí a zdrojů. Je to položka v menu, kterou najdete po ruce v pravém horním rohu navigace. Dnes se budeme (překvapivě) zabývat kartou Snippety. Pokud si nepamatujete, jak se dostat do administračního rozhraní, podívejte se na začátek druhého dílu tohoto seriálu.

Správa funkcí a zdrojůSpráva funkcí a zdrojů

Hello world!

Vyplatí se začít tradičně. Klikněte tedy na položku Nový snippet, která se nachází nad seznamem snippetů. A můžete tvořit. Název snippetu si představte jako název funkce. Pomocí něj budete snippet na stránce zobrazovat. Není tedy vhodné zvolit název "Krasny uzitecny snippet na ukazani prikladu pouziti snippetu v Etomite", ale doporučuji spíš název HelloWorld. Předchozí příklad názvu pak můžete použít v kolonce Popis snippetu. Kolonka Pokračovat v úpravách po uložení prostě určuje, kam vás Etomite přesměruje po kliknutí na tlačítko Uložit. V případě zaškrtnuté položky se vrátíte k úpravě vytvářeného snippetu, v případě opačném do seznamu snippetů. Z vlastní zkušenosti musím říct, že je rychlejší kliknout na Uložit a po přesměrování zpět na editaci kliknout na Přerušit, než se zabývat nějakým zaškrtávacím políčkem. Položka Zamknout snippet proti úpravám způsobí, že snippet budete moci upravovat pouze vy. O správě uživatelů si toho povíme více v některém z příštích dílů.

Do velkého textového pole přijde samotný obsah snippetu. Všechno platí jako u normální PHP funkce s tím rozdílem, že se do obsahu snippetu nepíšou hlavičky ani ohraničující závorky. Příklad vidíte na obrázku.

Vytváření snippetuVytváření snippetu

Ve snippetech není dobré používat echo, jednoduše pomocí return vrátíte to, co se má ukázat v dokumentu. Možná se ptáte, jak předáte funkci vstupní parametry, když nemá hlavičku. To si ukážeme na dalším příkladu, až se dozvíte, jak snippet zavolat v dokumentu.

Použití v dokumentu

Je čas procvičit si znalosti z druhého dílu. Vytvořte tedy nový dokument, nebo upravte stávající. Někde v obsahu dokumentu zavolejte snippet pomocí dvojitých hranatých závorek:

[[HelloWorld]]

Volání snippetuVolání snippetu

Volání snippetu můžete samozřejmě formátovat. Pokud však budete formátovat jen část volání, snippet se nezobrazí. Etomite uvidí název snippetu např. jako Hello<em>World a takový název nezná. Ověřit (ne)funkčnost můžete pomocí zobrazení dokumentu.

Takhle to vypadáTakhle to vypadá

Předávání parametrů

Nyní vytvoříte snippet, který ke svému běhu potřebuje parametry. Připravil jsem příklad snippetu, který zobrazuje přehrávač videí YouTube a jako parametr potřebuje kód videa. Alternativně lze ručně nastavit jeho barevnou variantu nebo velikost.

Snippet YouTubeSnippet YouTube

// Vychozi hodnoty
if (!isset($width)) $width = 480;
if (!isset($height)) $height = 385;
if (!isset($color1)) $color1 = '234900';
if (!isset($color2)) $color2 = '4e9e00';

$output = '<object width="'.$width.'" height="'.$height.'"><param name="movie" value="http://www.youtube.com/v/'.$video.'&hl=cs&fs=1&rel=0&color1=0x' . $color1 . '&color2=0x' . $color2 . '"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/'.$video.'&hl=cs&fs=1&rel=0&color1=0x' . $color1 . '&color2=0x' . $color2 . '" type="application/x-shockwave-flash" allowfullscreen="true" width="'.$width.'" height="'.$height.'"></embed></object>';

return $output;

[[YouTube]][[YouTube]]

Snippet pak voláte pomocí [[YouTube?video=abcd123_XYZ]], kde směsice znaků je kód videa (najdete ho v URL YouTube videa). Pokud chcete použít parametrů více, přidáváte je podobně jako v URL. Pokud chcete video například o něco menší, použijete [[YouTube?video=abcd123_XYZ&width=320&height=255]]. Na pořadí parametrů vůbec nezáleží, jen musíte použít stejné názvy, s jakými pak počítáte ve snippetu (na rozdíl od volání funkce, kde je to obráceně).

PřehrávámePřehráváme

Etomite API

Pokud chcete snippety v Etomite používat efektivně, hodí se umět získat název dokumentu, jeho popis, pozici ve stromu a pod. K tomu potřebujete znát Etomite API, které je velmi dobře zdokumentováno v oficiální dokumentaci. Uvedu jen několik příkladů:

  • $id = $etomite->documentIdentifier; vám prozradí ID aktuálního dokumentu, se kterým poté můžete pracovat.
  • $doc = $etomite->getDocument($id); vytvoří pole informací o dokumentu.
  • Pomocí $doc['pagetitle'] a podobně získáte informace o dokumentu.

Cache: nepřítel snippetů

Zatím jsem si ukázali snippety, které budou po každém zavolání vypadat stejně. Pokud ale pomocí snippetů vytváříte dynamický web, tedy pokud máte například snippet na návštěvní knihu, bude vám jistě vadit cachování. Etomite defaultně cachuje všechny stránky a obsah cache promazává jedině při úpravě. Jenže to u některých snippetů vadí. Řešení jsou dvě, respektive tři. Můžete snippet místo standardního způsobu volat způsobem, který Etomite řekne, že obsah snippetu se cachovat nemá:

[!GuestBook?param=neco!]

Druhou možností je vypnout cachování u dokumentů s takovými snippety. Dělá se to zaškrtávacím políčkem Ukládání do cache na kartě Nastavení dokumentu při jeho editaci nebo vytváření. Další možností, kterou jsem uvedl jako "respektive", je vypnutí cache úplně. Nejdříve ji povypínáte pro existující dokumenty a poté v konfiguraci zrušíte volbu Ukládání do cache. Tím vás cache přestane trápit. Tato možnost teoreticky může zvýšit nápor na databázi, ale nijak zvlášť jsem to nepocítil.

V Etomite je možné volat části PHP kódu přímo v dokumentu, ale není to doporučováno. Můžete to zakázat, nebo povolit na poslední kartě konfigurace Etomite pomocí položky Povolit vkládání PHP.

Kam pro snippety?

První místo, kde seženete hotová řešení snippetů, je vaše instalace Etomite. Jak jste si mohli všimnout, obsahuje přes dvacet hotových snippetů, které můžete používat. Některými se budu zabývat v příštím díle o šablonách a chuncích. Další stovka je v databázi snippetů na fóru Etomite.com. V našich končinách se oplatí zabrousit i do té na fóru Etomite.sk, protože obsahuje snippety lokalizované a snippety od českých a slovenských autorů. Na začátku většiny snippetů najdete zakomentovaný návod pro jejich použití.

Co dál?

Nyní víte, jak se snippety tvoří. Ke konkrétním případům vhodného použití snippetů (návštěvní kniha, galerie obrázků a pod.) se dostanu v budoucnu. V příštím díle se však budu zabývat šablonami a chunky. Dozvíte se, jak změnit vzhled svého webu.

Nahoru

Odkazy

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Miroslav Hrončok

Miroslav Hrončok

Linux používám od roku 2004, aktivně se o něj zajímám od roku 2007, kdy jsem napsal svůj první článek pro LinuxEXPRES. Od roku 2009 jsem pracoval pro Liberix jako redaktor LinuxEXPRESu, od roku 2011 do konce roku 2012 jako jeho šéfredaktor. Nyní pracuji v Red Hatu, kde rozšiřuji distribuci Fedora o nové balíčky. Zároveň studuji na FIT ČVUT, kde se zabývám 3D tiskem a vyučuji několik předmětů. Spoluorganizuji pražskou konferenci LinuxDays a aktivně se účastním mnoha dalších českých linuxových akcí, jako přednášející nebo jako výpomoc.


  • Distribuce: Fedora
  • Grafické prostředí: Xfce

| blog