Drupal 8.8.0: zásadní aktualizace s celou řadou novinek

Minulý týden vydaná aktualizace redakčního systému Drupal přináší celou várku novinek. Nejde o klasickou opravně bezpečnostní sadu. Změny a vylepšení budou zajímat jak vývojáře, tak administrátory nebo běžné uživatele webů s Drupalem.

V rámci pravidelného cyklu vydávání nových verzí dospěl vývoj Drupalu k číslu 8.8.0. Jde o poslední podverzi Drupalu 8 předtím, než bude vydán příští rok Drupal 9. Znamená to, že se objeví ještě několik verzí 8.8.x, ale ty nepřinesou žádné zásadní změny, jen případné opravy.

Přesněji řečeno, Drupal 8.9.0 vyjde, ale bude obsahovat stejné změny jako Drupal 9 a bude určen coby verze s dlouhodobou podporou. Obojí by mělo přijít 3. června 2020.

Aktualizace technicky vzato je čistě rutinní záležitostí a spustíte ji přes Composer, drush nebo ruční kopírování a aktualizaci databáze tak, jak jste zvyklí. Tentokrát to však ale není jen o přepsání souborů. Drupal 8.8.0 mění a vylepšuje tolik věcí, že je nutné vyzkoušet, co s vaším webem aktualizace provede. A samozřejmě vše dopředu zálohovat.

Pojďme se tedy podívat na novinky v administraci a následně na změny ve fungování Drupalu, které je třeba mít na zřeteli.

Nové funkce v Drupalu 8

Z mého pohledu je nejvýznamnější novinkou stabilní verze Media Library sloužící pro práci nejenom s obrázky.

Media Library

Jestli něco Drupalu 8 chybělo, pak to byl snadný způsob práce s nahrávanými médii. Zejména pak snadný výběr a opětovné použití již jednou nahraných obrázků. Tohle právě řeší modul Media Library.

Při instalaci čistého Drupalu, ale samozřejmě i při upgrade není tento nový modul automaticky zapnut. Netuším, proč se tak u čisté instalace neděje. Je samozřejmě otázkou, zda se do všech implementací hodí.

Není na něj tedy napojeno ani obrázkové políčko u připraveného typu obsahu článek. Pro vyzkoušení tak přidejte nové pole typu Reference > Média.

Drupal 8.8.0

Nemůžu si pomoci, úplně spolehlivě to nefunguje, nebo neumím Media Library správně použít. Více obrázků najednou do ní nelze nahrávat, kvůli nutnosti postupně zadávat jejich ALT popisek. Není tu možnost jejich snadného přejmenování z původního názvu, jak leze z foťáku. Přitom je k dispozici hledání právě dle názvu souborů. Možnost s názvy pracovat se tak přímo nabízí. Bez ní je celé řešení takové polovičaté a určitě není použitelné pro laiky.

Navíc výše uvedený screenshot má rozměr asi 1400 x 900 px a sami si řekněte, jestli pětice obrázků zobrazených v knihovně je na takovém rozměru odpovídající nebo zbytečné plýtvání místem…

Nové administrační téma vzhledu

Prozatím jako experimentální je v Drupalu 8.8.0 zařazeno téma vzhledu Claro. Je určeno pro administrační části webu. Jeho výhodami má být čistý vzhled, výkonnost, přístupnost. Administrační části s ním mají být lépe ovladatelné na dotykových zařízeních. Lidé s horším barvocitem ocení výraznější kombinace barev a kontrastu.

Za sebe ale musím říci, že dál zůstanu u původního, uhlazeného admin tématu Seven. Claro mi až příliš připomíná vysoce kontrastní režim z Windows. Pro uživatele s poruchou zraku je to fajn, pro ostatní ale jen těžko uchopitelné.

Výhodou Claro je určitě výrazné podbarvení potvrzovacích tlačítek, ale celkově se mi ten vzhled zkrátka nelíbí. Postrádá jemnost a eleganci.

Drupal 8.8.0

Významné vylepšení pro Workspaces

Workspaces, neboli pracovní plochy v Drupalu nepoužívám. Jde  zatím o experimentální modul a neměl jsem pro něj dosud praktické využití. Slouží k tomu, že si můžete připravit změny v obsahu a blocích, prohlédnout si je a až následně je aplikovat do ostrého provozu.

