Star Wars modulfejlesztés

Ismét itt!
Nem tudom, említettem-e már, de az oldallal kapcsolatban különböző fejlesztések indultak útjukra. Egyik ilyen a Star Wars világához kapcsolódó tartalmak az oldalba való integrálása. Nem mondom, hogy rosszul haladok vele, de azért vannak problémáim.

Egyik leglényegesebb dolog, hogy most csinálok először tartalmi modult a rendszer alá, és ezért tapasztalat híján nem mondhatnám, hogy gyorsan haladok vele. Itt van az alkalom, hogy megismertessek mindenkit, milyen problémákba futottam bele, illetve ezeket hogy sikerült orvosolnom.

A blog folytatása:

Star Wars modulegyüttes

Az első amit megcsináltam a starwars.module. Semmi különlegeset nem akartam benne megvalósítani, csak gondoltam jó lesz egy amolyan összefogó dolog, ami az összes modul közös konfigurálását végrehajtja, és elérhetővé teszi a modulok számára. Sajnos a fejlesztése még nincs készen, ahogy egyik modulé sincs, de legalább már jól elkezdtem.

Mint minden modul ez is tartalmaz úgynevezett help szekciót, ami a különböző helyeken megjelenő szövegekért felelős. Ilyen az új tartalom beküldése illetve a modul aktiválás esetén megjelenő szövegek.

A másik fontos dolog a menu. Na ezzel jól el lehet szenvedni. Legalábbis nekem még nem megy, de azért gyosran tanulok. Mint rájöttem, létezik ehhez magyar dokumentáció, ami kicsit bőbeszédűbb az angolnál (bár azért hasznos lett volna ennek elolvasása is), és a példa is kielégítő.

A következő rész, amit még beleépítettem, az az oldalmegjelenítő, ami a különböző starwars modulokat egy közös felületen megjeleníti, közös interface-en.

Ezen kívül van ugye a konfigurációs felület, ami még bővítésre szolgál, és jelenleg épp csak megfelelő. Ugyanis szeretnék itt egy olyan szolgátatást megvalósítani, ami minden egyes tartalom mellé berak egy képet (már ha csatoltak hozzá). Ezt még nem tudom, hogy valósítom meg, de remélem van erre már egy kifinomult API, és nem nekem mell megírni, maximum csak a megfelelő függvényeket beilleszteni.

A starship modul

Na ez már kicsit nagyobb falat lett. Ugyanis nem olyan egyszerű mint az előző. Ugyanis itt már hozzáférések (access, illetve perm) is lettek definiálva a tartalomhoz.

Felfedeztem, hogy mire is jó a link nevű szolgáltatás. Ez a tartalom végéhez odarak linkeket, amikkel további eszközök érhetők el. Ilyen az oldalakra bontott bejegyzés esetén a lapozó, és a hasonló nyalánkságok.

Megjelent itt a form eszköz is, ami az adatok bevitelét hivatott szolgálni elég egyszerűen konfigurálható módon. Ugyanis csak a form_textfield, form_select, form_textarea, és a form_group függvényeket kell meghívogatni, és a program a paraméterek alapján legenerálja a kívánt űrlapot, semmi nagy trükközés nincsen.

Ehhez kapcsolódóan kell az insert, update illetve delete függvény, ami a node alaptípuson tartalmain kívüli elemeket beilleszti az adatbázis megfelelő táblájába illetve felülírja vagy törli a korábbiakat. A db_query függvény formájában ez nem is túl nehéz, ugyanis ez elvégzi helyettünk a megfelelő átalakításokat szöveg illetve szám esetén.

Az utolsó dolog, ami még ide kapcsolódik az a load, ami a már betöltött alap adatokhoz további elemeket fűz hozzá. Ezek olyankor hasznosak, amikor a szerző, dátum, név, leírás stb. információkon kívül további adatokat tárol a tartalomtípus. A node_load esetén a type nevű mezőből kiindulva az adott típusnak megfelelően meghívja a tartalom típus load függvényét is, úgyhogy ezzel nem lesz további gondunk, és úgyis kb. 2 sorban elintézhető az egész.

Ami még fontos egy tartalomtípus esetén az a view, ugyanis ez felelős a tartalom megfelelő megjelenítéséért. Ha a típusunk tartalmaz az alapértelmezetteken felüli mezőket, akkor azt érdemes egy külön függvényben megvalósítani mind az olvashatóság, mind a használhatóság kedvéért. Nálam erre a view_data szolgál, ami a további adatokat megfelelő html körítéssel visszaadja. Ez későbbi fejlesztések esetén lehet hasznos.

Ezen kívül nem árt, ha felkészítjük a tartalmunkat különböző típusú megjelenítésekre. Ilyen az, amikor rövid bevezetőket akarunk kapni a tartalmakról. Erre én a page függvényt vezettem be. Ez felelős mind az önálló oldal, mind pedig felsorolás szerű megjelenítésért. A felsorolást szintén további felhasználhatóság érdekében a page_default függvényben kiviteleztem. Ez több tekintetben hasznos, de a két leglényegesebb dolog: meghatározhatjuk, hogy hány elemet akarunk megjeleníteni egy oldalon, megvalósítható a lapozás (azt még nem tudom hogyan működik pontosan), illetve további körítést csinálhatunk a megjelenítésnek.

Ami még hátra van ezügyben az a weapon modul tartalmainak hozzákapcsolása, amely modul felépítése azonos a starship moduléval ami ezért nem is érdemel további elemzést.

comments powered by Disqus