Tartalomhoz feltöltött cck kép linkeljen a galériára, ha node_reference mezőben galériát kapcsoltak a tartalomhoz

szantog képe

Kategória: 
snipet

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;
}