19 declare(strict_types=1);
39 private \ILIAS\HTTP\Services
$http;
54 $this->
ctrl = $DIC->ctrl();
55 $this->tpl = $DIC->ui()->mainTemplate();
56 $this->
tabs = $DIC->tabs();
58 $this->
http = $DIC->http();
60 $this->ui_factory = $DIC->ui()->factory();
61 $this->ui_renderer = $DIC->ui()->renderer();
63 $this->
lng = $DIC[
'lng'];
65 $this->
lng->loadLanguageModule(
'auth');
67 $this->ref_id = $a_ref_id;
69 $content_style = $DIC->contentStyle();
70 $this->content_style_domain = $content_style
72 ->styleForRefId($a_ref_id);
73 $this->content_style_gui = $content_style->gui();
75 $query_wrapper = $DIC->http()->wrapper()->query();
76 $post_wrapper = $DIC->http()->wrapper()->post();
77 $refinery = $DIC->refinery();
79 if ($query_wrapper->has(
'redirectSource')) {
80 $this->redirect_source = $query_wrapper->retrieve(
'redirectSource', $refinery->kindlyTo()->string());
83 if ($post_wrapper->has(
'key')) {
84 $this->requested_language_id = $post_wrapper->retrieve(
'key', $refinery->kindlyTo()->int());
85 } elseif ($query_wrapper->has(
'key')) {
86 $this->requested_language_id = $query_wrapper->retrieve(
'key', $refinery->kindlyTo()->int());
89 $this->request_ipe_context = $query_wrapper->retrieve(
90 self::CONTEXT_HTTP_PARAM,
92 $refinery->kindlyTo()->string(),
93 $refinery->always(
null)
96 $this->
ctrl->setParameter($this, self::CONTEXT_HTTP_PARAM, $this->request_ipe_context);
102 self::LANGUAGE_TABLE_ACTIONS_COMMAND
113 switch (strtolower($this->
ctrl->getNextClass($this) ??
'')) {
114 case strtolower(ilLoginPageGUI::class):
115 case strtolower(ilLogoutPageGUI::class):
116 $this->
tabs->clearTargets();
117 $this->
tabs->setBackTarget(
118 $this->
lng->txt(
'back'),
119 $this->
ctrl->getLinkTarget($this, self::DEFAULT_COMMAND)
122 if (strtolower($this->redirect_source ??
'') !== strtolower(ilInternalLinkGUI::class)) {
128 if (!$cmd = $this->
ctrl->getCmd()) {
129 $cmd =
'showPageEditorLanguages';
143 if (!$this->requested_language_id) {
144 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'language_does_not_exist'),
true);
145 $this->
ctrl->returnToParent($this);
148 $this->
lng->loadLanguageModule(
'content');
156 $this->
ctrl->setParameter($this,
'key', $this->requested_language_id);
158 if (!$ipe_class::_exists($ipe_page_type, $this->requested_language_id)) {
159 $new_page_object =
new $ipe_class();
160 $new_page_object->setParentId($this->requested_language_id);
161 $new_page_object->setId($this->requested_language_id);
162 $new_page_object->createFromXML();
165 $this->
ctrl->setReturnByClass($ipe_gui_class,
'edit');
166 $page_gui =
new ($ipe_gui_class)($this->requested_language_id);
170 $this->content_style_gui->addCss($this->tpl, $this->ref_id);
172 $page_gui->setTemplateTargetVar(
'ADM_CONTENT');
173 $page_gui->setStyleId($this->content_style_domain->getEffectiveStyleId());
174 $page_gui->setTemplateOutput(
false);
176 $html = $this->
ctrl->forwardCommand($page_gui);
179 $this->tpl->setContent($html);
185 $action = $this->
http->wrapper()->query()->retrieve(
186 'authpage_languages_action',
188 $this->refinery->kindlyTo()->string(),
193 $keys = $this->
http->wrapper()->query()->retrieve(
194 'authpage_languages_key',
196 $this->refinery->kindlyTo()->listOf($this->
refinery->kindlyTo()->string()),
202 case AuthPageLanguagesOverviewTable::DEACTIVATE:
206 case AuthPageLanguagesOverviewTable::ACTIVATE:
210 case AuthPageLanguagesOverviewTable::EDIT:
213 $this->
ctrl->setParameter($this,
'key', $language_id);
214 $this->
ctrl->redirectByClass(
221 $this->
ctrl->redirect($this, self::DEFAULT_COMMAND);
229 $keys = $this->
http->wrapper()->query()->retrieve(
230 'authpage_languages_key',
232 $this->refinery->kindlyTo()->listOf($this->
refinery->kindlyTo()->string()),
237 $lang_keys = $this->
lng->getInstalledLanguages();
239 if ((
string) current($keys) !==
'ALL_OBJECTS') {
240 $lang_keys = array_intersect($keys, $lang_keys);
253 foreach ($lang_keys as $lang_key) {
254 $settings->enableIliasEditor($lang_key,
true);
259 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
260 $this->
ctrl->redirect($this, self::DEFAULT_COMMAND);
270 foreach ($lang_keys as $lang_key) {
271 $settings->enableIliasEditor($lang_key,
false);
276 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
277 $this->
ctrl->redirect($this, self::DEFAULT_COMMAND);
292 $this->tpl->setContent($this->ui_renderer->render($tbl->getComponent()));
ILIAS Style Content Object ObjectFacade $content_style_domain
int $requested_language_id
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
final const string DEFAULT_COMMAND
getRequestedAuthPageEditorContext()
Facade for consumer gui interface.
final const string CONTEXT_HTTP_PARAM
final const string LANGUAGE_TABLE_ACTIONS_COMMAND
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
string $request_ipe_context
static http()
Fetches the global http state from ILIAS.
ilGlobalTemplateInterface $tpl
showPageEditorLanguages()
ILIAS UI Factory $ui_factory
getUnsafeGetCommands()
This method must return a list of unsafe GET commands.
ILIAS UI Renderer $ui_renderer
ilAuthPageEditorGUI: ilObjAuthSettingsGUI ilAuthPageEditorGUI: ilLoginPageGUI, ilLogoutPageGUI ...
static lookupId(string $a_lang_key)
Lookup obj_id of language.
static getSyntaxStylePath()
getSafePostCommands()
This method must return a list of safe POST commands.
static getContentStylePath(int $a_style_id, bool $add_random=true, bool $add_token=true)
get content style path static (to avoid full reading)
__construct(int $a_ref_id)
ILIAS Refinery Factory $refinery
ILIAS HTTP Services $http
static getInstance(AuthPageEditorContext $context)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
GUIService $content_style_gui