views-al letre lehet hozni kapcsolodo oldalak blokkot eleg egyszeruen. Le is irjak vagy szaz helyen.
Vazolnam a lenyeget:
Hozzadok egy block displayt a nezetemhez, majd argumentumnak kivalasztom a taxonomy term ID-t.
itt az "Action to take if argument is not present:" opciónál a "Provide default argument" -et valasztva meg lehet adni php kodot.
jelen esetben ez a következő:
<br> $node=node_load(arg(1)); if($node){ foreach($node->taxonomy as $term){$terms[]=$term->tid;} return implode('+',$terms); }else {return;}
(normalisan nem kel a
csak igy jobban latszik a kod. )
vegül meg bejelölöm a:
"Check Allow Multiple Terms per Argument"-t és a "Check Reduce Duplicates"-t .
Ezzel az argumentum kesz is mar csak ki kell valasztami h mely mezőket jelenitse meg a listaban. Ez legyen a cim linkként.
Ez eddig szep es jo.
Ugy fog müködni hogy megnezi h az eppen megjelenitett node milyen szotarakhoz ill azon belül taxonomia termekhez van hozzaadva és azoknak az id-jat veszi argumentumnak.
pl legyen az alabbi hierarhia ket szotar eseteben (zarojelben az ID)
vocabulary_tipus (az id-ja 2)
- -term_tipus1 (id-7)
- --term_tipus1_altipus (id -8)
- -term_tipus2 (id-9)
vocabulary_arufajta (id-3)
- -term_arufajta_1 (id-10)
- --term_arufajta_1_A_valtozat (id-11)
- --term_arufajta_1_B_valtozat (id-12)
- --term_arufajta_1_A_valtozat (id-11)
- -term_arufajta_2 (id-13)
a fenti nezettel tehat a következőképpen alakul
a megjelenitett tartalom mondjuk az elso szotarbol az elso tipushoz tartozik azon belül a term_tipus1_altipus -hoz (id 8), a masodik szotarbol pedig az elso arufajta A valtozatahoz (term_arufajta_1_A_valtozat , id 11).
A blokkomban a fenti kód lefutasa utan az argumentum 8+11 lesz vagyis megjelenit minden tartalmat ( a cimet linkként ) aminel még a 8 vagy 11 id-jű taxonomiatermek be vannak jelolve.
return implode('+',$terms);
kodreszletben a + jelet vesszőre cserelve az argumenumom a következokeppen valtozik a fenti esetet alapul veve : 8,11
vagyis azokat listazza ahol mindket feltetel egyidoben teljesül.
Ezzel boldog is lehetnék de sajnos nem teljes a dolog mert en olyan listat szertnek aminek az argumentuma ugyancsak a fenti peldat veve 7,10 legyen vagyis a top level term ID-jei adjak az argumentumot.
probaltam megerteni valahogy a szintaxist de sehogy sem sikerült igy nem tudom hogy hivatkozhatnék a felsobb szinten elhelyezkedő term-ek id-jara.
nem vagyok php programozo ezert utannaneztem a foreach meg az implode függvenyeknek s igy nagyjabol sejtem mit csinalnak de sajnos ez nem volt eleg.
ugyanenek a kodsornak van egy masik valtozata is ugyan azt csinalja sajnos abbol sem sikerül kibogozni semmi ertelmeset:
</p> <p>if (arg(0) == 'node' && is_numeric(arg(1))) { $node=node_load(arg(1)); return implode(',', array_keys($node->taxonomy)); } else { return false; }
ebben a foreach($node->taxonomy as $term){$terms[]=$term->tid;}
helyett az array_keys($node->taxonomy)
altal adott ertekeket füzögeti össze vesszővel az implode. ennyit sikerült eddig kifejtenem.
Mar joideje ragodom a dolgon u h minden jótanacsnak örülnék.
elöre is kösz.
gyuri.