filtrer une vue de taxonomie par terme

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

Je bloque depuis quelques jours sur une vue sans trouver de solution.
Voici mon problème. je suis en train de créer un site pour mettre mes recettes de cuisine. J'ai deux parties principales, mes recettes et un blog. J'utilise dans les deux cas la taxonomie pour pouvoir filtrer mes résultats. Dans les recettes je peux filtrer par type de recette (apéro, entrée, plat, dessert) et par ingrédient. Dans le blog j'ai un vocabulaire classique tags.
j'ai créé deux vues pour ma taxonomie. Une qui filtre le vocabulaire type de recette et ingrédients et l'autre les tags.
Je n'avais pas de problème lorsque j'avais qu'une vue sur ma taxonomie mais depuis que j'ai ajouté la deuxième mes filtres ne fonctionnent que sur la dernière vue enregistré.

Voici comment j'ai procédé :

J'ai un block pour chaque terme de taxonomie qui pointe vers la page qui liste les nodes de taxonomie.

un exemple d'url pour le bloc ingrédients
/ingredients/poulet

Pour le bloc Type de recette
/type-de-recette/entree

Et pour le bloc tags
/tags/recette

J'ai deux vues page pour ma taxonomie ou je ressort dans la 1ère les nodes qui ont pour type "Recette de cuisine" et l'autre les node de type "Blog"
Au niveau du chemin j'ai laissé /taxonomy/term/% pour les deux. J'ai bien essayé le chemin tags/% pour la vue avec le vocabulaire tags mais cela ne fonctionne pas.
Sur chaque vue j'ai ajouté un filtre contextuel "Contenu: Has taxonomy term ID"

Cela fonctionne pour les deux vues mais seule la vue enregistré en dernière fonctionne l'autre dans ce cas ne retourne aucun résultat.

Voici une de ma vue pour le type "Recette de cuisine" :

$view = new view;
$view->name = 'taxonomie_ingr_dients';
$view->description = 'Vue des recettes de cuisine avec un vocabulaire';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Taxonomie Recette de cuisine';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially /

