คำตอบของ kiamlaluno ไม่ได้ผลสำหรับฉัน การใช้% menu_tail ทำให้เกิดข้อผิดพลาดที่ฟังก์ชั่น menu_tail_load มีปัญหากับอาร์กิวเมนต์ที่ขาดหายไป:
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).
สิ่งที่ได้ผลสำหรับฉันคือ
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;
}
จากนั้นฉันสามารถแสดงไฟล์ในโฟลเดอร์ sites / d8 / files (และโฟลเดอร์ย่อย) โดยใช้รายการเมนูที่มีพา ธ ดังนี้ sites/d8/files/Documents/MyFile.pdf
ระบบเมนูจะสร้างลิงค์เช่น href="https://drupal.stackexchange.com/sites/d8/files/Documents/MyFile.pdf"
หากคุณไม่ได้ใช้โมดูลเมนูที่กำหนดเองระบบเมนูจะปฏิเสธเส้นทางที่เริ่มต้นด้านบน
หากคุณพยายามใช้พา ธ เช่นhttp:sites/d8/files/Documents/MyFile.pdf
มันจะสร้างลิงก์เช่นhref="http:sites/d8/files/Documents/MyFile.pdf"
ซึ่งจะทำงานเมื่อคุณอยู่ที่รูทของเว็บไซต์ แต่เมื่อคุณอยู่ในหน้าเนื้อหาเบราว์เซอร์จะตีความ URL ที่สัมพันธ์กับหน้าเนื้อหา และมันจะไม่ทำงาน
หากคุณใช้พา ธ เช่นhttp:/sites/d8/files/Documents/MyFile.pdf
นี้ระบบเมนูจะยอมรับ แต่ระบบเมนูจะสร้างลิงก์เช่นhref="http:/sites/d8/files/Documents/MyFile.pdf"
ซึ่งเบราว์เซอร์ (อย่างน้อย Safari) จะตีความว่าเป็นhref="http://sites/d8/files/Documents/MyFile.pdf"
และไม่พยายามค้นหาเซิร์ฟเวอร์ที่ชื่อ "ไซต์"
(ในการตรวจสอบเพิ่มเติมเหตุผลที่รหัสที่ใช้ menu_tail ล้มเหลวคือคุณต้องเพิ่ม 'อาร์กิวเมนต์การโหลด' ตามที่ระบุไว้ที่นี่: http://api.drupal.org/api/drupal/includes--menu.inc/function / menu_tail_load / 7หากคุณเพิ่ม'load arguments' => array('%map', '%index'),
คำจำกัดความของ $ items ในรหัสของ kiamlaluno มันจะทำงานได้ปัญหาว่า menu_tail_load ควรกำหนดอาร์กิวเมนต์การโหลดอย่างชัดเจนหรือไม่: http://drupal.org/node/298561 )
(อย่าลืมเปิดใช้งานโมดูลใหม่ของคุณมิฉะนั้นระบบเมนูจะไม่ยอมรับลิงก์ใหม่)