Doplněk Stamp v1.0.4

Vít Petira 4 minuty, 58 sekundy 315 doplňky upgrade 1.7

Po téměř šesti měsících je tu doplněk Stamp v1.0.4, který nově podporuje taxonomii typu author. Původně byla tato funkcionalita plánována již do verze 1.0.2 v rámci Gravu v1.6, nicméně z důvodu vydání nového Gravu v1.7 v lednu 2021, a s tím související nekompatibility v pozměněném API, došlo nakonec k odložení na neurčito do další nějaké budoucí verze. Ta přichází právě nyní.

Stamp CompletedTolik k historii. Nyní se pojďme seznámit s tím, co nová funkcionalita přináší. Grav ve svém základním nastavení uživatele vůbec neřeší. Jedinou výjimkou – danou spíše historickým nastavením, kdy se předpokládalo, že web postavený na Gravu bude primárně používat jeden hlavní uživatel – je Výchozí autor, kterého nalezneme v nastavení webu v Admin Panelu, resp. v souboru site.yaml.

Kdysi v začátcích Gravu vznikl doplněk Auto Author, z jehož kódu je patrné, že je to do jisté míry klon doplňku Auto Date z produkce Team Grav, ačkoliv disponující dalším rozšířením nastavení. Tento doplněk automaticky přidá do hlavičky stránky při jejím vytvoření proměnnou author a do ní uloží plné jméno uživatele, přičemž je na výběr mezi aktivním uživatelem a již uvedeným výchozím autorem.

V roce 2020 přišel na svět doplněk Stamp, který přidá do hlavičky stránky aktivního uživatele (na rozdíl od doplňku Auto Author vytváří proměnnou author až při ukládání stránky), od verze 1.0.3 je pak na výběr použitý formát jména, v němž je jméno uživatele uloženo, přičemž na výběr je plné jméno nebo uživatelské jméno.

Vše uvedené sice funguje, nicméně má to i několik omezení. Především je možné uložit do proměnné pouze jednoho autora, což může být u příspěvků, na nichž spolupracovalo více autorů značně omezující. Další nevýhodou je, že uvedené řešení nevyužívá potenciál, který přináší Gravem podporovaná taxonomie. V základním nastavením Grav obsahuje dva taxonomické typy, a to kategorie (category) a štítek (tag). Nic nám ale nebrání přidat si neomezený počet dalších vlastních typů, např. pro úroveň odbornosti článků (level), podle nichž můžeme obsah filtrovat a dále zpracovávat. Uvedené je tedy ideální použít i pro uložení autorů (což je nakonec uvedeno i jako vzorový příklad v oficiální dokumentaci Gravu), v rámci typu author.

Je nezbytné přidat taxonomii typu author do souboru site.yaml:

taxonomies: [category, tag, author]

K čemu je tedy potřeba doplněk Stamp? V nové verzi 1.0.4 automaticky do taxonomie typu author přidává nového autora, resp. upravuje již stávající autory, v závislosti na nastavení doplňku. Volby pokrývají celé spektrum možností, otázkou je, která se pro konkrétní web (nebo jeho část) hodí nejvíce, pokud vůbec (případné řešení problémů, resp. několik tipů je uvedeno na konci článku). Možnosti výběru akcí jsou následující:

  1. Žádná – vše zůstane zcela beze změny, s výjimkou odstranění duplikovaných hodnot (Expertní mód neprovádí kontrolu duplicit),
  2. Pouze editor – přidá pouze aktivního uživatele, všechny ostatní uživatele vymaže,
  3. Stávající abecedně – stávající uživatele seřadí podle abecedy, aktivního uživatele neřeší,
  4. Vše abecedně – přidá aktivního uživatele, všechny uživatele seřadí podle abecedy,
  5. Editor první, ostatní beze změny – přidá aktivního uživatele na začátek, ostatní uživatele ponechá beze změny,
  6. Editor poslední, ostatní beze změny – přidá aktivního uživatele na konec, ostatní uživatele ponechá beze změny,
  7. Editor první, ostatní abecedně – přidá aktivního uživatele na začátek, ostatní uživatele seřadí podle abecedy,
  8. Editor poslední, ostatní abecedně – přidá aktivního uživatele na konec, ostatní uživatele seřadí podle abecedy.