Novinkou je jejich hierarchické uspořádání do sebe a také propojení s moderací obsahu. Stejně jako se změnami URL aliasů.

Myšlenka pěkná, namátkou jsem vyzkoušel a má to zatím své mouchy. Ale jde o experimentální modul.

Drupal 8.8.0

Nový modul Help Topics

Zatímco původní nápověda v Drupalu je koncipována podle jednotlivých modulů, s pomocí novinky Help Topics (experimentální, je nutné ji aktivovat coby modul) nápovědu doplníte o témata. Tedy činnosti, které by uživatel chtěl provádět, ale neví jak.

Drupal 8.8.0

Určitě posun správným směrem, ale věčný pochybovači si řeknou: kdo vlastně čte nápovědu?

Další drobná vylepšení v Drupalu 8.8.0

Změny v migraci ze starších verzí – migrační mechanismus pro vícejazyčné weby je sice stále experimentální, ale dočkal se celé řady změn. Konkrétně nastavení jazyka u slovníků kategorií a u termínů. Moduly specifikující migrace nyní mohou poskytovat informace, zda jsou jejich migrace konečné nebo ne.

Tip: Chcete si napsat migrace? Vřele doporučuji sérii článků 31 days of Drupal migrations.

Nativní podpora Composeru – pro mě velmi dobrá zpráva. Pokud totiž stejně jako já instalujete kvůli dalším závislostem Drupal přes Composer, asi jste občas narazili na problémy způsobené tím, že instalace závisela na balíčcích třetích stran.

Drupal má nyní dvě šablony pro instalaci přes Composer:

composer create-project drupal/recommended-project my-project -n nainstaluje doporučenou adresářovou strukturu s přesunutým index.php a složkou core do podadresáře web.

composer create-project drupal/legacy-project my-project -n nainstaluje klasickou adresářovou strukturu s jednou složkou. Tohle zvolíte pro klasické hostingy, kde není možnost změnit document root.

Jednodušší jsou nyní tím pádem i aktualizace s využitím Composeru. Více k tématu viz Starting a Site Using Drupal Composer Project Templates.

Kdy zpozornět před touto aktualizací

Používáte-li modul Pathauto, ujistěte se, že jste jej aktualizovali na nejnovější verzi předtím, než svůj web povýšíte na Drupal 8.8.0. V opačném případě vám hrozí ztráta dat, pravděpodobně URL aliasů.

Změna souvisí s přesunem funkcionality v jádře do modulu path_alias. Přináší ukládání aliasů coby entit a tedy i možnost jejich revizí a publikace. Podrobnější info viz Path aliases have been converted to revisionable entities.

Drupal 8.8.0 ukončuje podporu odebranou v předchozí verzi pro pětkové PHP, takže na něm už na aktuální verzi neupgradujete. Minimum, které aktualizace kontroluje, je PHP 7.0.8, doporučená verze je samozřejmě PHP 7.2 neb cokoli staršího již není ze strany tvůrců PHP udržované.

Nový klíč v info souborech, a sice core_version_requirements nahrazuje dosavadní core označující podporovanou verzi jádra ze strany modulů či témat vzhledu. Kvůli kompatibilitě ale zatím fungují oba.

Změnu zaznamenal přehled podporovaných prohlížečů ze strany Drupalu, především tedy z jeho administrace. Zmizet měly především raritní prohlížeče. Pořád platí, že podporované jsou dvě poslední verze Chrome, Firefoxu, Safari, Edge a Opery. Na mobilech Safari. Poslední jedna podporovaná verze se pak týká Internet Exploreru, Firefoxu ESR a na mobilech Chrome, UC Browseru, Opery Mini a Samsung Internetu.

Končící moduly. Jsou dva. SimpleTest je označen jako deprecated a vývojáři by tak měli přejít na spouštění testů přes shellový skript od PHPUnit, aby se připravili na Drupal 9, kde modul zmizí úplně. Podobně bude odstraněn modul Place Blocks, který již byl ukryt v předchozích vydáních.

