Drupal : afficher les champs CCK dans un block
Par Jérémy Chatard le mardi 10 février 2009
/**
* On teste si l'on se trouve sur
* une URL de type node :
* node/1
* arg(0) = node
* arg(1) = 1 (le nid du noeud)
* !arg(2) pour détecter que nous ne
* ne sommes pas sur le formulaire d'édition
*/
if (arg(0) == "node" && is_numeric(arg(1)) && !arg(2)) {
// Chargement du noeud
$one_node = node_load(arg(1));
// Champs Voir aussi du noeud, ici des liens
// On vérifie que le premier champ n'est pas vide
// car CCK créé toujours une première valeur, même
// s'il n'y a rien dedans.
if ($one_node->field_voir_aussi[0]["url"] != "") {
// Pour chacun des liens de notre noeud
foreach ($one_node->field_voir_aussi as $link) {
// On extrait les attributs du lien
$options = array(
'attributes' => unserialize($link["attributes"]))
);
// On l'ajoute dans la chaîne
$links .= "\t<li>" . l($link["title"], $link["url"], $options . "</li>\n";
}
}
// On vérifie que notre chaîne de caractères
// n'est pas vide
if (trim($links)) {
// On construit le début de la structure HTML
// qui va autout des liens
$output .= "<ul>\n";
$output .= $links;
// On referme notre liste
$output .= "</ul>";
// On affiche notre liste de liens
print $output ;
}
}