yorm: Блог

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

[решено] Не работают токены для дефолтных полей профиля в WebForms

30 октября 2009 в 20:33

На сайте через модуль WebForm в поля формы по умолчанию подставляются различные данные о пользователе, например e-mail через токен %useremail. И это работает. Работают также токены вида %get[ex], переменная из адресной строки легко подставляется.
При попытке же подставить любое поле из профиля — в форму подставляется сам токен.

В webform написано понятным по белому:
If you are using the profiles module, you can also access all profile data using the syntax %profile[form_name]. If you for example have a profile value named profile_city, add the variable %profile[profile_city].

Но все токены типа %profile[profile_surname], %profile[profile_name] и прочие выводятся в форме без подстановки значения. Просто, например, "%profile[profile_surname]".
Названия полей в профилях проверял, изменял, не помогает.

Никто не сталкивался?
Помогите, пожалуйста. Спасибо.

[решение]
Так как мне было очень нужно, на второй день нашел, как это правится ручными изменениями в модуле.
Информация [##604958]отсюда[/##]. Проблема, как выяснилось, нередкая.

Решается методом замены в файле webform.module вот этого:

 // User replacements.
  if (!array_key_exists('%username', $replacements['unsafe'])) {
    $replacements['unsafe']['%username'] = isset($user->name) ? $user->name : '';
    $replacements['unsafe']['%useremail'] = isset($user->mail) ? $user->mail : '';
    $replacements['unsafe']['%ip_address'] = ip_address();
    if ($user->uid && module_exists('profile')) {
      profile_load_profile($user);
    }