J'ai besoin de créer quelque chose de similaire comme ceci:
Couleurs (Vocabulaire)
(Les puces sont des tirets.)
Existe-t-il un moyen de le faire avec Drupal 7 et vues 3? Sinon, existe-t-il un autre moyen de le faire?
Grâce à refino, j'ai trouvé une belle solution en utilisant les modules suivants:
Vous trouverez ci-dessous l'explication:
J'espère que cette aide
À votre santé
Modifier par iStryker : C'est ce que j'ai obtenu. La seule chose que j'ai changé était de créer Element View une vue de table et de supprimer les classes par défaut (ligne et bande).
J'ai créé trois vues dans Drupal 7.8 et Views 3 + Views Field, imbriquant une vue dans une autre en utilisant Include View, et j'ai obtenu un tel résultat (ci-joint).
Étape par étape:
Créez le vocabulaire "Couleurs" et remplissez-le avec des balises.
Créer une nouvelle vue des nœuds de taxonomie Couleurs - je l'appelle "Nœuds de couleurs"
2.1 Format du tableau, paramètres: champ de regroupement: terme de taxonomie: nom
2.2 Filtres contextuels avancés: terme de taxonomie: terme parent
2.3 Relations avancées: terme de taxonomie: contenu utilisant la couleur
2.4 Définir les champs: Terme de taxonomie: ID de terme, Terme de taxonomie: Nom, (field_color) Contenu: Titre
2.5 Critères de filtrage: Terme de taxonomie: Vocabulaire (= Couleurs)
2.6 Si vous le souhaitez, vous pouvez également définir "Exclure de l'affichage" pour ID de terme, terme de taxonomie: nom
2.7 Définir le chemin:/nœuds-de-couleurs /%
2.8 Définir un comportement sans résultat: Global: zone d'affichage (nous y reviendrons plus tard) 2.9 enregistrer
3.Créez une nouvelle vue des nœuds de taxonomie Couleurs - je l'appelle "Nodes of Colors 2"
3.1 Format du tableau, paramètres: champ de regroupement: aucun
3.2 Filtres contextuels avancés: terme de taxonomie: ID de terme
3.3 Relations avancées: terme de taxonomie: contenu utilisant la couleur
3.4 Définir les champs: Terme de taxonomie: ID de terme, Terme de taxonomie: Nom, (field_color) Contenu: Titre
3.5 Critères de filtrage: Terme de taxonomie: Vocabulaire (= Couleurs)
3.6 Si vous le souhaitez, vous pouvez également définir "Exclure de l'affichage" pour ID de terme, terme de taxonomie: nom
3.7 Définir le chemin:/nœuds-de-couleurs-2 /%
3.8 Définir un comportement sans résultat: Global: aucun
3.9 Enregistrer
Revenez en arrière et modifiez à nouveau "Nodes of Colors"
4.1 allez à Définir un comportement sans résultat: Global: Afficher la zone
4.2 Définir la vue pour insérer: Vue: nœuds_des_coleurs2 Affichage: page
4.3 Définir les filtres contextuels hérités
4.4 enregistrer
5 Revenez à nouveau aux vues (type de terme)
5.1 Créer une nouvelle vue des nœuds de taxonomie Couleurs - je l'appelle "Arbre des couleurs"
5.1 Format du tableau, paramètres: champ de regroupement: aucun
5.2 Filtres contextuels avancés: aucun
5.3 Relations avancées: terme de taxonomie: terme parent
5.4 Définir les champs: Terme de taxonomie: ID de terme, Terme de taxonomie: ID de terme, Terme de taxonomie: Nom, Vue: Inclure la vue (Inclure la vue)
5.5 Critères de filtrage (1): Terme taxonomique: Vocabulaire (= Couleurs)
5.6 Critères de filtrage (2): (Parent) Terme de taxonomie: Terme
5.7 Si vous le souhaitez, vous pouvez également définir "Exclure de l'affichage" pour l'ID de terme et une étiquette de vue Inclure
5.8 Définir le chemin:/colors-tree
5.9 Définir un comportement sans résultat: aucun
5.10 sauvegarder
... et ça devrait être ça, enfin.
Je n'ai pas essayé la version D6 ou D7 de moi-même mais j'ai pensé que je le mentionnerais au cas où ce serait ce que vous recherchez: Module d'arborescence de vues - Progression D7
Edit : Il existe maintenant une version D7, consultez la page d'accueil du module Vues Tree
Si vous souhaitez obtenir la vidéo à partir de l'URL, utilisez le code suivant.
$vid = $_GET['vid'];
$tid = 0;
$level = 0;
print taxonomy_tree($vid, $tid, $level);
function taxonomy_tree($vid, $tid = 0, $level) {
$children = taxonomy_get_children($tid, $vid);
$output = '';
if ($children) {
$output .= '<ul>';
foreach ($children as $child) {
$level++;
$output .= '<li class="taxonomy-tree-lvl' . $level . ' ">';
print $level;
$output .= l($child->name, 'taxonomy/term/'. $child->tid) . '(' . taxonomy_term_count_nodes($child->tid) . ')';
$output .= taxonomy_tree($vid, $child->tid, $level);
$output .= '</li>';
$level--;
}
$output .= '</ul>';
}
return $output;
}
Ou utilisez le code suivant.
$vocabulary = taxonomy_vocabulary_load(2);//Here pass the vid
print $vocabulary->name;
$vid1 = $_GET['vid'];
if(!$vid1) {
$vid1 = 2;
print 'empty';
}
$vid = 2;
$parent = 0;
print get_child_terms($parent, $vid1);
function get_child_terms($parent, $vid) {
$sql = "SELECT td.tid, td.vid, td.name"
. " FROM {term_data} td"
. " JOIN {term_hierarchy} th on th.tid = td.tid"
. " WHERE th.parent = %d"
. " AND td.vid = %d"
. " ORDER BY td.weight, td.name";
$terms = db_query($sql, $parent, $vid);
$output = "";
while ($aterm = db_fetch_object($terms)) {
$output .= "<li>";
$output .= l("$aterm->name", "taxonomy/term/$aterm->tid/all") . " ("
. taxonomy_term_count_nodes($aterm->tid) . ")</li>\n"
. get_child_terms($aterm->tid, $vid);
}
return ($output != "") ? "<ul style='list-style-type: none;
margin: 0px 0px 0px 20px;
padding: 0px;'>\n". $output ."</ul>\n" : "";
}
Vous pouvez utiliser le module menu Taxonomy . Voici une citation à ce sujet (à partir de la page du projet du module):
Transforme facilement vos vocabulaires taxonomiques en menus!
Fonctionnalités:
- Menu personnalisé par vocabulaire
- Utilise le chemin du terme de taxonomie par défaut ou des chemins personnalisés
- Intégration avec les vues
- Intégration avec Pathauto: utilisez des alias d'URL/chemin
- N'interfère pas avec les autres modules de menu
Bien sûr, il y a:
Créez une vue listant les nœuds à partir de ce type de contenu, avec filtre contextuel :
ou "Contenu: A un ID de terme de taxonomie (avec profondeur)" - si vous souhaitez répertorier les nœuds affectés à un terme spécifique ainsi qu'à ses termes enfants.
Dans ce cas, dans la configuration du filtre, vous devez définir la profondeur - combien de niveaux en dessous (ou au-dessus) vous voulez que ce filtre fonctionne.
Ensuite, en supposant que l'URL de votre vue est http://mysite.com/myview et 'Red' tid = 1, si vous allez sur http://mysite.com/myview/1 il vous listera tous les nœuds affectés à l'un des termes "rouge", "foncé" et/ou "clair".
Je pense avoir trouvé une autre façon de résoudre ce problème, et je pense que c'est plus simple que le reste de ces solutions. Il n'implique aucun module supplémentaire et vous n'avez besoin que d'une seule vue.
En supposant que vous avez créé un vocabulaire hiérarchique à deux niveaux (couleurs) et un type de contenu avec une référence de terme à ce vocabulaire, procédez comme suit:
Taxonomy term: Content using Color
et (2) Taxonomy term: Parent term
Title
(choisissez field_color
dans "Relation" et nécessite cette relation), (2) Taxonomy term name
(ne pas utiliser de relation et exclure de l'affichage) (3) Taxonomy term name
(oui, encore une fois, choisissez cette fois Parent
pour la relation et excluez de l'affichage).(Parent) Taxonomy term: Name
, (2) Taxonomy term: Name
Terminé. Si vous avez plus de deux niveaux, ajoutez simplement une autre relation de parent en utilisant Parent comme relation de la relation.
EDIT: si vous n'avez pas besoin de la relation, vous vous retrouverez avec des dupes. Les parents seront répertoriés deux fois s'ils ont des termes enfants référencés par des nœuds. Donc, cela limite un peu la réponse en termes de niveau supérieur sans nœuds qui la référencent ne s'afficheront pas. De plus, comme le tri est probablement important, avoir du contenu référençant un terme de niveau supérieur pourrait vous poser des problèmes en fonction des besoins d'affichage.
J'essaie d'accomplir la même chose, mais je n'ai pas trouvé beaucoup de choses disponibles dans D7. Blocs de taxonomie le module le fait dans un bloc - pas des vues.