views2 block kapcsolodo tartalmakkal

gyurika képe

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_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' &amp;&amp; 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.