A modulok egyszerűen és rugalmasan használható bővítmények. Az oldalak kis részeként vannak jelen és általában kevésbé összetettek. Számos példát láthatunk modulokra, mint például a Joomla! alaptelepítésében lévő menük, legutóbbi hírek, bejelentkezés modulok.
Ez a leírás bemutatja, hogy készítsünk el egy Helló, világ! modult. A leíráson keresztül megismerhetjük a modulok fájlstruktúrájának az alapjait. Ezt az alapstruktúrát a későbbiekben bővíthetjük bonyolultabb modulok fejlesztéséhez.
Tartalomjegyzék |
Négy fájlból épül fel egy alapvető modul:
A mod_hellovilag.php fájl három feladatot végez el:
A helper osztály a helper.php-ben van definiálva. Ezt a fájlt a requiery_once utasítással ágyazzuk be:
require_once( dirname(__FILE__).DS.'helper.php' );
A require_once-t használjuk, mert a helper funkció egy osztályon belül található és csak egyszer szeretnénk definiálni.
A helper osztályt még nem definiáltuk, de amikor megtesszük, egy metódust fog tartalmazni: getHello(). Az alap példához ez nem igazán szükséges - a "Helló, világ!" szöveget, amit a metódus visszaad, egyszerűen beépíthetnénk a sablonba. Most viszont a helper osztályt használjuk a technika bemutatásához.
A mi modulunk jelenleg nem használ paramétereket, de mindenesetre átadjuk őket a helper metódusnak, hogy a későbbiekben használhatók legyenek ha úgy döntünk, hogy bővítjük a modul funkcióit.
A helper osztály metódusát a következő módon hívjuk meg:
$hello = modHelloVilagHelper::getHello( $params );
A teljes mod_hellovilag.php a következő:
<?php/** * Helló, világ! */// Közvetlen elérés megakadályozásadefined( '_JEXEC' ) or die( 'Restricted access' );
// A helper fájl beágyazásarequire_once( dirname(__FILE__).DS.'helper.php' );
$hello = modHelloVilagHelper::getHello( $params );
require( JModuleHelper::getLayoutPath( 'mod_hellovilag' ) );
Az egyetlen sor, amiről eddig még nem beszéltünk az az első sor. Ez a sor ellenőrzi, hogy a fájlt a Joomla! hívta-e meg. Ez a különböző támadások kivédéséhez szükséges.
A helper.php fájl tartalmazza a helper osztályt, amelyet a kimenetben megjelenő adatok visszaadásához használunk. Ahogyan azt már említettük, a helper osztály egy metódust fog tartalmazni: getHello(). Ez a metódus a "Helló, világ!" szöveget adja vissza.
A helper.php fájl kódja:
<?php/** * A Helló, világ! modul helper osztálya */class modHelloVilagHelper{ /** * Visszaadja a "Helló, világ!" szöveget * * @param array $params A modul paramétereit tartalmazó objektum * @access public */ function getHello( $params )
{return 'Helló, világ!';
}}Nincs szabály arra, hogy úgy kell elnevezni az osztályt ahogy tettük, de segít ha így tesszük, mert könnyen azonosítható.
A bonyolultabb modulok adatbázis kéréseket vagy más funkciókat is tartalmazhatnak a helper osztályban.
A default.php fájl a sablon, amely a modul kimenetét jeleníti meg.
A default.php fájl kódja a következő:
<?php// Közvetlen elérés megakadályozásadefined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<?php echo $hello; ?>
Fontos megjegyezni, hogy a sablon fájlban ugyanazok a változók érhetők el, mint a mod_hellovilag.php-ben. Ez azt jelenti, hogy a $hello változót definiálhatjuk a mod_hellovilag.php fájlban, majd használhatjuk minden további deklaráció nélkül a sablonban.
A mod_hellovilag.xml határozza meg, hogy a telepítőnek mely fájlokat kell átmásolnia, és hogy a modulkezelőnek milyen paramétereket kell konfigurálnia. A modul további információi szintén ebben a fájlban találhatók.
A mod_hellovilag.xml kódja a következő:
<?xml version="1.0" encoding="utf-8"?><install type="module" version="1.5.0"><name>Helló, világ!</name>
<author>John Doe</author>
<version>1.5.0</version>
<description>Egy egyszerű Helló, világ! modul</description>
<files><filename>mod_hellovilag.xml</filename>
<filename module="mod_hellovilag">mod_hellovilag.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files> <params> </params></install>Észrevehetjük, hogy két további fájl is szerepel a listában amelyekről eddig még nem beszéltünk: index.html és tmpl/index.html. Azért hoztuk ezeket létre, hogy a könyvtárat ne lehessen böngészni. Ha valaki megkísérli megtekinteni a könyvtár tartalmát, akkor az index.html kerül megjelenítésre. Ezeket a fájlokat hagyhatjuk üresen, vagy használhatjuk a következő sort, amely egy üres oldalt jelenít meg:
<html><body bgcolor="#FFFFFF"></body></html>Mivel a modulunk nem használ paramétereket, ezért ez a szekció üres.
A Joomla! modulkészítés elég egyszerű folyamat. A fenti technikákat használva végtelen lehetőség nyílik modulok készítésére.
A cikk forrása: Joomla! Official Documentation