Je suis occupé à travailler sur un site de mon hôte local qui doit créer un lien vers du contenu distinct de Drupal.
Je les chemins de menu actuels mis en place comme ceci: http://mylocalsite/the_folder_for_the_other_content
. Si j'essaye
<front>/the_folder_for_the_other_content
ou /the_folder_for_the_other_content
ou the_folder_for_the_other_content
, j'obtiens l'erreur "Le chemin 'quel que soit_l'utilisation' est invalide ou vous n'y avez pas accès."
Quand je vais en direct, j'ai évidemment besoin de tous les éléments du menu vers lesquels pointer http://myrealsite/the_folder_for_the_other_content
.
Comment puis-je le configurer pour ne pas avoir à modifier tous les chemins de menu lorsque je suis en ligne?
http://example.com/
.Réponses:
La réponse de kiamlaluno n'a pas vraiment fonctionné pour moi. L'utilisation de% menu_tail a produit une tempête d'erreurs indiquant que la fonction menu_tail_load avait des problèmes avec des arguments manquants:
Ce qui a fonctionné pour moi était
Ensuite, je pourrais servir des fichiers dans le dossier sites / d8 / files (et sous-dossiers) en utilisant des éléments de menu avec des chemins comme
sites/d8/files/Documents/MyFile.pdf
Le système de menus générera alors un lien comme
href="https://drupal.stackexchange.com/sites/d8/files/Documents/MyFile.pdf"
Si vous n'utilisez pas le module de menu personnalisé, le système de menus rejettera un chemin commençant comme ci-dessus.
Si vous essayez d'utiliser un chemin d'accès similaire
http:sites/d8/files/Documents/MyFile.pdf
, il produira un lien similairehref="http:sites/d8/files/Documents/MyFile.pdf"
, qui fonctionnera lorsque vous serez à la racine du site, mais lorsque vous serez sur une page de contenu, le navigateur interprétera l'URL relative à la page de contenu, et ça ne marchera pas.Si vous utilisez un chemin d'accès similaire
http:/sites/d8/files/Documents/MyFile.pdf
, le système de menus l'acceptera, mais le système de menus produira un lien similairehref="http:/sites/d8/files/Documents/MyFile.pdf"
, que le navigateur (au moins Safari) interprèterahref="http://sites/d8/files/Documents/MyFile.pdf"
et échouera à trouver le serveur nommé "sites".(Après enquête, la raison pour laquelle le code utilisant menu_tail échoue est que vous devez ajouter les «arguments de chargement», comme indiqué ici: http://api.drupal.org/api/drupal/includes--menu.inc/function / menu_tail_load / 7. Si vous ajoutez
'load arguments' => array('%map', '%index'),
à la définition de $ items dans le code de kiamlaluno, cela fonctionnera. La question de savoir si menu_tail_load devrait exiger les arguments de chargement explicites est également discutée ici: http://drupal.org/node/298561 )(N'oubliez pas d'activer votre nouveau module, sinon le système de menus n'acceptera pas les nouveaux liens)
la source
Lorsque vous ajoutez un nouveau lien, le lien est validé à partir de menu_edit_item_validate () , qui appelle drupal_valid_path () pour vérifier si le chemin est valide, ou il est accessible depuis l'utilisateur.
drupal_valid_path()
renvoieTRUE
si<front>
(<front>/directory
ou des chemins similaires sont exclus)TRUE
)Outre l'utilisation d'URL absolues, la seule solution est d'avoir un module personnalisé qui définit un rappel de menu associé au chemin que vous souhaitez utiliser.
Lorsque vous utilisez l'URL qui pointe vers un fichier ou un répertoire, le serveur Web doit afficher ce fichier ou répertoire, sans appeler Drupal. C'est ce qui se passe avec Apache, car le fichier .htaccess fourni avec Drupal contient les directives suivantes:
Dans votre cas, le module personnalisé doit contenir un code similaire au suivant:
Vous pouvez utiliser n'importe quelle valeur pour le rappel de titre et de page , car ce rappel de menu ne doit jamais être appelé. La valeur du rappel d'accès indique à Drupal que chaque utilisateur a accès à ce rappel de menu.
Comme alternative, vous pouvez définir un rappel de menu associé à "alias_for_directory /% menu_tail" qui redirige l'utilisateur vers le répertoire que vous souhaitez voir (en utilisant drupal_goto () ). J'utiliserais cette solution lorsque le serveur n'utilise pas le contenu de .htaccess, et elle invoquerait Drupal même lorsque l'URL pointe vers un fichier ou un répertoire existant.
la source
Pour moi, ce qui suit a fait l'affaire (sur drupal 6).
Je veux diriger vers une autre URL sur le même domaine, disons que Drupal fonctionne
http://www.example.com
et que je veux avoir un lien vershttp://www.example.com/frontend
Dans l'élément de menu, veuillez saisir comme chemin:
Le menu drupal sera lié à:
http://www.example.com/frontend
Lorsque vous utilisez https, vous devez entrer https: / frontend dans le champ de chemin d'accès pour l'élément de menu.
la source
J'ai résolu mes problèmes de liaison avec les éléments suivants:
http://groups.drupal.org/node/210308 et http://drupal.org/node/372252
Il s'avère que mon thème imprimait le menu de manière incorrecte afin que tous les éléments soient relatifs à mon emplacement actuel (c'est-à-dire admin / logout, au lieu de / logout).
J'espère que cela t'aides.
la source
J'ai utilisé sql pour remplacer le lien dans la structure du menu:
Je ne sais pas si je devais le faire, mais j'ai ensuite vidé les caches du menu.
la source