Catégories:
Bonjour à tous,
Je suis toujours sur le même problème depuis 10jours maintenant. Question simple, j’ai une url de ce type ‘http://monsite.fr/exercice/math/titre’ avoir un argument qui analyser l’argument ‘math’ ($2) et qui affiche un bloc en fonction de ça. Je créé ce bloc dans une vue.
Simple à dire, véritable galère pour le faire
Une idée ?????
merci pour votre aide
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Cela dépend un peu de qu’est ce qu’est l’argument math.
Mais en substance, vous ajoutez un argument, puis dans les options d’un argument, vous trouverez «Action à mener si l’argument est absent» (ce qui est votre cas si la vue est appelée d’un bloc), sélectionnez «Fournir l’argument par défaut». Puis selon les cas «Code PHP», «Identifiant du nœud à partir de l’URL», «Identifiant utilisateur dans l’URL»…
Si vous choisissez finalement «Code PHP», utilisez
return arg(1);pour utiliser directement l’argument 2.Damien Tournoud
808
‘math’ est un terme du vocabulaire ‘exercice’ dans cet exemple. Le problème que je rencontre est que dans la vue de type bloc je n’arrive pas à récupérer ‘math’. Pouvez-vous me mettre un exemple php pour que je comprenne comment récupérer l’argument 2 s’il vous plait ?
Merci d’avance
drupal974
408
Comme indiqué plus haut :
return arg(1);renvoie le deuxième argument dans l’URL.Par contre, si math est un terme de vocabulaire, autant utiliser le mode ‘Identifiant de terme de taxonomie dans l’URL’.
Damien Tournoud
808
Excuse moi Damien, il y’a un élément que je ne comprends pas. J’utilise bien un terme de vocabulaire mais j’ai l’impression que le terme de vocabulaire (dans l’argument) filtre l’argument 0 et non l’argument 1. C’est le problème que je rencontre. Comment paramétrer l’argument pour qu’il sélectionne l’arg(1) puisque si l’arg(1) n’est pas pas trouvé, je ne veux pas afficher de boxe.
drupal974
408
J’imagine que le fournisseur d’argument par défaut «Taxonomy Term ID from URL» ne fonctionne pour les IDs (numériques) de taxonomie, et non avec les noms (comme dans ton URL : ‘math’).
Dans ce cas, utilise «Code PHP» (avec le code
return arg(1);) pour récupérer le nom depuis l’URL, puis utilise dessousValidateur: Terme de classification, sélectionne le vocabulaire qui t’interesse, puis dessous :Type d'argument: Nom / synonyme converti en identifiant de terme.Damien Tournoud
808
Merci du temps que tu passes sur ce post. Dans la vue en mode édition, j’arrive bien à afficher le résultat souhaité. Sur le site, là ou doit s’afficher le bloc, nada, rien ne s’affiche.
Je ne sais pas ou chercher parceque lorsque je mets en cas de réponse non trouvé «afficher tous les résultats» à ce moment j’ai tout qui s’affiche. Hors actuellement j’ai choisi d’utiliser un code php si l’élément n’est pas trouvé retournant ‘return arg(1);’ et j’ai validé comme tu m’as dit précédemment !
Je ne sais plus ou chercher, j’ai l’impression que ma vue est bien paramétré puisqu’elle affiche le bon résultat en mode édition mais le bloc n’apparait pas !
drupal974
408
J’ai trouvé pourquoi ça ne fonctionne pas, mais maintenant j’ai l’impression d’être face à un bug de [view]
Soit l’url suivante : http://monsite/exercice/math
Dans le code php de la vue/argument, via arg(1) je récupère ‘math’, c’est ok
Soit l’url http://monsite/exercice/math/test-1
L’appel de la fonction arg(1) me renvoie ‘41’ qui est l’id de l’article ‘test-1’
Dés que j’ai un troisième argument dans mon url, arg(1) ne me renvoie pas le deuxième argument (ici ‘math’) mais l’id de l’article en 3ème paramètre…
Si quelqu’un à une explication rationnelle…
drupal974
408