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');
 
   72        $ilObjDataCache = 
$DIC[
'ilObjDataCache'];
 
   77        $this->lng->loadLanguageModule(
'ps');
 
   78        $this->ref_id = $a_ref_id;
 
   79        $this->obj_id = $ilObjDataCache->lookupObjId($this->ref_id);
 
   97        $ilAccess = 
$DIC[
'ilAccess'];
 
   98        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  101        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
  104            $this->ctrl->returnToParent($this);
 
  107        $next_class = $this->ctrl->getNextClass($this);
 
  108        $cmd = $this->ctrl->getCmd();
 
  110        switch ($next_class) {
 
  130        include_once 
'Services/Form/classes/class.ilPropertyFormGUI.php';
 
  132        $form->setFormAction($this->ctrl->getFormAction($this));
 
  133        $form->setTitle($this->lng->txt(
'ps_export_settings'));
 
  135        if ((
bool) $a_is_excel) {
 
  136            $form->addCommandButton(
'exportExcel', $this->lng->txt(
'ps_export_excel'));
 
  138            $form->addCommandButton(
'export', $this->lng->txt(
'ps_perform_export'));
 
  140        $form->addCommandButton(
'show', $this->lng->txt(
'cancel'));
 
  144        $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_admin'), 
'admin'));
 
  145        if ($this->type == 
'crs') {
 
  146            $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_tutor'), 
'tutor'));
 
  148        $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_member'), 
'member'));
 
  149        $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_sub'), 
