РЕШЕНО ! Запретить изменение уже введенного значения поля без отключения (просмотра) поля

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

Аватар пользователя iNFerNo iNFerNo 21 мая 2013 в 14:08

Нужно при создание ноды давать возможность добавлять значение полю, а при редактирование своего и чужого естественно материала (ноды) не давать возможности изменять уже введеное поле.

Комментарии

Аватар пользователя iNFerNo iNFerNo 22 мая 2013 в 11:22

что то не хочет фурычить....

<?phpif ($form_id == 'funding_node_form') {

if ($form['field_price_remuneration'][und][0][value] == '') {

$form['field_price_remuneration'][und][0][value]['#disabled'] = TRUE;

}

else {

$form['field_price_remuneration'][und][0][value]['#disabled'] = FALSE;

}

}
  ?>

Аватар пользователя iNFerNo iNFerNo 22 мая 2013 в 14:07

Я попробовал просто сделать так

$form['field_price_remuneration'] = array(
'#disabled' => TRUE,
);

это убирает с формы поле. а нужно что бы оно было но было отключенным.

Аватар пользователя iNFerNo iNFerNo 22 мая 2013 в 14:49

хотя не оч работает

и так не пашет.........

<?phpfunction mymodule_form_alter(&$form, $form_state, $form_id) {

if (arg(0) == 'node' && arg(1) == 'add') {

 if ($form_id == 'funding_node_form') {
 
$form['field_price_remuneration']['und']['0']['value']['#attributes']['disabled'] = FALSE;
}
}
?>

Аватар пользователя iNFerNo iNFerNo 22 мая 2013 в 14:56

решил задачу более внимательным надо быть.

<?phpif (arg(0) == 'node' && arg(2) == 'edit') {
 
$form['field_price_remuneration']['und']['0']['value']['#attributes']['disabled'] = TRUE;

}?>

Аватар пользователя iNFerNo iNFerNo 22 мая 2013 в 16:46
<?phpglobal $user;
$user_id = $user->uid;
    
if (arg(0) == 'node' && arg(2) == 'edit' && $user_id == 1) {
 
$form['field_price_remuneration']['und']['0']['value']['#attributes']['disabled'] = TRUE;

}?>

хочется ограничить ролью юзера... что-то не срастается.... прошу помощи. спасибо..........

Аватар пользователя q2_faith q2_faith 22 мая 2013 в 17:41

"iNFerNo" wrote:
хочется ограничить ролью юзера... что-то не срастается.... прошу помощи. спасибо..........

ну так укажите роль, а не айдишник

Аватар пользователя iNFerNo iNFerNo 23 мая 2013 в 10:27

и такое не хочет выполняться...

<?phpfunction mymodule_form_alter(&$form, $form_state, $form_id) {
    
global $user;
    if ($user->uid == 1){
    
if (arg(0) == 'node' && arg(2) == 'edit') {
 
$form['field_price_remuneration']['und']['0']['value']['#attributes']['disabled'] = TRUE;

}

}
}?>

для суперадмина работает как надо.

мне требуется для страницы редактирования ноды для всех пользователей (текущего) у которых есть определенная роль например её id 3 disabled для поля

Аватар пользователя Mitriy-Bug Mitriy-Bug 1 декабря 2017 в 9:18

Для восьмой версии для отключения редактирования поля по роли:

<?php
function hook_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state$form_id) {
   
//Отключаем редактирование поля "body" для роли "Роль"
  
if ($form_id == 'ID формы') {
    
$user = \Drupal::currentUser();
   
$uid = \Drupal::currentUser()->id();
   
$roles $user->getRoles();
   if (
in_array('Роль'$roles)) {
$form['body']['#attributes']['disabled'] = TRUE
    }
  }
}
?>