Media Library byla již v předchozích verzích coby experimentální modul. Nyní je integrována do moderování obsahu, mění se výchozí pohledy, které modul používá, stejně tak některé adresy administračních částí. Drobné změny najdete u tlačítek v ovládání tohoto modulu.

Změny v JSON:API – jméno uživatele je nyní v display_name, zatímco name obsahuje neformátovanou hodnotu. Čárkou oddělenou syntaxi nahrazují dvě pomlčky, což si může vyžádat změnu na straně klientských aplikací. Moduly by nyní měly upozornit na zdroje a políčka, která nebudou dostupná přes JSON:API. Chyby jsou nově hlášeny chybovými kódy a popisem namísto jednoduchých čísel.

Pohledy z modulu View přidávají query tag ENTITY_TYPE_ID_access ke všem dotazům. Tím pádem veškeré implementace funkcí hook_query_TAG_alter() budou spuštěny i nad dotazy pohledů. Vystavené filtry budou mít nyní správnou kontrolu zadávaných znaků.

Veškerý kód exportující konfiguraci Drupalu by měl používat úložiště config.storage.export. Moduly zapisující změny do konfigurace tak nyní učiní až na konci instalačního procesu.

Z dalších změn: bezpečnostní opravy, vytváření nových revizí během úprav moderovaného obsahu, Stable je výchozí base theme, není-li uvedeno jiné, cesta k dočasným souborům je uvedena v settings.php místo dosavadního umístění v konfiguraci. Používáte-li jinou, než /tmp, nezapomeňte do settings.php přidat tento řádek:

$settings['file_temp_path'] = '/path/to/your/temporary/folder';

Celá řada změn je také v coding standardech pro Drupal 8.8.0. Souvisejí s podporou PHPUnit 7 a zahozením předchozích verzí. Jádro Drupalu vyžaduje knihovnu Guzzle 6.3. jQuery je aktualizována na verzi 3.4.1. Nový je i CKEditor 4.13.0. Povýšení se dočkala celá řada balíčků v PHP, na kterých je Drupal závislý.

Velké změny v JavaScriptových knihovnách

Soubor *.libraries.yml nyní umožní označovat knihovny jako zastaralé, více tu. Týká se to množství knihoven umístěných původně v jádře Drupalu. V devítce budou odebrány.

Skončilo jQuery UI. Projekt je mrtvý a pokud jeho různé knihovny potřebujete, musíte nyní místo po jádře Drupalu sáhnout po doplňkových modulech, které příslušnou knihovnu implementují. Jde o věci typu accordion, button, checkboxradio, controlgroup, droppable, effects, menu, progressbar, selectable, selectmenu, slider, spinner, tabs a tooltip. Myslím, že jsem ve svých projektech použil jenom slider a právě tooltipy.

Jako deprecated je označen jQueryUI Datepicker. To ale nevadí, prohlížeče dnes ve většině případů umí zobrazovat svůj kalendář při výběru data.

CKEditor, Layout Builder nebo Media Library závisely na jQuery UI Sortable. Vzhledem k jeho absenci přecházejí na knihovnu SortableJS a totéž je doporučeno tvůrcům dalších modulů a témat vzhledu. Pozor na modul Paragraph, který ve svém experimentálním widgetu používá starší verzi SortableJS. Může dojít ke konfliktům.

Drupal 8.8.0 přidává závislost na knihovně Popper.js. Nedávno jsem ji shodou okolností také použil a pracuje se s ní velice dobře. Hodí se pro různé vyskakovací prvky. V jádře Drupalu ji teď bude používat modul Quick Edit.

Odebrané polyfilly: html5shiv, matchMedia, classList a domready. Není jich třeba v prohlížečích, které Drupal oficiálně podporuje, mizí tedy i z jádra. Pro první dva existují doplňkové moduly.

V javascriptovém kódu přibyly JSDoc značky se zápisem @deprecated vypisující varování do konzole v prohlížeči.

Jak vidíte, změn je tedy více než dost, což vám určitě přidělá pár vrásek při aktualizacích stávajících webů na Drupalu. Do budoucna je ale může ušetřit.

Zdroj: Drupal 8.8.0 is available a Drupal 8.8.0 Release notes

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Marketing Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru