Jawaban kiamlaluno tidak cukup untuk saya. Menggunakan% menu_tail menghasilkan badai kesalahan bahwa fungsi menu_tail_load mengalami masalah dengan argumen yang hilang:
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).
Apa yang berhasil bagi saya adalah
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;
}
Kemudian, saya bisa menyajikan file di folder situs / d8 / file (dan subfolder) menggunakan item menu dengan path seperti sites/d8/files/Documents/MyFile.pdf
Sistem menu kemudian akan menghasilkan tautan seperti href="https://drupal.stackexchange.com/sites/d8/files/Documents/MyFile.pdf"
Jika Anda tidak menggunakan modul menu khusus, sistem menu akan menolak jalur yang dimulai seperti di atas.
Jika Anda mencoba menggunakan path seperti http:sites/d8/files/Documents/MyFile.pdf
, itu akan menghasilkan tautan seperti href="http:sites/d8/files/Documents/MyFile.pdf"
, yang akan berfungsi ketika Anda berada di root situs, tetapi ketika Anda berada di halaman konten, browser akan menafsirkan url relatif terhadap halaman konten, dan itu tidak akan berhasil.
Jika Anda menggunakan jalur seperti http:/sites/d8/files/Documents/MyFile.pdf
, sistem menu akan menerimanya, tetapi sistem menu akan menghasilkan tautan seperti href="http:/sites/d8/files/Documents/MyFile.pdf"
, yang ditafsirkan peramban (setidaknya Safari) sebagai href="http://sites/d8/files/Documents/MyFile.pdf"
, dan gagal mencoba menemukan server bernama "situs".
(Pada penyelidikan lebih lanjut, alasan kode menggunakan menu_tail gagal adalah bahwa Anda perlu menambahkan 'memuat argumen', seperti yang tercantum di sini: http://api.drupal.org/api/drupal/includes--menu.inc/function / menu_tail_load / 7. Jika Anda menambahkan 'load arguments' => array('%map', '%index'),
definisi $ items dalam kode kiamlaluno, itu akan berhasil. Masalah apakah menu_tail_load harus memerlukan argumen memuat eksplisit juga dibahas di sini: http://drupal.org/node/298561 )
(Jangan lupa untuk mengaktifkan modul baru Anda, atau sistem menu tidak akan menerima tautan baru)