ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilObjFileAccessSettingsGUI.php
Go to the documentation of this file.
1<?php
2/*
3 +-----------------------------------------------------------------------------+
4 | ILIAS open source |
5 +-----------------------------------------------------------------------------+
6 | Copyright (c) 1998-2001 ILIAS open source, University of Cologne |
7 | |
8 | This program is free software; you can redistribute it and/or |
9 | modify it under the terms of the GNU General Public License |
10 | as published by the Free Software Foundation; either version 2 |
11 | of the License, or (at your option) any later version. |
12 | |
13 | This program is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | GNU General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU General Public License |
19 | along with this program; if not, write to the Free Software |
20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 +-----------------------------------------------------------------------------+
22*/
23
37include_once "./Services/Object/classes/class.ilObjectGUI.php";
38
40{
42
47 function ilObjFileAccessSettingsGUI($a_data,$a_id,$a_call_by_reference)
48 {
49 global $tree;
50
51 $this->type = "facs";
52 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, false);
53 $this->folderSettings = new ilSetting('fold');
54
55 // Load the disk quota settings object
56 require_once 'Services/WebDAV/classes/class.ilObjDiskQuotaSettings.php';
57 $this->disk_quota_obj = new ilObjDiskQuotaSettings($a_id, $a_call_by_reference);
58 $this->disk_quota_obj->read();
59 }
66 public function executeCommand()
67 {
68 global $rbacsystem,$ilErr,$ilAccess, $ilias, $lng;
69
70 $next_class = $this->ctrl->getNextClass($this);
71 $cmd = $this->ctrl->getCmd();
72
73 $this->prepareOutput();
74
75 if(!$ilAccess->checkAccess('read','',$this->object->getRefId()))
76 {
77 $ilias->raiseError($lng->txt('no_permission'),$ilias->error_obj->MESSAGE);
78 }
79
80 switch($next_class)
81 {
82 case 'ilpermissiongui':
83 $this->tabs_gui->setTabActive('perm_settings');
84 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
85 $perm_gui =& new ilPermissionGUI($this);
86 $ret =& $this->ctrl->forwardCommand($perm_gui);
87 break;
88
89 case 'ilfmsettingsgui':
90 $this->tabs_gui->setTabActive('fm_settings_tab');
91 include_once './Services/WebServices/FileManager/classes/class.ilFMSettingsGUI.php';
92 $fmg = new ilFMSettingsGUI($this);
93 $this->ctrl->forwardCommand($fmg);
94 break;
95
96 default:
97 if(!$cmd || $cmd == 'view')
98 {
99 $cmd = "editDownloadingSettings";
100 }
101
102 $this->$cmd();
103 break;
104 }
105 return true;
106 }
107
114 public function getAdminTabs()
115 {
116 global $rbacsystem, $ilAccess;
117
118 $GLOBALS['lng']->loadLanguageModule('fm');
119
120 if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
121 {
122 $this->tabs_gui->addTarget('downloading_settings',
123 $this->ctrl->getLinkTarget($this, "editDownloadingSettings"),
124 array("editDownloadingSettings", "view"));
125
126 $this->tabs_gui->addTarget('upload_settings',
127 $this->ctrl->getLinkTarget($this, "editUploadSettings"),
128 array("editUploadSettings", "view"));
129
130 $this->tabs_gui->addTarget('preview_settings',
131 $this->ctrl->getLinkTarget($this, "editPreviewSettings"),
132 array("editPreviewSettings", "view"));
133
134 $this->tabs_gui->addTarget('webdav',
135 $this->ctrl->getLinkTarget($this, "editWebDAVSettings"),
136 array("editWebDAVSettings", "view"));
137
138 $this->tabs_gui->addTarget(
139 'fm_settings_tab',
140 $this->ctrl->getLinkTargetByClass('ilFMSettingsGUI','settings'),
141 array(),
142 'ilfmsettingsgui'
143 );
144
145 $this->tabs_gui->addTarget("disk_quota",
146 $this->ctrl->getLinkTarget($this, "editDiskQuotaSettings"),
147 array("editDiskQuota", "view"));
148 }
149 if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
150 {
151 $this->tabs_gui->addTarget("perm_settings",
152 $this->ctrl->getLinkTargetByClass('ilpermissiongui',"perm"),
153 array(),'ilpermissiongui');
154 }
155 }
156
160 public function editDownloadingSettings()
161 {
162 global $rbacsystem, $ilErr, $ilTabs;
163
164 $this->tabs_gui->setTabActive('downloading_settings');
165
166 if (! $rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
167 {
168 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
169 }
170
171 global $tpl, $ilCtrl, $lng, $tree, $settings;
172
173 require_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
174 require_once("./Services/Form/classes/class.ilCheckboxInputGUI.php");
175 require_once("./Services/Form/classes/class.ilRadioGroupInputGUI.php");
176 require_once("./Services/Form/classes/class.ilRadioOption.php");
177 require_once("./Services/Form/classes/class.ilTextAreaInputGUI.php");
178
179 $form = new ilPropertyFormGUI();
180 $form->setFormAction($ilCtrl->getFormAction($this));
181 $form->setTitle($lng->txt("settings"));
182
183 // Backwards compatibility with ILIAS 3.9: Use the name of the
184 // uploaded file as the filename for the downloaded file instead
185 // of the title of the file object.
186 $dl_prop = new ilCheckboxInputGUI($lng->txt("download_with_uploaded_filename"), "download_with_uploaded_filename");
187 $dl_prop->setValue('1');
188 // default value should reflect previous behaviour (-> 0)
189 $dl_prop->setChecked($this->object->isDownloadWithUploadedFilename() == 1);
190 $dl_prop->setInfo($lng->txt('download_with_uploaded_filename_info'));
191 $form->addItem($dl_prop);
192
193 // Show download action for folder
194 $dl_prop = new ilCheckboxInputGUI($lng->txt("enable_download_folder"), "enable_download_folder");
195 $dl_prop->setValue('1');
196 // default value should reflect previous behaviour (-> 0)
197 $dl_prop->setChecked($this->folderSettings->get("enable_download_folder", 0) == 1);
198 $dl_prop->setInfo($lng->txt('enable_download_folder_info'));
199 $form->addItem($dl_prop);
200
201 // multi download
202 $dl_prop = new ilCheckboxInputGUI($lng->txt("enable_multi_download"), "enable_multi_download");
203 $dl_prop->setValue('1');
204 // default value should reflect previous behaviour (-> 0)
205 $dl_prop->setChecked($this->folderSettings->get("enable_multi_download", 0) == 1);
206 $dl_prop->setInfo($lng->txt('enable_multi_download_info'));
207 $form->addItem($dl_prop);
208
209 // Inline file extensions
210 $tai_prop = new ilTextAreaInputGUI($lng->txt('inline_file_extensions'), 'inline_file_extensions');
211 $tai_prop->setValue($this->object->getInlineFileExtensions());
212 $tai_prop->setInfo($lng->txt('inline_file_extensions_info'));
213 $tai_prop->setCols(80);
214 $tai_prop->setRows(5);
215 $form->addItem($tai_prop);
216
217
218 // command buttons
219 $form->addCommandButton('saveDownloadingSettings', $lng->txt('save'));
220 $form->addCommandButton('view', $lng->txt('cancel'));
221
222 $tpl->setContent($form->getHTML());
223 }
224
228 public function saveDownloadingSettings()
229 {
230 global $rbacsystem, $ilErr, $ilCtrl, $lng;
231
232 if (! $rbacsystem->checkAccess("write",$this->object->getRefId()))
233 {
234 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
235 }
236
237 $this->object->setDownloadWithUploadedFilename(ilUtil::stripSlashes($_POST['download_with_uploaded_filename']));
238 $this->object->setInlineFileExtensions(ilUtil::stripSlashes($_POST['inline_file_extensions']));
239 $this->object->update();
240
241 $this->folderSettings->set("enable_download_folder", $_POST["enable_download_folder"] == 1);
242 $this->folderSettings->set("enable_multi_download", $_POST["enable_multi_download"] == 1);
243
244 ilUtil::sendInfo($lng->txt('settings_saved'),true);
245 $ilCtrl->redirect($this, "editDownloadingSettings");
246 }
247
251 public function editWebDAVSettings()
252 {
253 global $rbacsystem, $ilErr, $ilTabs;
254 global $tpl, $ilCtrl, $lng, $tree, $settings;
255
256
257 $this->tabs_gui->setTabActive('webdav');
258
259 if (! $rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
260 {
261 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
262 }
263
264 require_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
265 require_once("./Services/Form/classes/class.ilCheckboxInputGUI.php");
266 require_once("./Services/Form/classes/class.ilRadioGroupInputGUI.php");
267 require_once("./Services/Form/classes/class.ilRadioOption.php");
268 require_once("./Services/Form/classes/class.ilTextAreaInputGUI.php");
269 require_once("./Services/WebDAV/classes/class.ilDAVServer.php");
270
271 $form = new ilPropertyFormGUI();
272 $form->setFormAction($ilCtrl->getFormAction($this));
273 $form->setTitle($lng->txt("settings"));
274
275 // Enable webdav
276 $ilDAVServer = ilDAVServer::getInstance();
277 $isPearAuthHTTPInstalled = @include_once("Auth/HTTP.php");
278 $cb_prop = new ilCheckboxInputGUI($lng->txt("enable_webdav"), "enable_webdav");
279 $cb_prop->setValue('1');
280 $cb_prop->setChecked($this->object->isWebdavEnabled() && $isPearAuthHTTPInstalled);
281 $cb_prop->setDisabled(! $isPearAuthHTTPInstalled);
282 $cb_prop->setInfo($isPearAuthHTTPInstalled ?
283 sprintf($lng->txt('enable_webdav_info'),$ilDAVServer->getMountURI($tree->getRootId(),0,null,null,true)) :
284 $lng->txt('webdav_pear_auth_http_needed')
285 );
286 $form->addItem($cb_prop);
287
288 // Webdav help text
289 if ($isPearAuthHTTPInstalled)
290 {
291 $rgi_prop = new ilRadioGroupInputGUI($lng->txt('webfolder_instructions'), 'custom_webfolder_instructions_choice');
292 $rgi_prop->addOption(new ilRadioOption($lng->txt('use_default_instructions'), 'default'));
293 $rgi_prop->addOption(new ilRadioOption($lng->txt('use_customized_instructions'), 'custom'));
294 $rgi_prop->setValue($this->object->isCustomWebfolderInstructionsEnabled() ? 'custom':'default');
295 $rgi_prop->setDisabled(! $isPearAuthHTTPInstalled);
296 $form->addItem($rgi_prop);
297 $tai_prop = new ilTextAreaInputGUI('', 'custom_webfolder_instructions');
298 $tai_prop->setValue($this->object->getCustomWebfolderInstructions());
299 $tai_prop->setInfo($lng->txt("webfolder_instructions_info"));
300 $tai_prop->setCols(80);
301 $tai_prop->setRows(20);
302 $tai_prop->setDisabled(! $isPearAuthHTTPInstalled);
303 $form->addItem($tai_prop);
304 }
305
306 // command buttons
307 $form->addCommandButton('saveWebDAVSettings', $lng->txt('save'));
308 $form->addCommandButton('view', $lng->txt('cancel'));
309
310 $tpl->setContent($form->getHTML());
311 }
312
316 public function saveWebDAVSettings()
317 {
318 global $rbacsystem, $ilErr, $ilCtrl, $lng;
319
320 if (! $rbacsystem->checkAccess("write",$this->object->getRefId()))
321 {
322 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
323 }
324
325 $this->object->setWebdavEnabled($_POST['enable_webdav'] == '1');
326// $this->object->setWebdavActionsVisible($_POST['webdav_actions_visible'] == '1');
327 $this->object->setCustomWebfolderInstructionsEnabled($_POST['custom_webfolder_instructions_choice']=='custom');
328 $this->object->setCustomWebfolderInstructions(ilUtil::stripSlashes($_POST['custom_webfolder_instructions'], false));
329 $this->object->update();
330
331 ilUtil::sendInfo($lng->txt('settings_saved'),true);
332 $ilCtrl->redirect($this, "editWebDAVSettings");
333 }
334
339 {
340 parent::setTitleAndDescription();
341 $this->tpl->setDescription($this->object->getDescription());
342 }
343
344
345 // DISK QUOTA --------------------------------------------------------------
349 function addDiskQuotaSubtabs($a_active_subtab)
350 {
351 global $ilCtrl, $ilTabs;
352
353 include_once("./Services/COPage/classes/class.ilPageEditorSettings.php");
354
355 $ilTabs->addSubTabTarget("settings",
356 $ilCtrl->getLinkTarget($this, "editDiskQuotaSettings"),
357 array("editDiskQuotaSettings"));
358
359 require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
361 {
362 $ilTabs->addSubTabTarget("disk_quota_report",
363 $ilCtrl->getLinkTarget($this, "viewDiskQuotaReport"),
364 array("viewDiskQuotaReport"));
365 }
366
367 $ilTabs->addSubTabTarget("disk_quota_reminder_mail",
368 $ilCtrl->getLinkTarget($this, "editDiskQuotaMailTemplate"),
369 array("editDiskQuotaMailTemplate"));
370
371 $ilTabs->setSubTabActive($a_active_subtab);
372 }
373
374
378 public function editDiskQuotaSettings()
379 {
380 global $rbacsystem, $ilErr, $ilSetting, $tpl, $lng, $ilCtrl;
381
382
383 if (! $rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
384 {
385 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
386 }
387
388 $this->tabs_gui->setTabActive('disk_quota');
389 $this->addDiskQuotaSubtabs('settings');
390
391 require_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
392 require_once("./Services/Form/classes/class.ilCheckboxInputGUI.php");
393 require_once("./Services/Form/classes/class.ilRadioGroupInputGUI.php");
394 require_once("./Services/Form/classes/class.ilRadioOption.php");
395 require_once("./Services/Form/classes/class.ilTextAreaInputGUI.php");
396 require_once("./Services/WebDAV/classes/class.ilDAVServer.php");
397
398 $lng->loadLanguageModule("file");
399
400 $form = new ilPropertyFormGUI();
401 $form->setFormAction($ilCtrl->getFormAction($this));
402 $form->setTitle($lng->txt("settings"));
403
404 include_once "Services/Administration/classes/class.ilAdministrationSettingsFormHandler.php";
407 $form,
408 $this
409 );
410
411 /*
412 // command buttons
413 $form->addCommandButton('saveDiskQuotaSettings', $lng->txt('save'));
414 $form->addCommandButton('editDiskQuotaSettings', $lng->txt('cancel'));
415 */
416
417 $tpl->setContent($form->getHTML());
418 }
419
423 public function saveDiskQuotaSettings()
424 {
425 global $rbacsystem, $ilErr, $ilCtrl, $lng;
426
427 if (! $rbacsystem->checkAccess("write",$this->object->getRefId()))
428 {
429 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
430 }
431
432 // ilUtil::sendInfo($lng->txt('settings_saved'),true);
433 $ilCtrl->redirect($this, "editDiskQuotaSettings");
434 }
435
440 public function viewDiskQuotaReport()
441 {
442 global $rbacsystem, $ilErr, $ilSetting, $lng;
443
444 if (! $rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
445 {
446 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
447 }
448
449 $this->tabs_gui->setTabActive('disk_quota');
450 $this->addDiskQuotaSubtabs('disk_quota_report');
451
452 // nothing to do if disk quota is not active
453 require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
455 {
456 return;
457 }
458
459 // get the form
460 $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.disk_quota_report.html',
461 "Services/WebDAV");
462
463 // get the date of the last update
464 require_once("./Services/WebDAV/classes/class.ilDiskQuotaChecker.php");
466 if ($last_update == null)
467 {
468 // nothing to do if disk usage report has not been run
469 $this->tpl->setVariable('LAST_UPDATE_TEXT',$lng->txt('disk_quota_report_not_run_yet'));
470 return;
471 }
472 else
473 {
474 $this->tpl->setVariable('LAST_UPDATE_TEXT',$lng->txt('last_update').': '.ilFormat::formatDate($last_update,'datetime',true));
475 }
476
477 // Filter
478 $_SESSION['quota_usage_filter'] = isset($_POST['usage_filter']) ? $_POST['usage_filter'] : $_SESSION['quota_usage_filter'];
479 if ($_SESSION['quota_usage_filter'] == 0)
480 {
481 $_SESSION['quota_usage_filter'] = 4;
482 }
483 $_SESSION['quota_access_filter'] = isset($_POST['access_filter']) ? $_POST['access_filter'] : $_SESSION['quota_access_filter'];
484 if ($_SESSION['quota_access_filter'] == 0)
485 {
486 $_SESSION['quota_access_filter'] = 1;
487 }
488 $usage_action[1] = $lng->txt('all_users');
489 $usage_action[2] = $lng->txt('filter_users_without_disk_usage');
490 $usage_action[3] = $lng->txt('filter_users_with_disk_usage');
491 $usage_action[4] = $lng->txt('filter_users_with_exceeded_disk_quota');
492 $access_action[1] = $lng->txt('all_users');
493 $access_action[2] = $lng->txt('filter_users_with_access');
494 $access_action[3] = $lng->txt('filter_users_without_access');
495
496 $select_usage_filter = ilUtil::formSelect($_SESSION['quota_usage_filter'],"usage_filter",$usage_action,false,true);
497 $select_access_filter = ilUtil::formSelect($_SESSION['quota_access_filter'],"access_filter",$access_action,false,true);
498
499 $this->tpl->setCurrentBlock("filter");
500 $this->tpl->setVariable("FILTER_TXT_FILTER",$lng->txt('filter'));
501 $this->tpl->setVariable("SELECT_USAGE_FILTER",$select_usage_filter);
502 $this->tpl->setVariable("SELECT_ACCESS_FILTER",$select_access_filter);
503 $this->tpl->setVariable("FILTER_ACTION",$this->ctrl->getLinkTarget($this, 'viewDiskQuotaReport'));
504 $this->tpl->setVariable("FILTER_NAME",'view');
505 $this->tpl->setVariable("FILTER_VALUE",$lng->txt('apply_filter'));
506 $this->tpl->parseCurrentBlock();
507
508 // load templates for table
509 $a_tpl = new ilTemplate('tpl.table.html',true,true);
510 $a_tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
511
512 // create table
513 require_once './Services/Table/classes/class.ilTableGUI.php';
514 $tbl = new ilTableGUI(0, false);
515
516 // title & header columns
517 $header_vars = array('login','firstname','lastname','email','access_until','last_login','disk_quota','disk_usage', 'last_reminder');
518 $tbl->setHeaderNames(
519 array(
520 $lng->txt('login'),
521 $lng->txt('firstname'),
522 $lng->txt('lastname'),
523 $lng->txt('email'),
524 $lng->txt('access_until'),
525 $lng->txt('last_login'),
526 $lng->txt('disk_quota'),
527 $lng->txt('disk_usage'),
528 $lng->txt('last_reminder')
529 )
530 );
531 $tbl->setHeaderVars(
532 $header_vars,
533 $this->ctrl->getParameterArray($this,'viewDiskQuotaReport',false)
534 );
535
536 $tbl->enable("numinfo_header");
537 $tbl->setFormName("cmd");
538 $tbl->setSelectAllCheckbox("id");
539
540 // sorting
541 $tbl->setOrderColumn($_GET["sort_by"]);
542 $tbl->setOrderDirection($_GET["sort_order"]);
543
544 // fetch the data
546 $_SESSION['quota_usage_filter'],
547 $_SESSION['quota_access_filter'],
548 $header_vars[$tbl->getOrderColumn()], $tbl->getOrderDirection());
549
550 // paging
551 $tbl->setLimit($_GET["limit"]);
552 $tbl->setOffset($_GET["offset"]);
553 $tbl->setMaxCount(count($data));
554
555 // footer
556 $tbl->setFooter("tblfooter",$lng->txt("previous"),$lng->txt("next"));
557
558 // render table
559 $tbl->setTemplate($a_tpl);
560
561 // render rows
562 $count = 0;
563 for ($i = $tbl->getOffset(); $i < count($data) && $i < $tbl->getOffset() + $tbl->getLimit(); $i++)
564 {
565 $row = $data[$i];
566
567 // build columns
568 foreach ($header_vars as $key)
569 {
570 switch ($key)
571 {
572 case 'login' :
573 //build link
574 $this->ctrl->setParameterByClass("ilobjusergui", "ref_id", "7");
575 $this->ctrl->setParameterByClass("ilobjusergui", "obj_id", $row["usr_id"]);
576 $link = $this->ctrl->getLinkTargetByClass("ilobjusergui", "view");
577 $tbl_content_cell = '<a href="'.$link.'">'.htmlspecialchars($row[$key]).'</a>';
578 break;
579 case 'disk_quota' :
580 if ($row['role_id'] == SYSTEM_ROLE_ID)
581 {
582 $tbl_content_cell = "<span class=\"smallgreen\">".$lng->txt('access_unlimited').'</span>';
583 }
584 else
585 {
586 $tbl_content_cell = ilFormat::formatSize($row[$key],'short');
587 }
588 break;
589 case 'disk_usage' :
590 if ($row['last_update'] == null)
591 {
592 $tbl_content_cell = $lng->txt('unknown');
593 }
594 else if ($row['disk_usage'] > $row['disk_quota'])
595 {
596 $tbl_content_cell = "<span class=\"smallred\">".ilFormat::formatSize($row[$key],'short').'</span>';
597 }
598 else
599 {
600 $tbl_content_cell = ilFormat::formatSize($row[$key],'short');
601 }
602 break;
603 case 'access_until' :
604 if (! $row['active'])
605 {
606 $tbl_content_cell = "<span class=\"smallred\">".$lng->txt('inactive').'</span>';
607 }
608 else if ($row['time_limit_unlimited'])
609 {
610 $tbl_content_cell = "<span class=\"smallgreen\">".$lng->txt('access_unlimited').'</span>';
611 }
612 else if ($row['expired'])
613 {
614 $tbl_content_cell = "<span class=\"smallred\">".$lng->txt('access_expired').'</span>';
615 }
616 else
617 {
618 $tbl_content_cell = ilFormat::formatDate($row[$key]);
619 }
620 break;
621 case 'last_login' :
622 case 'last_reminder' :
623 if ($row[$key] == null)
624 {
625 $tbl_content_cell = $lng->txt('no_date');
626 }
627 else
628 {
629 $tbl_content_cell = ilFormat::formatDate($row[$key]);
630 }
631 break;
632 default :
633 $tbl_content_cell = htmlspecialchars($row[$key]);
634 }
635 /*
636 if (is_array($tbl_content_cell))
637 {
638 $tbl->tpl->setCurrentBlock("tbl_cell_subtitle");
639 $tbl->tpl->setVariable("TBL_CELL_SUBTITLE",$tbl_content_cell[1]);
640 $tbl->tpl->parseCurrentBlock();
641 $tbl_content_cell = "<b>".$tbl_content_cell[0]."</b>";
642 }*/
643
644 $tbl->tpl->setCurrentBlock("tbl_content_cell");
645 $tbl->tpl->setVariable("TBL_CONTENT_CELL",$tbl_content_cell);
646
647 $tbl->tpl->parseCurrentBlock();
648 }
649
650 $tbl->tpl->setCurrentBlock("tbl_content_row");
651 $rowcolor = ilUtil::switchColor($count,"tblrow1","tblrow2");
652 $tbl->tpl->setVariable("ROWCOLOR", $rowcolor);
653 $tbl->tpl->parseCurrentBlock();
654
655 $count++;
656 }
657 $tbl->render();
658
659 // Add table to page
660 $this->tpl->setVariable("USER_TABLE",$a_tpl->get());
661 }
662
663 protected function initDiskQuotaMailTemplateForm()
664 {
665 global $lng;
666
667 $lng->loadLanguageModule("meta");
668 $lng->loadLanguageModule("mail");
669
670 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
671 $form = new ilPropertyFormGUI();
672 $form->setFormAction($this->ctrl->getFormAction($this));
673
674 $form->setTitle($lng->txt("disk_quota_reminder_mail"));
675 $form->setDescription($lng->txt("disk_quota_reminder_mail_desc"));
676
677 foreach($lng->getInstalledLanguages() as $lang_key)
678 {
679 $lang_def = ($lang_key == $lng->getDefaultLanguage())
680 ? " (".$lng->txt("default").")"
681 : "";
682
683 $sec = new ilFormSectionHeaderGUI();
684 $sec->setTitle($lng->txt("meta_l_".$lang_key).$lang_def);
685 $form->addItem($sec);
686
687 $subj = new ilTextInputGUI($lng->txt("subject"), "subject_".$lang_key);
688 $subj->setRequired(true);
689 $form->addItem($subj);
690
691 $sal_g = new ilTextInputGUI($lng->txt("mail_salutation_general"), "sal_g_".$lang_key);
692 $sal_g->setRequired(true);
693 $form->addItem($sal_g);
694
695 $sal_f = new ilTextInputGUI($lng->txt("mail_salutation_female"), "sal_f_".$lang_key);
696 $sal_f->setRequired(true);
697 $form->addItem($sal_f);
698
699 $sal_m = new ilTextInputGUI($lng->txt("mail_salutation_male"), "sal_m_".$lang_key);
700 $sal_m->setRequired(true);
701 $form->addItem($sal_m);
702
703 $body = new ilTextAreaInputGUI($lng->txt("message_content"), "body_".$lang_key);
704 $body->setRequired(true);
705 $body->setRows(10);
706 $form->addItem($body);
707
708 // current values
709 $amail = $this->disk_quota_obj->_lookupReminderMailTemplate($lang_key);
710 $subj->setValue($amail["subject"]);
711 $sal_g->setValue($amail["sal_g"]);
712 $sal_f->setValue($amail["sal_f"]);
713 $sal_m->setValue($amail["sal_m"]);
714 $body->setValue($amail["body"]);
715 }
716
717 $form->addCommandButton("saveDiskQuotaMailTemplate", $lng->txt("save"));
718 $form->addCommandButton("editDiskQuotaSettings", $lng->txt("cancel"));
719
720 return $form;
721 }
722
726 public function editDiskQuotaMailTemplate(ilPropertyFormGUI $a_form = null)
727 {
728 global $rbacsystem, $ilErr, $lng;
729
730 if (! $rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
731 {
732 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
733 }
734
735 $this->tabs_gui->setTabActive("disk_quota");
736 $this->addDiskQuotaSubtabs("disk_quota_reminder_mail");
737
738 if(!$a_form)
739 {
740 $a_form = $this->initDiskQuotaMailTemplateForm();
741 }
742
743 $tpl = new ilTemplate("tpl.disk_quota_reminder_mail.html", true, true, "Services/WebDAV");
744 $tpl->setVariable("TXT_USE_PLACEHOLDERS", $lng->txt("mail_nacc_use_placeholder"));
745 $tpl->setVariable("TXT_MAIL_SALUTATION", $lng->txt("mail_nacc_salutation"));
746 $tpl->setVariable("TXT_FIRST_NAME", $lng->txt("firstname"));
747 $tpl->setVariable("TXT_LAST_NAME", $lng->txt("lastname"));
748 $tpl->setVariable("TXT_EMAIL", $lng->txt("email"));
749 $tpl->setVariable("TXT_LOGIN", $lng->txt("mail_nacc_login"));
750 $tpl->setVariable("TXT_DISK_QUOTA", $lng->txt("disk_quota"));
751 $tpl->setVariable("TXT_DISK_USAGE", $lng->txt("disk_usage"));
752 $tpl->setVariable("TXT_DISK_USAGE_DETAILS", $lng->txt("disk_usage_details"));
753 $tpl->setVariable("TXT_ADMIN_MAIL", $lng->txt("mail_nacc_admin_mail"));
754 $tpl->setVariable("TXT_ILIAS_URL", $lng->txt("mail_nacc_ilias_url"));
755 $tpl->setVariable("TXT_CLIENT_NAME", $lng->txt("mail_nacc_client_name"));
756
757 include_once "Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
760 $legend->setHeading($lng->txt("mail_nacc_use_placeholder"));
761 $legend->setBody($tpl->get());
762
763 $this->tpl->setContent($a_form->getHTML().$legend->getHTML());
764 }
765
767 {
768 global $lng;
769
770 $form = $this->initDiskQuotaMailTemplateForm();
771 if($form->checkInput())
772 {
773 foreach($lng->getInstalledLanguages() as $lang_key)
774 {
775 $this->disk_quota_obj->_writeReminderMailTemplate(
776 $lang_key,
777 $form->getInput("subject_".$lang_key),
778 $form->getInput("sal_g_".$lang_key),
779 $form->getInput("sal_f_".$lang_key),
780 $form->getInput("sal_m_".$lang_key),
781 $form->getInput("body_".$lang_key)
782 );
783 }
784
785 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
786 $this->ctrl->redirect($this, "editDiskQuotaMailTemplate");
787 }
788
789 $form->setValuesByPost();
790 $this->editDiskQuotaMailTemplate($form);
791 }
792
796 private function initUploadSettingsForm()
797 {
798 global $ilCtrl, $lng;
799
800 require_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
801 $form = new ilPropertyFormGUI();
802 $form->setFormAction($ilCtrl->getFormAction($this));
803 $form->setTitle($lng->txt("settings"));
804
805 require_once("Services/FileUpload/classes/class.ilFileUploadSettings.php");
806
807 // drag and drop file upload
808 $chk_enabled = new ilCheckboxInputGUI($lng->txt("enable_dnd_upload"), "enable_dnd_upload");
809 $chk_enabled->setValue('1');
810 $chk_enabled->setChecked(ilFileUploadSettings::isDragAndDropUploadEnabled());
811 $chk_enabled->setInfo($lng->txt('enable_dnd_upload_info'));
812 $form->addItem($chk_enabled);
813
814 // drag and drop file upload in repository
815 $chk_repo = new ilCheckboxInputGUI($lng->txt("enable_repository_dnd_upload"), "enable_repository_dnd_upload");
816 $chk_repo->setValue('1');
818 $chk_repo->setInfo($lng->txt('enable_repository_dnd_upload_info'));
819 $chk_enabled->addSubItem($chk_repo);
820
821 // concurrent uploads
822 $num_prop = new ilNumberInputGUI($lng->txt("concurrent_uploads"), "concurrent_uploads");
823 $num_prop->setDecimals(0);
824 $num_prop->setMinValue(1);
825 $num_prop->setMinvalueShouldBeGreater(false);
826 $num_prop->setMaxValue(ilFileUploadSettings::CONCURRENT_UPLOADS_MAX);
827 $num_prop->setMaxvalueShouldBeLess(false);
828 $num_prop->setMaxLength(5);
829 $num_prop->setSize(10);
830 $num_prop->setValue(ilFileUploadSettings::getConcurrentUploads());
831 $num_prop->setInfo($lng->txt('concurrent_uploads_info'));
832 $chk_enabled->addSubItem($num_prop);
833
834 include_once("./Services/Utilities/classes/class.ilFileUtils.php");
835
836 // default white list
837 $ne = new ilNonEditableValueGUI($this->lng->txt("file_suffix_default_white"), "");
838 $ne->setValue(implode(", ", ilFileUtils::getDefaultValidExtensionWhiteList()));
839 $ne->setInfo($this->lng->txt("file_suffix_default_white_info"));
840 $form->addItem($ne);
841
842 // file suffix custom black list
843 $ti = new ilTextInputGUI($this->lng->txt("file_suffix_custom_black"), "suffix_repl_additional");
844 $ti->setMaxLength(200);
845 $ti->setSize(40);
846 $ti->setInfo($this->lng->txt("file_suffix_custom_black_info"));
847 $form->addItem($ti);
848
849 // file suffix custom white list
850 $ti = new ilTextInputGUI($this->lng->txt("file_suffix_custom_white"), "suffix_custom_white_list");
851 $ti->setMaxLength(200);
852 $ti->setSize(40);
853 $ti->setInfo($this->lng->txt("file_suffix_custom_white_info"));
854 $form->addItem($ti);
855
856 // resulting overall white list
857 $ne = new ilNonEditableValueGUI($this->lng->txt("file_suffix_overall_white"), "");
858 $ne->setValue(implode(", ", ilFileUtils::getValidExtensions()));
859 $ne->setInfo($this->lng->txt("file_suffix_overall_white_info"));
860 $form->addItem($ne);
861
862 // command buttons
863 $form->addCommandButton('saveUploadSettings', $lng->txt('save'));
864 $form->addCommandButton('view', $lng->txt('cancel'));
865
866 return $form;
867 }
868
872 public function editUploadSettings()
873 {
874 global $rbacsystem, $ilErr, $tpl, $lng, $ilSetting;
875
876 $this->tabs_gui->setTabActive('upload_settings');
877
878 if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId()))
879 {
880 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
881 }
882
883 // get form
884 $form = $this->initUploadSettingsForm();
885
886 require_once("Services/FileUpload/classes/class.ilFileUploadSettings.php");
887
888 // set current values
889 $val = array();
890 $val["enable_dnd_upload"] = ilFileUploadSettings::isDragAndDropUploadEnabled();
891 $val["enable_repository_dnd_upload"] = ilFileUploadSettings::isRepositoryDragAndDropUploadEnabled();
892 $val["concurrent_uploads"] = ilFileUploadSettings::getConcurrentUploads();
893 $val["suffix_repl_additional"] = $ilSetting->get("suffix_repl_additional");
894 $val["suffix_custom_white_list"] = $ilSetting->get("suffix_custom_white_list");
895 $form->setValuesByArray($val);
896
897 // set content
898 $tpl->setContent($form->getHTML());
899 }
900
904 public function saveUploadSettings()
905 {
906 global $rbacsystem, $ilErr, $ilCtrl, $lng, $tpl, $ilSetting;
907
908 if (!$rbacsystem->checkAccess("write",$this->object->getRefId()))
909 {
910 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
911 }
912
913 // get form
914 $form = $this->initUploadSettingsForm();
915 if ($form->checkInput())
916 {
917 require_once("Services/FileUpload/classes/class.ilFileUploadSettings.php");
919 ilFileUploadSettings::setRepositoryDragAndDropUploadEnabled($_POST["enable_repository_dnd_upload"] == 1);
921
922 // file suffic replacements
923 $ilSetting->set("suffix_repl_additional", $_POST["suffix_repl_additional"]);
924 $ilSetting->set("suffix_custom_white_list", $_POST["suffix_custom_white_list"]);
925
926 ilUtil::sendSuccess($lng->txt('settings_saved'), true);
927 $ilCtrl->redirect($this, "editUploadSettings");
928 }
929 else
930 {
931 $form->setValuesByPost();
932 $tpl->setContent($form->getHTML());
933 }
934 }
935
939 private function initPreviewSettingsForm()
940 {
941 global $ilCtrl, $lng;
942
943 require_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
944 $form = new ilPropertyFormGUI();
945 $form->setFormAction($ilCtrl->getFormAction($this));
946 $form->setTitle($lng->txt("settings"));
947
948 require_once("Services/Preview/classes/class.ilPreviewSettings.php");
949
950 // drag and drop file upload in repository
951 $chk_prop = new ilCheckboxInputGUI($lng->txt("enable_preview"), "enable_preview");
952 $chk_prop->setValue('1');
953 $chk_prop->setChecked(ilPreviewSettings::isPreviewEnabled());
954 $chk_prop->setInfo($lng->txt('enable_preview_info'));
955 $form->addItem($chk_prop);
956
957 $num_prop = new ilNumberInputGUI($lng->txt("max_previews_per_object"), "max_previews_per_object");
958 $num_prop->setDecimals(0);
959 $num_prop->setMinValue(1);
960 $num_prop->setMinvalueShouldBeGreater(false);
961 $num_prop->setMaxValue(ilPreviewSettings::MAX_PREVIEWS_MAX);
962 $num_prop->setMaxvalueShouldBeLess(false);
963 $num_prop->setMaxLength(5);
964 $num_prop->setSize(10);
965 $num_prop->setValue(ilPreviewSettings::getMaximumPreviews());
966 $num_prop->setInfo($lng->txt('max_previews_per_object_info'));
967 $form->addItem($num_prop);
968
969 // command buttons
970 $form->addCommandButton('savePreviewSettings', $lng->txt('save'));
971 $form->addCommandButton('view', $lng->txt('cancel'));
972
973 return $form;
974 }
975
979 public function editPreviewSettings()
980 {
981 global $rbacsystem, $ilErr, $tpl, $lng;
982
983 $this->tabs_gui->setTabActive('preview_settings');
984
985 if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId()))
986 {
987 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
988 }
989
990 // set warning if ghostscript not installed
991 include_once("./Services/Preview/classes/class.ilGhostscriptRenderer.php");
993 {
994 ilUtil::sendInfo($lng->txt("ghostscript_not_configured"));
995 }
996
997 // get form
998 $form = $this->initPreviewSettingsForm();
999
1000 // set current values
1001 require_once("Services/Preview/classes/class.ilPreviewSettings.php");
1002
1003 $val = array();
1004 $val["enable_preview"] = ilPreviewSettings::isPreviewEnabled();
1005 $val["max_previews_per_object"] = ilPreviewSettings::getMaximumPreviews();
1006 $form->setValuesByArray($val);
1007
1008 $html = $form->getHTML();
1009
1010 // build renderer HTML
1011 require_once("Services/Preview/classes/class.ilRendererFactory.php");
1012 require_once("Services/Preview/classes/class.ilRendererTableGUI.php");
1013
1014 $renderers = ilRendererFactory::getRenderers();
1015
1016 $table = new ilRendererTableGUI($this, array("editPreviewSettings", "view"));
1017 $table->setMaxCount(sizeof($renderers));
1018 $table->setData($renderers);
1019
1020 $html .= "<br/>" . $table->getHTML();
1021
1022 // set content
1023 $tpl->setContent($html);
1024 }
1025
1029 public function savePreviewSettings()
1030 {
1031 global $rbacsystem, $ilErr, $ilCtrl, $tpl, $lng;
1032
1033 $this->tabs_gui->setTabActive('preview_settings');
1034
1035 if (!$rbacsystem->checkAccess("write",$this->object->getRefId()))
1036 {
1037 $ilErr->raiseError($lng->txt("no_permission"),$ilErr->WARNING);
1038 }
1039
1040 // get form
1041 $form = $this->initPreviewSettingsForm();
1042 if ($form->checkInput())
1043 {
1044 require_once("Services/Preview/classes/class.ilPreviewSettings.php");
1045 ilPreviewSettings::setPreviewEnabled($_POST["enable_preview"] == 1);
1046 ilPreviewSettings::setMaximumPreviews($_POST["max_previews_per_object"]);
1047
1048 ilUtil::sendSuccess($lng->txt('settings_saved'), true);
1049 $ilCtrl->redirect($this, "editPreviewSettings");
1050 }
1051 else
1052 {
1053 $form->setValuesByPost();
1054 $tpl->setContent($form->getHTML());
1055 }
1056 }
1057
1058 public function addToExternalSettingsForm($a_form_id)
1059 {
1060 global $ilSetting;
1061
1062 switch($a_form_id)
1063 {
1065
1066 $fields = array('file_suffix_repl' => $ilSetting->get("suffix_repl_additional"));
1067
1068 return array(array("editUploadSettings", $fields));
1069 }
1070 }
1071}
1072
1073?>
$_GET["client_id"]
$_SESSION["AccountId"]
static addFieldsToForm($a_form_id, ilPropertyFormGUI $a_form, ilObjectGUI $a_parent_gui)
This class represents a checkbox property in a property form.
static getInstance()
Get singelton iunstance.
static _lookupDiskUsageReportLastUpdate()
Returns the SQL datetime of the last update of the disk usage report.
static _fetchDiskQuotaReport($a_usage_filter=3, $a_access_filter=1, $a_order_column='disk_usage', $a_order_by='desc')
Reads disk quota/disk usage report of the user accounts.
File manager settings.
static setRepositoryDragAndDropUploadEnabled($newValue)
Sets whether drag and drop file upload in the repository is enabled.
static isRepositoryDragAndDropUploadEnabled()
Gets whether drag and drop file upload in the repository is enabled.
static isDragAndDropUploadEnabled()
Gets whether drag and drop file upload is enabled.
static setConcurrentUploads($newValue)
Sets the number of files that can be uploaded at the same time.
static setDragAndDropUploadEnabled($newValue)
Sets whether drag and drop file upload is enabled.
static getConcurrentUploads()
Gets the number of files that can be uploaded at the same time.
static getDefaultValidExtensionWhiteList()
Valid extensions.
static getValidExtensions()
This class represents a section header in a property form.
formatDate($a_date, $a_mode="datetime", $a_omit_seconds=false, $a_relative=TRUE)
format a date according to the user language shortcut for Format::fmtDateTime @access public
static formatSize($size, $a_mode='short', $a_lng=null)
Returns the specified file size value in a human friendly form.
static isGhostscriptInstalled()
Determines whether Ghostscript is installed.
This class represents a non editable value in a property form.
This class represents a number property in a property form.
addDiskQuotaSubtabs($a_active_subtab)
Add disk quota subtabs.
setTitleAndDescription()
called by prepare output
initPreviewSettingsForm()
Initializes the preview settings form.
initUploadSettingsForm()
Initializes the upload settings form.
saveDiskQuotaSettings()
Save disk quota settings.
ilObjFileAccessSettingsGUI($a_data, $a_id, $a_call_by_reference)
Constructor @access public.
editDiskQuotaSettings()
Edit disk quota settings.
editDiskQuotaMailTemplate(ilPropertyFormGUI $a_form=null)
Edit disk quota settings.
Class ilObjectGUI Basic methods of all Output classes.
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
prepareOutput()
prepare output
const HEADING_STYLE_BLOCK
static getInstance()
Get instance.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static isPreviewEnabled()
Gets whether the preview functionality is enabled.
static setMaximumPreviews($a_value)
Sets the maximum number of preview pictures per object.
static getMaximumPreviews()
Gets the maximum number of preview pictures per object.
static setPreviewEnabled($a_value)
Sets whether the preview functionality is enabled.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
static getRenderers()
Gets an array containing all available preview renderers.
Displays an overview of all loaded preview renderers.
ILIAS Setting Class.
Class ilTableGUI.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static formSelect($selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
$_POST['username']
Definition: cron.php:12
$html
Definition: example_001.php:87
$tbl
Definition: example_048.php:81
$legend
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
global $ilCtrl
Definition: ilias.php:18
global $ilSetting
Definition: privfeed.php:40
$cmd
Definition: sahs_server.php:35