Многие знают, что в webform с давних пор есть возможность подставлять по умолчанию поля профиля - через токен %profile[ключ]. Есть то она якобы есть, но только нихрена не работает.
Написал простенький патч для webform , версия 7-3.13.
Файл webform.module, строка 2791.
Было
<?php foreach ($variable as $key => $value) {
// This special case for profile module dates.
if ($token == '%profile' && is_array($value) && isset($value['year'])) {
$replacement = webform_strtodate(webform_date_format(), $value['month'] . '/' . $value['day'] . '/' . $value['year'], 'UTC');
}
else {
$replacement = (!is_array($value) && !is_object($value)) ? $value : '';
}?>
Стало
<?php foreach ($variable as $key => $value) {
// This special case for profile module dates.
if ($token == '%profile' && is_array($value) && isset($value['year'])) {
$replacement = webform_strtodate(webform_date_format(), $value['month'] . '/' . $value['day'] . '/' . $value['year'], 'UTC');
}
else if ($token == '%profile' && is_array($value) && isset($value['und'])) { /// добавлено
$replacement = $value['und'][0]['value']; /// добавлено
} /// добавлено
else {
$replacement = (!is_array($value) && !is_object($value)) ? $value : '';
}?>
После этой нехитрой комбинации у меня все заработало. Может кто напишет в спортлото разработчикам?
Комментарии
Нихрена больше не работает! Модуль обновился, там теперь другие строки. Куда теперь патч вставлять? Вроде бы в новой версии 7-3.17 пытались решить эту проблему, но получилось хуже. Т.е. если в 3.13 с вашим патчем переменная %title передавала заголовок ноды с которой форма отправлена (форма настроена и отображается в блоке на определенных типах страниц), то теперь передает заголовок блока самой формы. Подскажите пожалуйста как получить через вебформу [node:title] , [current-page:title] или [node:field_article].
Не работает и само, и без патча? И если заметили патч исключительно для полей профиля - остальные прекрасно работали и до. Или все поломали? Что-то не верится.
Я вообще не разбираюсь в php, тупо вставил, все заработало, обрадовался. Потом вышла новая версия самого модуля. Но я то помню, что есть баг, полез в код, а там он уже другой. Вот то, что ваше "Было" (см.выше) оно уже не такое. Так визуально посмотрел, какие-то фрагменты в новом модуле присутствуют, очень похожие на ваш патч, но все равно не то, подумал, что с выходом новой версией модуля эту проблему решили. Нихрена!
У меня Webform работает в блоке, отображается на определенных типах нод, нужен %title ноды, а не webform. Единственное решение нашел на drupal.org , вставить не редактируемое поле в http://мойсайт.ru/%get[q]
Уё полное, но хоть теперь понятно с какого урла выслали заказ. Подскажите как сделать, так чтоб пользователь вообще не видел это поле и приходил реально title ноды , а урл, а лучше чтоб артикул товара.