24include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
25include_once(
'./Services/Membership/classes/Export/class.ilMemberExport.php');
26include_once(
'Modules/Course/classes/class.ilFSStorageCourse.php');
27include_once(
'Modules/Group/classes/class.ilFSStorageGroup.php');
28include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
29include_once(
'Services/User/classes/class.ilUserDefinedFields.php');
30include_once(
'Services/User/classes/class.ilUserFormSettings.php');
71 $this->lng->loadLanguageModule(
'ps');
72 $this->ref_id = $a_ref_id;
73 $this->obj_id = $ilObjDataCache->lookupObjId($this->ref_id);
89 global $ilAccess,$rbacsystem;
92 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
95 $this->ctrl->returnToParent($this);
98 $next_class = $this->ctrl->getNextClass($this);
99 $cmd = $this->ctrl->getCmd();
101 switch ($next_class) {
121 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
123 $form->setFormAction($this->ctrl->getFormAction($this));
124 $form->setTitle($this->lng->txt(
'ps_export_settings'));
126 if ((
bool) $a_is_excel) {
127 $form->addCommandButton(
'exportExcel', $this->lng->txt(
'ps_export_excel'));
129 $form->addCommandButton(
'export', $this->lng->txt(
'ps_perform_export'));
131 $form->addCommandButton(
'show', $this->lng->txt(
'cancel'));
135 $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_admin'),
'admin'));
136 if ($this->type ==
'crs') {
137 $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_tutor'),
'tutor'));
139 $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_member'),
'member'));
140 $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_sub'),
'subscribers'));
141 $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_wait'),
'waiting_list'));
142 $form->addItem($roles);
144 $current_roles = array();
145 foreach (array(
'admin',
'tutor',
'member',
'subscribers',
'waiting_list') as $role) {
146 if ($this->exportSettings->enabled($role)) {
147 $current_roles[] = $role;
150 $roles->setValue($current_roles);
153 $current_udata = array();
155 $form->addItem($udata);
158 $this->fields_info->sortExportFields();
159 foreach ($this->fields_info->getFieldsInfo() as $field => $exportable) {
164 if ($this->exportSettings->enabled($field)) {
165 $current_udata[] = $field;
171 $field =
'udf_' . $field_id;
173 if ($this->exportSettings->enabled($field)) {
174 $current_udata[] = $field;
178 $udata->setValue($current_udata);
182 if (count($cdf_fields)) {
184 $form->addItem($cdf);
186 $current_cdf = array();
187 foreach ($cdf_fields as $field_obj) {
188 $field =
'cdf_' . $field_obj->getId();
190 if ($this->exportSettings->enabled($field)) {
191 $current_cdf[] = $field;
195 $cdf->setValue($current_cdf);
199 include_once
'./Services/Booking/classes/class.ilBookingEntry.php';
201 $this->lng->loadLanguageModule(
'dateplaner');
202 $chours =
new ilCheckboxInputGUI($this->lng->txt(
'cal_ch_field_ch'),
'export_members[]');
203 $chours->setValue(
'consultation_hour');
204 $chours->setChecked($this->exportSettings->enabled(
'consultation_hour'));
205 $form->addItem($chours);
208 $grp_membr =
new ilCheckboxInputGUI($this->lng->txt(
'crs_members_groups'),
'export_members[]');
209 $grp_membr->setValue(
'group_memberships');
210 $grp_membr->setChecked($this->exportSettings->enabled(
'group_memberships'));
211 $form->addItem($grp_membr);
220 $this->tpl->setContent($a_form->getHTML());
228 $this->tpl->setContent($a_form->getHTML());
241 $ilToolbar->addButton(
242 $this->lng->txt(
'ps_perform_export'),
243 $this->ctrl->getLinkTarget($this,
"initCSV")
245 $ilToolbar->addButton(
246 $this->lng->txt(
'ps_export_excel'),
247 $this->ctrl->getLinkTarget($this,
"initExcel")
256 $incoming =
$_POST[
'export_members'];
257 if (is_array($incoming)) {
258 foreach ($incoming as
$id) {
259 $settings[
$id] =
true;
265 $this->exportSettings->set($settings);
266 $this->exportSettings->store();
282 $filename = time() .
'_participant_export_csv_' . $this->obj_id .
'.csv';
283 $this->fss_export->addMemberExportFile($this->
export->getCSVString(),
$filename);
285 $this->ctrl->redirect($this,
'show');
293 $this->fss_export->initMemberExportDirectory();
294 $filepath = $this->fss_export->getMemberExportDirectory() . DIRECTORY_SEPARATOR .
$filename;
297 $this->
export->setFilename($filepath);
300 $this->ctrl->redirect($this,
'show');
312 foreach ($this->fss_export->getMemberExportFiles() as
$file) {
314 $content = $this->fss_export->getMemberExportFile(
$_SESSION[
'member_export_filename']);
331 include_once
'Services/Membership/classes/Export/class.ilMemberExportFileTableGUI.php';
333 $this->tpl->setContent(
$tbl->getHTML());
345 $hash = trim(
$_GET[
'fl']);
347 $this->ctrl->redirect($this,
'show');
350 foreach ($this->fss_export->getMemberExportFiles() as
$file) {
351 if (md5(
$file[
'name']) == $hash) {
352 $contents = $this->fss_export->getMemberExportFile(
$file[
'timest'] .
'_participant_export_' .
353 $file[
'type'] .
'_' . $this->obj_id .
'.' .
$file[
'type']);
357 $contents = $this->fss_export->getMemberExportFile(
$file[
'timest'] .
'_participant_export_' .
358 $file[
'type'] .
'_' . $this->obj_id .
'.xlsx');
359 $file[
'type'] =
'xlsx';
362 switch (
$file[
'type']) {
366 date(
'Y_m_d_H-i' .
$file[
'timest']) .
'_member_export_' . $this->obj_id .
'.xlsx',
367 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
374 date(
'Y_m_d_H-i' .
$file[
'timest']) .
'_member_export_' . $this->obj_id .
'.xls',
375 'application/vnd.ms-excel'
401 if (!count(
$_POST[
'id'])) {
403 $this->ctrl->redirect($this,
'show');
406 include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
408 $confirmation_gui->setFormAction($this->ctrl->getFormAction($this));
409 $confirmation_gui->setHeaderText($this->lng->txt(
'info_delete_sure') );
410 $confirmation_gui->setCancel($this->lng->txt(
'cancel'),
'show');
411 $confirmation_gui->setConfirm($this->lng->txt(
'delete'),
'deleteExportFile');
414 foreach ($this->fss_export->getMemberExportFiles() as
$file) {
419 $confirmation_gui->addItem(
422 strtoupper(
$file[
'type']) .
' - ' .
427 $this->tpl->setContent($confirmation_gui->getHTML());
439 if (!count(
$_POST[
'id'])) {
440 $this->ctrl->redirect($this,
'show');
444 foreach ($this->fss_export->getMemberExportFiles() as
$file) {
449 $ret = $this->fss_export->deleteMemberExportFile(
$file[
'timest'] .
'_participant_export_' .
450 $file[
'type'] .
'_' . $this->obj_id .
'.' .
$file[
'type']);
454 $this->fss_export->deleteMemberExportFile(
$file[
'timest'] .
'_participant_export_' .
455 $file[
'type'] .
'_' . $this->obj_id .
'.' .
"xlsx");
460 $this->ctrl->redirect($this,
'show');
470 if ($this->type ==
'crs') {
473 if ($this->type ==
'grp') {
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
An exception for terminatinating execution or to throw for unit testing.
static hasObjectBookingEntries($a_obj_id, $a_usr_id)
Check if object has assigned consultation hour appointments.
This class represents an option in a checkbox group.
Confirmation screen class.
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date @access public.
@classDescription Date and time handling
static _getInstanceByType($a_type)
Get Singleton Instance.
Table presentation of membership export files.
deliverData()
Deliver Data.
downloadExportFile()
Download export file.
deleteExportFile()
Delete member export files.
show()
Show list of export files.
export()
Export Create member export file and store it in data directory.
showFileList()
Show file list of available export files.
initSettingsForm($a_is_excel=false)
initExcel(ilPropertyFormGUI $a_form=null)
confirmDeleteExportFile()
Confirm deletion of export files.
initCSV(ilPropertyFormGUI $a_form=null)
initFileSystemStorage()
Init file object.
__construct($a_ref_id)
Constructor.
executeCommand()
Execute Command.
Class for generation of member export files.
static _lookupType($a_id, $a_reference=false)
lookup object type
static _getInstance()
Get instance of ilPrivacySettings.
static _getInstance()
Get instance.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
if(!array_key_exists('StateId', $_REQUEST)) $id
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
if(isset($_POST['submit'])) $form
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file