[view + bloc + argument + pathauto] La vue ne prend pas compte de la ré-écriture d'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 à tous,

Désolé de toujours vous embêter avec un problème qui dure depuis plusieurs semaines maintenant. En fait, j'ai identifié mon souci. Si j'ai une url du type http://monsite/exercice/math/titre-exercice fabriqué à partir de pathauto, la vue l'interprète de la façon suivante http://monsite/node/41 soit 41 = l'id de l'article 'titre-exercice'.

Concrètement, la vue ignore les éléments de pathauto et si je fais 'arg(1)' pour récupérer le premier élément de l'url, je récupère '41' et non 'math' qui s'affiche convenablement dans l'url.

Comment passer outre ce bug ?

Merci pour votre aide

Merci Khtuluu, ce n'est pas la première fois que tu me sauve la vie ! C'est quand même super grave que le module view réagisse comme cela, vraiment dramatique, sans aucune explication logique !

Finalement voici le code que j'utilise :

<?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);
}
?>

Merci, malheureusement je n'arrive pas a faire fonctionner le views comme cela...
Il doit me manquer quelques choses.

J'ai crée avec CCK deux type, type1 et type2. type1 fait référence à type2.
Grâce à pathauto et automenu, j'ai crée des entrer dans mon menu pas default.

Et j'aimerais afficher mes type1 en fonction de l'url dans views.

j'ai crée ma view, avec les informations suivantes :
path : category/%
et dans arguments, j'ai mis le champ node référence de CCK qui pointe vers le type2

Et j'aimerais avoir :
category/type2Id1

qui affiche l'ensemble des type1 qui font référence à type2Id1.

Help ... je comprend pas ...

  1. Excuse moi je me suis planté, en fait ce code est écrit dans le code la view. Dans la condition de l'argument plus exactement, j'ai sélectionné "code php". Pour savoir à quoi j'avais à faire, je faisais des print_r(...) des arguments pour savoir comment je reçevais les données. Voici un exemple de code :

    <?php
    $node
    = menu_get_object(); // pour récupérer ton node courant en étant dans un bloc
    //print_r($node_taxonomy[127@->name); exit; // affiche le contenu de la taxo 127
    //echo arg(1);exit;
    // return arg(1);
    ?>

    Je ne me souviens plus exactement de ce que je faisais, malheureusement.

  2. Je n'ai pas compris ce que tu souhaitais faire avec tes exemples. Pourrais-tu prendre des cas concret ?

Déjà merci :-)

Sinon : En gros.
J'ai des catégories et des applications.
Les applications sont associés avec une catégorie.

Ce qui m’intéresse :

1 - Lors de la création d'une catégorie, cela me crée automatiquement une entrée dans le menu (automenu + pathauto) et afficher une views avec l'ensembles des applications de cette catégorie.

Lors de la création des catégories il me crée bien un node avec comme path category/macategory et l'ajoute au menu. Lorsque dans Views je mets category/%, je n'arrive pas afficher mes applications correspondantes. Pourtant j'ai bien mis Content: category dans Arguments. qui est bien mon nodereference vers catégories.

Mais j'ai régler ce problème avec le module : Viewfield.

2 - J'aimerais aussi modifier l'affichage dans edit du CCK. Enlever les informations "Input format", "Revision information", ...