[решено] Не работают токены для дефолтных полей профиля в WebForms
На сайте через модуль 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 вот этого:
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);
}