Drupal je univerzální systém (CMF – Content Management Framework) pro správu webového obsahu bez konkrétní oblasti zaměření. Jedná se o nástroj umožňující vytvářet vlastní datovou strukturu. Drupal nabízí možnost úplného oddělení obsahové části od vzhledu, což umožňuje jednoduchou změnu výsledného vzhledu.
Drupal si můžete ihned vyzkoušet:
- trydrupal8.com
- simplytest.me
- napište "Drupal" (případně konkrétní modul či téma vzhledu) a zvolte požadovanou verzi
- pouze na 30 minut včetně instalace
Drupal není jen obyčený CMS – Content Management System. Vzhledem ke své univerzálnosti je vhodný zejména pro zakázkové řešení přesně na míru dle požadavků zákazníka např.:
- osobní stránky
- webové portály (uživatelské, firemní, veřejné, zpravodajské)
- intranety
- články, blogy
- diskusní fóra
- katalogy (produktů, firem, nemovitostí)
- e-komerce (elektronické obchodování)
- sdílení souborů a adresářů
- socilální sítě
- peer-to-peer sítě
- obrázkové a multimediální galerie
- podcasting
- vlastní webové aplikace
- atd. – případně kombinace více oblastí najednou
Proč Drupal
- tipy ke čtení:
- drupalinnovations.com/blog/why-digital-agencies-love-drupal
- GNU General Public License (GPL)
- modulární architektura – základ tvoří pouze webový framework, který je možné rozšiřovat o specifické požadavky zákazníka
- snadná rozšiřitelnost o další funkce např.
- plánovač zobrazování a skrývání obsahu (automatická expirace)
- proces schvalování příspěvků a komentářů
- webové formuláře
- ochrana formulářů proti spamu
- efekty a animace (slideshow, carousel)
- multimediální obsah
- vestavěný správce souborů
- kalendář akcí
- automatický odpočet do začátku akce
- rozesílání informačních zpráv (newsletter)
- vynucená úroveň bezpečnosti hesel
- definice zásad tvorby hesel
- omezení neplatných pokusů o přihlášení
- automatické odhlášení
- zobrazení zvoleného obsahu po prvním přihlášení atd.
- a dalších více než 20.000 dostupných modulů
- jednoduché vytváření vlastních modulů
- objektově orientovaná koncepce (z historických a praktických důvodu je využíváno jak procedurální, tak z větší části i objektově orientované programování)
- využívá knihovnu PDO (PHP Data Objects), která umožňuje podporovat více databázových sytémů (MySQL, PostgreSQL, SQLite, MariaDB, SQL server, Oracle, DB2 atd.)
- snadné vytváření obsahu
- podporuje webové standardy a SEO optimalizaci pro vyhledávače
- dobře zpracovaná jak uživatelská, tak i programátorská dokumentace včetně knižních vydání
- podpora mnoha jazyků (kompletní česká lokalizace jádra a nejpoužívanějších modulů):
- automatický import překladových GNU gettext (.po) souborů
- možnost on-line překladů
- vícejazyčné weby
- vysoký výkon díky víceúrovňové cache a urychlování (omezování přenosů):
- cache stránek
- cache bloků
- optimalizace přenosu dat (CSS, JavaScript)
- při náhlém nárůstu přenosů (provozní špičky, DoS útoky atd.) může zahlcení serveru zabránit automatická optimalizace výkonu modulů
- je možné omezit maximální počet současně připojených anonymních a registrovaných uživatelů
- na systému nezávislý šablonovací systém témat vzhledu umožňuje vytvořit moderní design a napomáhá tak k propagaci značky organizace (uživatelské prostředí se podobá spíše webové než desktopové aplikaci)
- možnost Responzivního Web Designu tj. webu, který je přístupný i na mobilních zařízeních (web přístupný od telefonů, přes smartphony, tablety až po desktopy) jehož hlavní výhodou je pouze jedna jednoduše udržovatelná verze webového obsahu přístupná pro "všechna" zařízení
- automaticky vytvářená čistá URL (v kombinaci s jednoznačnou adresou
node/nid
)
- vlastní správa uživatelů
- systém přístupových práv na základě uživatelských rolí:
- anonymní uživatel
- přihlášený uživatel
- správce fór
- redaktor
- vedoucí sekce
- webmaster atd.
- podpora OpenID
- vlastní definice formy obsahu a toku dat s možností řazení, tagování a verzováním příspěvků
- textový obsah prochází před zobrazením filtry (HTML, PHP, WIKI, typografie atd.)
- možnost vestavěného WYSIWYG editoru
- víceúrovňová navigační struktura
- kategorizace obsahu
- možnost vytváření strukturovaného dokumentu s vlastní navigací (obsah + přechod na předchozí a následující "kapitolu")
- souborové přílohy (přiložené dokumenty)
- komentáře
- diskusní fórum
- ankety
- vzdálená správa obsahu (Blog API)
- syndikace vstupního i výstupního obsahu (RSS agragátor)
- fulltextové vyhledávání
- logování důležitých událostí:
- chybové zprávy (403, 404, stav systému)
- dostupné aktualizace
- statistiky stránek (počet zobrazení, nejlepší stránky, nejvíce odakzující stránky atd.)
- sledování uživatelů (přihlášení, editace obsahu, nejaktivnější uživatelé atd.)
- možnost využití instalačního profilu
- velmi dobré zabezpečení viz např. Drupal Security Report (přehled nejběžnějších útoků a jejich řešení v Drupalu)
- velká celosvětová komunita s tisíci programátory, kteří pracují na vývoji jak základního jádra, tak i ostatních modulů
- nové JavaScript knihovny: jQuery 2.0, Underscore.js, Backbone.js
- většina CSS tříd (first, last, odd, even) nahrazena CSS3 pseudo selektory
- podporu IE8 je možné "vrátit" modulem "IE8"
- atd.
Drupal 8
Novinky:
- nová pole: Date, Email, Link (možnost propojení interního obsahu), Telephone, Reference (obsah, komentář, blok, soubor, termín, uživatel atd.)
- Responsive images
- Tour – průvodce systémem a nápověda
- Multilingual: Configuration Translation + Content Translation + Interface Translation + Language
- Configuration Manager: přenos nastavení mezi testovací a ostrou verzí webu
- Webservices: HAL + HTTP Basic Authentication + RESTful Web Services + Serialization (JSON, XML)
- Transliteration (v jádře) – ve verzi Drupal-8.0.6 ovšem stále nepřekládá názvy soubrů :(
- BigPipe (až od verze Drupal-8.1.x) – zrychlení načítání stránky
Tipy:
- drupal.org/project/config_installer
- previousnext.com.au/blog/printing-any-drupal-entity-pdf
- drupal.org/project/entity_print
- github.com/arshad/drupal-template-helper
- dokumentace a zdroje informací:
- Configuration Management – oddělení obsahu od nastavení (což umožní mnohem jednodušší migraci nastavení mezi weby než např. doposud používané moduly Features, Strongarm atd.)
- development <-> staging <-> testing <-> live
- mobile first – moderní webové stránky a aplikace
- úplná administrace na mobilních zařízeních
- responsive témata již v základu
- Theming Drupal 8
- github.com/sqndr/d8-theming-guide
- dannyenglander.com/blog/drupal-8-attaching-core-libraries-and-other-scripts-your-theme
- administrace je tvořena pomocí Views – možnost úplné konfigurace administračního prostředí
- zakomponování Symphony2 wrameworku
- objektové programování téměř v celém Drupalu
- redcrackle.com/blog/say-hello-world-drupal-8-basic-steps-involved-creating-custom-module-drupal-8
- výstupem již nebude "natvrdo" formátované HTML, ale může být "cokoli" (json, xml atd.)
- kontext kontroler (aktualizace jen konkrétního bloku na stránce)
- zjednodušená multijazyčnost (snížení počtu požadovaných modulů na minimum)
- pohodlné vytváření vícejazyčných webů
- drupal.org/project/multilingual_demo
- drupal8multilingual.org
- Views, (Display Suite), Manage form display i CKEditor jsou již součástí jádra Drupal 8 a navíc kromě normálního WYSIWYG "edit" módu nabízí i luxusní přímou "inline" editaci
- úplná konfigurovatelnost administračního prostředí pomocí Views
- zlepšení uživatelského prostředí pro editory
- Twig – rychlý, flexibilní a hlavně bezpečný šablonovací systém
- PHP standardy (PSR-0, PSR-4, Namespaces, Traits)
- Namespaces
- Dependency injection and Services – koncept umožňující psát nezávislé funkční celky, které je následně jako Services možné použít v jiných částích aplikace (umožňuje např. mimo jiné psát efektivní Unit testy)
- "web services" přímo v jádře, tudíž je možné publikovat obsah přímo v JSON nebo XML formátu
- PhpUnit testy – umožňují efektivně a v krátkém čase otestovat business logiku a API (i z vlastního IDE)
- Tipy ke studiu: OOP, Symphony, Doctrine\Common\Annotation, EasyRDF, Guzzle, Assetic, PhpUnit, Twig, Zend\Feed, Composer, PHPUnit atd.
- přístupnost
- "Area Live announcements" umožňuje vytvářet přímý výstup pro čtečky obrazovek zrakově postižených návštěvníků
- WAI-ARIA
- nativní podpora sémantického HTML5
- rychlost, výkon a škálovatelnost
- buytaert.net/making-drupal-8-fly
- BigPipe – dynamické načítání obsahu stránek
- SmartCache – vnitřní vyrovnávací paměť
- Tipy:
- pro produkční web nepoužijte vývojovou (dev) verzi – v popisu každé verze čtete, jaké jsou možnosti aktualizací
- Proposal to create a Drupal 8 User Manual
- appnovation.com/blog/generating-automatic-style-guide-drupal-8-theme
- thenoccave.com/2015/01/08/drupal-8-add-the-current-title-to-the-breadcrumb/
- drupal.org/node/2634364 - How to add a node ID as class to the <body> tag in D8
- mediacurrent.com/blog/adding-custom-styles-ckeditor-wysiwyg
Patch:
- drupal.org/node/2320037 – oprava překladu zkratek v Toolbaru
CSS
- odstranění "blikání" administrační lišty
Budoucnost:
Historie:
- Drupal 8 byl vydán dne 19. listopadu 2015
- Drupal 7 byl vydán dne 5. ledna 2011
- Drupal 6 byl vydán dne 13. února 2008
- Drupal 5 byl vydán dne 15. ledna 2007
- Drupal 4 byl vydán dne 15. června 2002
- Drupal 3 byl vydán dne 15. září 2001
- Drupal 2 byl vydán dne 15. března 2001
- Projekt Drupal vytvořil dne 15. ledna 2001 Dries Buytaert