Веб-форма Drupal 7 заполняет скрытое поле текущим названием узла - PullRequest
1 голос
/ 30 октября 2011

Я использую веб-форму как блок на всех страницах определенного типа контента.Форма одинакова во всех, но в списке представлений я хочу знать, какую страницу просматривал пользователь.Я думал, что скрытое поле, и значение по умолчанию %title будет делать это, но это не так.Я перепробовал множество других значений токенов, и многие из них работают, но ни одно из них не дает мне идентификатор текущего узла.

1 Ответ

3 голосов
/ 30 октября 2011

Я думаю, причина этого не в том, что элемент node токенов веб-формы относится к узлу самой веб-формы, а не к текущей странице узла.Почему webform не использует встроенную систему токенов, я понятия не имею, кажется упущенной возможностью.

Глядя на модуль webform, я думаю, что самый простой способ сделать это - написать быстрый пользовательский модульопределение одной таблицы (два столбца, nid и url), а затем реализация hook_webform_submission_insert() для сохранения текущего $_SERVER['REQUEST_URI'] для всех веб-форм.Затем вы можете использовать hook_webform_submission_load() и hook_webform_submission_render_alter() соответственно, чтобы повторно прикрепить данные URL к отправке и отобразить их на странице.

Все эти ловушки можно найти в файле webform_hooks.php, включенном вмодуль, они довольно хорошо задокументированы.

...