a resposta de kiamlaluno não funcionou muito bem para mim. O uso de% menu_tail produziu uma tempestade de erros que a função menu_tail_load estava tendo problemas com argumentos ausentes:
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).
O que funcionou para mim foi
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;
}
Então, eu poderia servir arquivos na pasta sites / d8 / files (e subpastas) usando itens de menu com caminhos como sites/d8/files/Documents/MyFile.pdf
O sistema de menus gerará um link como href="/drupal//sites/d8/files/Documents/MyFile.pdf"
Se você não usar o módulo de menu personalizado, o sistema de menus rejeitará um caminho que começa como acima.
Se você tentar usar um caminho como http:sites/d8/files/Documents/MyFile.pdf
, ele produzirá um link como href="http:sites/d8/files/Documents/MyFile.pdf"
, que funcionará quando você estiver na raiz do site, mas quando estiver em uma página de conteúdo, o navegador interpretará o URL relativo à página de conteúdo, e não vai funcionar.
Se você usar um caminho como http:/sites/d8/files/Documents/MyFile.pdf
, o sistema de menus o aceitará, mas o sistema de menus produzirá um link como o href="http:/sites/d8/files/Documents/MyFile.pdf"
qual o navegador (pelo menos o Safari) interpretará como href="http://sites/d8/files/Documents/MyFile.pdf"
, e falhará ao tentar encontrar o servidor chamado "sites".
(Em uma investigação mais aprofundada, o motivo pelo qual o código usando menu_tail falha é que você precisa adicionar os 'argumentos de carregamento', conforme observado aqui: http://api.drupal.org/api/drupal/includes--menu.inc/function / menu_tail_load / 7. Se você adicionar 'load arguments' => array('%map', '%index'),
à definição de $ items no código de kiamlaluno, ele funcionará. A questão de se menu_tail_load deve exigir argumentos explícitos de carga também é discutida aqui: http://drupal.org/node/298561 )
(Não esqueça de ativar seu novo módulo, ou o sistema de menus não aceitará os novos links)