[Résolu] problème de bloc contextuel

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,

Module installé : views-7.x-3.3 (Drupal 7.14.)

Je m'explique : J'ai créé une vue listant des actualités (date + titre.)
Je souhaiterais ajouter au dessus de cette vue, un bloc affichant une actualité complète
en fonction de l'ID définit dans l'URL lorsque l'on clique sur une actu de la liste (l'url sera de la forme « actualite-NID/blablabla ».)
Or au lancement de la vue (lien ACTUALITES dans menu principal) l'url ne contient pas de NID, donc j'aimerais aussi que, par défaut, la dernière actualité en date s'affiche.

Je pense savoir que cela se passe du côté des filtres contextuels de mon bloc,
mais je ne comprend pas comment configurer ma liste et ce bloc
pour qu'il travaille ensemble...

Une bonne âme aurait-elle un moment pour m'aiguiller ?

Merci d'avance,
Fabien

Version de Drupal : 

Pas sur de bien comprendre, mais en affichant la liste des dernières actualités de manière chronologique inverse, tu obtiens bien la dernière actualité en haut de ta liste. Ce n'est pas exactement ce que tu veux, mais c'est le cas d'utilisation le plus répandu !

Bonjour,
En fait il s'agit de 2 vues différentes.
L'une affiche la liste complète des actus du site
et l'autre affiche 1 actu complète seule.
Je souhaite que ces deux vues "travaillent" ensemble.

Scénario :
-> je clique sur la rubrique "actualités"
-> la page affiche la liste (juste date + titre) de toutes mes actus
avec en tête la dernières actus (affichage complet.)
-> Ensuite, lorsque je clique sur une actu de la liste, l'actu en tête change pour afficher l'actu sélectionnée.

Je me perd un peu dans la configuration des filtres contextuels.
De plus les URLs des actus de ma liste me renvoient vers le noeud, et non la page de la vue...

Est-ce plus clair ?

Je ne demande pas LA solution, mais au moins une voie, un principe.

Merci,
Fabien

  • Pour la liste principale de toutes les actualités, tu crées une vue "page" en triant par ordre chronologique inverse.
  • La page que t'affiches lorsque tu cliques sur un lien de ta vue précédente est la page d'une actualité (node/nid), a laquelle t'ajoutes une vue "block" en dessous, qui correspond a la liste de toutes les actualités sauf celle du node affiché sur la page. Pour éviter que l’actualité affichée sur ta page ne s'affiche aussi dans ta liste, il faut rajouter un filtre contextuel "nid" et l'exclure de la requête (une des dernière options dans le filtre).

Ok, donc :
1 - je crée une page/vue "actualités" (lien en menu principal) avec la liste de toutes mes actus
2 - je créé un bloc "actu par défaut" (la dernière en date) que je place sur la partie haute de cette page.
3 - je créé un bloc/vue de la liste de toutes mes actus, que je place dans la partie basse des nœuds "actualités".

Tout cela fonctionne, et je comprend quasiment ce qu'il se passe.
Mais. Mon bouton "actualités" dans le menu principal ne "s'allume" pas (non actif) du coup, lorsque je suis dans l'affichage du nœud et non de la vue (ci-dessus 1).
Et je ne comprend pas comment exclure du bloc (ci-dessus 3), l'actu correspondant à l'ID dans l'URL.

J'espère être clair.
Merci,
Fabien

La vue 2 n'est pas utile puisque votre vue 1 vous permet déjà d'avoir la dernière en date en haut en filtrant par date de publication.
Dans les filtres contextuels de votre vue 3, cherchez l'identifiant du contenu (nid) et configurez le (quand le filtre n'est pas disponible -> valeur par défaut: id de l'url et tout en bas de la configuration du filtre contextuel de mémoire, cochez "exclure").

Quand vous êtes sur un noeud actualité, votre lien "actualités" ne s'"allume" pas car Drupal n'a aucun moyen de savoir qu'un noeud actualité est un sous-ensemble de votre page d’actualité. Il y a un moyen simple de le faire dans un module "custom" mais avec des modules en contribution, je ne peux pas vous dire.

Pour que le lien s'allume, j'ai une idée, mais bof...
Je créé une autre page/vue dont le chemin sera "actualites/%".
Mais du coup je ne passe plus par le "vrai" nœud.
Cela m'embête un peu. Je ne sais pas...
N'existe t-il une manière d'activer le lien lorsque l'on affiche les nœuds actualités ?

Merci de vos retours,
Fabien

Dans spectacles, j'ai une vue qui envoie tous les spectacles, et le lien sur le titre (ou l'image) renvoie vers le node complet.

Dans les actualités, j'ai une vue qui envoie toutes les actualités, mais avec comme format Quicktabs et comme titre du quicktab mon titre d'actualité. Ensuite c'est une mise en forme css qui me permet de les afficher comme ça... En revanche, je ne sais pas si tu peux mettre les titres en dessous !

Je n'avais pas pensé à PHP.
Via le template.php, est-ce que cela pourrait-être gérable ?

Je vais aussi regarder du côté du module contexte.

Sinon Panels. Mais la prise en main est complexe, quand même...

Et enfin, je me disais si j'ajoute automatiquement mes nouvelles actualités comme sous-rubriques (non visible) du lien "actualités" dans le menu principal. Implicitement, cela devrait fonctionner.
Mais n'est-ce pas un peu lourd ?? Actuellement, il y a déjà une centaine d'actus...

Merci pour vos pistes !
Fabien

Je viens de trouver ce petit module
qui résout le soucis d'activité du lien dans mon menu.
Il a juste fallu que je corrige le motif de chemin via pathauto :

L'url du lien dans le menu principal est : monsite.com/actualites
Les liens d'actu de ma vue étaient : monsite.com/actualite-NID/blablabla.html
Pour que cela fonctionne, j'ai corrigé en : monsite.com/actualites/actualite-NID/blablabla.html

Et voilà mon lien s'éclaire comme voulu.

Merci.

Ceci étant, je cherche encore comment supprimer de la liste l'actu
dont l'ID est présent dans l'URL.

« Ceci étant, je cherche encore comment supprimer de la liste l’actu
dont l’ID est présent dans l’URL.»

-> C'est ok, j'ai réussi finalement à retrouver le "exclure",
vraiment tout en bas de la fenêtre de config des filtres, dans la zone "Plus".
L'actu présente dans l'URL disparaît de ma liste.

++