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

Kategória: 
Snippet

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

A mező tartalma nem nyilvános.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • Engedélyezett HTML elemek: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Minden email cím át lesz alakítva ember által olvasható módon, vagy (ha a JavaScript engedélyezett) ki lesz cserélve kattintható, de biztonságos hivatkozásra.
By submitting this form, you accept the Mollom privacy policy.