Drupal téma helyreállítása

#drupal #template #wsod

Drupal téma helyreállítása

Figyelem!

Úgy tűnik, hogy jelenleg egy olyan cikket böngészel ami több mint két éve készült. A technológia világában ez nagyon sok idő és azóta már sokkal jobb megoldások is lehetnek, mint amit ebben a cikkben olvashatsz. Így azt tanácsolom keress egy frissebb cikket ebben a témában.

Drupal fejlesztőként előfordulhat, hogy olyan helyzetbe kerülünk aminek eredménye a WSOD (White Screen of Death). Szerencsénk ha egyénileg fejlesztett témánk okozza a hibát ami ezt a kellemetlen fehér képernyőt eredményezi. Ebben a leírásomban megnézünk több módszert az oldalunk megmentésére.

Láthatatlan hibaüzenetek

A fehér képernyőn nem kapunk hibaüzenetet és ez jól is van így, főleg hogyha élesbe kapcsolt oldalról van szó. Kis debugging segítség lehet ha bekapcsoljuk ideiglenesen a hibák kiírását. Ezt az oldalunk gyökérkönyvtárában lévő index.php fájlon keresztül tudjuk elérni. Adjuk hozzá a fájl elejéhez (PHP tag után) a következő sorokat:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Ezzel láthatóvá válnak az eddig láthatatlan hibaüzenetek, amik kiindulási pontot adhatnak nekünk hibánk kiküszöbölésében.

Téma helyreállítása (rossz módszer)

Helyreállíthatjuk oldalunk működését az alapértelmezett (default) téma megváltoztatásával. Laikusként ehhez kis adatbázis hekkelést is végrehajthatunk a következő SQL kóddal:

UPDATE variable SET value='s:7:"garland"' WHERE name = 'theme_default';
TRUNCATE cache;

Ezzel a Garland témát állítottuk be alapértelmezettként, de van ennél egyszerűbb út is.

Téma helyreállítása (dev módszer)

Ha már van egy kis gyakorlatunk, akkor biztosan kihasználjuk a Drush által nyújtott kényelmi funkciókat. Így csak annyi dolgunk van, hogy a következő parancsokkal elvégezzük a szükséges módosításokat.

// Témák listázása
drush pm-list --type=theme

// Engedélyezett témák listázása
drush pm-list --type=theme --status=enabled

// Alapértelmezett téma megváltoztatása
drush vset theme_default

// Admin téma megváltoztatása
drush vset admin_theme

Téma helyreállítása (Drupal módszer)

Szerencsénkre van olyan megoldás ami nem igényel sem adatbázisban való “nyúlkálást” sem parancssoros fejlesztői eszközök telepítését. Ehhez a settings.php fájl “Variable overrides” részét fogjuk kihasználni.

Tehát navigáljunk szerverünkön a sites/all/default/settings.php fájlhoz és keressük meg a fentebb említett részt, majd vegyük ki a kommentet a következő sor elől.

$conf['theme_default'] = 'garland';

A Drupal a $conf tömbbe tölti be és tárolja a rendszer változókat. Ha a settings.php fájban határozzuk meg ezek értékét, akkor könnyedén felülírhatjuk az adatbázisban tárolt beállításokat. Ha sikerült kijavítanunk témánk hibáit, akkor újra kikommentelve ezt a sort visszatérhetünk régi témánkhoz.

További tartalmak