mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-06 15:14:58 +00:00
add export of folder list
This commit is contained in:
parent
665deb0595
commit
435c94f585
|
@ -39,24 +39,48 @@ class SeedDMS_Download_Mgr {
|
|||
*/
|
||||
protected $items;
|
||||
|
||||
/**
|
||||
* @var array $folder_items list of folder content items
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_items;
|
||||
|
||||
/**
|
||||
* @var array $extracols list of arrays with extra columns per item
|
||||
* @access protected
|
||||
*/
|
||||
protected $extracols;
|
||||
|
||||
/**
|
||||
* @var array $folder_extracols list of arrays with extra columns per folder item
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_extracols;
|
||||
|
||||
/**
|
||||
* @var array $header list of entries in header (first line)
|
||||
* @access protected
|
||||
*/
|
||||
protected $header;
|
||||
|
||||
/**
|
||||
* @var array $folder_header list of entries in header (first line)
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_header;
|
||||
|
||||
/**
|
||||
* @var array $extraheader list of extra entries in header
|
||||
* @access protected
|
||||
*/
|
||||
protected $extraheader;
|
||||
|
||||
/**
|
||||
* @var array $folder_extraheader list of extra entries in header
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_extraheader;
|
||||
|
||||
/**
|
||||
* @var array $rawcontents list of content used instead of document content
|
||||
* @access protected
|
||||
|
@ -72,10 +96,14 @@ class SeedDMS_Download_Mgr {
|
|||
function __construct($tmpdir = '') {
|
||||
$this->tmpdir = $tmpdir;
|
||||
$this->items = array();
|
||||
$this->folder_items = array();
|
||||
$this->header = array(getMLText('download_header_document_no'), getMLText('download_header_document_name'), getMLText('download_header_filename'), getMLText('download_header_state'), getMLText('download_header_internal_version'), getMLText('download_header_reviewer'), getMLText('download_header_review_date'), getMLText('download_header_review_comment'), getMLText('download_header_review_state'), getMLText('download_header_approver'), getMLText('download_header_approval_date'), getMLText('download_header_approval_comment'), getMLText('download_header_approval_state'));
|
||||
$this->folder_header = array(getMLText('download_header_folder_no'), getMLText('download_header_folder_name'));
|
||||
$this->extracols = array();
|
||||
$this->folder_extracols = array();
|
||||
$this->rawcontents = array();
|
||||
$this->extraheader = array();
|
||||
$this->folder_extraheader = array();
|
||||
$this->filenames = array();
|
||||
}
|
||||
|
||||
|
@ -83,6 +111,10 @@ class SeedDMS_Download_Mgr {
|
|||
$this->extraheader = $extraheader;
|
||||
} /* }}} */
|
||||
|
||||
public function addFolderHeader($extraheader) { /* {{{ */
|
||||
$this->folder_extraheader = $extraheader;
|
||||
} /* }}} */
|
||||
|
||||
public function addItem($item, $extracols=array(), $rawcontent='', $filename='') { /* {{{ */
|
||||
$this->items[$item->getID()] = $item;
|
||||
$this->extracols[$item->getID()] = $extracols;
|
||||
|
@ -90,10 +122,15 @@ class SeedDMS_Download_Mgr {
|
|||
$this->filenames[$item->getID()] = $filename;
|
||||
} /* }}} */
|
||||
|
||||
public function addFolderItem($item, $extracols=array()) { /* {{{ */
|
||||
$this->folder_items[$item->getID()] = $item;
|
||||
$this->folder_extracols[$item->getID()] = $extracols;
|
||||
} /* }}} */
|
||||
|
||||
public function createToc($file) { /* {{{ */
|
||||
$items = $this->items;
|
||||
$objPHPExcel = new PhpOffice\PhpSpreadsheet\Spreadsheet();
|
||||
$objPHPExcel->getProperties()->setCreator("SeedDMS")->setTitle("Metadata");
|
||||
if($items = $this->items) {
|
||||
$sheet = $objPHPExcel->setActiveSheetIndex(0);
|
||||
$sheet->setTitle(getMLText('documents'));
|
||||
|
||||
|
@ -190,6 +227,39 @@ class SeedDMS_Download_Mgr {
|
|||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($items = $this->folder_items) {
|
||||
if($this->items)
|
||||
$sheet = $objPHPExcel->createSheet($i);
|
||||
else
|
||||
$sheet = $objPHPExcel->setActiveSheetIndex(0);
|
||||
$sheet->setTitle(getMLText('folders'));
|
||||
|
||||
$i = 1;
|
||||
$col = 1;
|
||||
foreach($this->folder_header as $h)
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $h);
|
||||
foreach($this->folder_extraheader as $h)
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $h);
|
||||
$i++;
|
||||
$items = $this->folder_items;
|
||||
foreach($items as $item) {
|
||||
if($item->isType('folder')) {
|
||||
$folder = $item;
|
||||
$dms = $folder->_dms;
|
||||
|
||||
$col = 1;
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $folder->getID());
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $folder->getName());
|
||||
if(isset($this->folder_extracols[$item->getID()]) && $this->folder_extracols[$item->getID()]) {
|
||||
foreach($this->folder_extracols[$item->getID()] as $column)
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, is_array($column) ? implode("\n", $column) : $column );
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$objWriter = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($objPHPExcel);
|
||||
$objWriter->save($file);
|
||||
|
|
Loading…
Reference in New Issue
Block a user