Hogyan orvosoljuk az Állapotjelentés oldal Észlelt figyelmeztetések részén megjelenő "Deprecated modules found: Color" hibát?

botond küldte be 2022. 07. 06., sze – 17:24 időpontban

Tartalom

 

Bevezető

A Drupal rendszer fejlődése során előfordulnak olyan esetek, hogy újabb kiadások frissítése után egy-egy modul szükségtelenné válik a rendszer számára, amit ilyenkor elavulttá nyilvánítanak. Ez lehet biztonsági okokra hivatkozva vagy csak az adott modul funkcionalitását már meghaladta a rendszer, így használata értelmetlenné válik. Egy modul elavulása vonatkozhat harmadik féltől származó - utólag telepített - modulra, de akár a Drupal alaprendszer részeként létező rendszermodulra is.

Jelen esetben a Drupal 9 alaprendszer részét képező Color modul vált elavulttá, így ebben a rövid leírásban ennek a problémának az orvoslását tekintjük meg.

Ebben a példában egy VirtualBox-ban működő Debian 10 (Buster) alapú tökéletes szerverre telepített Drupal 9-es CMS rendszeren javítom a hibát.

 

Állapotjelentés - Észlelt figyelmeztetések

Belépve az admin felületre, az Állapotjelentések oldal Észlelt figyelmeztetések részén megjelenik egy tétel:

Drupal - Adminisztráció - Állapotjelentések - Elavult modul található: Color

"DEPRECATED MODULES ENABLED Deprecated modules found: Color."

A Color modul biztosít lehetőséget arra, hogy a kompatibilis sminkek (témák) színsémáit megváltoztathassuk.

Ha rákattintunk a modul belinkelt nevére, akkor eljutunk egy közleményhez, amiben felsorolnak néhány elavult alaprendszer modult és javasolnak helyettük másik, harmadik felektől származó modulokat. A Color modult elavulttá nyilvánították a Drupal 9.4 -es kiadásában, és eltávolítják a Drupal 10.0-ban. Helyette ajánlják a Color backport nevű modult.

Egy modul elavulttá nyilvánítottsága még nem jelenti a modul használatának végét, hanem ez csak egy figyelmeztetés, hogy a jövőben el fogják távolítani a rendszer későbbi - előre meghatározott - kiadásában.

Ezek alapján két dolgot tehetünk: Vagy figyelmen kívül hagyjuk ezt a figyelmeztetést és használjuk tovább a kérdéses modult, amíg nem érjük el a megadott rendszer verziószámot, vagy ha már előre fel szeretnénk készülni a későbbi verziókkal való teljes kompatibilitásra, hogy ne az utolsó pillanatban kelljen cselekednünk, akkor folytatjuk a leírást a modul eltávolításával vagy lecserélésével.

 

Elavult Color modul eltávolítása

Amennyiben egyáltalán nem kívánjuk használni a továbbiakban a Color modult, illetve az általa kínált smink színséma funkciókat, akkor egyik lehetőségként eltávolíthatjuk a modult - ha szeretnénk, hogy rendszerünk kompatibilis maradjon a Drupal következő főverziójával. Ilyen eset akkor fordulhat elő, ha olyan sminket használunk, ami nem támogatja a Drupal sminkek színsémáját, például egy egyedi smink használata esetén. Minden esetre az eltávolítás előtt győződjünk meg róla, hogy a működő sminkünk valóban nem használja a színséma funkciókat.

Ha viszont az oldalunkon használt smink használja ezeket a színbeállító funkciókat, így tehát tovább szeretnénk használni a modult, de nem szeretnénk elavult modulokat használni, akkor semmiképpen se távolítsuk el a modult, hanem ugorjuk át ezt a részt, és lépjünk az alternatív modul telepítése részre!

Ha mindenképpen törölni szeretnénk az elavult Color modult, akkor itt folytassuk tovább.

Ne feledkezzünk meg arról, hogy a modulok kikapcsolásakor a tárolt adatok is elvesznek, így a Color modul esetén a korábbi színbeállításaink is törlésre kerülnek!

A modul kikapcsolásához lépjünk be az admin felületen a Bővítés főmenübe, majd itt kattintsunk az Eltávolítás fülre:

Az elavult Color modul eltávolítása

Itt jelöljük be a Color modul előtti checkboxot, majd kattintsunk a lap alján lévő Eltávolítás gombra. Ekkor kér még egy megerősítést:

Az elavult Color modul eltávolítása - Megerősítés

Kattintsunk itt is az Eltávolítás gombra. Ekkor a modul inaktív állapotba kerül.

A kikapcsolt modulokat bármikor visszakapcsolhatjuk. Jelen esetben a Color modult még a Drupal 9.x életciklusának a végéig is használhatjuk, így tehát addig bármikor visszakapcsolhatjuk, amennyiben meggondoltuk magunkat, azonban a modul által tárolt adataink már nem kerülnek elő!

 

Alternatív Color backport modul telepítése

A Color backport modul telepítését a modul karbantartói Composer segítségével ajánlják, ezért most itt így telepítjük.

Ha fel vagyunk készülve a Composer használatára, akkor nyissunk egy terminált, lépjünk be Drupal oldalunk webgyökér könyvtárába, majd ott futtassuk az alábbi parancsot:

composer require 'drupal/color-color:^1.0'

Color backport telepítése a composer használatával

./composer.json has been updated
Running composer update drupal/color-color
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking drupal/color-color (1.0.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading drupal/color-color (1.0.1)
  - Installing drupal/color-color (1.0.1): Extracting archive
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Package symfony/debug is abandoned, you should avoid using it. Use symfony/error-handler instead.
Package webmozart/path-util is abandoned, you should avoid using it. Use symfony/filesystem instead.
Generating autoload files
Hardening vendor directory with .htaccess and web.config files.
46 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Cleaning installed packages.

Ha rendben ment a telepítés, akkor valami ilyen, vagy hasonló kimenetet kell kapnunk.

Itt lényegében annyi történt, hogy létrehozta a webgyökér alatt a <webgyökér>/modules/contrib/color-color/ alkönyvtárat, amibe bekerült a modul fájlstruktúrája, de az adatbázisban tárolt adatokhoz nem nyúlt, így a színséma beállításaink megmaradtak, valamint innentől kezdve ez a modul már "contrib" modul, tehát harmadik féltől származó modul, amit már egy külön csapat tart karban, és külön composerrel is frissíthetjük.
Emellett megmaradt a <webgyökér>/core/modules/color/ könyvtár is, benne a régi modul fájljaival, de ezt már nem használja a rendszer, ezért ha gondoljuk törölhetjük, csak ez után töröljünk a drupal gyorsítótárát is, hogy frissüljön a modul helyének a változása.

 

Állapot ellenőrzése

Ha ezután benézünk ismét az Állapotjelentés oldalra, akkor már nem látjuk a hibát:

Drupal - Hibátlan állapot

 

Konklúzió

Ezzel az egyszerű művelettel megszűntettünk egy apró hibát, így már egy elavult modullal kevesebb, aminek a további fejlesztését már egy külső csapat végzi.