37 include_once
"./Services/Object/classes/class.ilObjectGUI.php";
52 $this->
ilObjectGUI($a_data,$a_id,$a_call_by_reference,
false);
53 $this->folderSettings =
new ilSetting(
'fold');
56 require_once
'Services/WebDAV/classes/class.ilObjDiskQuotaSettings.php';
58 $this->disk_quota_obj->read();
70 $next_class = $this->ctrl->getNextClass($this);
71 $cmd = $this->ctrl->getCmd();
75 if(!$ilAccess->checkAccess(
'read',
'',$this->object->getRefId()))
77 $ilias->raiseError($lng->txt(
'no_permission'),$ilias->error_obj->MESSAGE);
82 case 'ilpermissiongui':
83 $this->tabs_gui->setTabActive(
'perm_settings');
84 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
86 $ret =& $this->ctrl->forwardCommand($perm_gui);
89 case 'ilfmsettingsgui':
90 $this->tabs_gui->setTabActive(
'fm_settings_tab');
91 include_once
'./Services/WebServices/FileManager/classes/class.ilFMSettingsGUI.php';
93 $this->ctrl->forwardCommand($fmg);
99 $cmd =
"editDownloadingSettings";
116 global $rbacsystem, $ilAccess;
118 $GLOBALS[
'lng']->loadLanguageModule(
'fm');
120 if ($rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
122 $this->tabs_gui->addTarget(
'downloading_settings',
123 $this->ctrl->getLinkTarget($this,
"editDownloadingSettings"),
124 array(
"editDownloadingSettings",
"view"));
126 $this->tabs_gui->addTarget(
'webdav',
127 $this->ctrl->getLinkTarget($this,
"editWebDAVSettings"),
128 array(
"editWebDAVSettings",
"view"));
130 $this->tabs_gui->addTarget(
132 $this->ctrl->getLinkTargetByClass(
'ilFMSettingsGUI',
'settings'),
137 $this->tabs_gui->addTarget(
"disk_quota",
138 $this->ctrl->getLinkTarget($this,
"editDiskQuotaSettings"),
139 array(
"editDiskQuota",
"view"));
141 if ($rbacsystem->checkAccess(
'edit_permission',$this->object->getRefId()))
143 $this->tabs_gui->addTarget(
"perm_settings",
144 $this->ctrl->getLinkTargetByClass(
'ilpermissiongui',
"perm"),
145 array(),
'ilpermissiongui');
154 global $rbacsystem,
$ilErr, $ilTabs;
156 $this->tabs_gui->setTabActive(
'downloading_settings');
158 if (! $rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
160 $ilErr->raiseError(
$lng->txt(
"no_permission"),$ilErr->WARNING);
165 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
166 require_once(
"./Services/Form/classes/class.ilCheckboxInputGUI.php");
167 require_once(
"./Services/Form/classes/class.ilRadioGroupInputGUI.php");
168 require_once(
"./Services/Form/classes/class.ilRadioOption.php");
169 require_once(
"./Services/Form/classes/class.ilTextAreaInputGUI.php");
172 $form->setFormAction($ilCtrl->getFormAction($this));
173 $form->setTitle($lng->txt(
"settings"));
178 $dl_prop =
new ilCheckboxInputGUI($lng->txt(
"download_with_uploaded_filename"),
"download_with_uploaded_filename");
181 $dl_prop->setChecked($this->object->isDownloadWithUploadedFilename() == 1);
182 $dl_prop->setInfo($lng->txt(
'download_with_uploaded_filename_info'));
183 $form->addItem($dl_prop);
186 $dl_prop =
new ilCheckboxInputGUI($lng->txt(
"enable_download_folder"),
"enable_download_folder");
189 $dl_prop->setChecked($this->folderSettings->get(
"enable_download_folder", 0) == 1);
190 $dl_prop->setInfo($lng->txt(
'enable_download_folder_info'));
191 $form->addItem($dl_prop);
195 $tai_prop =
new ilTextAreaInputGUI($lng->txt(
'inline_file_extensions'),
'inline_file_extensions');
196 $tai_prop->
setValue($this->object->getInlineFileExtensions());
197 $tai_prop->setInfo($lng->txt(
'inline_file_extensions_info'));
198 $tai_prop->setCols(80);
199 $tai_prop->setRows(5);
200 $form->addItem($tai_prop);
204 $form->addCommandButton(
'saveDownloadingSettings', $lng->txt(
'save'));
205 $form->addCommandButton(
'view', $lng->txt(
'cancel'));
207 $tpl->setContent($form->getHTML());
217 if (! $rbacsystem->checkAccess(
"write",$this->object->getRefId()))
219 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
224 $this->
object->update();
226 $this->folderSettings->set(
"enable_download_folder",
$_POST[
"enable_download_folder"] == 1);
229 $ilCtrl->redirect($this,
"editDownloadingSettings");
237 global $rbacsystem,
$ilErr, $ilTabs;
241 $this->tabs_gui->setTabActive(
'webdav');
243 if (! $rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
245 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
248 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
249 require_once(
"./Services/Form/classes/class.ilCheckboxInputGUI.php");
250 require_once(
"./Services/Form/classes/class.ilRadioGroupInputGUI.php");
251 require_once(
"./Services/Form/classes/class.ilRadioOption.php");
252 require_once(
"./Services/Form/classes/class.ilTextAreaInputGUI.php");
253 require_once(
"./Services/WebDAV/classes/class.ilDAVServer.php");
256 $form->setFormAction($ilCtrl->getFormAction($this));
257 $form->setTitle($lng->txt(
"settings"));
261 $isPearAuthHTTPInstalled = @include_once(
"Auth/HTTP.php");
264 $cb_prop->setChecked($this->object->isWebdavEnabled() && $isPearAuthHTTPInstalled);
265 $cb_prop->setDisabled(! $isPearAuthHTTPInstalled);
266 $cb_prop->setInfo($isPearAuthHTTPInstalled ?
267 sprintf($lng->txt(
'enable_webdav_info'),$ilDAVServer->getMountURI($tree->getRootId(),0,null,null,
true)) :
268 $lng->txt(
'webdav_pear_auth_http_needed')
270 $form->addItem($cb_prop);
273 if ($isPearAuthHTTPInstalled)
275 $rgi_prop =
new ilRadioGroupInputGUI($lng->txt(
'webfolder_instructions'),
'custom_webfolder_instructions_choice');
277 $rgi_prop->addOption(
new ilRadioOption($lng->txt(
'use_customized_instructions'),
'custom'));
278 $rgi_prop->setValue($this->object->isCustomWebfolderInstructionsEnabled() ?
'custom':
'default');
279 $rgi_prop->setDisabled(! $isPearAuthHTTPInstalled);
280 $form->addItem($rgi_prop);
282 $tai_prop->setValue($this->object->getCustomWebfolderInstructions());
283 $tai_prop->setInfo($lng->txt(
"webfolder_instructions_info"));
284 $tai_prop->setCols(80);
285 $tai_prop->setRows(20);
286 $tai_prop->setDisabled(! $isPearAuthHTTPInstalled);
287 $form->addItem($tai_prop);
291 $form->addCommandButton(
'saveWebDAVSettings', $lng->txt(
'save'));
292 $form->addCommandButton(
'view', $lng->txt(
'cancel'));
294 $tpl->setContent($form->getHTML());
304 if (! $rbacsystem->checkAccess(
"write",$this->object->getRefId()))
306 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
309 $this->
object->setWebdavEnabled(
$_POST[
'enable_webdav'] ==
'1');
311 $this->
object->setCustomWebfolderInstructionsEnabled(
$_POST[
'custom_webfolder_instructions_choice']==
'custom');
313 $this->
object->update();
316 $ilCtrl->redirect($this,
"editWebDAVSettings");
325 $this->tpl->setDescription($this->object->getDescription());
337 include_once(
"./Services/COPage/classes/class.ilPageEditorSettings.php");
339 $ilTabs->addSubTabTarget(
"settings",
340 $ilCtrl->getLinkTarget($this,
"editDiskQuotaSettings"),
341 array(
"editDiskQuotaSettings"));
343 require_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
346 $ilTabs->addSubTabTarget(
"disk_quota_report",
347 $ilCtrl->getLinkTarget($this,
"viewDiskQuotaReport"),
348 array(
"viewDiskQuotaReport"));
351 $ilTabs->addSubTabTarget(
"disk_quota_reminder_mail",
352 $ilCtrl->getLinkTarget($this,
"editDiskQuotaMailTemplate"),
353 array(
"editDiskQuotaMailTemplate"));
355 $ilTabs->setSubTabActive($a_active_subtab);
367 if (! $rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
369 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
372 $this->tabs_gui->setTabActive(
'disk_quota');
375 require_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
376 require_once(
"./Services/Form/classes/class.ilCheckboxInputGUI.php");
377 require_once(
"./Services/Form/classes/class.ilRadioGroupInputGUI.php");
378 require_once(
"./Services/Form/classes/class.ilRadioOption.php");
379 require_once(
"./Services/Form/classes/class.ilTextAreaInputGUI.php");
380 require_once(
"./Services/WebDAV/classes/class.ilDAVServer.php");
383 $form->setFormAction($ilCtrl->getFormAction($this));
384 $form->setTitle($lng->txt(
"settings"));
388 $cb_prop =
new ilCheckboxInputGUI($lng->txt(
"enable_disk_quota"),
"enable_disk_quota");
390 $cb_prop->setChecked($this->disk_quota_obj->isDiskQuotaEnabled());
391 $cb_prop->setInfo($lng->txt(
'enable_disk_quota_info'));
392 $form->addItem($cb_prop);
395 $cb_prop_reminder =
new ilCheckboxInputGUI($lng->txt(
"enable_disk_quota_reminder_mail"),
"enable_disk_quota_reminder_mail");
397 $cb_prop_reminder->setChecked($this->disk_quota_obj->isDiskQuotaReminderMailEnabled());
398 $cb_prop_reminder->setInfo($lng->txt(
'disk_quota_reminder_mail_desc'));
399 $cb_prop->addSubItem($cb_prop_reminder);
402 $cb_prop_summary=
new ilCheckboxInputGUI($lng->txt(
"enable_disk_quota_summary_mail"),
"enable_disk_quota_summary_mail");
404 $cb_prop_summary->setChecked($this->disk_quota_obj->isDiskQuotaSummaryMailEnabled());
405 $cb_prop_summary->setInfo($lng->txt(
'enable_disk_quota_summary_mail_desc'));
406 $cb_prop->addSubItem($cb_prop_summary);
409 $summary_rcpt =
new ilTextInputGUI($lng->txt(
"disk_quota_summary_rctp"),
"disk_quota_summary_rctp");
410 $summary_rcpt->
setValue($this->disk_quota_obj->getSummaryRecipients());
411 $summary_rcpt->setInfo($lng->txt(
'disk_quota_summary_rctp_desc'));
412 $cb_prop_summary->addSubItem($summary_rcpt);
415 $form->addCommandButton(
'saveDiskQuotaSettings', $lng->txt(
'save'));
416 $form->addCommandButton(
'editDiskQuotaSettings', $lng->txt(
'cancel'));
418 $tpl->setContent($form->getHTML());
428 if (! $rbacsystem->checkAccess(
"write",$this->object->getRefId()))
430 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
433 $this->disk_quota_obj->setDiskQuotaEnabled(
$_POST[
'enable_disk_quota'] ==
'1');
434 $this->disk_quota_obj->setDiskQuotaReminderMailEnabled(
$_POST[
'enable_disk_quota_reminder_mail'] ==
'1');
435 $this->disk_quota_obj->isDiskQuotaSummaryMailEnabled(
$_POST[
'enable_disk_quota_summary_mail'] ==
'1');
437 $this->disk_quota_obj->update();
441 $ilCtrl->redirect($this,
"editDiskQuotaSettings");
452 if (! $rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
454 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
457 $this->tabs_gui->setTabActive(
'disk_quota');
461 require_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
468 $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.disk_quota_report.html',
472 require_once(
"./Services/WebDAV/classes/class.ilDiskQuotaChecker.php");
474 if ($last_update == null)
477 $this->tpl->setVariable(
'LAST_UPDATE_TEXT',$lng->txt(
'disk_quota_report_not_run_yet'));
482 $this->tpl->setVariable(
'LAST_UPDATE_TEXT',$lng->txt(
'last_update').
': '.
ilFormat::formatDate($last_update,
'datetime',
true));
487 if (
$_SESSION[
'quota_usage_filter'] == 0)
492 if (
$_SESSION[
'quota_access_filter'] == 0)
496 $usage_action[1] = $lng->txt(
'all_users');
497 $usage_action[2] = $lng->txt(
'filter_users_without_disk_usage');
498 $usage_action[3] = $lng->txt(
'filter_users_with_disk_usage');
499 $usage_action[4] = $lng->txt(
'filter_users_with_exceeded_disk_quota');
500 $access_action[1] = $lng->txt(
'all_users');
501 $access_action[2] = $lng->txt(
'filter_users_with_access');
502 $access_action[3] = $lng->txt(
'filter_users_without_access');
507 $this->tpl->setCurrentBlock(
"filter");
508 $this->tpl->setVariable(
"FILTER_TXT_FILTER",$lng->txt(
'filter'));
509 $this->tpl->setVariable(
"SELECT_USAGE_FILTER",$select_usage_filter);
510 $this->tpl->setVariable(
"SELECT_ACCESS_FILTER",$select_access_filter);
511 $this->tpl->setVariable(
"FILTER_ACTION",$this->ctrl->getLinkTarget($this,
'viewDiskQuotaReport'));
512 $this->tpl->setVariable(
"FILTER_NAME",
'view');
513 $this->tpl->setVariable(
"FILTER_VALUE",$lng->txt(
'apply_filter'));
514 $this->tpl->parseCurrentBlock();
517 $a_tpl =
new ilTemplate(
'tpl.table.html',
true,
true);
518 $a_tpl->addBlockfile(
"TBL_CONTENT",
"tbl_content",
"tpl.obj_tbl_rows.html");
521 require_once
'./Services/Table/classes/class.ilTableGUI.php';
525 $header_vars = array(
'login',
'firstname',
'lastname',
'email',
'access_until',
'last_login',
'disk_quota',
'disk_usage',
'last_reminder');
526 $tbl->setHeaderNames(
529 $lng->txt(
'firstname'),
530 $lng->txt(
'lastname'),
532 $lng->txt(
'access_until'),
533 $lng->txt(
'last_login'),
534 $lng->txt(
'disk_quota'),
535 $lng->txt(
'disk_usage'),
536 $lng->txt(
'last_reminder')
541 $this->ctrl->getParameterArray($this,
'viewDiskQuotaReport',
false)
544 $tbl->enable(
"numinfo_header");
545 $tbl->setFormName(
"cmd");
546 $tbl->setSelectAllCheckbox(
"id");
549 $tbl->setOrderColumn(
$_GET[
"sort_by"]);
550 $tbl->setOrderDirection(
$_GET[
"sort_order"]);
556 $header_vars[$tbl->getOrderColumn()], $tbl->getOrderDirection());
559 $tbl->setLimit(
$_GET[
"limit"]);
560 $tbl->setOffset(
$_GET[
"offset"]);
561 $tbl->setMaxCount(count(
$data));
564 $tbl->setFooter(
"tblfooter",$lng->txt(
"previous"),$lng->txt(
"next"));
567 $tbl->setTemplate($a_tpl);
571 for ($i = $tbl->getOffset(); $i < count(
$data) && $i < $tbl->getOffset() + $tbl->getLimit(); $i++)
576 foreach ($header_vars as $key)
582 $this->ctrl->setParameterByClass(
"ilobjusergui",
"ref_id",
"7");
583 $this->ctrl->setParameterByClass(
"ilobjusergui",
"obj_id",
$row[
"usr_id"]);
584 $link = $this->ctrl->getLinkTargetByClass(
"ilobjusergui",
"view");
585 $tbl_content_cell =
'<a href="'.$link.
'">'.htmlspecialchars(
$row[$key]).
'</a>';
588 if (
$row[
'role_id'] == SYSTEM_ROLE_ID)
590 $tbl_content_cell =
"<span class=\"smallgreen\">".$lng->txt(
'access_unlimited').
'</span>';
598 if (
$row[
'last_update'] == null)
600 $tbl_content_cell = $lng->txt(
'unknown');
602 else if (
$row[
'disk_usage'] >
$row[
'disk_quota'])
604 $tbl_content_cell =
"<span class=\"smallred\">".ilFormat::formatSize(
$row[$key],
'short').
'</span>';
611 case 'access_until' :
612 if (!
$row[
'active'])
614 $tbl_content_cell =
"<span class=\"smallred\">".$lng->txt(
'inactive').
'</span>';
616 else if (
$row[
'time_limit_unlimited'])
618 $tbl_content_cell =
"<span class=\"smallgreen\">".$lng->txt(
'access_unlimited').
'</span>';
620 else if (
$row[
'expired'])
622 $tbl_content_cell =
"<span class=\"smallred\">".$lng->txt(
'access_expired').
'</span>';
630 case 'last_reminder' :
631 if (
$row[$key] == null)
633 $tbl_content_cell = $lng->txt(
'no_date');
641 $tbl_content_cell = htmlspecialchars(
$row[$key]);
652 $tbl->tpl->setCurrentBlock(
"tbl_content_cell");
653 $tbl->tpl->setVariable(
"TBL_CONTENT_CELL",$tbl_content_cell);
655 $tbl->tpl->parseCurrentBlock();
658 $tbl->tpl->setCurrentBlock(
"tbl_content_row");
660 $tbl->tpl->setVariable(
"ROWCOLOR", $rowcolor);
661 $tbl->tpl->parseCurrentBlock();
668 $this->tpl->setVariable(
"USER_TABLE",$a_tpl->get());
678 if (! $rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
680 $ilErr->raiseError($lng->txt(
"no_permission"),$ilErr->WARNING);
683 $this->tabs_gui->setTabActive(
'disk_quota');
686 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.disk_quota_reminder_mail.html',
688 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
691 $lng->loadLanguageModule(
"meta");
692 $lng->loadLanguageModule(
"mail");
693 $this->tpl->setVariable(
"TXT_NEW_USER_ACCOUNT_MAIL", $lng->txt(
"disk_quota_reminder_mail"));
694 $this->tpl->setVariable(
"TXT_NEW_USER_ACCOUNT_MAIL_DESC", $lng->txt(
"disk_quota_reminder_mail_desc"));
697 $this->tpl->setVariable(
"TXT_USE_PLACEHOLDERS", $lng->txt(
"mail_nacc_use_placeholder"));
698 $this->tpl->setVariable(
"TXT_MAIL_SALUTATION", $lng->txt(
"mail_nacc_salutation"));
699 $this->tpl->setVariable(
"TXT_FIRST_NAME", $lng->txt(
"firstname"));
700 $this->tpl->setVariable(
"TXT_LAST_NAME", $lng->txt(
"lastname"));
701 $this->tpl->setVariable(
"TXT_EMAIL", $lng->txt(
"email"));
702 $this->tpl->setVariable(
"TXT_LOGIN", $lng->txt(
"mail_nacc_login"));
703 $this->tpl->setVariable(
"TXT_DISK_QUOTA", $lng->txt(
"disk_quota"));
704 $this->tpl->setVariable(
"TXT_DISK_USAGE", $lng->txt(
"disk_usage"));
705 $this->tpl->setVariable(
"TXT_DISK_USAGE_DETAILS", $lng->txt(
"disk_usage_details"));
706 $this->tpl->setVariable(
"TXT_ADMIN_MAIL", $lng->txt(
"mail_nacc_admin_mail"));
707 $this->tpl->setVariable(
"TXT_ILIAS_URL", $lng->txt(
"mail_nacc_ilias_url"));
708 $this->tpl->setVariable(
"TXT_CLIENT_NAME", $lng->txt(
"mail_nacc_client_name"));
710 $langs = $lng->getInstalledLanguages();
711 foreach($langs as $lang_key)
713 $amail = $this->disk_quota_obj->_lookupReminderMailTemplate($lang_key);
714 $this->tpl->setCurrentBlock(
"mail_block");
716 if ($lang_key == $lng->getDefaultLanguage())
718 $add =
" (".$lng->txt(
"default").
")";
720 $this->tpl->setVariable(
"TXT_LANGUAGE",
721 $lng->txt(
"meta_l_".$lang_key).$add);
722 $this->tpl->setVariable(
"TXT_BODY", $lng->txt(
"message_content"));
723 $this->tpl->setVariable(
"TA_BODY",
"body_".$lang_key);
724 $this->tpl->setVariable(
"VAL_BODY",
726 $this->tpl->setVariable(
"TXT_SUBJECT", $lng->txt(
"subject"));
727 $this->tpl->setVariable(
"INPUT_SUBJECT",
"subject_".$lang_key);
728 $this->tpl->setVariable(
"VAL_SUBJECT",
730 $this->tpl->setVariable(
"TXT_SAL_G", $lng->txt(
"mail_salutation_general"));
731 $this->tpl->setVariable(
"INPUT_SAL_G",
"sal_g_".$lang_key);
732 $this->tpl->setVariable(
"VAL_SAL_G",
734 $this->tpl->setVariable(
"TXT_SAL_M", $lng->txt(
"mail_salutation_male"));
735 $this->tpl->setVariable(
"INPUT_SAL_M",
"sal_m_".$lang_key);
736 $this->tpl->setVariable(
"VAL_SAL_M",
738 $this->tpl->setVariable(
"TXT_SAL_F", $lng->txt(
"mail_salutation_female"));
739 $this->tpl->setVariable(
"INPUT_SAL_F",
"sal_f_".$lang_key);
740 $this->tpl->setVariable(
"VAL_SAL_F",
742 $this->tpl->parseCurrentBlock();
744 $this->tpl->setVariable(
"TXT_CANCEL", $lng->txt(
"cancel"));
745 $this->tpl->setVariable(
"TXT_SAVE", $lng->txt(
"save"));
749 $this->ctrl->redirect($this,
"editDiskQuotaSettings");
757 $langs = $lng->getInstalledLanguages();
758 foreach($langs as $lang_key)
760 $this->disk_quota_obj->_writeReminderMailTemplate($lang_key,
767 $this->ctrl->redirect($this,
"editDiskQuotaMailTemplate");