Табы в Друпале
При просмотре содержимого того или иного нода в CMF Drupal можно заметить наличие вкладок «Просмотр», «Изменить» и прочих:

Выбор одной из них позволяет пользователю осуществить то или иное действие с просматриваемым нодом. Вполне естественно, что при создании новых типов нодов нам может захотеться добавить к ним новые вкладки.
Делается это через систему меню, а точнее — в hook_menu'node/$nid''node/$nid/tab1'
где _view_tab1_page_my_localtask_access
Знак % — это так называемый wildcard (он же шаблон, метасимвол, символ подстановки), использующийся для передачи элемента пути в аргумент функции. В данном случае нам нужно передать элемент пути, соответствующий arg(1)'node/64/tab1'arg(1)
Для удобства разработчики Друпала предусмотрели метасимвол с загрузкой. Запись '%node'arg(1)node_load(arg(1))node_load()
Возникает вопрос: а зачем вообще нужна функция доступа? Ведь мы можем просто передать 'access content'user_access()_my_localtask_access
С точки зрения логики это не совсем правильно: ведь мы не хотим запрещать доступ к локал таскам для других нодов, мы хотим, чтобы для них нашего таба просто не существовало. Но других вариантов нет.
Вот таким, немного странным, но коротким и аккуратным способом можно сделать табы для нодов.











Отправить комментарий