Патч для вывода полей профиля в webform

Главные вкладки

Аватар пользователя xakudu xakudu 10 декабря 2011 в 1:30

Многие знают, что в 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 '';
          }
?>

После этой нехитрой комбинации у меня все заработало. Может кто напишет в спортлото разработчикам?

Комментарии

Аватар пользователя vitaboss vitaboss 18 марта 2012 в 18:46

Нихрена больше не работает! Модуль обновился, там теперь другие строки. Куда теперь патч вставлять? Вроде бы в новой версии 7-3.17 пытались решить эту проблему, но получилось хуже. Т.е. если в 3.13 с вашим патчем переменная %title передавала заголовок ноды с которой форма отправлена (форма настроена и отображается в блоке на определенных типах страниц), то теперь передает заголовок блока самой формы. Подскажите пожалуйста как получить через вебформу [node:title] , [current-page:title] или [node:field_article].

Аватар пользователя xakudu xakudu 25 марта 2012 в 15:54

"vitaboss" wrote:
Нихрена больше не работает!

Не работает и само, и без патча? И если заметили патч исключительно для полей профиля - остальные прекрасно работали и до. Или все поломали? Что-то не верится.

Аватар пользователя vitaboss vitaboss 6 апреля 2012 в 22:30

Я вообще не разбираюсь в php, тупо вставил, все заработало, обрадовался. Потом вышла новая версия самого модуля. Но я то помню, что есть баг, полез в код, а там он уже другой. Вот то, что ваше "Было" (см.выше) оно уже не такое. Так визуально посмотрел, какие-то фрагменты в новом модуле присутствуют, очень похожие на ваш патч, но все равно не то, подумал, что с выходом новой версией модуля эту проблему решили. Нихрена!
У меня Webform работает в блоке, отображается на определенных типах нод, нужен %title ноды, а не webform. Единственное решение нашел на drupal.org , вставить не редактируемое поле в http://мойсайт.ru/%get[q]
Уё полное, но хоть теперь понятно с какого урла выслали заказ. Подскажите как сделать, так чтоб пользователь вообще не видел это поле и приходил реально title ноды , а урл, а лучше чтоб артикул товара.