node $title $content felülbírálása

szistvan képe

Hi!

Kezdő kérdés, de hirtelen nem találom.. :-(
A node.tpl.php-ben szépen kiíratom a $title és $content változók értékeit. Viszont ezen változók összeállítását szeretném felülbírálni.

Konkrétabban:
Készítettem egy "Település" tartalomtípust, amikor valaki felvisz egy hírt, ebből kell beválasztani, hogy honnan adták fel az adott hírt. (Ehhez készült is egy view, ahol az adott települések hírei listázódnak.)
Namost a $content-ben jelenik meg a "Feladó: település", márpedig én ezt különállóan máshol szeretném elhelyezni.

Hol keresgéljek, mit olvasgassak alaposabban?

Előre is köszönöm a segítséget!

Drupal verzió: 
Fórum: 
aboros képe

ilyeneket keress, hogy template_preprocess_page, template_preprocess_node. ezekkel tudod a .tpl.php -kban elérhető változókat még a tpl előtt megvariálni kedved szerint. rengeteg leírás van róla, keresgélj, itt a d.hun is gyakori téma.

esetleg azt tudom még elképzelni, hogy felraksz egy auto_nodetitle modult és úgy állítod be, hogy a hír title mezője generálódjon a neked kellő minta alapján, tehát automatikusan varrja a megadott cím elé a megadott települést - ezt a node mentésekor fogja csinálni. és akkor nem kell a sminkben bűvészkedni mert már eleve településes node title mentődik az adatbázisba. (persze ez nem biztos, hogy pont jó most neked, csak mondom, hogy lehet ilyet is)

0
0

-
clear: both;

szistvan képe

ezzel próbálnám megbuherálni, de valamit félreérthetek, mert nem jutok előre.
Próbaképp "lebutítottam" és értelmetlenné tettem, csak hogy lássam, működik -e, ezért a template.php-be ezt tettem:

function nagykunsag_preprocess_node($vars) {
	$node = $vars['node'];
   	$vars['content'].="22222";
}

Ha jól értettem mindent, akkor ezzel a node-ok $content-jének végéhez hozzáfűzném a "22222" karakterláncot. A bajom, hogy mindebből persze semit nem látok. :-(
A "nagykunsag" az aktuális smnk neve.

Mit nézek be "ismét"?

0
0
szistvan képe

A gyorsítótárat nem árt törölni.... eh, ehh...

Köszönöm a türelmet!

0
0
szistvan képe

Sajna a változó nem mutat semmit - legalábbis amire én hivatkozom.

function nagykunsag_preprocess_node($vars) {
    $node = $vars['node'];
    $vars['content'].= "2222".$node->field_felado[0]['value']."2222";
}

A Hír típusban a mező neve field_felado, ez hivatkozik a Település tartalomtípus egyedeire.
Hogy tudnám kideríteni, hogy mely node tömbbelemben található a feladó?

0
0
nevergone képe

Ha felteszed a Devel modult, akkor a dsm() vagy dpm() függvénnyel ki tudod íratni a tömb tartalmát. Fejlesztéshez amúgy is hasznos modul ez.

0
0
szistvan képe

A Devel illetve a Theme developer segítségével sikerült kideríteni a tömbelem elérhetőségét. Már csak egy kis igazítás kellet és a node.tpl.php-ben elérhetővé is vált a $telepules változó.
A template.php-be ennyi került:

function nagykunsag_preprocess_node($vars) {
	$node = $vars['node'];
 
	$vars['telepules'] = $node->field_felado[0]['safe']['title'];
}

Köszönöm a segítségeteket és a türelmeteket!!

0
0
szistvan képe

kiderült, hogy a fenti tömbelem "csak" a nevet adja vissza, nekem meg jó lenne a link is.
Azt meg a tömb egy másik eleme tartalmazta:

$vars['telepules'] = $node->field_felado[0]['view'];

Kezdek örülni... ;-)

0
0