Submitted by aiphes on
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
Bonjour, As-tu essayé de
Permalien Soumis par flebrenn le 25 Juin, 2012 - 11:08
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
Permalien Soumis par aiphes le 25 Juin, 2012 - 12:19
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
Pour gérer les liens :
Permalien Soumis par garnett2125 le 25 Juin, 2012 - 12:24
Pour gérer les liens: http://api.drupal.org/api/drupal/includes%21common.inc/function/l/6
print l($text, $path);
Si c'est bien ca que tu demandes.
bon j’ai mis en href :
Permalien Soumis par aiphes le 25 Juin, 2012 - 12:32
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...Il n’y a pas de _ c’est print
Permalien Soumis par garnett2125 le 25 Juin, 2012 - 12:38
Il n'y a pas de _ c'est print ESPACE l($text, $path); =)
ben rien ne s’affiche …
Permalien Soumis par aiphes le 25 Juin, 2012 - 14:14
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
Pardon pour debugger il faut
Permalien Soumis par garnett2125 le 25 Juin, 2012 - 14:17
Pardon pour debugger il faut utiliser le module devel http://drupal.org/project/devel et faire un dpm($tavariable) dans ton code.
Tu as déclaré l'url comment dans ton hook_menu ?
alors je n’utilise pas de
Permalien Soumis par aiphes le 25 Juin, 2012 - 14:30
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...
finalement j’ai opté pour un
Permalien Soumis par aiphes le 4 Juillet, 2012 - 13:51
finalement j'ai opté pour un display=page,plus simple pour lui passer l'argument...