/** * Creates column objects and initializes them. * Automatically add hidden checkbox column. */ protected function initColumns() { parent::initColumns(); if ($this->selectableRows == 0) { return; } //define primaryKey expression if ($this->dataProvider instanceof CActiveDataProvider) { $primaryKey = '$data->primaryKey'; } else { $primaryKey = '$data["' . $this->dataProvider->keyField . '"]'; } $checkedExpression = 'isset($_GET["' . $this->selVar . '"]) ? in_array(' . $primaryKey . ', is_array($_GET["' . $this->selVar . '"]) ? $_GET["' . $this->selVar . '"] : array($_GET["' . $this->selVar . '"])) : false;'; //if gridview already has user defined Checkbox column --> set "checked" and exit //thanks to Horacio Segura http://www.yiiframework.com/extension/selgridview/#c7346 foreach ($this->columns as $col) { if ($col instanceof CCheckBoxColumn) { $col->checked = $checkedExpression; $col->init(); return; } } //creating hidden checkbox column $checkboxColumn = new CCheckBoxColumn($this); $checkboxColumn->checked = $checkedExpression; $checkboxColumn->htmlOptions = array('style' => 'display:none'); $checkboxColumn->headerHtmlOptions = array('style' => 'display:none'); $checkboxColumn->init(); $this->columns[] = $checkboxColumn; }
public function initColumns() { $this->dataProvider->model->onBeforeGridInitColumns(new CModelEvent($this)); if ($this->mass_removal) { $this->addColumn(array( 'class' => 'CCheckBoxColumn', 'header' => "<input type='checkbox' class='object_checkboxes'>", 'selectableRows' => 2, 'checkBoxHtmlOptions' => array( 'class' => 'object_checkbox' ) )); } parent::initColumns(); $this->dataProvider->model->onAfterGridInitColumns(new CModelEvent($this)); }
public function initColumns() { $button_column_exists = false; $attributes_columns = $this->columns; foreach ($attributes_columns as $i => $data) { if (isset($data['class'])) { if ($data['class'] == 'CButtonColumn') { $button_column_exists = true; } unset($attributes_columns[$i]); } } if (!$attributes_columns) { $model = $this->filter; $attributes = WidgetManager::getVisibleColumns(get_class($model), $this->id); if ($attributes) { foreach ($attributes as $i => $attribute) { $this->addColumn( array( 'name' => $attribute, 'value' => '$data->value("' . $attribute . '")', 'type' => 'raw', 'filter' => $model->filter($attribute), ), $i ); } } } if (!$button_column_exists) { $this->addColumn(array('class' => 'CButtonColumn'), count($this->columns) + 1); } if ($this->many_many_sortable) { $this->addColumn(array( 'class' => 'ext.sortable.ManyManySortableColumn', 'header'=> t('Сортировка') ), -1); } if ($this->sortable) { $this->addColumn(array( 'class' => 'ext.sortable.SortableColumn', 'header'=> t('Сортировка') ), -1); } if ($this->mass_removal) { $this->addColumn(array( 'class' => 'CCheckBoxColumn', 'header' => "<input type='checkbox' class='object_checkboxes'>", 'selectableRows' => 2, 'checkBoxHtmlOptions' => array( 'class' => 'object_checkbox' ) )); } parent::initColumns(); }