/** * Constructor * * @param unknown $a_parent_obj * @param unknown $a_parent_cmd * @param unknown $a_ref_id */ public function __construct($a_parent_obj, $a_parent_cmd, $a_ref_id, $calendarWeekGUI) { global $ilCtrl, $lng; $this->calendarWeekGUI = $calendarWeekGUI; $this->parent_obj = $a_parent_obj; $this->lng = $lng; $this->ctrl = $ilCtrl; $this->ref_id = $a_ref_id; $this->setId("calendarscheduleexport"); parent::__construct($a_parent_obj, $a_parent_cmd); $this->disable('action'); $buildAppointmentsArray = $this->calendarWeekGUI->buildAppointmentsArray(); $elements = $buildAppointmentsArray[0]; $element = $elements[1]; $this->setTitle($lng->txt("rep_robj_xrs_room_occupation_title") . " " . $calendarWeekGUI->getRoomName() . " (" . $lng->txt("rep_robj_xrs_week_capitalised") . " " . date('W', $element->getTimestamp()) . ")"); $this->setDescription($lng->txt("rep_robj_xrs_status") . ": " . date('d') . ". " . date('m') . ". " . date('Y')); $this->setLimit(20); // data sets per page // $this->setFormAction($ilCtrl->getFormAction($a_parent_obj, $a_parent_cmd)); $this->_addColumns(); $this->setRowTemplate("tpl.room_weekly_export_row.html", "Customizing/global/plugins/Services/Repository/RepositoryObject/RoomSharing/"); $this->getItems(); $tableHtml = str_replace("<nobreaks /><br /><br />", "", $this->getTableHTML()); ilRoomSharingPDFCreator::generatePDF($tableHtml, 'D', $lng->txt("rep_robj_xrs_room_occupation_title") . " " . $calendarWeekGUI->getRoomName() . '.pdf'); }
/** * Export the Data * * @param type $format * @param type $send */ public function exportData($format, $send = false) { if ($this->dataExists()) { // #9640: sort if (!$this->getExternalSorting() && $this->enabled["sort"]) { $this->determineOffsetAndOrder(true); $this->row_data = ilUtil::sortArray($this->row_data, $this->getOrderField(), $this->getOrderDirection(), $this->numericOrdering($this->getOrderField())); } $filename = "export"; switch ($format) { default: case self::EXPORT_EXCEL: include_once "./Services/Excel/classes/class.ilExcelUtils.php"; include_once "./Services/Excel/classes/class.ilExcelWriterAdapter.php"; $adapter = new ilExcelWriterAdapter($filename . ".xls", $send); $workbook = $adapter->getWorkbook(); $worksheet = $workbook->addWorksheet(); $row = 0; ob_start(); $this->fillMetaExcel($worksheet, $row); $this->fillHeaderExcel($worksheet, $row); foreach ($this->row_data as $set) { $row++; $this->fillRowExcel($worksheet, $row, $set); } ob_end_clean(); $workbook->close(); break; case self::EXPORT_CSV: include_once "./Services/Utilities/classes/class.ilCSVWriter.php"; $csv = new ilCSVWriter(); $csv->setSeparator(";"); ob_start(); $this->fillMetaCSV($csv); $this->fillHeaderCSV($csv); foreach ($this->row_data as $set) { $this->fillRowCSV($csv, $set); } ob_end_clean(); if ($send) { $filename .= ".csv"; header("Content-type: text/comma-separated-values"); header("Content-Disposition: attachment; filename=\"" . $filename . "\""); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); header("Pragma: public"); echo $csv->getCSVString(); } else { file_put_contents($filename, $csv->getCSVString()); } break; case self::EXPORT_PDF: include_once "Customizing/global/plugins/Services/Repository/RepositoryObject/RoomSharing/classes/appointments/bookings/class.ilRoomSharingBookingsExportTableGUI.php"; $exportTable = new ilRoomSharingBookingsExportTableGUI($this->parent_obj, 'showBookings', $this->ref_id); include_once "Customizing/global/plugins/Services/Repository/RepositoryObject/RoomSharing/classes/export/class.ilRoomSharingPDFCreator.php"; $staff = $exportTable->getTableHTML(); ilRoomSharingPDFCreator::generatePDF($exportTable->getTableHTML(), 'D', 'file.pdf'); break; } if ($send) { exit; } } }