J'ai un vocabulaire attaché à un type de contenu. Un seul terme peut être sélectionné pour classer un nœud créé avec ce type de contenu. Le vocabulaire est appelé véhicules et a des termes «voitures, camions, bateaux». Le type de contenu est également nommé Véhicules.
J'utilise le chemin auto pour qu'il affiche [vocabulaire: nom] / [terme: nom] donc lors du rendu, il montrera site.com/vehicles/trucks, par exemple, qui montrera tous les camions ... des trucs typiques de Drupal .. D'accord...
Maintenant, j'ai une vue qui est une page avec un chemin «véhicules». Il est configuré pour afficher tous les éléments du type de contenu «véhicules». Cette vue de page est également configurée pour prendre un argument «id de terme de taxonomie».
Notez que lorsque le terme de taxonomie est présent, l'alias d'URL généré pour le chemin de taxonomie est exactement le même que la page Vues avec un argument fourni:
URL Chemin de taxonomie aliasé = véhicules / camions. Pages vues avec argument = véhicules / camions.
C'est exprès. Mon objectif était de montrer tous les résultats de ce type de contenu lorsqu'un argument n'était pas présent, et lorsqu'il était présent, il filtrerait surtout les résultats en fonction de ce terme de taxonomie ET garderait les mêmes champs et la même structure que sans l'argument (identique à site.com/véhicules).
Le problème est que cela ne fonctionne pas comme prévu. site.com/vehicles affiche correctement ma vue et les filtres associés. site.com/vehicles/trucks affiche uniquement la liste de taxonomie régulière et non formatée fournie par Drupal.
Est-ce parce que l'argument ID de terme de taxonomie n'est pas configuré correctement?
Est-ce un problème de poids lorsque des crochets de taxonomie tirent après des vues? Si oui, comment puis-je réorganiser les poids ici afin qu'il se déclenche correctement et me donne les résultats dont j'ai besoin?
Je sais ce que vous allez suggérer - que Views est livré avec la vue taxonomie / terme /% pour remplacer les vues par défaut drupal.
Cependant, cela ne fonctionnera pas dans mon cas. J'ai plusieurs types de contenu, chacun avec son propre vocabulaire et chacun avec sa vue et un ensemble distinct de champs (les maisons et les voitures, par exemple, ont des ensembles de champs très différents). La taxonomie / terme /% fonctionnerait si tous les types de contenu avaient les mêmes champs, alors je pourrais simplement imiter ceux dans cette substitution, mais comme ce n'est pas le cas, comment puis-je obtenir correctement mon chemin avec un argument pour afficher les résultats basés sur ce terme de vocabulaire et garder ma structure de champ?
Désolé si c'était confus. Un lien vers le site pour référence http://www.buyagainbaby.com . Le site utilise actuellement la taxonomie / terme /% comme remplacement, mais encore une fois, cela doit changer pour que chaque vue soit responsable de la façon dont elle rend son jeu de résultats en fonction de la taxonomie.
la source
Je crois qu'il y a plusieurs facteurs à considérer dans votre configuration:
Chaque chemin doit être unique pour accéder à une page, un terme, une vue ou un panneau de page. Si vous avez deux éléments de contenu avec la même adresse, vous perdez le contrôle de l'affichage. Drupal donne la priorité au terme de taxonomie sur les vues afin qu'il ne soit pas appelé. La définition de la vue à l'aide de taxonomie / terme / # interceptera le terme de taxonomie, mais comme vous l'avez indiqué, n'affiche pas d'URL significative.
Les vues ne répondent pas aux alias. C'est parce que la première chose que Drupal fait avec toute demande est de convertir l'alias en une norme de format nœud / nid pour tout le contenu Drupal. Donc, dans votre cas, les véhicules / camions sont convertis au nœud / # affecté à la vue. La vue ne peut pas prendre directement le contexte d'un alias.
Pour obtenir ce que vous voulez, effectuez l'une des opérations suivantes.
Créez un menu avec les rappels définis sur le chemin de votre vue. Cela générera l'URL correcte et permettra à la vue de répondre.
Utiliser les panneaux avec Page Manager (dans Ctools Suite) activé. Si vous définissez un panneau de page défini pour l'URL appropriée, vous pouvez placer votre vue dans le volet de panneau ou transmettre le contexte de la page de panneau directement à un volet de contenu Vues. Un volet de contenu n'a pas de chemin. Au lieu de cela, il prend les contextes tels que le chemin d'accès, défini directement par le panneau de page, pour créer son contenu. Cette série de vidéos sur nodeone.se fait un excellent travail pour montrer comment utiliser efficacement les panneaux et le gestionnaire de pages.
Une autre façon d'obtenir le contenu des vues à l'écran est d'utiliser le module quicktabs . Je ne pense pas que cela corresponde à votre situation spécifique, mais il peut également accéder directement aux vues en sélectionnant les onglets que vous définissez pour une page.
la source
Views a une vue intégrée qui émule et remplace les termes de taxonomie. Activez-le simplement pour remplacer les listes de taxonomie par des vues.
la source
J'ai fait une chose similaire il y a quelques jours. Ma solution n'est pas élégante mais elle fonctionne. Ce que j'ai fait était de remplacer l'affichage du terme de taxonomie en utilisant des panneaux, pas des vues. J'ai ensuite ajouté toutes mes vues différentes pour chaque terme à la zone de contenu des panneaux. Étant donné que dans mon cas, chaque vue possède un filtre qui la limite aux résultats d'un vocabulaire particulier, lorsque vous visitez la page des termes de taxonomie, elle n'affiche que la vue de ce vocabulaire particulier.
Faites-moi savoir si vous avez besoin de plus d'informations sur la façon dont j'ai implémenté cela.
la source
Une excellente solution a été proposée par WebbyKat , pour définir le chemin de votre page au
/taxonomy/term/%
lieu de/categories/%
Cela fonctionne, mais il réécrira tous vos termes dans une seule vue.
la source