Задача:
После сохранения ноды пользователь переходит на страницу просмотра только что сохранённой ноды (вкладка 'View'). Нужно сделать редирект на произвольный URL.
Нужно создать (если нужно) модуль и в файл MODULENAME.module добавить:
function MODULENAME_form_alter(&$form, &$form_state, $form_id) {
if ('page' == $form['#node']->type){
$form['#redirect'] = 'thanks_page';
}
}
if ('page' == $form['#node']->type){
$form['#redirect'] = 'thanks_page';
}
}
Данный код сработает перед выводом формы редактирования в браузер пользователя и в этой форме будет изменён стандартный редирект. Это делается для нод определённого типа - page. Можно использовать любые другие условия.
Если нужно в пути использовать спец. символы, то нужно использовать конструкцию подобную этой:
function MODULENAME_form_alter(&$form, &$form_state, $form_id) {
if ('page' == $form['#node']->type){
$form['#redirect'] = array('flex', 'component=pbrowser', 't=1');
}
}
if ('page' == $form['#node']->type){
$form['#redirect'] = array('flex', 'component=pbrowser', 't=1');
}
}
Иначе Drupal заменит специальные символы (?, & и др.) на безопасные.
Полезные ссылки
Redirecting with query string
Использованные материалы:
Bookmark/Search this post with












Комментарии
кому ломает делать модуль, не забудьте также про тематизацию, где на препроцессоре формы ноды можно также изменить редирект, акшн и всё-всё-всё :)