Gutenberg bloky

Prečo musí redaktor skladať stránku z pluginov namiesto pripravených blokov?

Staviam vlastné Gutenberg bloky moderným spôsobom: PHP triedy cez ACF Composer, dynamické bloky s renderom na serveri, verný náhľad priamo v editore a knižnicu blokov, ktorá sa opakuje naprieč webmi jedného klienta.

Väčšina firemných webov na WordPresse dnes vyzerá rovnako zvnútra: k téme je pribalený page builder, k builderu sada doplnkov a k doplnkom ešte jeden plugin na ikonky. Redaktor potom skladá stránku z desiatok nastavení, ktoré nikto nedokumentoval, a každá sekcia sa dá vyrobiť tromi rôznymi spôsobmi. Výsledok je na pohľad použiteľný, no v HTML je päť vnorených divov navyše, na mobile sa načítava pol megabajtu CSS pre funkcie, ktoré web nikdy nepoužije, a pri aktualizácii buildera sa rozpadne rozloženie na stránkach, ktoré sa roky nemenili.

Gutenberg tento problém rieši inak. Editor je súčasťou WordPressu, takže netreba tretiu vrstvu medzi obsahom a šablónou. Bloky, ktoré redaktor vidí, si viem definovať sám: presne toľko polí, koľko dáva zmysel, presne tie varianty, ktoré má značka schválené, a žiadne nastavenie navyše. Bloky píšem ako PHP triedy cez ACF Composer, obsah sa renderuje na serveri a v editore vyzerá rovnako ako na webe. Redaktor tak nemá slobodu rozbiť dizajn, ale má slobodu pridať ľubovoľnú stránku bez toho, aby ma musel volať.

01

Vlastný blok verzus page builder

Page builder je univerzálny nástroj, ktorý musí zvládnuť každý web na svete, takže do každého projektu prinesie aj to, čo nepotrebuje. Vlastný blok je opak: robí jednu vec, má pomenované polia a generuje presne to značkovanie, ktoré téma očakáva. Redaktor nevyberá typ písma ani vnútorné odsadenie, pretože tie patria dizajnovému systému, nie obsahu. Zvyčajne stačí desať až pätnásť blokov na to, aby sa dal poskladať celý web, a práve toto obmedzenie drží stránky konzistentné aj po dvoch rokoch a piatich ľuďoch v administrácii.

  • Jeden blok, jedna úloha a pomenované polia
  • Značkovanie zodpovedá téme, nie generickému builderu
  • Redaktor nemôže omylom rozbiť dizajn
  • Bez stoviek kilobajtov CSS a JS navyše
  • Desať až pätnásť blokov pokryje bežný firemný web

02

Bloky ako PHP triedy cez ACF Composer

Bloky nedefinujem klikaním v administrácii, ale kódom. ACF Composer dá každému bloku vlastnú PHP triedu, v ktorej sú deklarované polia, náhľadové dáta aj podpory editora, a k nej patrí Blade šablóna. Definícia tak žije v gite spolu so zvyškom témy, dá sa revidovať v pull requeste a prenesie sa na staging aj produkciu nasadením, nie exportom JSON súboru cez administráciu. Keď sa blok zmení, zmena je viditeľná v histórii a vie sa vrátiť späť. To je rozdiel medzi témou, ktorú vie prevziať iný vývojár, a témou, ktorú treba dešifrovať z databázy.

  • Polia a nastavenia bloku v PHP triede
  • Šablóna bloku ako Blade komponent
  • Celá definícia v gite, nie v databáze
  • Rovnaká sada blokov na stagingu aj v produkcii
  • Prevzatie iným vývojárom bez archeológie

03

Dynamické bloky s renderom na serveri

Statický blok uloží hotové HTML do obsahu príspevku, čo je pri jednoduchom texte v poriadku, ale pri čomkoľvek živom je to pasca. Ak sa má blok pýtať na najnovšie články, produkty z kategórie, referencie alebo termíny, HTML v databáze zastará v momente uloženia. Dynamický blok ukladá iba nastavenia a obsah sa vykreslí až pri zobrazení stránky. Zmena šablóny sa tým premietne do všetkých existujúcich stránok naraz a nie je potrebná migrácia obsahu. Rovnako sa dá blok jednoducho preložiť, keďže texty prichádzajú zo šablóny a nie sú zamrznuté v starom uloženom výstupe.

  • V databáze sú uložené nastavenia, nie zastarané HTML
  • Výpisy článkov, produktov a referencií vždy aktuálne
  • Zmena šablóny prejde všetkými stránkami naraz
  • Ľahšie preklady a jazykové mutácie
  • Bez migračných skriptov pri každej úprave dizajnu

