/**
  * 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;
         }
     }
 }