Hali
A tegnap esti szívásomat közreadom, hátha valaki megtudja magának spórolni azt a 2-3 órát (közben olvastam mást is).
Szerettem volna egy olyan modult készíteni ami nem csak 1 hanem több node típust is definiál.
A node_example.module -ból indultam ki. Nagy szerűen megmutatja azt hogy hogyan lehet egyet definiálni.
Ha csak 1 van akkor nincsen szükség a mymodule_node_type() kampóra, csupán a mymodule_node_name() visszatérési értéke legyen a típus lokalizált neve.
return t('a tartalom típus neve');
A node típus adatbázisban eltárol értéke a modul neve lesz.
tehát a $node->type értéke 'mymodule' lesz.
A node_example csak annyit ír, ha több típust is akarsz akkor szükség van a mymodule_node_type()
függvényre is, aminek egy tömböt kell visszaadnia, a típusok felsorolásával.
A trükk az egészben az, hogy sehol (nem találtam) nem írnak arról hogy kötött formája van a típus megnevezésnek.
modulneve kötőjel megnevezé
mymodule-t1
a kötőjel utáni rész szabadon választott, viszont az egész nem lehet hosszabb mint 16 karakter, ugyanis ennyi az adatbázis mező mérete.
Több node típus esetén a mymodule_node_name() is változik.
function mymodule_node_name($node) {
$case='';
switch(GetType($node)){
Case 'string':$case = $node; Break;
Case 'array' :$case = $node['type'];Break;
Case 'object':$case = $node->type; Break;
}//switch
switch ($case) {
case 'mymodule-t1':return T('My node type 1');break;
case 'mymodule-t2':return T('My node type 2');break;
DEFAULT:
//echo $node."