/** * Return the array with the columns that could be exported * * @return array */ public function getColumns() { $aColumns = $this->_model->getColumns(); $relatedColumns = $this->_getRelatedColumns(); $availableColumns = array(); foreach ($aColumns as $name => $column) { $availableColumns[] = array('id' => $name, 'name' => $name, 'label' => $this->_model->getAttributeLabel($name)); } $availableColumns = array_merge($availableColumns, array_values($relatedColumns)); // Get the columnModel columns and the columns that are added through the formatColumns function. $cm = $this->getColumnModel(); $cm = $this->formatColumns($cm); $cmCols = $cm->getColumns(); $cmColumns = array(); foreach ($cmCols as $cmCol) { $cmColumns[] = array('id' => $cmCol->getDataIndex(), 'name' => $cmCol->getDataIndex(), 'label' => $cmCol->getLabel()); } $availableColumns = array_merge($availableColumns, array_values($cmColumns)); // Remove columns that are not exportable foreach ($this->notExportableColumns as $notExp) { foreach ($availableColumns as $key => $ac) { if (isset($ac['id']) && $ac['id'] === $notExp) { unset($availableColumns[$key]); } } } sort($availableColumns); return $availableColumns; }