Я работаю с OpenID Connect модуль для подключения сайта Drupal 7 с поставщиком OpenID в качестве клиента. До сих пор мне удалось запустить и запустить модуль, регистрируя и регистрируя пользователей у моего провайдера, просто используя готовые функциональные возможности и предоставленный блок входа в систему.
То, чего я сейчас пытаюсь достичь, это разместить форму, которую блок, предоставленный модулем, отображает в виде ссылки в моем главном меню.
Я смог добавить ссылку в моем меню, изменив модуль hook_menu
вот так:
$items[''] = array(
'title' => 'OpenID Connect',
'page callback' => 'drupal_get_form',
'page arguments' => array('openid_connect_login_form'),
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
Но это не работает, как задумано.
Я хотел бы либо вставить форму, которую модуль отображает в блоке, в пункт меню, либо создать ссылку, которая работает так же, как форма, созданная в блоке.
Кроме того, я мог бы визуализировать блок со скрытой формой и создать ссылку меню, которая не перенаправляет на страницу, а просто находит и отправляет форму через JS, но я также не знаю, как это сделать.
Я относительно новичок в Drupal и у меня кружится голова от всего чтения, поэтому я прихожу к вам, друзья по интернету, за помощью; Любой совет и направление приветствуются.
Заранее спасибо.
hook_menu позволяет определять пункты меню и обратные вызовы страниц.
Вы должны добавить путь к странице внутри ваших $ items следующим образом: $ items [‘path’].
Затем очистите кеш, чтобы изменения вступили в силу, и получите доступ к этому пути.
Вам нужно реализовать hook_menu в вашем модуле. Пример:
<?php
function mymodule_menu() {
$items['mymodule/links'] = array(
'title' => 'OpenID Connect',
'page callback' => 'drupal_get_form',
'access arguments' => array('openid_connect_login_form'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
?>
Пожалуйста, очищайте кеш после любых изменений в коде или настройке друпала.