Betűméret

Képernyő

Pult
>> Címlap Cikkek Beépülők Joomla Leírások Saját migrator beépülők készítése

Saját migrator beépülők készítése

A migrator komponens átvihető adatokat készít a régi, Joomla! 1.0 webhelyről az új, Joomla! 1.5 alapú webhelyre. Ezen kívül lehet készíteni külső fejlesztésű komponensekhez is migrator beépülőket, úgynevezett ETL beépülőket (kibontás, konvertálás, betöltés). De mi van akkor, ha a használt komponensekhez nincsenek ETL beépülők?

Készítsünk magunknak! Nem kell tapasztalt fejlesztőnek lennünk ehhez, csak az alábbi lépéseket kell követnünk...

Nézzünk utána, milyen adatbázis táblákat használ a szóban forgó komponmens! Jó segédeszköz ehhez a phpMyAdmin vagy a komponens fájljai, esetleg a komponens xml fájlja.

Minden ilyen táblához készíteni kell egy új fájlt és a tábla alapján elnevezni. Például, ha a tábla neve #__guestbook (ahol a #_ a tábla előtag neve), készítsünk egy fájlt guestbook.php néven. Ne feledjük, hogy egyes komponensek más komponensek vagy a rendszerkomponensek tábláival is kapcsolatban lehetnek, ilyen például a user tábla. Ezeket a táblákat is migrálni kell.

A fentebb említett fájlban készítsünk egy osztályt a tábla nevéről elnevezve, valahogy így:

class Guestbook_ETL extends ETLPlugin
{

}

Lépjünk be a { és } közötti sorba és jelezzük a migrátornak mi a beépülőnk neve:

public function getName()
{
  return 'My Guestbook Migrator Plugin';
}

A következő lépésben meg kell mondanunk a migrátornak, hogy milyen táblából vegye az adatokat:

public function getAssociatedTable()
{
  return 'guestbook'; // nem kell táblaelőtag
}

Végezetül el kell készítenünk a CREATE (létrehozás) utasítást, amellyel a táblát az új helyen létre tudjuk hozni. Ezt megkaphatjuk a SHOW CREATE TABLE novoportal15_guestbook paranccsal a MySQL kliensben vagy nézzük át a komponens (a példában a Guestbook) XML fájlját!

public function getSQLPrologue()
{
  return 'CREATE TABLE #__guestbook (`id` int(11) NOT NULL auto_increment, .....';
} 

Íme a teljes fájl:

class Guestbook_ETL extends ETLPlugin
{
  public function getName()
  {
    return 'My Guestbook Migrator Plugin';
  }
  public function getAssociatedTable()
  {
   return 'guestbook'; // nem kell táblaelőtag
  }
  public function getSQLPrologue()
  {
    return 'CREATE TABLE #__guestbook (`id` int(11) NOT NULL auto_increment, .....';
  }
}

Telepítsük a migrator komponenst a régi, Joomla! 1.0 alapú webhelyen és használjuk a feltültő (upload) elemet a beépülőnk hozzáadásához! Aktiváljuk a migrációt és folytassuk, ahogy általában szoktuk.

Engedélyezzük az Öröklés módot (Legacy mode) és telepítsük a komponenst. Nézzük át az XML fájlt, egyes komponensek használják a DROP TABLE utasítást ebben a fájlban. Jó gyakorlat a CREATE TABLE IF NOT EXISTS utasítás használata.

A migrátor beépülők ezen megközelítése valószínűleg működik a legtöbb komponenshez. Mégis, ez csak a jéghegy csúcsa. A migrator beépülők ennél többet is tudnak. Lehetővé teszik a táblák és adatok átírását például akkor, ha a komponens Joomla!1.0 és a Joomla! 1.5 verziója meltérő adatbázis sémát használ. Ha többet szeretne megtudni erről, célszerű átnézni a jelenlegi ETLPlugin osztályt valamint a com_migrator csomag rendszerbeépülőit.

>> Címlap Cikkek Beépülők Joomla Leírások Saját migrator beépülők készítése