Sélectionner aléatoirement un lien vers un node..

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,

La question que je vais poser a déjà été posée ici (http://drupalfr.org/forum/support/support-general/8915-afficher-un-lien-...) mais les réponses ne m'ont pas vraiment aidées.

Voila mon soucis :

Je cherche un moyen de sélectionner aléatoirement une seule page de type Story parmi un ensemble de pages du même type.
Ensuite je voudrais intégrer le lien pointant vers la page sélectionnée dans un block.(le lien serait les n premiers caractères de l'article sélectionné en l'occurrence, existe-t-il un module pour réaliser ça ? ).

J'ai donc commencer a étudier la solution avec le module Views mais je ne parviens qu'a filter le type Story et ensuite à afficher dans un ordre aléatoire une liste de tous les liens pointant vers les pages filtrées.

Je ne maitrise pas très bien le module Views...

Merci d'avance :)

Forum : 
Version de Drupal : 

Un module pour faire une demande aussi personnelle?lol non pas a ma connaissance.

Tu va devoir te créer ton propre module.

Sinon avec les views selectionne les id story qui vont subir un tirage au sort plus tard.C est une view de type block.tu lui met sortie de style en tableau.Ca liste toute tes donner dans un tableau php

Puis surclasse le template de ta view block tu regarde le nombre d entre ke tu a dans ton tableau et tu fait un math_random pour en prendre un au hazar d et tu construit ton lien.

Voila a chaque fois ke la page contenant ce block sera affiche tu aura un lien choisit au hazard

PS:n hésite pas a poser des question sur les partie qui te semble sombre

Bien sûr que si tu peux faire ça avec views : filtre sur ton type story, ordre aléatoire, comme tu l'as fait, + afficher un seul item, sans pager, dans un affichage bloc, qui reprend les premiers caractères de l'article, avec un lien vers le noeud dessus. Tout ça est dans les paramètres généraux et dans les paramètres de champs.

Aucune difficulté !

non, le seul moyen est de mieux regarder ce que tu as sous les yeux dans les paramètres du champ : cocher la case "trim this field to a maximum number of characters", ou quelque chose dans ce goût là, et puis affiner la configuration derrière.

Désolé mais je ne parviens pas a faire ce que je veux, j'ai pourtant passé pas mal de temps.

Voila ce que j'ai fait :

J'ai créé une vue avec les parametres de bases suivant :

  • éléments à afficher : 1

  • lien plus : oui

  • les autres paramètres laissés à leurs valeurs par défaut.

Aucune relation;

Aucun arguments;

Champs :

  • Noeud : corps (avec l'option Trim this field...);

Critères de tri : Global : random asc;

Filtres : Noeud : Type exposé

Donc j'ai un bloc avec les n premiers caractères de mon article. Mais le lien more n'apparait pas!
Alors je ne vois pas du tout ce que c'est, j'ai parcourus en long en large les paramètres de view, mais je n'ai pas réussi a savoir d'ou venait le fait que le lien "plus" n'apparaisse pas.

J'ai alors essayé par le biais de l'option "Output this field as a link", dans la configuration des Champs.
Mais le problème c'est qu'il me demande le chemin du lien.
J'ai alors essayé d'ajouter un argument Noeud : Nid et puis de préciser le chemin du lien dans l'option "Output this filed as a link" sous la forme suivante : ?q=node/%1.

Mais drupal supprime la derniere partie et donc le lien devient : "?q=node/"

Pourriez vous me dire si je suis dans la bonne direction, ou quelles sont mes erreurs ?

Merci d'avance

le lien "more" permet d'afficher plus d'items dans la liste (ici plus de stories), ce n'est pas ce qu'il te faut (tu ne veux pas une liste plus longue, tu veux le noeud complet). il n'apparait pas parce que tu as bloqué l'ensemble de la vue à 1 item (si tu veux qu'il apparaisse il faut un affichage page avec 25 items par exemple et le pager ; dans le bloc tu spécifies un seul item, alors le lien "more" renverra vers l'affichage page avec 25 items

pour le lien vers le noeud, laisse le output..as a link pour ce cas, regarde mieux les options possibles et coche "link this field to its node" .(pas besoin d'argument ici, vire le de ta vue)

et utilise le champ teaser plutôt que le champ body, pour éviter que l'ensemble de l'article soit chargé à chaque fois ; s'il va chercher dans le champ teaser, la requête sera moins lourde.