Как я могу добавить форму в качестве элемента меню в Drupal 7? - PullRequest
0 голосов
/ 28 сентября 2018

Я работаю с модулем 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 и у меня кружится голова от всего чтения, поэтому я прихожу к вам, друзья по интернету, потому что онLP;Любые советы и указания приветствуются.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вам нужно реализовать 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;
}
?>

Пожалуйста, очистите кеш после любых изменений в коде или настройке друпала.

0 голосов
/ 30 сентября 2018

hook_menu позволяет определять пункты меню и обратные вызовы страниц.Вы должны добавить путь к странице внутри ваших $ items следующим образом: $ items ['path'].Затем очистите кэш, чтобы изменения вступили в силу, и получите доступ к вашему пути по этому пути.

...