'subscribers'));
 
  150        $roles->addOption(
new ilCheckboxOption($this->lng->txt(
'ps_export_wait'), 
'waiting_list'));
 
  151        $form->addItem($roles);
 
  153        $current_roles = array();
 
  154        foreach (array(
'admin', 
'tutor', 
'member', 
'subscribers', 
'waiting_list') as $role) {
 
  155            if ($this->exportSettings->enabled($role)) {
 
  156                $current_roles[] = $role;
 
  159        $roles->setValue($current_roles);
 
  162        $current_udata = array();
 
  164        $form->addItem($udata);
 
  167        $this->fields_info->sortExportFields();
 
  168        foreach ($this->fields_info->getFieldsInfo() as $field => $exportable) {
 
  173            if ($this->exportSettings->enabled($field)) {
 
  174                $current_udata[] = $field;
 
  180            $field = 
'udf_' . $field_id;
 
  182            if ($this->exportSettings->enabled($field)) {
 
  183                $current_udata[] = $field;
 
  187        $udata->setValue($current_udata);
 
  191        if (count($cdf_fields)) {
 
  193            $form->addItem($cdf);
 
  195            $current_cdf = array();
 
  196            foreach ($cdf_fields as $field_obj) {
 
  197                $field = 
'cdf_' . $field_obj->getId();
 
  199                if ($this->exportSettings->enabled($field)) {
 
  200                    $current_cdf[] = $field;
 
  204            $cdf->setValue($current_cdf);
 
  208        include_once 
'./Services/Booking/classes/class.ilBookingEntry.php';
 
  210            $this->lng->loadLanguageModule(
'dateplaner');
 
  211            $chours = 
new ilCheckboxInputGUI($this->lng->txt(
'cal_ch_field_ch'), 
'export_members[]');
 
  212            $chours->setValue(
'consultation_hour');
 
  213            $chours->setChecked($this->exportSettings->enabled(
'consultation_hour'));
 
  214            $form->addItem($chours);
 
  217        $grp_membr = 
new ilCheckboxInputGUI($this->lng->txt(
'crs_members_groups'), 
'export_members[]');
 
  218        $grp_membr->setValue(
'group_memberships');
 
  219        $grp_membr->setChecked($this->exportSettings->enabled(
'group_memberships'));
 
  220        $form->addItem($grp_membr);
 
  229        $this->tpl->setContent($a_form->getHTML());
 
  237        $this->tpl->setContent($a_form->getHTML());
 
  250        $ilToolbar = 
$DIC[
'ilToolbar'];
 
  252        $ilToolbar->addButton(
 
  253            $this->lng->txt(
'ps_perform_export'),
 
  254            $this->ctrl->getLinkTarget($this, 
"initCSV")
 
  256        $ilToolbar->addButton(
 
  257            $this->lng->txt(
'ps_export_excel'),
 
  258            $this->ctrl->getLinkTarget($this, 
"initExcel")
 
  267        $incoming = 
$_POST[
'export_members'];
 
  268        if (is_array($incoming)) {
 
  269            foreach ($incoming as 
$id) {
 
  270                $settings[
$id] = 
true;
 
  276        $this->exportSettings->set($settings);
 
  277        $this->exportSettings->store();
 
  293        $filename = time() . 
'_participant_export_csv_' . $this->obj_id . 
'.csv';
 
  294        $this->fss_export->addMemberExportFile($this->
export->getCSVString(), 
$filename);
 
  296        $this->ctrl->redirect($this, 
'show');
 
  304        $this->fss_export->initMemberExportDirectory();
 
  305        $filepath = $this->fss_export->getMemberExportDirectory() . DIRECTORY_SEPARATOR . 
$filename;
 
  308        $this->
export->setFilename($filepath);
 
  311        $this->ctrl->redirect($this, 
'show');
 
  323        foreach ($this->fss_export->getMemberExportFiles() as $file) {
 
  324            if ($file[
'name'] == 
$_SESSION[
'member_export_filename']) {
 
  325                $content = $this->fss_export->getMemberExportFile(
$_SESSION[
'member_export_filename']);
 
  342        include_once 
'Services/Membership/classes/Export/class.ilMemberExportFileTableGUI.php';
 
  344        $this->tpl->setContent(
$tbl->getHTML());
 
  356        $hash = trim(
$_GET[
'fl']);
 
  358            $this->ctrl->redirect($this, 
'show');
 
  361        foreach ($this->fss_export->getMemberExportFiles() as $file) {
 
  362            if (md5($file[
'name']) == $hash) {
 
  363                $contents = $this->fss_export->getMemberExportFile($file[
'timest'] . 
'_participant_export_' .
 
  364                    $file[
'type'] . 
'_' . $this->obj_id . 
'.' . $file[
'type']);
 
  367                if ($file[
'type'] == 
'xls' && !$contents) {
 
  368                    $contents = $this->fss_export->getMemberExportFile($file[
'timest'] . 
'_participant_export_' .
 
  369                        $file[
'type'] . 
'_' . $this->obj_id . 
'.xlsx');
 
  370                    $file[
'type'] = 
'xlsx';
 
  373                switch ($file[
'type']) {
 
  377                            date(
'Y_m_d_H-i' . $file[
'timest']) . 
'_member_export_' . $this->obj_id . 
'.xlsx',
 
  378                            'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' 
  385                            date(
'Y_m_d_H-i' . $file[
'timest']) . 
'_member_export_' . $this->obj_id . 
'.xls',
 
  386                            'application/vnd.ms-excel' 
  412        if (!array_key_exists(
'id', 
$_POST) || !is_array(
$_POST[
'id']) || !count(
$_POST[
'id'])) {
 
  414            $this->ctrl->redirect($this, 
'show');
 
  417        include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
 
  419        $confirmation_gui->setFormAction($this->ctrl->getFormAction($this));
 
  420        $confirmation_gui->setHeaderText($this->lng->txt(
'info_delete_sure') );
 
  421        $confirmation_gui->setCancel($this->lng->txt(
'cancel'), 
'show');
 
  422        $confirmation_gui->setConfirm($this->lng->txt(
'delete'), 
'deleteExportFile');
 
  425        foreach ($this->fss_export->getMemberExportFiles() as $file) {
 
  426            if (!in_array(md5($file[
'name']), 
$_POST[
'id'])) {
 
  430            $confirmation_gui->addItem(
 
  433                strtoupper($file[
'type']) . 
' - ' .
 
  438        $this->tpl->setContent($confirmation_gui->getHTML());
 
  450        if (!count(
$_POST[
'id'])) {
 
  451            $this->ctrl->redirect($this, 
'show');
 
  455        foreach ($this->fss_export->getMemberExportFiles() as $file) {
 
  456            if (!in_array(md5($file[
'name']), 
$_POST[
'id'])) {
 
  460            $ret = $this->fss_export->deleteMemberExportFile($file[
'timest'] . 
'_participant_export_' .
 
  461                $file[
'type'] . 
'_' . $this->obj_id . 
'.' . $file[
'type']);
 
  464            if ($file[
'type'] == 
"xls" && !
$ret) {
 
  465                $this->fss_export->deleteMemberExportFile($file[
'timest'] . 
'_participant_export_' .
 
  466                    $file[
'type'] . 
'_' . $this->obj_id . 
'.' . 
"xlsx");
 
  470        ilUtil::sendSuccess($this->lng->txt(
'ps_files_deleted'), 
true);
 
  471        $this->ctrl->redirect($this, 
'show');
 
  481        if ($this->type == 
'crs') {
 
  484        if ($this->type == 
'grp') {
 
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, $include_seconds=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 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['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
if(isset($_POST['submit'])) $form