Drupal показывает табличные данные в блоке с пользовательскими взаимодействиями

#php #drupal #forms

#php #drupal #формы

Вопрос:

у меня есть пользовательская таблица в моей базе данных drupal.

  1. Я сохраняю записи в этой таблице с помощью формы в пользовательском модуле. Администратор добавит записи из этой формы. Поля — это имя, дата и т.д.

  2. Теперь конечные пользователи должны иметь возможность просматривать эти записи во внешнем интерфейсе сайта, в блоке. Он должен отображать поле имени каждой записи и позволять пользователям нажимать на имя и выполнять операции, такие как голосование за него.

Я закончил с первой задачей, как я могу реализовать вторую задачу?

Ответ №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, и ваш блок должен быть виден в графическом интерфейсе администратора-> блокировать для размещения.