ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilAuthLoginPageEditorGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once './Services/Authentication/classes/class.ilAuthLoginPageEditorSettings.php';
5
16{
20 protected $ctrl = null;
21 protected $lng = null;
22
23 private $ref_id = 0;
24 private $settings = null;
25
26
27
33 public function __construct($a_ref_id)
34 {
35 global $ilCtrl,$lng;
36
37 $this->ctrl = $ilCtrl;
38 $this->lng = $lng;
39 $this->lng->loadLanguageModule('auth');
40 $this->ref_id = $a_ref_id;
41
43 }
44
49 public function getSettings()
50 {
51 return $this->settings;
52 }
53
57 public function getRefId()
58 {
59 return $this->ref_id;
60 }
61
65 public function executeCommand()
66 {
67 switch($this->ctrl->getNextClass($this))
68 {
69 case 'illoginpagegui':
70 $GLOBALS['ilTabs']->clearTargets();
71 $GLOBALS['ilTabs']->setBackTarget(
72 $this->lng->txt('back'),
73 $this->ctrl->getLinkTarget($this,'show'),
74 '_top'
75 );
76
77 if ($_GET["redirectSource"] != "ilinternallinkgui")
78 {
79 $this->forwardToPageObject();
80 }
81 else
82 {
83 return '';
84 }
85 break;
86
87 default:
88 if(!$cmd = $this->ctrl->getCmd())
89 {
90 $cmd = 'show';
91 }
92 $this->$cmd();
93 break;
94 }
95 }
96
97
101 protected function forwardToPageObject()
102 {
103 global $lng,$tpl;
104
105 $key = (int) $_REQUEST['key'];
106 $this->ctrl->saveParameter($this,'key',$key);
107
108 include_once("./Services/Authentication/classes/class.ilLoginPage.php");
109 include_once("./Services/Authentication/classes/class.ilLoginPageGUI.php");
110 include_once './Services/Style/classes/class.ilObjStyleSheet.php';
111
112 $lng->loadLanguageModule("content");
113
114 if (!ilLoginPage::_exists('auth',$key))
115 {
116 // doesn't exist -> create new one
117 $new_page_object = new ilLoginPage();
118 $new_page_object->setParentId($key);
119 $new_page_object->setId($key);
120 $new_page_object->createFromXML();
121 }
122
123 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
124 $tpl->setVariable("LOCATION_CONTENT_STYLESHEET",ilObjStyleSheet::getContentStylePath(0));
125 $tpl->setCurrentBlock("SyntaxStyle");
126 $tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",ilObjStyleSheet::getSyntaxStylePath());
127 $tpl->parseCurrentBlock();
128
129
130 $this->ctrl->setReturnByClass('illoginpagegui', "edit");
131 $page_gui = new ilLoginPageGUI($key);
132
133 $page_gui->setTemplateTargetVar("ADM_CONTENT");
134 $page_gui->setLinkXML($link_xml);
135 //$page_gui->enableChangeComments($this->content_object->isActiveHistoryUserComments());
136 //$page_gui->setFileDownloadLink($this->ctrl->getLinkTarget($this, "downloadFile"));
137 //$page_gui->setFullscreenLink($this->ctrl->getLinkTarget($this, "showMediaFullscreen"));
138 //$page_gui->setLinkParams($this->ctrl->getUrlParameterString()); // todo
139// $page_gui->setSourcecodeDownloadScript($this->ctrl->getLinkTarget($this, ""));
140 $page_gui->setPresentationTitle("");
141 $page_gui->setTemplateOutput(false);
142 //$page_gui->setLocator($contObjLocator);
143 $page_gui->setHeader("");
144
145 // style tab
146 //$page_gui->setTabHook($this, "addPageTabs");
147
148 if($this->ctrl->getCmd() == 'editPage')
149 $this->ctrl->setCmd('edit');
150 $html = $this->ctrl->forwardCommand($page_gui);
151
152 $tpl->setContent($html);
153 }
154
159 protected function show()
160 {
161 $this->addEditorSwitch();
162
163 switch($this->getSettings()->getMode())
164 {
166 return $this->showRichtextEditor();
167
169 return $this->showIliasEditor();
170 }
171 }
172
177 protected function addEditorSwitch()
178 {
179 global $ilToolbar;
180
181 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
182 switch($this->getSettings()->getMode())
183 {
185
186 $ilToolbar->addButton(
187 $this->lng->txt('login_page_switch_ipe'),
188 $this->ctrl->getLinkTarget($this,'switchIPE')
189 );
190 break;
191
193
194 $ilToolbar->addButton(
195 $this->lng->txt('login_page_switch_rte'),
196 $this->ctrl->getLinkTarget($this,'switchRTE')
197 );
198 break;
199 }
200 return;
201 }
202
206 protected function switchIPE()
207 {
209 $this->getSettings()->update();
210
211 ilUtil::sendSuccess($this->lng->txt('login_page_editor_switched'),true);
212 $this->ctrl->redirect($this,'show');
213 }
214
218 protected function switchRTE()
219 {
221 $this->getSettings()->update();
222
223 ilUtil::sendSuccess($this->lng->txt('login_page_editor_switched'),true);
224 $this->ctrl->redirect($this,'show');
225 }
226
230 protected function activate()
231 {
233 foreach((array) $_POST['visible_languages'] as $lang_key)
234 {
235 $settings->enableIliasEditor($lang_key, in_array($lang_key,(array) $_POST['languages']));
236 }
237 $settings->update();
238
239 ilUtil::sendSuccess($this->lng->txt('settings_saved'),true);
240 $this->ctrl->redirect($this,'show');
241 }
242
246 protected function showIliasEditor()
247 {
248 global $tpl;
249
250 include_once './Services/Authentication/classes/class.ilAuthLoginPageEditorTableGUI.php';
251 $tbl = new ilAuthLoginPageEditorTableGUI($this,'show');
252 $tbl->parse();
253
254 $tpl->setContent($tbl->getHTML());
255 }
256
264 protected function showRichtextEditor()
265 {
266 global $rbacsystem, $lng,$ilSetting,$tpl;
267
268 if(!$rbacsystem->checkAccess("visible,read", $this->getRefId()))
269 {
270 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
271 }
272 $lng->loadLanguageModule("meta");
273
274 $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.auth_login_messages.html",
275 "Services/Authentication");
276 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
277 $tpl->setVariable("TXT_HEADLINE", $this->lng->txt("login_information"));
278 $tpl->setVariable("TXT_DESCRIPTION", $this->lng->txt("login_information_desc"));
279 $tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
280 $this->initLoginForm();
281 $tpl->setVariable('LOGIN_INFO',$this->form->getHTML());
282 }
283
290 protected function saveLoginInfo()
291 {
292 global $rbacsystem, $lng,$ilSetting;
293
294 if(!$rbacsystem->checkAccess("write",$this->getRefId()))
295 {
296 $ilErr->raiseError($this->lng->txt("permission_denied"),$ilErr->MESSAGE);
297 }
298
299 $this->initLoginForm();
300 if ($this->form->checkInput())
301 {
302 if (is_array($_POST))
303 {
304 // @todo: Move settings ilAuthLoginPageSettings
305 $this->loginSettings = new ilSetting("login_settings");
306
307 foreach ($_POST as $key => $val)
308 {
309 if (substr($key, 0, 14) == "login_message_")
310 {
311 $this->loginSettings->set($key, $val);
312 }
313 }
314 }
315
316 if($_POST['default_auth_mode'])
317 {
318 $ilSetting->set('default_auth_mode',(int) $_POST['default_auth_mode']);
319 }
320
321 ilUtil::sendSuccess($this->lng->txt("login_information_settings_saved"),true);
322 }
323
324 $this->ctrl->redirect($this,'show');
325 }
326
330 protected function initLoginForm()
331 {
332 global $rbacsystem, $lng,$ilSetting;
333
334 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
335 $this->form = new ilPropertyFormGUI();
336 $this->form->setFormAction($this->ctrl->getFormAction($this,'saveLoginInfo'));
337 $this->form->setTableWidth('80%');
338 $this->form->setTitle($this->lng->txt('login_information'));
339
340 $this->form->addCommandButton('saveLoginInfo',$this->lng->txt('save'));
341
342 include_once('Services/LDAP/classes/class.ilLDAPServer.php');
343 include_once('Services/Radius/classes/class.ilRadiusSettings.php');
344 $rad_settings = ilRadiusSettings::_getInstance();
345 if($ldap_id = ilLDAPServer::_getFirstActiveServer() or $rad_settings->isActive())
346 {
347 $select = new ilSelectInputGUI($this->lng->txt('default_auth_mode'),'default_auth_mode');
348 $select->setValue($ilSetting->get('default_auth_mode',AUTH_LOCAL));
349 $select->setInfo($this->lng->txt('default_auth_mode_info'));
350 $options[AUTH_LOCAL] = $this->lng->txt('auth_local');
351 if($ldap_id)
352 {
353 $options[AUTH_LDAP] = $this->lng->txt('auth_ldap');
354 }
355 if($rad_settings->isActive())
356 {
357 $options [AUTH_RADIUS] = $this->lng->txt('auth_radius');
358 }
359 $select->setOptions($options);
360 $this->form->addItem($select);
361 }
362
363 if (!is_object($this->loginSettings))
364 {
365 $this->loginSettings = new ilSetting("login_settings");
366 }
367
368 $login_settings = $this->loginSettings->getAll();
369 $languages = $lng->getInstalledLanguages();
370 $def_language = $lng->getDefaultLanguage();
371
372 foreach ($this->setDefLangFirst($def_language, $languages) as $lang_key)
373 {
374 $add = "";
375 if ($lang_key == $def_language)
376 {
377 $add = " (".$lng->txt("default").")";
378 }
379
380 $textarea = new ilTextAreaInputGUI($lng->txt("meta_l_".$lang_key).$add,
381 'login_message_'.$lang_key);
382 $textarea->setRows(10);
383 $textarea->setValue($login_settings["login_message_".$lang_key]);
384 $textarea->setUseRte(true);
385 $textarea->setRteTagSet("extended");
386 $this->form->addItem($textarea);
387
388 unset($login_settings["login_message_".$lang_key]);
389 }
390
391 foreach ($login_settings as $key => $message)
392 {
393 $lang_key = substr($key, strrpos($key, "_") + 1, strlen($key) - strrpos($key, "_"));
394
395 $textarea = new ilTextAreaInputGUI($lng->txt("meta_l_".$lang_key).$add,
396 'login_message_'.$lang_key);
397 $textarea->setRows(10);
398 $textarea->setValue($message);
399 $textarea->setUseRte(true);
400 $textarea->setRteTagSet("extended");
401 if(!in_array($lang_key,$languages))
402 {
403 $textarea->setAlert($lng->txt("not_installed"));
404 }
405 $this->form->addItem($textarea);
406 }
407 }
408
420 protected function setDefLangFirst($a_def_language, $a_languages)
421 {
422 if (is_array($a_languages) && $a_def_language != "")
423 {
424 $languages = array();
425 $languages[] = $a_def_language;
426
427 foreach ($a_languages as $val)
428 {
429 if (!in_array($val, $languages))
430 {
431 $languages[] = $val;
432 }
433 }
434
435 return $languages;
436 }
437 else
438 {
439 return array();
440 }
441 }
442}
443?>
global $tpl
Definition: ilias.php:8
$_GET["client_id"]
const AUTH_LDAP
const AUTH_LOCAL
const AUTH_RADIUS
Login page editor settings GUI ILIAS page editor or richtext editor.
showIliasEditor()
Show ILIAS page editor summary.
addEditorSwitch()
Show editore switch @global ilToolbarGUI $ilToolbar.
showRichtextEditor()
Show richtext editor @global ilRbacSystem $rbacsystem @global ilLanguage $lng @global ilSetting $ilSe...
show()
Show current activated editor.
setDefLangFirst($a_def_language, $a_languages)
returns an array of all installed languages, default language at the first position
saveLoginInfo()
saves the login information data
forwardToPageObject()
Forward to page editor.
static _getFirstActiveServer()
Get first active server.
Login page GUI class.
Login page object.
getContentStylePath($a_style_id)
get content style path
getSyntaxStylePath()
get syntax style path
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
This class represents a property form user interface.
static _getInstance()
singleton get instance
This class represents a selection list property in a property form.
ILIAS Setting Class.
This class represents a text area property in a property form.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
$html
Definition: example_001.php:87
$tbl
Definition: example_048.php:81
$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
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
if(!is_array($argv)) $options