Question

J'ai un problème avec des chemins dans une vue drupal que je la construction. En ce moment, mon avis a cette forme:. Contenu / 2/6

Où 2 et 6 sont les Ids de deux nœuds, je voudrais manipuler ces ids pour les traduire disons que le titre de ces noeuds.

Je ne peux pas le faire du point de vue parce que je vous envoie ces valeurs à un panneau, et le panneau DOIS reçu les IDs des noeuds.

Donc, pour résumer, je veux juste réécrire (comme pathauto fait) ces ids à titre, puis-je faire? Y at-il un module spécifique pour cela?

Merci!

Était-ce utile?

La solution

Si je vous comprends bien, vous voulez garder les chemins d'accès de contenu / [nid_x] / [nid_y] ', mais ajouter des alias d'URL supplémentaires pour ceux qui ont plus de « parler » des éléments de chemin des noeuds (par exemple des titres). Si cela est exact, vous avez deux options:

D'abord, vous pouvez le faire manuellement en définissant des alias d'URL pour 'contenu / [nid_x] / [nid_y]' sous 'admin / build / chemin / ajouter. Cela est facile à faire, mais probablement pas ce que vous cherchez, si vous avez besoin beaucoup de ces alias.

Deuxièmement, vous pouvez le faire par programmation grâce à la fonction path_set_alias() . En utilisant la fonction est assez simple - le seul problème est peut-être où le déclencher. D'après votre description, il est pas clair pour moi où / quand ces vues sont créées, il est donc difficile de trouver une suggestion -. Vous pouvez peut-être modifier votre question d'être un peu plus précis sur ce

Si vous voulez créer des alias que d'URL de vue pour les combinaisons de nœuds spécifiques, vous pouvez essayer d'utiliser les opérations de « insert », « update » et « supprimer » de hook_nodeapi() pour déclencher la création d'alias. De toute évidence, cela ne fonctionnera que s'il y a une règle cohérente qui vous permettra de décider de code pour lequel les noeuds pour créer un alias ou non.

Une fois que vous avez un alias d'URL en place pour un certain chemin, il sera utilisé à la place de l'original à chaque fois qu'un lien vers ce chemin est créé par le l () fonction. Ainsi, par exemple si vous créez un pointage d'entrée de menu « contenu / 2/6 », l'URL utilisée serait automatiquement l'alias créé pour ce chemin.


Edit: Juste au cas où vous finissez par créer des alias programme - Si vous utilisez pathauto de toute façon, vous pouvez / devez utiliser son pathauto_cleanstring()function (de « pathauto.inc ») pour faire en sorte que vos URL générées sont correctement saisies / réécrite à caractères autorisés .

Autres conseils

Il y a un moyen d'utiliser la fonction URL personnalisée pour créer des URL personnalisées dédiées. Si vous utilisez des panneaux bien que je ne sais pas si vous voulez le faire de cette façon, car il est très statique.

function custom_url_rewrite($op, $result, $path) {

  if ($op == 'alias') {
    if (preg_match('|^[node_id#_here](/{0,1}.*)|', $path, $matches)) {
      return '[desired_alias]'. $matches[1];
    }
  }

  if ($op == 'source') {
    if (preg_match('|^[node_id#](/{0,1}.*)|', $path, $matches)) {
      return '[desired_source]'. $matches[1];
    }
  }

  return $result;

}

Vous voulez remplacer l'ID de nœud # s avec votre propre ainsi que vos propres alias désirés et les sources. Espérons que cela aide.

Peut-être aswell UTILE:

modifier les liens initiant à l'aide en vue de construire le lien en utilisant le remplacement des jetons comme <a href="nodeview/[title]/nid" title="[title]">link tekst</a> et gérer le noeud dans une vue avec le chemin exa nodeview et arguments null, null, NID f.i.

pour des liens plus alambiquées nous un champ de vue php pour construire la chaîne ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top