Example #1
0
 /**
  * handle export 
  */
 private function handleExport()
 {
     $request = Request::getInstance();
     $view = ViewManager::getInstance();
     $cache = Cache::getInstance();
     $filename = strtolower($this->getClassName()) . ".csv";
     $csvContent = '';
     if (!$cache->isCached($filename)) {
         require_once DIF_ROOT . "utils/CsvFile.php";
         // handle searchcriteria
         $search = new SearchManager();
         $search->setUrl($this->pagerUrl);
         $search->setExclude($this->pagerKey);
         $search->setParameter('search');
         $search->saveList();
         $searchcriteria = $search->getSearchParameterList();
         $exportlist = array();
         $list = $this->getList($searchcriteria);
         foreach ($list['data'] as $item) {
             $row = array_intersect_key($item, $this->exportColumns);
             $row['password'] = '';
             $row['role'] = $this->getRoleDesc($row['role']);
             $exportlist[] = $row;
         }
         $csvFile = new CsvFile();
         $csvContent = join("\n", $csvFile->array2csv($exportlist));
         $cache->save($csvContent, $filename);
     } else {
         $csvContent = $cache->getCache($filename);
     }
     header("Content-type: text/csv");
     header("Content-Disposition: attachment; filename=\"{$filename}\"");
     echo $csvContent;
     exit;
 }
Example #2
0
 /**
  * handle record export all
  */
 private function handleRecordExport()
 {
     $request = Request::getInstance();
     $view = ViewManager::getInstance();
     if (!$request->exists('tree_id')) {
         throw new Exception('Node ontbreekt.');
     }
     if (!$request->exists('tag')) {
         throw new Exception('Tag ontbreekt.');
     }
     $tree_id = intval($request->getValue('tree_id'));
     $tag = $request->getValue('tag');
     $key = array('tree_id' => $tree_id, 'tag' => $tag);
     $cache = Cache::getInstance();
     $filename = $this->plugin->getObject(Form::TYPE_SETTINGS)->getName($key) . ".csv";
     $csvContent = '';
     if (!$cache->isCached($filename)) {
         require_once DIF_ROOT . "utils/CsvFile.php";
         $record = $this->plugin->getObject(Form::TYPE_RECORD);
         $recordItem = $this->plugin->getObject(Form::TYPE_RECORD_ITEM);
         // get columns and create template column list because not every record may have all the columns.
         $recordTemplate = array();
         $columns = $recordItem->getColumns($tree_id, $tag);
         foreach ($columns as $column) {
             $recordTemplate[$column] = '';
         }
         // retrieve all records within this tree node
         $recsearch = $key;
         $recsearch['optin'] = '';
         $recordlist = array();
         $records = $record->getList($recsearch);
         foreach ($records['data'] as $item) {
             $recordlist[$item['id']] = $item['createdate'];
         }
         // search for all form elements within the specified records
         $exportList = array();
         $elemsearch = array('rcd_id' => array_keys($recordlist));
         // get all items sorted by record
         $recordItemList = $recordItem->getItems($elemsearch);
         foreach ($recordItemList as $rcd_id => $recordElement) {
             // set values to all the columns
             $element = $recordTemplate;
             foreach ($recordElement as $recordColumn) {
                 // columnames are forced to lowercase, do the same for this result to merge case sensitive versions of columns
                 $element[strtolower($recordColumn['name'])] = $recordColumn['value'];
             }
             // add timestamp
             $element['timestamp'] = strftime('%m/%d/%Y %R', $recordlist[$rcd_id]);
             $exportlist[] = $element;
         }
         $csvFile = new CsvFile();
         $csvContent = join("\n", $csvFile->array2csv($exportlist));
         $cache->save($csvContent, $filename);
     } else {
         $csvContent = $cache->getCache($filename);
     }
     header("Content-type: text/csv");
     header("Content-Disposition: attachment; filename=\"{$filename}\"");
     echo $csvContent;
     exit;
 }