Catégories:
Bonjour,
J’ai un problème avec une vue de type bloc avec passage par argument. En fait, je crois maintenant que je ne cherche pas la bonne solution. Cette vue semble fonctionner dans le menu de la vue en utilisant la ‘prévisualisation en direct’ tout en bas, si je lui fournis une URL type. Cependant lorsque je suis sur le site, la vue ne s’affiche pas avec les mêmes éléments fournies dans l’URL.
D’ou peut venir ‘ce bug’ ?
Vous êtes ma dernière chance avant que je ne saute par ma fenêtre
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Pour une vue de type bloc utilisant les arguments, on ne pourra pas passer les arguments «à la main» via l’URL (vu que l’URL se rapporte au node ou à la page, et pas aux blocs). Il faut donc utiliser l’option «Fournir l’argument par défaut» dans la configuration de l’argument de la vue et utiliser un bout de code PHP qui va fournir les bons arguments automatiquement d’après le contexte. Il faudrait plus d’informations sur la vue que tu essaies d’obtenir pour donner plus de précisions.
mdupont@drupal.org
616
Je crois comprendre le problème maintenant. J’ai fait un echo ‘arg(1)’ puis ‘exit’ dans le code php de la vue/bloc. J’ai l’impression que la vue passe avant la transformation d’url du module pathauto puisque j’ai dans mon url ‘http://monsite/exercice/math/titre’ et ma vue me transmet ‘41’, ce qui semblerait revenir à ‘http://monsite/node/41’ ou ‘41’ est l’id de l’article ‘titre’.
Par contre si j’ai l’url ‘http//monsite/exercice/math’, ‘arg(1)’ me renvoie bien ‘math’.
Voilà le problème. Comment le résoudre selon vous ?
drupal974
408
J’ai trouvé la solution après 10 jours de recherche. Elle est dans un autre poste que j’ai créé mais voici la solution :
<?php//-- Si l'url est écrit du type http://monsite/node/41 au lieu de http://monsite/exercice/math/titre --//
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[0]; //in your example this would return "exercice"
return $path[1];
}
else {
return arg(1);
}
?>
drupal974
408