Drupal kattintgatás nélkül

Avagy egy drupal programozó hétköznapjai

Drupal Modul Készítése Egyszerű

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
cd /var/www/drupal/
mkdir -p sites/all/modules/mysite

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
name = mysite
description = A mysite oldalon végzett módosításokat tartalmazza.
core = 7.x

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
<?php
/**
 * hook_init() implementálása
 */
function mysite_init() {
  drupal_set_message(t('New message'));
}

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.