Додаючи пункт меню у представленнях, я бачу три вибірки, які є неоднозначними
Нормальний запис меню
Вкладка меню
Вкладка меню за замовчуванням
У чому різниця і коли я буду використовувати кожний?
Додаючи пункт меню у представленнях, я бачу три вибірки, які є неоднозначними
Нормальний запис меню
Вкладка меню
Вкладка меню за замовчуванням
У чому різниця і коли я буду використовувати кожний?
Відповіді:
Вони відповідають type
параметру повернених елементівhook_menu()
Нормальний запис меню = MENU_NORMAL_ITEM
Тип меню - "звичайний" пункт меню, який відображається в меню та сухарях.
Звичайні пункти меню відображаються у дереві меню і можуть бути переміщені / приховані адміністратором. Використовуйте це для більшості пунктів меню. Це значення за замовчуванням, якщо не вказано тип пункту меню.
Тип меню - завдання, характерне для батьківського елемента, зазвичай подається у вигляді вкладки. Локальні завдання - це пункти меню, які описують дії, які слід виконати над своїм батьківським елементом. Прикладом може слугувати шлях "вузол / 52 / редагувати", який виконує завдання "редагування" на "вузол / 52".
Вкладка меню за замовчуванням = MENU_DEFAULT_LOCAL_TASK
Тип меню - локальне завдання за замовчуванням, яке спочатку активне.
Кожен набір локальних завдань повинен передбачати одне завдання "за замовчуванням", яке посилається на той самий шлях, що і його батьків при натисканні.
Найкращий приклад, який я можу придумати, - це сторінки вузлів. Коли ви відвідуєте сторінку вузла, вкладку "Вид" надається пунктом меню типу MENU_DEFAULT_LOCAL_TASK
(див. $items['node/%node/view']
В node_menu()
).
У нього немає шляху як такого (він успадковується від батьківського пункту меню), він призначений лише для того, щоб на сторінці вузла була вкладка серед груп «реальних» вкладок, які визначені MENU_LOCAL_TASK
.
node/%node/mypath
і виберете "Вкладка меню". "Вкладка меню за замовчуванням" входить до нього, коли ви встановлюєте типову групу вкладок, як у прикладі сторінки вузла. node/[nid]/view
і node/[nid]
вирішити одну й ту саму сторінку - єдиною метою першої є забезпечити видимість вкладки під час відвідування другої. Ясніше? Це досить складно пояснити