Az a jó, ha mellé ütök…

A tavalyi évem egy kicsit zordra sikeredett, hisz annyi munkám volt, hogy csuhaj.. de eljött az idő és a 4.6-os Drupal immár frissítve lett 6.4-esre. És itt kérem nem csak a két számjegy lett kicserélve hanem sokkal több. Reményeim szerint nem látszik, de az egész oldal és a tartalmak úgy ahogyan vannak teljesen újonnan lettek előállítva. Tehát nem a régi - mindenféle modulpróbálkozás által otthagyott szemetet tartalmazó - adatbázis lett frissítve, hanem úgy ahogy van az egész rendszer újra lett rakva. Mivel mindig is akartam írni egy jó kis izmos install profile-t a Drupal-hoz, ezért az egyszerűbb út helyett azt találtam ki, hogy az adatok átvételéhez egy ilyen profilt fogok fejleszteni. Elsőnek szörnyűnek tűnhet a rászánt egy hét, hisz egy pici import szkripttel egy-két óra alatt meglett volna az egész, de itt nem csak a frissítés volt a lényeg. Mint ahogyan már többször kifejtettem a tanulási folyamat során keletkezet produktum általában értéktelen - hisz nem az a cél, hanem a tanulás maga - de reményeim szerint ez most nem lesz így. A keletkezett install profile-t ugyanis megosztanám veletek, hátha valakinek segíthetek ezzel. Nézzük mire is jó ez a profil!

A cél

A cél az volt, hogy a node-okat minden adatával együtt át tudjam emelni. Azért nem a node_import modult használtam, ugyanis az sok node-ot tud felvenni, de ezek azonosítóját nem tudjuk befolyásolni. Nekem pedig pont arra volt szükségem, hogy ha a rég rendszerben egy node a node/3 útvonalon volt elérhető akkor az az új rendszerben is a node/3 útvonalon legyen elérhető. Ha annak idején a node/4 útvonalon nem volt található tartalom (mert mondjuk létrehoztam de töröltem) akkor az új rendszerben se legyen ott tartalom. Tehát nem csak a tartalmakat, hanem a tartalmak közötti hézagokat is meg akartam őrizni. A node-ok mellett a node-okhoz tartalmazó útvonal álneveket is átvittem és a node-okhoz kapcsolódó hozzászólásokat is. Ez utóbbi nem volt egyszerű, hisz van egy olyan bug ami miatt én hiába állítok be bármilyen beküldési időpontot a Drupal mindig az aktuális időbélyeget ragasztja rá az újonnan létrehozott hozzászólásra. Természetesen ez a hiba csak és kizárólag akkor jön elő amikor az ember programozottan akarja létrehozni a hozzászólásokat. A szótárak és kategóriák átvétele valamint a node-ok kategorizáltságát is meg akartam őrizni. Ezeken kívül semmi mást nem hoztam át a régi rendszerből. Tehát sem a blokkok, sem a júzerek sem semmilyen más beállítást nem fog a profil átemelni, sőt ha verzió követést használtunk akár csak egyszer is akkor sem fogunk tudni maradéktalanul importálni node-okat.

Hogyan hogyan?

Egyelőre még egy picit dörti a kód no és van benne egy kis form_alter, hogy ne kelljen az alap beállításokat tartalmazó formot mindig kitöltenem, ezért azt most ebben a pillanatban nem fogom ide csatolni, de ha valakit érdekel az nyugodtan keressen meg az üzenődoboz segítségével.