Как я могу перенаправить пользователя Drupal после создания нового контента
Я хочу перенаправить своих пользователей после того, как они создадут новый контент, вместо того, чтобы направлять их на страницу просмотра контента.
Я видел упоминание об использовании hook_alter или чего-то еще, но я действительно новичок в drupal и даже не уверен, что это значит?
Спасибо!
2 ответа
Поскольку вы упоминаете, что вы новичок в Drupal, я бы посоветовал взглянуть на модуль Rules. Вы можете добавить триггер для содержимого, которое было сохранено / обновлено, и добавить действие, чтобы перенаправить пользователя на определенную страницу.
Однако вы можете сделать то же самое в легком пользовательском модуле, используя хук form_alter.
Сначала найдите идентификатор формы. Для форм узлов это [тип узла]_node_form. Затем вы можете добавить новую функцию отправки, которая будет выполняться при отправке формы. В этом обработчике отправки установите путь перенаправления.
См. Это руководство по основным инструкциям по созданию модуля. Код вашего модуля будет выглядеть примерно так:
<?php
function mymodule_mytype_node_form_alter(&$form, &$form_state) {
$form['#submit'][] = 'mymodule_node_submit_do_redirect';
}
function mymodule_node_submit_do_redirect($form, &$form_state) {
$form_state['redirect'] = 'my_custom_destination';
}
Намного более простой подход состоит в том, чтобы установить назначение в URL формы узла. Например, если вы открыли http://example.com/node/add/mytype?destination=my_custom_destination
, вы будете перенаправлены на этот URL вместо страницы просмотра узла.
Это работает для меня, используя Drupal 7, после создания нового модуля! Поместите в файл.module следующий код PHP:
<?php
function custom_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == '[node-type]_node_form') {
$form['actions']['submit']['#submit'][]= 'my_custom_submit_handler';
}
}
function my_custom_submit_handler($form, &$form_state) {
$form_state['redirect'] = 'http://www.expamle.eu/?q=node/2';
}
Вам просто нужно изменить [тип-узла]_node_form с вашим именем типа узла (например: example_node_form) и http://www.expamle.eu/?q=node/2 с правильным URL-адресом.