Je travaille dans Drupal 6.Détermination du type de contenu de la page
J'ai besoin d'ajouter un bloc particulier lorsque l'utilisateur est sur une page de blog. Cela semble assez simple, mais ça m'a rendu fou.
Le bloc doit être affiché lorsque l'utilisateur consulte un aperçu de blog ou une entrée de blog individuelle.
J'ai d'abord pensé que je pouvais le filtrer par nom de page afin qu'il n'apparaisse que si page =/blog/. Malheureusement, cela ne s'applique qu'à la page d'aperçu du blog; les pages d'entrée de blog individuelles ont leurs propres URL (la valeur par défaut est/node/ mais sera modifiée en fonction des besoins du propriétaire).
Un peu plus de googler, et j'ai découvert $ node-> type == 'blog' qui devrait prendre en compte le fait que je suis sur une page d'entrée de blog, mais ne semble pas fonctionner.
Dans l'admin/build/block/page configure Je la page visibilité réglée sur le mode PHP et le code PHP comme suit:
<?php
return ($node->type == 'blog');
?>
mais cela ne semble pas fonctionner, même si si je print_r ($ node) dans le template, il affiche type == blog.
J'ai également ajouté strpos ($ _ SERVER ['REQUEST_URI', 'blog') à ce qui précède, mais bien sûr, puisque la première condition ne fonctionne pas, l'ajout de la seconde n'aidera pas.
On dirait qu'il devrait y avoir une réponse évidente, mais je ne peux pas le trouver. Quelqu'un peut m'aider. Merci.
Le code que vous avez semble correct. Vous pouvez également utiliser le module de contexte pour activer les blocs dans certains contextes. La graine de développement a une bonne vidéo à ce sujet. – Keyo
Pour une vue de nœud simple, utilisez $ node = node_load (arg (1)); return ($ node-> type == 'blog'); pour la liste des blogs utiliser blog ou blog/* – Nikit