/ Display: Master /
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Recettes de cuisine';
$handler->display->display_options['access']['type'] = 'none';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Réinitialiser';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['hide_empty'] = 0;
$handler->display->display_options['row_options']['default_field_elements'] = 1;
/
Champ: Contenu: Images /
$handler->display->display_options['fields']['field_recette_images']['id'] = 'field_recette_images';
$handler->display->display_options['fields']['field_recette_images']['table'] = 'field_data_field_recette_images';
$handler->display->display_options['fields']['field_recette_images']['field'] = 'field_recette_images';
$handler->display->display_options['fields']['field_recette_images']['label'] = '';
$handler->display->display_options['fields']['field_recette_images']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['external'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['field_recette_images']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['field_recette_images']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['trim'] = 0;
$handler->display->display_options['fields']['field_recette_images']['alter']['html'] = 0;
$handler->display->display_options['fields']['field_recette_images']['element_type'] = 'p';
$handler->display->display_options['fields']['field_recette_images']['element_class'] = 'imgRecette';
$handler->display->display_options['fields']['field_recette_images']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_recette_images']['element_wrapper_type'] = '0';
$handler->display->display_options['fields']['field_recette_images']['element_default_classes'] = 0;
$handler->display->display_options['fields']['field_recette_images']['hide_empty'] = 0;
$handler->display->display_options['fields']['field_recette_images']['empty_zero'] = 0;
$handler->display->display_options['fields']['field_recette_images']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['field_recette_images']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_recette_images']['settings'] = array(
  'image_style' => 'recette_630x230',
  'image_link' => 'content',
);
$handler->display->display_options['fields']['field_recette_images']['group_rows'] = 1;
$handler->display->display_options['fields']['field_recette_images']['delta_limit'] = '1';
$handler->display->display_options['fields']['field_recette_images']['delta_offset'] = '0';
$handler->display->display_options['fields']['field_recette_images']['delta_reversed'] = 0;
$handler->display->display_options['fields']['field_recette_images']['separator'] = '';
$handler->display->display_options['fields']['field_recette_images']['field_api_classes'] = 0;
/
Champ: Contenu: Titre /
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['exclude'] = TRUE;
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['external'] = 0;
$handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['title']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['element_wrapper_type'] = '0';
$handler->display->display_options['fields']['title']['element_default_classes'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/
Champ: Contenu: Nombre de commentaires /
$handler->display->display_options['fields']['comment_count']['id'] = 'comment_count';
$handler->display->display_options['fields']['comment_count']['table'] = 'node_comment_statistics';
$handler->display->display_options['fields']['comment_count']['field'] = 'comment_count';
$handler->display->display_options['fields']['comment_count']['label'] = '';
$handler->display->display_options['fields']['comment_count']['alter']['alter_text'] = 1;
$handler->display->display_options['fields']['comment_count']['alter']['text'] = '<h2>[title]</h2>
<p class="commentRecette"><em>[comment_count]</em></p>';
$handler->display->display_options['fields']['comment_count']['alter']['make_link'] = 1;
$handler->display->display_options['fields']['comment_count']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['external'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['comment_count']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['comment_count']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['trim'] = 0;
$handler->display->display_options['fields']['comment_count']['alter']['html'] = 0;
$handler->display->display_options['fields']['comment_count']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['comment_count']['element_wrapper_type'] = '0';
$handler->display->display_options['fields']['comment_count']['element_default_classes'] = 0;
$handler->display->display_options['fields']['comment_count']['hide_empty'] = 0;
$handler->display->display_options['fields']['comment_count']['empty_zero'] = 0;
$handler->display->display_options['fields']['comment_count']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['comment_count']['separator'] = '';
$handler->display->display_options['fields']['comment_count']['format_plural'] = 0;
/
Sort criterion: Contenu: Post date /
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/
Contextual filter: Contenu: Has taxonomy term ID /
$handler->display->display_options['arguments']['tid']['id'] = 'tid';
$handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_index';
$handler->display->display_options['arguments']['tid']['field'] = 'tid';
$handler->display->display_options['arguments']['tid']['default_argument_type'] = 'taxonomy_tid';
$handler->display->display_options['arguments']['tid']['default_argument_options']['term_page'] = 1;
$handler->display->display_options['arguments']['tid']['default_argument_options']['node'] = 1;
$handler->display->display_options['arguments']['tid']['default_argument_options']['limit'] = 1;
$handler->display->display_options['arguments']['tid']['default_argument_options']['vocabularies'] = array(
  'ingredients' => 'ingredients',
  'type_de_recette' => 'type_de_recette',
  'tags' => 0,
);
$handler->display->display_options['arguments']['tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['tid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['tid']['add_table'] = 0;
$handler->display->display_options['arguments']['tid']['require_value'] = 0;
$handler->display->display_options['arguments']['tid']['reduce_duplicates'] = 0;
$handler->display->display_options['arguments']['tid']['set_breadcrumb'] = 0;
/
Filter criterion: Contenu: Type /
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'recette_de_cuisine' => 'recette_de_cuisine',
);
/
Filter criterion: Contenu: Published or admin /
$handler->display->display_options['filters']['status_extra']['id'] = 'status_extra';
$handler->display->display_options['filters']['status_extra']['table'] = 'node';
$handler->display->display_options['filters']['status_extra']['field'] = 'status_extra';

/ Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'taxonomy/term/%';
$translatables['taxonomie_ingr_dients'] = array(
  t('Master'),
  t('Recettes de cuisine'),
  t('more'),
  t('Apply'),
  t('Réinitialiser'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('Items per page'),
  t('- All -'),
  t('Offset'),
  t('<h2>[title]</h2>
<p class="commentRecette"><em>[comment_count]</em></p>'),
  t('.'),
  t('Tous / Toutes'),
  t('Page'),
);

Version de Drupal :