La respuesta de Kiamlaluno no me funcionó del todo. El uso de% menu_tail produjo una tormenta de errores de que la función menu_tail_load estaba teniendo problemas con los argumentos faltantes:
Warning: Missing argument 2 for menu_tail_load(), called in ... /includes/menu.inc on line 579 and defined in menu_tail_load() (line 827 of ... /includes/menu.inc).
Warning: Missing argument 3 for menu_tail_load(), called in ... /includes/menu.inc on line 579 and defined in menu_tail_load() (line 827 of ... /includes/menu.inc).
Lo que funcionó para mí fue
function allow_menu_links_menu() {
$items = array();
$items['sites/d8/files/%'] = array(
'title' => 'Folder Content',
'page callback' => 'allow_menu_links_cb', /* never called */
'access callback' => TRUE,
);
return $items;
}
Luego, podría servir archivos en la carpeta sitios / d8 / archivos (y subcarpetas) usando elementos de menú con rutas como sites/d8/files/Documents/MyFile.pdf
El sistema de menús generará un enlace como href="/drupal//sites/d8/files/Documents/MyFile.pdf"
Si no utiliza el módulo de menú personalizado, el sistema de menús rechazará una ruta que comience como se indicó anteriormente.
Si intenta utilizar una ruta como http:sites/d8/files/Documents/MyFile.pdf
, generará un enlace como href="http:sites/d8/files/Documents/MyFile.pdf"
, que funcionará cuando esté en la raíz del sitio, pero cuando esté en una página de contenido, el navegador interpretará la URL relativa a la página de contenido, y no funcionará
Si utiliza una ruta como http:/sites/d8/files/Documents/MyFile.pdf
, el sistema de menús la aceptará, pero el sistema de menús generará un enlace como href="http:/sites/d8/files/Documents/MyFile.pdf"
, que el navegador (al menos Safari) interpretará href="http://sites/d8/files/Documents/MyFile.pdf"
y no intentará encontrar el servidor llamado "sitios".
(En una investigación adicional, la razón por la que el código que usa menu_tail falla es que necesita agregar los 'argumentos de carga', como se señala aquí: http://api.drupal.org/api/drupal/includes--menu.inc/function / menu_tail_load / 7. Si agrega 'load arguments' => array('%map', '%index'),
a la definición de $ items en el código de kiamlaluno, funcionará. La cuestión de si menu_tail_load debería requerir los argumentos explícitos de carga también se discute aquí: http://drupal.org/node/298561 )
(No olvide habilitar su nuevo módulo, o el sistema de menús no aceptará los nuevos enlaces)