Már rövid időn belül kétszer is volt hasonló kívánság, levésem gyorsan, hogyan is praktikus.
Szóval a feladat: Van egy hír, vagy egy esemény tartalomtípus. Van galériakezelés is az oldalon, az kvázi most mindegy milyen, a lényeg, hogy a galéria egy node, amire a hír vagy az esemény tartalomtípusban node_reference -szel lehet hivatkozni.
Van ám ezekben a tartalomtípusokban egy vezérkép nevű cck mező, ami a tartalom fő illusztrációja. Tehát a lényeg, hogy a tartalom teljes nézetében ez a kép mutasson a galériára.
Fontos, hogy a node_reference-ből egy tartalomhoz egyet lehet csak kapcsolni, ha többet lehetne, az már gyakorlatilag usability fail, hiszen ilyenkor melyikre mutasson a kép?
Pláne, hogy konkrétan esetemben a képhez egy cck mezőcsoportban hozzá is lett pattintva a node_reference. Szóval azt eleve feltételezzük, hogy csak egy szem node_reference-ünk van.
Akkor most szedjük elő a sminkünk template.php-jét, és csapjunk hozzá egy preprocess-t:
function SMINKNEVE_preprocess_content_field(&$vars) { if ($vars['field_name'] == 'field_KEP_MEZO_NEVE' && $vars['page']) { if (isset($vars['node']->field_NODE_REF_MEZO_NEVE)) { foreach ($vars['items'] as &$item) { $node = node_load($vars['node']->field_NODE_REF_MEZO_NEVE['0']['nid']); $item['view'] = l($item['view'], 'node/' . $node->nid, array('attributes' => array('title' => $node->title,), 'html' => 'TRUE',)) ; } } } return $vars; }
Hozzászólások
Én eztet a node.tpl-ben
Én eztet a node.tpl-ben csináltam meg, úgy hogy csak egy node reference mezőt használtam a galériára.
<?php
if ($field_kapcsolodo_galeria[0]['nid']) {
foreach ($field_kapcsolodo_galeria as $value) {
$galeria = node_load($value[nid]);
$galeria = node_build_content($galeria);
print l(theme('imagecache', szovegkep, $galeria->field_kepek[0]['filepath']), url("honlapom/node/".$galeria->nid), array('html' => TRUE));
}
}
?>
Hozzászólás