Возможно ли это сделать?

Главные вкладки

Аватар пользователя Fannge Fannge 30 апреля 2021 в 16:48

Здравствуйте, я сделал модуль и у меня такой вопрос:

Возможно ли сделать так, чтобы пользователь вводил значение в модуль, перед его подключением? Просто мой модуль встраивает javascript на сайт и в нём используется ключ, который уникален у каждого пользователя моего сервиса. Необходимо чтобы пользователь мог указать свой ключ перед включением модуля.

Если что, я не разбираюсь в Drupal совсем, так что не кидайтесь камнями. Спасибо за подсказки!

Комментарии

Аватар пользователя marassa marassa 30 апреля 2021 в 17:27

Попробую перевести на алгоритмический язык: в модуле нужно определить настроечный параметр (setting) "ключ" и форму для его ввода/редактирования. Я про семёрку ничего не знаю, но это должно быть несложно - проще всего взять какой-нибудь простенький модуль с настройками и скопировать нужный код оттуда. После этого Друпал будет по адресу типа /admin/config/services/ваш-модуль показывать формочку для редактирования ключа и хранить его с другими настройками. Осталось в уже написанном Вами коде для вывода js на страницу вытаскивать нужную настройку и подставлять куда нужно.

Аватар пользователя marassa marassa 30 апреля 2021 в 17:26

PS Да, "перед подключением модуля" модуль конечно же не может ничего сделать, так как он ещё не подключен.

Аватар пользователя Andruxa Andruxa 30 апреля 2021 в 18:01
2

Вам надо сделать админку для своего модуля, где пользователи могут сохранять/редактировать ключ:
1. Определить роут, по которому будет находиться форма для ввода/редактирования ключа, это делается в hook_menu()
2. Реализовать функцию, которая будет возвращать массив с формой настроек, см. Form API
значение ключа - сохранять в переменных функцией variable_set() а читать - variable_get()
3. Считается хорошим тоном вынести форму и обработчик её сабмита в файл MODULENAME.admin.inc, хотя в вашем случае это будет избыточно, и добавить ссылку на админку в MODULENAME.info:
configure = path/to/module/settings, тот роут, который указали в hook_menu()