A minap azt javasoltam a drupal.hu fórumán egy kérdezőnek, hogy amit meg akar valósítani azt ne a smink rétegbe tegye hanem írjon rá egy modult, remélem megfogadta a tanacsom. Ezt a kijelentésemet a minap aboros vágta a fejemhez. Ezért úgy döntöttem, hogy bemutatom mennyire nehéz dolog egy drupal modult elkészíteni. Az angol nyelvű modul fejlesztési dokumentációt itt találjátok: http://drupal.org/developing/modules A modul készítésről itt írnak: http://drupal.org/node/231276.
Egy oldal elkészítése során sok apró csiszolást kell elvégezni, hogy a drupal pont úgy működjön ahogy azt szeretnénk. Ezeket a módosításokat célszerű egy a honlap nevével fémjelzet modulba tenni. A most következő példában egy ilyen modul elkészítését mutatom meg a mysite nevű modult fogjuk elkészíteni, és a modul minden oldal letöltéskor egy üzenetet fog megjeleníteni.
A drupalban a modulok neve csak olyan karaktereket tartalmazhat, ami egy PHP függvény nevében is megadható, mivel a modul neve minden modulban létrehozott függvény nevében szerepelni fog.
A feltelepített drupal sites/all/modules alkönyvtárába hozzuk létre a mysite könyvtárat.
1 2 |
|
A modul létrehozásához minimum két állomány szükséges egy mysite.info és egy mysite.module, ha szeretnénk a modul telepítésekor műveleteket végezni, akkor szükségünk lesz egy mysite.install állományra is (nekünk most nem kell). Létrehozzuk mindegyik állományt. Kezdjük a mysite.info állománnyal, ennek a tartalma a következő legyen:
1 2 3 |
|
A name a modul neve, a description a modul leírását tartalmazza, ezeket az értékeket kötelező megadni, de az info állományba megadhatunk még modul függőséget php és drupal verziót, az alábbi oldalon megtaláljuk a többi lehetőséget is: http://drupal.org/node/231036 A core opció a drupal verziót határozza meg, ha 6-os drupalhoz készítjük a 7.x-et 6.x-re cseréljük.
Az info állomány elkészítése után a mysite.module állományunkat kell elkészíteni. Az állomány tartalma legyen a következő:
1 2 3 4 5 6 7 |
|
A module állományban a hook_init hurkot implementáltuk. A szöveg kiíratására pedig a drupal_set_message() függvény segítségével történt. A t() függvény fordítja le a szöveget az oldal nyelvére.