/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/grid/BooleanColumn.php
114 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\grid; use Yii; use yii\grid\DataColumn; /** * Колонка для отображения логических данных * * ```php * 'columns' => [ * // ... * [ * 'class' => BooleanColumn::className(), * ], * ] * ``` * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2020 */ class BooleanColumn extends DataColumn { /** * @inheritdoc */ public $format = 'raw'; /** * Заголовок для истенных колонок * @var string */ public $trueLabel; /** * Заголовок для ложных колонок * @var string */ public $falseLabel; /** * Иконка для истенных колонок * @var string */ public $trueIcon; /** * Иконка для ложных колонок * @var string */ public $falseIcon; /** * @var boolean whether to show null value as a false icon. */ public $showNullAsFalse = false; /** * @inheritdoc */ public $contentOptions = [ 'class' => 'text-center' ]; /** * Иконка для истинных колонок * @var string */ const ICON_ACTIVE = '<span class="text-success icon-checkmark"></span>'; /** * Иконка для ложных колонок * @var string */ const ICON_INACTIVE = '<span class="text-danger icon-cross2"></span>'; /** * @inheritdoc * @throws \yii\base\InvalidConfigException */ public function init() { if (empty($this->trueLabel)) { $this->trueLabel = Yii::t('app', 'Yes'); } if (empty($this->falseLabel)) { $this->falseLabel = Yii::t('app', 'No'); } if (empty($this->trueIcon)) { $this->trueIcon = self::ICON_ACTIVE; } if (empty($this->falseIcon)) { $this->falseIcon = self::ICON_INACTIVE; } parent::init(); } /** * @inheritdoc */ public function getDataCellValue($model, $key, $index) { $value = parent::getDataCellValue($model, $key, $index); if ($value !== null) { return $value ? $this->trueIcon : $this->falseIcon; } return $this->showNullAsFalse ? $this->falseIcon : $value; } }