Obecně lze uvedené shrnout tak, že všechny duplicitní hodnoty jsou vždy odstraněny (bez ohledu na to, zda jsou již v poli uživatelů obsaženy, nebo zda vzniknou až po přidání aktivního uživatele) a následně dojde k seřazení podle uvedených kritérií.

Za zmínku stojí přepsání chování na úrovni stránky. Pokud je například v nastavení doplňku vybráno Editor první, ostatní abecedně (což se použije globálně pro všechny stránky na webu) a potřebujeme zajistit, aby na určité stránce docházelo ke zpracování uživatelů například podle kritérií Vše abecedně, pak stačí do hlavičky stránky uvést:

taxonomy_author: all_alphabetically

Tím dojde k přepsání výchozího nastavení doplňku a akce pro zpracování položek bude použita z hodnoty uvedené proměnné stránky. Všechny možné hodnoty jsou k dispozici v souboru README.md a plně korespondují s výchozími hodnotami použitými v nastavení doplňku (stamp.yaml).

Dalším přínosem použití pole je, že může sloužit jako společné úložiště pro autory i editory. Záleží pouze na pochopení filozofie ukládání a nalezení té nejvhodnější varianty. Uvedu následující modelové příklady, které plně ilustrují variabilitu. Pokud chci docílit, abych měl uloženy autory příspěvku podle jejich zásluh a na posledním místě měl editora stránky (kterého mohu následně při výpisu v šabloně stránky vypustit), pak zvolím akci Editor poslední, ostatní beze změny (předpokládá se, že mám autory setříděny podle zásluh). Pokud požaduji, abych jako aktivní uživatel byl uveden na prvním místě a ostatní uživatelé se seřadili podle abecedy, pak zvolím akci Editor první, ostatní abecedně. A nakonec v případě, kdy potřebuji, aby se každý editor přidal do seznamu uživatelů a ten byl následně seřazen podle abecedy, pak vyberu akci Vše abecedně.

Výše jsou uvedeny české překlady názvů akcí, v nastavení doplňku jsou prozatím k dispozici pouze anglické originály.

Jelikož dochází k odstraňování duplicit, má shora uvedené řešení i potenciální nedostatky, které spočívají v tom, že není možné mít zároveň totožného uživatele umístěného jako autora v seznamu autorů i jako editora na jeho začátku, resp. konci. To se logicky vylučuje. Řešení pochopitelně existuje. Editor je nadále uložen v proměnné editor, stejně tak může být primární autor uložen do proměnné author. Pak nic nebrání tomu, aby uvedené bylo ošetřeno na úrovni šablony Twig.

Doplněk Stamp je dostupný ve verzi 1.0.4 v repozitáři, resp. připraven k přímé instalaci přes Admin Panel.

Pokud nedojde k nějakým neplánovaným změnám, tak v příští verzi doplňku Stamp bude k dispozici podpora proměnných Twig (username, fullname, email, title apod.) všech uživatelů získaných z existujících uživatelských účtů, popř. i dalších úložišť, které bude možné použít jako alternativu k úložišti autorů na úrovni stránek, kdy bylo uvedené řešení již nastíněno v článcích Doplněk Stamp v1.0.3 a Automatizovaná tvorba hezkého URL v šabloně Twig. Funkční kód mám již k dispozici, ale nechtěl jsem přidávat dvě rozdílné funkcionality v rámci jednoho vydání. Rovněž chci připravit i nějaké univerzální šablony stránek, které bych jako vzorové přidal do doplňku.

Předchozí příspěvek Následující příspěvek