Вы здесь

Отправка пользователя на главную после публикации материала

0

Какой нужен модуль или какую настройку изменить, чтобы после публикации материала пользователь попадал на главную страницу?
Rules?

Версия Drupal: 
7.x
Вопрос задан 25.11.2015 - 18:10

Уточните, пожалуйста, что вы подразумеваете под этим ?

пользователь попадал на главную страницу

Комментарий оставлен 25.11.2015 - 18:19

Пользователь написал материал, а потом его, после сохранения материала направили на главную страницу.

Комментарий оставлен 26.11.2015 - 13:39

Ответы

1

Да, Rules.

Событие - сохранение материала. Реакция - переадресация страницы.

Вот пример как на dru.io работает переадресация на страницу вопроса после добавления ответа (можно импортировать через /admin/config/workflow/rules/reaction/import):

{ "rules_redirect_to_question_after_answer" : {
    "LABEL" : "Redirect to question after answer",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "node_insert--answer" : { "bundle" : "answer" } },
    "IF" : [
      { "entity_has_field" : { "entity" : [ "node" ], "field" : "field_answer_question_reference" } }
    ],
    "DO" : [
      { "redirect" : { "url" : [ "node:field-answer-question-reference:url" ] } }
    ]
  }
}
Ответ дан 25.11.2015 - 18:49

Попробовал создать правило переадрессации страyнцы на один из views. Написал относительную ссылку. При сохранении статьи вылетает сервер Apache вместо переадрессации.
Как правильно написать относительную ссылку что ли? Или в Apache дело?

Комментарий оставлен 30.11.2015 - 15:29

не могу сказать, он должен в логах что-то писать, почему вылетел.

Комментарий оставлен 30.11.2015 - 18:05

А если попробовать через Trigger сделать переадресацию на views (представление)?
У views вообще есть токены или надо адрес страницы прописывать?
Спасибо.

Комментарий оставлен 03.12.2015 - 09:08

я признаться, не уверен что trigger умеет, давно не смотрел даже.
для вьюса - адрес.

Комментарий оставлен 03.12.2015 - 10:42
1

Можно, альтернуть форму создания ноды через hook_form_FORM_ID_alter(), повесить туда дополнительный коллбэк,

$form['#submit'][] = 'MY_MODULE_extra_callback';

в котором сделать

function MY_MODULE_extra_callback($form, &$form_state) {
  drupal_goto('<front>');
}

А можно и через rules.

Ответ дан 25.11.2015 - 20:40
Аватар пользователя SAM
SAM
212
1
function hook_node_insert($node) {
   if ( !in_array('administrator', $GLOBALS['user']->roles) ) {
      drupal_goto('front');
   }
}

http://xandeadx.ru/blog/drupal/628

function mymodule_form_article_node_form_alter(&$form, &$form_state) {
  $form['actions']['submit']['#submit'][] = 'mymodule_article_node_form_submit';
}
function mymodule_article_node_form_submit($form, &$form_state) {
  $form_state['redirect'] = 'my/super/page';
}

http://xandeadx.ru/blog/drupal/333

Ответ дан 25.11.2015 - 20:46
0

Rules или custom справятся

Ответ дан 26.11.2015 - 08:36
-2

rules я не использую по причине "его называют медленным". поэтому я бы делал так:
создать хук node_view() в котором вы сравниваете это новая недавно добавлення нода или нет, например так: является ли нода просмотренной этим пользователем и является ли он автором. если да - то добавить мета-тег refresh или даже сделать пхп-редирект если такое возможно на этом уровне

Ответ дан 25.11.2015 - 19:08

попробуйте сами разобраться. Возьмите сайт на локалхосте, разберитесь как делается нагрузочное тестирование, посмотрите результаты с рулезом и без, и принимайте решение. Не обязательно верить всему что говорят -- может, говорили в 2006м году, а сейчас это уже не актуально?

Комментарий оставлен 25.11.2015 - 19:17