Добрый вечер!
У меня на сайте есть модуль Organic Groups. Когда я нажимаю Join to the group, мне открывается страница, где я должен указать, действительно ли я хочу вступить в группу по адресу "/group/node/100/subscribe/og_user_node". Мне надо сделать кое какую проверку, перед тем как выдать пользователю эту страницу, но я не знаю как перехватить этот хук.
Функция лежит в sites/all/modules/og/og_ui/og_ui.page.inc и называется og_ui_subscribe.
Как можно перехватить открытие этой страницы?
Комментарии
hook_menu_alter
Благодарю, щас проверю)
Не сработало. URL такой: HOST/en/group/node/163/subscribe/og_user_node
function MYMODULE_menu_alter(&$items)
{
$items['group/%/%/subscribe']['access callback'] = FALSE;
//dpm($items); - это не срабатывает, когда переходим по URL, в других местах сайта - обрабатывается.
}
а в модуле органики
function og_ui_menu() {
$items = array();
$items['group/%/%/subscribe'] = array(
'type' => MENU_CALLBACK,
'file' => 'og_ui.pages.inc',
'page callback' => 'og_ui_subscribe',
'page arguments' => array(1, 2),
// Function will take care of permissions, as we want to show "you are
// already a member of the group" to group members, however it is not
// possible to give authenticated group members the "subscribe" permissions.
'access callback' => 'user_is_logged_in',
// We don't add the group name, as it might be private.
'title' => 'Join group'
);
...
зачем?)
да просто, для теста я хочу запретить открытие этой страницы.
кэш пару раз сбросьте
сбросил. дело в том что и hook_menu_link_alter, тоже не срабатывает.
а при чем здесь хук_меню_линк_альтер?
Ах да, ошибся Ну, дело в том, что в любом случае хук не срабатывает.
вы это наугад что ли писали?)
Нет, этот путь указан в модуле органики.
function og_ui_menu() {
$items = array();
$items['group/%/%/subscribe'] = array(
'type' => MENU_CALLBACK,
'file' => 'og_ui.pages.inc',
'page callback' => 'og_ui_subscribe',
'page arguments' => array(1, 2),
// Function will take care of permissions, as we want to show "you are
// already a member of the group" to group members, however it is not
// possible to give authenticated group members the "subscribe" permissions.
'access callback' => 'user_is_logged_in',
// We don't add the group name, as it might be private.
'title' => 'Join group'
);
...
<?php
function MYMODULE_menu_alter(&$items)
{
dpm($items);
}
?>
и на нужной вам странице обновите страницу после сброса кэша
<?php
dpm($items);
$items['group/node/%/subscribe/og_user_node']['access callback'] = FALSE;
?>
dpm я уже сто раз пытался вывести, пусто. а вот доступ закрыло.
админ_меню установлено?
Если вы об этом модуле: https://drupal.org/project/admin_menu, то да, установлен.
на нужной вам странице через это меню сбросьте кэш