#php #drupal #forms
#php #drupal #формы
Вопрос:
у меня есть пользовательская таблица в моей базе данных drupal.
-
Я сохраняю записи в этой таблице с помощью формы в пользовательском модуле. Администратор добавит записи из этой формы. Поля — это имя, дата и т.д.
-
Теперь конечные пользователи должны иметь возможность просматривать эти записи во внешнем интерфейсе сайта, в блоке. Он должен отображать поле имени каждой записи и позволять пользователям нажимать на имя и выполнять операции, такие как голосование за него.
Я закончил с первой задачей, как я могу реализовать вторую задачу?
Ответ №1:
Вам нужно будет создать свой собственный модуль, и в этом модуле вы реализуете метод hook_block() для возврата форматированного html. Внутри вашего hook_block() вы можете выполнять любой запрос к базе данных, который вам нужен для генерации html.
http://api.drupal.org/api/drupal/developer—hooks—core.php/function/hook_block/6
Комментарии:
1. Спасибо за ответ.. К вашему сведению, я создал свой собственный модуль (my_module) и реализовал форму в файле: my_module.module, например: функция my_module_my_form($form_state) ….. теперь я должен реализовать функцию hook_block() внутри того же файла?
2. Да, это нормально реализовать в том же модуле. Вы можете разделить свою функциональность на разные модули, но в этом нет необходимости. Когда ваш модуль реализует метод hook_block(), вы должны иметь возможность поместить его в свой макет с помощью графического интерфейса администратора-> блоки.
3. Как я могу связать блок с этим модулем? Нужно ли мне добавлять новый блок?
4. Когда вы внедрили метод hook_block(), вы должны очистить все кэши drupal, и ваш блок должен быть виден в графическом интерфейсе администратора-> блокировать для размещения.