Comment imprimer le nœud de la taxonomie dans un bloc?
Je voudrais imprimer la taxonomie de termes (champ de field_tags
) dans un bloc sur un nœud de l'affichage de la page (dans un thème Zen).
Donc ce que j'ai fait a été.
template.php
function michal_preprocess_block(&$vars, $hook) {
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
$node = node_load(arg(1));
$vars['node'] = $node;
$vars['node_field_tags'] = $node->field_tags;
$vars['node_content_field_tags'] = $node->content['field_tags'];
}
}
Cependant, lorsque j'essaie d'imprimer en block.tpl.php
, aucun de ces 2 variables de sorties taxonomie de termes du domaine.
print render($node_content_field_tags);
print render($node_field_tags);
Connaissez-Vous un Drupal fonction de rendre une taxonomie termes de champ?
MODIFIER 13.01.2011, 00:21
Que j'ai compris (à partir de cette, cette et que) le processus le code devrait ressembler plus ou moins comme ceci
$node = node_load(arg(1));
$node_view($node) //Generates an array for rendering a node, see http://api.drupal.org/api/drupal/modules--node--node.module/function/node_view/7
$vars['node'] = $node;
et puis dans le block.tpl.php
:
render($node->content['field_tags']);
$Noeud->le contenu est nul, cependant.
Savez-Vous ce que je suis absent?
ne pouvez-vous pas simplement créer une vue pour afficher la taxonomie contenu dans le bloc au lieu de modifier le modèle?
Salut, malheureusement, j'ai besoin d'avoir dans le code.
Salut, malheureusement, j'ai besoin d'avoir dans le code.
OriginalL'auteur Michał Pękała | 2011-01-11
Vous devez vous connecter pour publier un commentaire.
En fait, ce peut être plus facile est le code suivant dans votre prétraiter:
Et puis utilisez la commande suivante dans votre modèle:
OriginalL'auteur Dave Reid
Tout d'abord, vous devez vérifier que le prétraitement de la fonction est en cours d'exécution et que le cache n'est pas de jouer avec vous. Ensuite, vous pouvez essayer d'inspecter les variables. Je ne pense pas que vous pouvez utiliser
render()
sur le$node->field_tags
et je ne suis pas trop sûr de$node->content['field_tags']
.Inspecter les variables de vous aider à comprendre, devel fonctionne très bien pour Drupal 7 et peut vous y aider.
$node->content['field_tags']
(si je me souviens bien) donne la matrice des termes que je peux extraire et mettre en forme bien sûr, mais je cherchais plus une fonction intégrée qui devrait permettre d'obtenir un standard de sortie pour une taxonomie du domaine. Quelque chose de semblable àrender()
. --> je vais Peut-être enquêter sur la manière dont les vues considère de tels champs.Vous voudrez probablement utiliser
theme('field', $varaibles)
pour le champ pour une norme de balisage génération.merci. C'était sans doute cela. Pourriez-Vous me donner un exemple d'appel?
theme('field', $node->field_tags)
manque de quelque chose et api.drupal.org/api/drupal/includes--theme.inc/function/theme/7 c'est assez clair pour moi. Avant, je n'ai thématisation par l'extraction de valeurs brutes à partir d'un tableau, mais une nouvelle résolution de l'année, j'aimerais faire le Drupal. 😉OriginalL'auteur googletorp
Vous pouvez également consulter l' CCK Blocs module. Il crée un bloc qui s'affiche à côté de chaque nœud (si il a un contenu), et ajoute que le bloc de la liste de rendu des destinations pour chaque champ, tout comme 'teaser' et 'full' et 'rss'.
Il ne peut pas avoir tout le contrôle que vous voulez, mais il pourrait être un bon endroit pour commencer.
OriginalL'auteur Eaton
J'ai trouver la solution que je cherchais:
mytheme_preprocess_block() dans template.php*
.
block.tpl.php
OriginalL'auteur Michał Pękała