04

Náhľad v editore, ktorý zodpovedá webu

Najčastejšia sťažnosť na vlastné bloky je, že sa v editore zobrazia ako sivý obdĺžnik s nápisom a redaktor musí ukladať a obnovovať stránku, aby zistil, ako to vyzerá. Tomu sa dá predísť. Blok renderujem v editore rovnakou šablónou ako na webe, doplním náhľadové dáta pre prázdny stav a štýly editora natiahnem z rovnakého zostavenia ako frontend. Redaktor tak píše priamo do toho, čo návštevník uvidí. Pri odovzdaní k tomu pridávam krátky popis každého bloku a ikonu, aby bolo z vkladacieho panela jasné, na čo blok slúži.

  • Rovnaká šablóna v editore aj na webe
  • Náhľadové dáta pre prázdny a nový blok
  • Štýly editora z rovnakého buildu ako frontend
  • Popis a ikona pri každom bloku
  • Redaktor nemusí ukladať, aby videl výsledok

05

Knižnica blokov naprieč webmi klienta

Najväčšia úspora nevzniká na prvom webe, ale na treťom. Pre klienta, ktorý prevádzkuje viac stránok na rovnakej platforme, som postavil knižnicu blokov s hero sekciou, kartami, často kladenými otázkami a galériou, ktorá sa používa na všetkých šablónových weboch. Nový web sa potom nezačína prázdnou témou, ale hotovou sadou, do ktorej sa dopĺňa len to, čo je pre daný projekt naozaj špecifické. Pracujem za 40 € za hodinu vrátane DPH. Jeden nový blok býva 2 až 5 hodín, základná knižnica pre web sa orientačne pohybuje v 12 až 30 hodinách.

  • Hero, karty, FAQ a galéria ako spoločný základ
  • Nový web začína hotovou sadou blokov
  • Oprava v knižnici sa prejaví na všetkých weboch
  • Jeden blok orientačne 2 až 5 hodín
  • Knižnica pre web 12 až 30 hodín, 40 € za hodinu vrátane DPH

?

Časté otázky o Gutenberg blokoch

Nahradia vlastné bloky Elementor alebo WPBakery?

Vo väčšine firemných webov áno a stránka po výmene výrazne zrýchli. Builder je vhodný, keď si má obsah skladať niekto bez vývojára a dizajn nie je pevne daný. Ak má web brand manuál a opakujúce sa sekcie, vlastné bloky sú lacnejšie na údržbu.

Je potrebné ACF Pro alebo sa dá blok spraviť aj bez neho?

Bloky sa dajú písať aj čisto v Reacte bez ACF, no pre bežný firemný web je to drahšie riešenie. ACF Pro s ACF Composerom umožní definovať polia aj šablónu v PHP, takže vývoj aj neskoršie zmeny sú výrazne rýchlejšie a lacnejšie.

Čo sa stane s obsahom, keď blok neskôr zmeníme?

Pri dynamických blokoch sa v databáze drží iba nastavenie, takže úprava šablóny sa premietne do všetkých stránok naraz bez migrácie. Ak sa pridá nové pole, doplní sa mu predvolená hodnota, aby staršie stránky ostali funkčné.

Zvládne redaktor vlastné bloky bez školenia?

Zvyčajne áno, pretože blok má menej nastavení než ktorýkoľvek builder. Pri odovzdaní prechádzam každý blok, jeho polia a náhľad. Ak má tím viac ľudí, pripravím aj krátku písomnú dokumentáciu priamo v administrácii.

Koľko stojí sada vlastných blokov?

Jeden blok podľa zložitosti vychádza na 2 až 5 hodín, teda 80 až 200 € vrátane DPH pri sadzbe 40 € za hodinu. Základná knižnica pre firemný web sa orientačne pohybuje v 12 až 30 hodinách. Cenu mení počet variantov a dynamické výpisy.

Chcete editor, v ktorom sa stránka poskladá za desať minút?

Napíšte mi, aké sekcie sa vám na webe opakujú a čo dnes redaktori riešia najťažšie. Navrhnem sadu blokov, ktorá to pokryje, a poviem, koľko hodín to bude.

Prebrať bloky