2010-08-10 7 views
2

Je développe un module pour afficher la vidéo. J'ai créé une vue soi-disant navigation pour l'utilisateur de sélectionner une vidéo à partir d'une liste.Quel est le meilleur moyen d'ajouter un contenu/vue à un nœud?

Maintenant je veux ajouter cette navigation à chaque noeud avec type = 'video'. Je ne sais pas si je devrais créer un gabarit pour cela (alors je dois mettre le fichier gabarit dans le dossier thème qui n'est pas si bon) ou utiliser une sorte de hooks (je n'ai pas encore compris lequel utiliser)?

J'ai essayé d'installer http://drupal.org/project/views_attach, mais la vue est apparue seulement dans le contenu (après le titre) ce qui n'est pas ce que je veux vraiment. Je veux que ce soit sur le titre.

Aidez-nous s'il vous plaît. J'utilise drupal 6 Merci d'avance.

Répondre

0

J'ai enfin trouvé comment implémenter une vue en tant que bloc (il suffit de sélectionner le bloc comme vue de contenu) et J'utilise ce code ci-dessous pour afficher un bloc dans un certain type de nœud

<?php 
    $match = FALSE; 
    $types = array('video'=>1); 

    if ((arg(0) == 'node') && is_numeric(arg(1))) { 
    $node = node_load(arg(1)); 
    $match = isset($types[$node->type]); 
    } 
    return $match 
} 
?> 
0

Il semblerait que vous créiez simplement le bloc de navigation de plusieurs façons, et que vous indiquiez au bloc de ne s'afficher que sur les types de nœuds vidéo utilisant php dans les règles d'affichage. Peut-être que le module menu_block peut vous aider ici.

+0

Voulez-vous dire le hook_block? – w00d

+0

Non il existe un module appelé Bloc de menu qui vous permet d'ajouter facilement la navigation. http://drupal.org/project/menu_block – Kevin

0

Vous pouvez afficher la vue où vous le souhaitez dans votre modèle de noeud avec views_embed_view.

Créez un modèle spécifique pour votre type de noeud vidéo: node-video.tpl.php et insérez la vue où vous le souhaitez.

+0

J'ai déjà vu cette recommandation, et pour des vues simples, cela fonctionne bien. Si votre vue extrait des fichiers css ou js supplémentaires (comme le plugin jcarousel views), views_embed_view dans un fichier tpl arrive trop tard dans la chaîne de génération de pages pour prendre en charge les fichiers à ajouter au balisage de la page. –

+0

@googletop Je suis déjà tombé sur ce sujet, mais comme je l'ai mentionné, je ne veux pas mettre le fichier dans le dossier des thèmes. J'ai écrit un module, donc je veux qu'il soit installable. Si j'utilise un modèle, comment puis-je l'installer sur d'autres sites? – w00d

0

Si vous ne voulez pas le faire via des fichiers modèles, le module Panneaux peut être utilisé pour avoir différentes dispositions par type de nœud. Une fois que vous l'avez installé, créez une variante sous le panneau node_view et restreignez cette variante à sélectionner pour les nœuds de type 'video'