Каким образом можно темизировать поле Справочный текст для определеноного поля? Нужно, чтобы значение поля менялось в зависимости от роля пользователя.
Темизация поля Справочный текст - описание поля
Главные вкладки
Лучший ответ
Нет.. как говорил один врач: ни в чем себе не отказывай, но лучше не надо-)
тогда вместо имени роли лучше подставлять ее ID
<?php
/**
* Override or insert variables into the html template.
*/
function MYTHEMENAME_preprocess_html(&$vars) {
global $user;
$rids=user_roles();
foreach(
$user->roles as $role)
$vars['classes_array'][] = 'user-role--' . array_search($role,$rids );
}
}
?>
классы будут типа таких:
user-role--0
user-role--1
user-role--2
ИД роли можно подсмотреть в ссылках редактирования разрешений: /admin/people/permissions/roles
Комментарии
Уточните версию Drupal
Извиняюсь. Забыл добавить. Уточнил
Нет ни у кого каких-либо идей?
Попробуйте hook_form_alter
надо добавить с тегу body класс, соответствующий роли пользователя.
Например user-role-anonym, user-role-admin и т.п.
И простыми css-правилами назначить стили нужным элементам
color: #f00;
}
.user-role--admin .field-description{
color: #0f0;
}
а поможет Вам в этом этот модуль: https://www.drupal.org/project/bodyclasses
или хук темы:
<?php
/**
* Override or insert variables into the html template.
*/
function MYTHEMENAME_preprocess_html(&$vars) {
global $user;
foreach($user->roles as $role)
$vars['classes_array'][] = 'user-role--' . $role;
}
?>
Спасибо большое. Вариант с хуком отлично работает, но проблема в том, что у меня имена ролей заданы кириллицей и получается, что класс выходит типа user-role--Неактивный. Это нормально?
Нет.. как говорил один врач: ни в чем себе не отказывай, но лучше не надо-)
тогда вместо имени роли лучше подставлять ее ID
<?php
/**
* Override or insert variables into the html template.
*/
function MYTHEMENAME_preprocess_html(&$vars) {
global $user;
$rids=user_roles();
foreach(
$user->roles as $role)$vars['classes_array'][] = 'user-role--' . array_search($role,$rids );
}
}
?>
классы будут типа таких:
user-role--0
user-role--1
user-role--2
ИД роли можно подсмотреть в ссылках редактирования разрешений: /admin/people/permissions/roles
Спасибо большое - все получилось) Хороший врач))