Views 2 display block et argument via url

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

je m'arrache les cheveux sur une vue qui doit proposer une liste de formation selon le groupe souhaité.

Ainsi le dispositif est une image avec des zones cliquables sur l'accueil ayant comme url :

/node/NID/TID

le NID ne change pas, disons 123 ainsi j'ai :

/node/123/TID

je tente de récupérer l'argument du tid , arg(2) normalement mais celui ci ne parvient pas à la page node/123 (url réécrite) , arg(0) = node, et arg(1) = 123, mais arg(2) = rien...

j'ai essayé dans views :

$value=arg(2);
return $value;

et

if(arg(0)=='node' && is_numeric(arg(1)) )
{
  $path = drupal_get_path_alias($_GET['q']); //get alias of URL
  $path = explode('/', $path); //break path into an array
  return $path[2];
}
else  {
  return arg(2);//on récupère le 3eme argument
}

pas mieux....
si quelqu'un a la solution..

merci

Forum : 
Version de Drupal : 

Bonjour,

As-tu essayé de créer une vue "page" avec un chemin qui peut être : liste-formation/%
Si tu peux passer à views 3 ça peut être une bonne chose (sur drupal7 et je l'espère sur drupal6, il y a une vue dont tu peux t'inspirer, voir cloner puis personnaliser :"taxonomy term" (vue désactivée par défaut).

Après, dans un hook_preprocess_page(), tu pourras retrouver ton tid dans arg(1).

Cordialement,

je sais que views3 apporte des améliorations mais le changement serait assez lourd sur ce site, et donc pas encore à l'ordre du jour, du coup je dois faire avec views2 et je sais que le display block requiert php pour lui passer les arguments...du coup le preview fonctionne...

pour un display page test ; comment faire le lien via un href ? car imagemap ne veut pas mon /liste-pole/%1

bon j'ai mis en href : /liste-pole/102 et l'argument ne passe pas la validation...

le preview est ok en lui donnant l'argument dans le champ dédié...

merci pour le code, mais il ne renvoi rien...n'est ce pas :

print_l($text, $path) ;

par contre
print_r($node) ; renvoi des infos mais pas celle relative au chemin...

ben rien ne s'affiche ... :(
EDIT: bon finalement ton code permet d'afficher un lien..moi je pensais que c'etait pour debuguer comme print_r...

en tout cas avec print_r(arg(2)) j'ai toujours pas mon tid...que j'ai fourni dans /node/123/tid

pourtant node et 123 sont bien reconnus comme arg(0) et arg(1)

EDIT: ca marche pour la page !!
en url du display page j'ai mis : /liste-pole/123/106 soit l’équivalent de /node/nid/tid

reste à faire de même avec bloc, sachant que pour l'argument j'ai mis dans "Fournir l'argument par défaut" : Code PHP

<?php
 
if(arg(0)=='node' && is_numeric(arg(2)) )
{
 
// $path = drupal_get_path_alias($_GET['q']); //get alias of URL
  // on récupère l'url sous la forme /node/xx
$path = drupal_get_normal_path(arg(0) . '/' . arg(1).'/'.arg(2));
$path = explode('/', $path); //break path into an array
  //return $path[0];  //in your example this would return "exercice"
 
return $path[2];
}
else  {
  return
arg(2);//on récupère le 2eme argument
}
?>

alors je n'utilise pas de hook_menu (pas que je sache) , mon block display est inclus dans une page normale via le positionnement du block dans la région dédiée et affichage limité au seul node/123

ensuite je cible ce node via un href sur une image (imagemap) et j'y ajoute l'argument ce qui donne un href="/node/123/106" par exemple...