Как в таблице с checkbox, cделать что бы определенные checkbox стали неактивными ?

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

Аватар пользователя shlop shlop 26 января 2018 в 15:14

Здравствуйте, подскажите пожалуйста. В самодельном модуле сделал таблицу с checkbox. Таким вот образом -

<?php
        
foreach ($ArrayObj as $key => $value) {
        
$options[$value->id][] = changeDateFormat2($value->date,"Y.m.d");
        
$options[$value->id][] = GetNameofID2($value->authoruid);
        
$options[$value->id][] = $value->protocolnumber;
        
$options[$value->id][] = $value->status_sendfca;
        
$options[$value->id][] = ($value->senddate == "0000-00-00" || $value->senddate == "") ? "" changeDateFormat2($value->senddate,"Y.m.d");
        
$options[$value->id][] = $value->send_author;
        
$options[$value->id][] = $value->filenameEx;
        
$options[$value->id][] = $value->type;
        
$options[$value->id][] = $value->zavnumber;
        
$options[$value->id][] = str_replace(array('/''\\'), ''$value->vladel);
        
$options[$value->id][] = $value->inn;
        
$options[$value->id][] = $value->num_svidet;
        
$options[$value->id]['#attributes'] = array('class' => array('none_select'));
        
$header = array(
        
t('Дата'),
        
t('Пользователь'),
        
t('№ протокола'),
        
t('Статус отправки в ФСА'),
        
t('Дата отправки'),
        
t('Отправку выполнил'),
        
t('Имя файла'),
        
t('Тип'),
        
t('Зав. №'),
        
t('Владелец'),
        
t('ИНН владельца'),
        
t('Номер свидетельства'),
      );
      
$form['table_select'] = array(
        
'#type' => 'tableselect',
        
'#header' => $header,
        
'#options' => $options,
        
'#empty' => t('No content available.'),
        
'#attributes' => array('class' => array('commtable1','table')),
      );
     
$form['fileOpen'] = array(
        
'#type' => 'submit',
        
'#value' => 'Сформировать файл для отправки',
        
'#name' => 'fileOpen',
        
'#attributes' => array('class' => array('getdb','openexcel')),
        
'#validate' => array(),
        
'#ajax' => array(
            
'wrapper' => 'custom-form-wrapper',
            
'callback' => 'sendfca_openexcel_callback',
            
'progress' => array('type' => 'none'),
            ),
        );
      }
?>

Подскажите пожалуйста, как сделать так что бы в определенных строчках таблицы, этот checkbox стал неактивным. Там просто при определенных условиях если $value->status_sendfca == "Отправлен", некоторые строки должны быть неактивны. Просто сама идея в том, что строки таблицы, можно выбрать с помощью этих checkbox, и выгрузить, те которые уже были выгружены, выгружать нельзя. Пробовал добавлять класс $options[$value->id]['#attributes'] = array('class' => array('none_select')), но он добавляется именно на строку, а мне до самого checkbox добраться нужно. Подскажите пожалуйста, каким образом это можно сделать ? Заранее благодарю за ответ.

ВложениеРазмер
Иконка изображения im.jpg44.39 КБ

Комментарии

Аватар пользователя Orion76 Orion76 26 января 2018 в 21:58
1

если задача не решается, или решается слишком сложно, ее надо разбить на задачки по проще и решать поотдельности..
Например будем рассуждать логически, какой смысл в чекбоксе, который нельзя почекбоксить? Я тоже не понимаю..
Разделите таблицу на 2:
1.В первой доступное для выбора
2.Во второй - то что не доступно(просто инфа без чекбоксов)

Аватар пользователя sas@drupal.org sas@drupal.org 27 января 2018 в 12:07

- передать опциональные настройки через # в билд по ключам опций
- используем эти установки для опций в _preprocess & theme для checboxes