Tvorba web stránok v Drupali

Čo sme sa naučili na konferencii DrupalCamp Žilina 2011

Čo sme sa naučili na konferencii DrupalCamp Žilina 2011

DrupalCamp je nekomerčné otvorené stretnutie, ktoré organizuje slovenská Drupal komunita. Druhý ročník sa konal 8-9. októbra 2011 v Žiline, na pôde Žilinskej Univerzity - Fakulty riadenia a informatiky. V sobotu bolo 9 prednášok a v nedelu dva workshopy, jeden pre začiatočníkov, druhý pre pokročilých drupalistov.

V tomto článku nechceme podrobne popisovať, čo sa tam všetko dialo, lebo toho bolo naozaj veľa. Chceme popísať nadobudnuté poznatky, ktoré nás zaujali, alebo sme o nich nevedeli. Čo nás obohatilo a možno my týmto obohatíme naších čitateľov, ktorí tam neboli.

Drupal a social médiá

Jozef Tóth z Mogdesignu hovoril o prepojení Drupalu a social médií a ako pomôcku mal túto infografiku, ktorú vytvorili pre Acquia-u. Určite si ju pozrite, ak ste ju ešte nevideli.

V naších projektoch social buttony a boxy vkladáme vždy priamo, nie cez moduly, lebo to máme viac "pod kontrolov". Umiestmime si to presne tam, kam chceme, s vlastným html-kom a nemusíme inštalovať obsiahle moduly, kvôli jednému buttonu. Ale ak nie ste v tom takí zbehlí, nemáte čas, alebo sa vám nechce zistovať aktuálne kódy z facebooku, je tu pár tipov na moduly, ktoré vám uľahčia robotu:

  • service links - vloženie social buttonov/linkov určené pre zdielanie obsahu, veľký výber služieb
  • follow - blok, kde si môžete dať odkazy na vaše sociálne siete
  • twitter pull - blok, kde sa agregujú posledné tweety vaších twitter účtov, alebo nejaký search
  • facebook social plugins integration - integrácia všetkých facebook pluginov
  • OAuth - umožnuje integrovat API authentication medzi Drupalom a externými stránkami (Twitter, Google, Flickr, ...)

ešte nejaké moduly na tému social médiá:

  • gallery formatter - pekná a ľahko použitelná jQuery galéria (ako field v node)
  • views slideshow - veľmi dobrý, ľahko použitelný jQuery slider, ktorý sa generuje pomocou modulu views

Funkcie, ktoré by ste mali používať

  • check_plain($text) - kóduje špeciálne znaky (html, js, ...), využitie pre bezpečné vypísanie používateľského vstupu
  • check_markup($text,$format_id) - podobne ako funkcia check_plain, len máme možnost zadať filter (vlastný alebo html, php)
  • cheack_ulr($uri) - bezpečné vypísanie url
  • t($string,$args,$options) - funkcia na preklad, $string je kľúč (väčšinou anglický text), podľa ktorého sa prekladá text. V tomto kľúči môžu byť parametre, pre potreby dynamických prekladov. Prametre môžu byť rôzne, podľa toho čo chcem mať na výstupe (v $args je pole, ktoré spáruje typ parametra a vložený reťazec): 1) "!variable": vypísanie bez ošetrenia (sme si istý, že vstup je ok) 2) "@variable": vypísanie pomocou funkcie check_plain() 3) "%variable": vypísanie pomocou funkcie drupal_placeholder()

Responsive dizajn

Je to taký dizajn, ktorý sa vie automaticky prispôsobiť na šírku okna alebo zariadenia, kde je web zobrazovaný. To znamená, že ak má stránka 4 bloky na šírku, na menšom zariadení sa web zobrazí so šírkou dva bloky, ak ešte menší tak len s jedným. SvenCreative mala na túto tému prednášku a ako jednoduché riešenie pre Drupal ukázala tému Omega. Je postavená na HTML5 a 960 gride. Má veľké množstvo nastavení a dá sa veľmi dobre prispôsobovať. Tému používa mimo iných aj Acquia. Vrelo ju všetkým doporučujeme.

Migrácia dát

Na túto tému rozprával Havran a hovoril, že pri migrácii sú veľmi nápomocné moduly migrate a migrate extras. Ďalej vysvetloval (ale aj ostatní rečníci), že modul drush je silný pomocník. Zaujala nás možnosť spustenia vlastného skriptu, v ktorom bude automaticky prístupná celá Drupal API jednoduchým shell príkazom: ¨drush scr ~/drupal/scripts/nas_skript.php¨. Dá sa napríklad aj: ¨drush php-eval "print print_r(node_load(1), 1)"¨. Často potrebujeme custom skript, kvôli špeciálnym prípadom a toto je veľmi efektívna metóda.

Drupal Commerce

Tento modul je eshop-ové riešenie do Drupal 7. Z prednášky sme sa dozvedeli, že má svetlú budúcnosť, no je zatiaľ nepoužíteľný. Svetlú budúcnosť má preto, lebo je oveľa lepšie riešený ako Ubercart a jeho hlavný tvorca má ambície, že Commerce bude v budúcnosti jednotka medzi všetkými opensource eshop riešeniami na trhu.

Commerce sa snaží využívať čo najviac funkcionaly z contrib modulov ako views, ctools, rules. Ubercart má v podstate všetko vlastné a možnosti prispôsobenia sú mizerné. Iste to poznáte, keď ste chceli prispôsobiť blok nákupný košík alebo stránku checkout (plná js a ajaxu). Pri Commerce sa napríklad blok nákupný košík generuje pomocou views a máme teda veľmi dobré možnosti ho prispôsobyť. S ostatnými eshop-ovými funkciami je to podobne.

No musíme si ešte počkať, kým sa doriešia platobné moduly a doladia všetky submoduly.

Formuláre a modul Rules

Možno ste už mali taký typ obsahu, kde niektorý field musel byť vyplnený, len ak bol určitý checkbox zaškrtnutý. My sme to riešili pomocou vlastného modulu, ktorý to vyrieši pomocou vlastnej validačnej funkcie. Oveľa krajšie je však riešenie cez Rules. V ňom sa dá to isté pekne vyklikať v časti pre formuláre. Potom ešte použijeme modul Conditional Fields, ktorý vie nastaviť automatické skrytie/odkrytie fieldov podľa ich závislostí (teda aj napríklad podľa toho, či je určitý checkbox zaškrtnúty).


Na nedeľných workshopoch sme bohiažial nemohli zostať, preto o nich nebudeme písať. S DrupalCampom sme však veľmi spokojní, veľa sme sa naučili a pokecali s kolegami drupalistami. Kvalita podujatia sa oproti minulému roku zvýšila a o to viac sa tešíme na ďalší ročník.

TAGY

NAŠE TWEETY