2013-07-24 2 views
0

У меня есть вид (фаза4) с некоторым содержимым содержимого контента, в котором пользователи могут комментировать.Переадресация на последнюю страницу при использовании оверлейной формы комментариев

Когда пользователи хотят комментировать, форма комментария должна отображаться в виде модальности. Я решил это, используя накладку администратора. Добавление следующие функции в мой пользовательский модуль:

function phase2_admin_paths_alter(&$paths) { 
     $paths['comment/reply/*'] = TRUE; 
    } 

и используя следующую ссылку:

<a href="<?php print base_path(); ?>comment/reply/<?php print $fields['nid']->content; ?>">Comment</a> 

, чтобы открыть форму комментария в модальном пути. До сих пор так хорошо ... но ....

Как перенаправить пользователя на страницу, откуда пришел пользователь. Я знаю, что я должен переписать #action формы в template_form_FORMID_alter, как

$form['#action'] = $lasturl; 

, но как я могу получить последний URL, так что можно использовать повторно (так жестко прописывать URL-адрес не вариант)?

Моя первая идея состояла в том, что я передаю последний URL, добавив его в URL-адрес как $ _GET-параметра, но это выглядит следующим образом:

www.example.com/phase4#overlay=comment/reply/161%3Furl%3Dphase4 

Я также пробовал с drupal_get_destination(), но либо без успеха, из-за трансформации «?» и "=" в URL-адресе.

Есть ли другие способы узнать, откуда пришел пользователь?

Примечание: Phase4 не является псевдонимом узла 161. Фаза 4 представляет собой представление, где узел 161 является элементом.

Приветствия Том

ответ

0

Вы должны использовать функцию drupal_get_destination() с l() функции для создания таких связей.

$destination = drupal_get_destination(); // Store current path 

<a href="<?php print base_path(); ?>comment/reply/<?php print $fields['nid']->content . "?destination=".$destination; ?>">Comment</a> 
+0

@Tom Этот ответ решает вашу проблему? Если да, пожалуйста, дайте некоторую обратную связь (upvote, выберите как приемлемый). – TheodorosPloumis