Drupal frissítés - a Drupal.hu tapasztalatai (1)

Mielőtt a Drupal rendszerünket frissítenénk, egy dolgot mindenképpen át kell gondolnunk. Szükségünk van-e egyáltalán az új Drupal verzióra? Ez egy fontos kérdés, és nem szabad elmenni mellette, hiszen jelentős munkát spórolhatunk meg vele, ha a válasz nemleges lesz. Előfordulhat, hogy webhelyünket a jelenlegi Drupal verzió elvárhatóan működteti, vagy olyan mértékű testreszabást hajtottunk végre, hogy nem éri meg az újabb változat beüzemelése. A Drupal.hu frissítésének előkészítése is ezzel a kérdéssel kezdődött.

Mivel elsődleges feladatunk egy Drupal bemutató webhelyet üzemeltetni, és a jelen írás szerkesztésekor használt sokszor foltozott 4.5-ös kiadás már igencsak idejétmúlt, a szükségesség kérdésére adott válasz esetünkben igen volt.

Ezt követően át kellett tekintenünk, hogy mit használunk ki a Drupalból, ezekből mi érhető el az új (leendő 4.7.0-ás) Drupal kiadáshoz. Szerencsére a varázslatos dolgokat tudatosan elkerüljük, hogy lehetőleg valós képet mutassunk a Drupal alapképességeiről, ezért nincs sok kiegészítő modul telepítve rendszerünkben.

Nem csak a modulokat kell ugyanakkor figyelembe venni, a használni kívánt sminkre is gondolnunk kell. A Drupal.hu ezen írás szerkesztésekor egy marvin_2k for phptemplate smink variánst használ, ennek erénye pedig, hogy a phptemplate absztrakciójának köszönhetően jobban hordozható, mint a PHP-ben írt sminkek. Ez nem azt jelenti, hogy a Drupal.hu ugyanezzel a megjelenéssel lépne tovább, de ez sem volt kizárható.

Ne feledjük, hogy bizony azt is számításba kell vennünk, hogy egy általunk áhított funkcionalitást esetleg töröltek a Drupalból. A 4.7-es kiadás alapcsomagjában nem lesznek elérhetőek a pontozásos moderálási funkciók a tartalmak (queue modul) és a hozzászólások esetén sem, ezek nem voltak eléggé gyakran használatosak ahhoz, hogy a továbbiakban az alapcsomagban tartsák őket. Szerencsére ezeket a funkciókat nem használtuk ki, az általunk igényelt egyszerű tartalombeviteli munkafolyamat pedig természetesen továbbra is működőképes, így például a felhasználók által beküldött linkek alapértelmezésben el vannak rejtve.

Nézzük részletesebben a használt kiegészítő modulokat:

  • codefilter: a forráskódok színezésére
  • drupalhu: saját fejlesztés, egyszerű szűrő kiegészítéseket ad, a filebrowser és trstatus modulok között teremt hidat
  • filebrowser: a fordításaink böngészési felülete, saját fejlesztés, de közzétettük nyílt forráskódú projektként
  • trstatus: saját fejlesztés, a fordításaink állapotának statisztikáit elemzi, és számolja meg a drupalhu modul számára emészthető formába öntve azokat
  • weblink: a klasszikus nagy behemót, ami rengeteget tud, és szinte semmit sem használunk ki belőle

Ezek közül a codefilter szerencsére elérhető 4.7-es Drupalhoz is, ezzel akadt a legkevesebb probléma. A frissítés kapcsán a filebrowser kódjának 4.7-en futásra alkalmassá tétele volt a legérdekesebb feladat, ezt februárban el is készítettem, az erre váró más fejlesztők örömére. A trstatus és a drupalhu modulok szerencsére igen csekély olyan kódot tartalmaztak, amelynek futása problémát okozna Drupal 4.7 alatt, tehát ezek átalakítása triviálisnak bizonyult. Az egyszerűség kedvéért egyetlen drupalhu nevű modulban él tovább a kódjuk. A 4.7-es sorozatban már nem támogatott weblink modul helyettesítése volt a legtöbb munkát igénylő feladat. A szerzők a links modul csomagot ajánlják a cseréhez, ezzel azonban meglátásom szerint az egyik behemótot a másik behemótra cseréltem volna le, amikor egészen egyszerű link megadási és kattintás számlálási funkciókra volt szükség. Így a 35kbyte méretű weblink modult a 36kbyte méretű links + links_weblink modul kettős helyett egy saját fejlesztésű 3kbyte méretű simplelinks modulra cseréltem, ami minden szükséges funkcióval rendelkezik.

Tehát a frissítendő Drupal rendszer rendelkezésére áll egy-egy 4.7-es verzió alatt futó codefilter, drupalhu, filebrowser és simplelinks modul. Ez nagyon fontos kiindulási pont volt annak érdekében, hogy az adatbázis frissítést és a smink kialakítását elkezdhessük, amiről a következő részben szeretnék írni.