PHP programozóként feladatot kaptam, amiben egy közepesen összetett oldalt kell összeraknom Drupalban. Sajnos a Drupalt nem ismerem (tulajdonképpen minden CMS-t kerülök.. de most ez a feladat).
Gondoltam a tartalomszervezési problémakörre megfelelő megoldás lehet a taxonómia szerinti tartalom szétosztás, ehhez jelentős segítség Illyés Edith megfelelő írásai.
Olyan furcsaságot tapasztalok, hogy ha egy taxi linkre megy a navigáció, akkor (nekem) furán hívódnak meg a tpl fileok.
A próba kedvéért:
- sites/all/themes/sajat/node.tpl.php csak ennyit tartalmaz: "node.tpl.php"
- sites/all/themes/sajat/taxonomy-term.tpl.php csak ennyit tartalmaz: "taxonomy-term.tpl.php"
Ekkor ha elnavigálok a /taxonomy/term/2 linkre a következőt kapom a tartalom részbe:
taxonomy-term.tpl.php
node.tpl.php
node.tpl.php
node.tpl.php
Azaz betöltődik a taxonomy-term.tpl.php, és háromszor (!) a node.tpl.php. Három cikkhez van hozzárendelve az adott címke, na de miért a node.tpl.php hívódik ennyiszer? Ez alalpján azt látom megoldásnmak, hogy a node.tpl.php-ban leviszgálom, hogy a taxonomy.tpl.php be lett-e töltve, és ha igen, akkor return(0). Előtte persze végig iterálni az adott címkéhez tartozó cikkeken. De ez nem hiszem hogy így kellene működjön; valamit elbaltázok. Minden ötletet szívesen veszek, köszönettel
A node.tpl.php akkor hivodik
A node.tpl.php akkor hivodik meg amikor egy node entity-t akarsz lerenderelni. Amikor taxonomy oldalra mesz alapvetoen az tortenik, hogy azok a node-ok renderelodnek ki amik ebbe benne vannak.
Tehat ha van harom node a term-be akkor a harom node objektumra meghivodik a template fajl ami kigeneralja a "teaser" modjat a node-nak.
Persze a template retegrol baromi sokat lehetne beszelni (https://drupal.org/node/337173), de alapjaban kb ez a kulcsa a problemadnak...ugyhogy nincs gaz, jol mukodik hogy ennyiszer irja ki a node.tpl.php string-et ;)
Hosszu Kálmán
http://twitter.com/kalmanhosszu
http://www.kalman-hosszu.com/
http://premiumcmsthemes.com/