Example #1
0
 /**
  * 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;
 }