Submitted by drupalfrance on
Je voudrais implémenter le fonctionnement suivant avec une View :
- Quand je vais sur ma vue par défaut (sans argument ; url = http://monsite.com/vue), je vois un texte de présentation, et rien d'autre.
- Quand je passe des arguments à ma vue (url = http://monsite.com/vue/2006/12), j'affiche les nodes correspondants.
Je construis donc une vue avec arguments, je mets mon texte de présentation dans Header, mais comment faire pour que ma vue n'affiche strictement rien (d'autre que mon texte de présentation) lorsqu'elle n'a pas d'arguments ?
En effet, mes options lorsque les arguments sont activés mais qu'aucun n'est présent, sont d'afficher :
- Une erreur 404 (Page Not Found) ==> NE CONVIENT PAS
- Tous les nodes (All Values) ==> NE CONVIENT PAS
- Un résumé (Summary) ==> NE CONVIENT PAS
- Le contenu du champ "Empty Text" ==> POURRAIT CONVENIR, sauf que dans mon cas, ce champ DOIT contenir qqchose (et quand bien même j'utiliserais cette option, j'obtiens un message d'erreur)
Comment faire pour ne rien n'afficher du tout ? (bien sûr je pourrais tjours faire 2 pages séparées : la page de présentation et la view...)
et si dans le champ 'empty
Permalien Soumis par yched@drupal.org le 26 Janvier, 2007 - 18:37
et si dans le champ 'empty text' tu ne mets qu'un espace ?
ou du code html commenté ?
Bon, le message d'erreur, je sais pas trop...
J'allais te proposer la
Permalien Soumis par Damien Tournoud le 26 Janvier, 2007 - 19:28
J'allais te proposer la deuxième option : créer une page et l'associé avec un alias à l'url /vue.
et avec le module panels ?
Permalien Soumis par kalis1@drupal.org le 26 Janvier, 2007 - 22:40
et avec le module panels ?
Merci pour vos réponses
Permalien Soumis par drupalfrance le 27 Janvier, 2007 - 08:30
Merci pour vos réponses !
Les 3 solutions ont leurs avantages et leurs inconvénients :
Empty Text
Ca aurait pu marcher, mais je perds la fonctionnalité Empty Text, i.e. afficher un message personnalisé au cas où la vue ne trouve rien à afficher. C'est peu probable, donc pas trop gênant, mais si je l'utilise j'obtiens un msg d'erreur (voir plus bas), apparemment lié à l'utilisation du module i18n avec Views sur le site en question.
Page séparée
Là encore, ça aurait pu marcher : en effet, si je crée une page séparée avec l'alias "vue", mes URL fonctionnement bien de la façon suivante :
- vue ==> Renvoie vers la page
- vue/85 ==> Renvoie vers la vue
- vue/32 ==> Renvoie vers la vue
Autrement dit, l'alias "vue" est prioritaire sur la View "vue". On y presque, sauf que ça perturbe cpt le système de menu de Drupal, qui en gros perd la position de la page de présentation dans le menu (note : je pourrais tjours la rattacher au menu via le code).
Panels
J'imagine que tu veux dire un panel avec 2 "zones", 1 pour le texte de présentation, et 1 pour la vue. Mais dans ce cas, je retombe dans le 1er cas de figure : même si le texte de présentation n'est plus sur ma vue directement, ma vue elle, affiche toujours qqchose...
En tout cas, un grand merci. Je reconnais que je chipote, car il existe des solutions, même si elles sont moins élégantes/pratiques.
Cela dit, c'est un cas de figure assez fréquent quand on fait des sites : page d'intro de rubrique qui n'affiche qu'un texte de présentation, et quand on sélectionne des sous-rubriques (arguments) la page affiche les contenus (nodes) correspondants...
Message d'erreur généré par "Empty Text" :
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN i18n_node i18n ON node.nid = i18n.nid WHERE (i18n.language ='en' OR i1' at line 1 query: LEFT JOIN i18n_node i18n ON node.nid = i18n.nid WHERE (i18n.language ='en' OR i18n.language ='' OR i18n.language IS NULL) in /home/felisite/public_html/prod/cestquilechef.com/includes/database.mysql.inc on line 121.