ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilObjLanguageFolderGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4
17require_once "./Services/Language/classes/class.ilObjLanguage.php";
18require_once "./Services/Object/classes/class.ilObjectGUI.php";
19
21{
27 function ilObjLanguageFolderGUI($a_data,$a_id,$a_call_by_reference)
28 {
29 $this->type = "lngf";
30 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, false);
31 $_GET["sort_by"] = "language";
32 $this->lng->loadLanguageModule('lng');
33 }
34
40 function viewObject()
41 {
42 global $rbacsystem, $ilSetting, $tpl, $ilToolbar, $lng;
43
44 if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
45 {
46 $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
47 }
48
49 // refresh
50 if ($ilSetting->get("lang_ext_maintenance") == "1")
51 {
52 $ilToolbar->addButton($lng->txt("refresh_languages"),
53 $this->ctrl->getLinkTarget($this, "confirmRefresh"));
54 }
55 else
56 {
57 $ilToolbar->addButton($lng->txt("refresh_languages"),
58 $this->ctrl->getLinkTarget($this, "refresh"));
59 }
60
61 // check languages
62 $ilToolbar->addButton($lng->txt("check_languages"),
63 $this->ctrl->getLinkTarget($this, "checkLanguage"));
64
65 // extended language maintenance
66 if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
67 {
68 if ($ilSetting->get("lang_ext_maintenance") == "1")
69 {
70 $ilToolbar->addButton($lng->txt("disable_ext_lang_maint"),
71 $this->ctrl->getLinkTarget($this, "disableExtendedLanguageMaintenance"));
72 }
73 else
74 {
75 $ilToolbar->addButton($lng->txt("enable_ext_lang_maint"),
76 $this->ctrl->getLinkTarget($this, "enableExtendedLanguageMaintenance"));
77 }
78
79 if(!$ilSetting->get('lang_detection'))
80 {
81 $ilToolbar->addButton($lng->txt('lng_enable_language_detection'), $this->ctrl->getLinkTarget($this, 'enableLanguageDetection'));
82 }
83 else
84 {
85 $ilToolbar->addButton($lng->txt('lng_disable_language_detection'), $this->ctrl->getLinkTarget($this, 'disableLanguageDetection'));
86 }
87 }
88
89 include_once("./Services/Language/classes/class.ilLanguageTableGUI.php");
90 $ltab = new ilLanguageTableGUI($this, "view", $this->object);
91 $tpl->setContent($ltab->getHTML());
92 }
93
97 function installObject()
98 {
99 $this->lng->loadLanguageModule("meta");
100
101 if (!isset($_POST["id"]))
102 {
103 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
104 }
105
106 foreach ($_POST["id"] as $obj_id)
107 {
108 $langObj = new ilObjLanguage($obj_id);
109 $key = $langObj->install();
110
111 if ($key != "")
112 {
113 $lang_installed[] = $key;
114 }
115
116 unset($langObj);
117 }
118
119 if (isset($lang_installed))
120 {
121 if (count($lang_installed) == 1)
122 {
123 $this->data = $this->lng->txt("meta_l_" . $lang_installed[0]) . " " . strtolower($this->lng->txt("installed")) . ".";
124 }
125 else
126 {
127 foreach ($lang_installed as $lang_key)
128 {
129 $langnames[] = $this->lng->txt("meta_l_" . $lang_key);
130 }
131 $this->data = implode(", ",$langnames) . " " . strtolower($this->lng->txt("installed")) . ".";
132 }
133 }
134 else
135 {
136 $this->data = $this->lng->txt("languages_already_installed");
137 }
138
139 $this->out();
140 }
141
142
147 {
148 $this->lng->loadLanguageModule("meta");
149
150 if (!isset($_POST["id"]))
151 {
152 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
153 }
154
155 foreach ($_POST["id"] as $obj_id)
156 {
157 $langObj = new ilObjLanguage($obj_id);
158 $key = $langObj->install();
159
160 if ($key != "")
161 {
162 $lang_installed[] = $key;
163 }
164
165 unset($langObj);
166
167 $langObj = new ilObjLanguage($obj_id);
168 $key = $langObj->install('local');
169
170 if ($key != "")
171 {
172 $local_installed[] = $key;
173 }
174
175 unset($langObj);
176 }
177
178 if (isset($lang_installed))
179 {
180 if (count($lang_installed) == 1)
181 {
182 $this->data = $this->lng->txt("meta_l_" . $lang_installed[0]) . " " . strtolower($this->lng->txt("installed")) . ".";
183 }
184 else
185 {
186 foreach ($lang_installed as $lang_key)
187 {
188 $langnames[] = $this->lng->txt("meta_l_" . $lang_key);
189 }
190 $this->data = implode(", ",$langnames) . " " . strtolower($this->lng->txt("installed")) . ".";
191 }
192 }
193
194 if (isset($local_installed))
195 {
196 if (count($local_installed) == 1)
197 {
198 $this->data .= " " . $this->lng->txt("meta_l_" . $local_installed[0]) . " " . $this->lng->txt("local_language_file") . " " . strtolower($this->lng->txt("installed")) . ".";
199 }
200 else
201 {
202 foreach ($local_installed as $lang_key)
203 {
204 $langnames[] = $this->lng->txt("meta_l_" . $lang_key);
205 }
206 $this->data .= " " . implode(", ",$langnames) . " " . $this->lng->txt("local_language_files") . " " . strtolower($this->lng->txt("installed")) . ".";
207 }
208 }
209 else
210 {
211 $this->data .= " " . $this->lng->txt("local_languages_already_installed");
212 }
213
214 $this->out();
215 }
216
217
222 {
223 $this->lng->loadLanguageModule("meta");
224
225 if (!isset($_POST["id"]))
226 {
227 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
228 }
229
230 // uninstall all selected languages
231 foreach ($_POST["id"] as $obj_id)
232 {
233 $langObj = new ilObjLanguage($obj_id);
234 if (!($sys_lang = $langObj->isSystemLanguage()))
235 if (!($usr_lang = $langObj->isUserLanguage()))
236 {
237 $key = $langObj->uninstall();
238 if ($key != "")
239 $lang_uninstalled[] = $key;
240 }
241 unset($langObj);
242 }
243
244 // generate output message
245 if (isset($lang_uninstalled))
246 {
247 if (count($lang_uninstalled) == 1)
248 {
249 $this->data = $this->lng->txt("meta_l_".$lang_uninstalled[0])." ".$this->lng->txt("uninstalled");
250 }
251 else
252 {
253 foreach ($lang_uninstalled as $lang_key)
254 {
255 $langnames[] = $this->lng->txt("meta_l_".$lang_key);
256 }
257
258 $this->data = implode(", ",$langnames)." ".$this->lng->txt("uninstalled");
259 }
260 }
261 elseif ($sys_lang)
262 {
263 $this->data = $this->lng->txt("cannot_uninstall_systemlanguage");
264 }
265 elseif ($usr_lang)
266 {
267 $this->data = $this->lng->txt("cannot_uninstall_language_in_use");
268 }
269 else
270 {
271 $this->data = $this->lng->txt("languages_already_uninstalled");
272 }
273
274 $this->out();
275 }
276
280 function refreshObject()
281 {
283 $this->data = $this->lng->txt("languages_updated");
284 $this->out();
285 }
286
287
292 {
293 global $lng;
294
295 $this->data = $this->lng->txt("selected_languages_updated");
296 $lng->loadLanguageModule("meta");
297
298 $refreshed = array();
299 foreach ($_POST["id"] as $id)
300 {
301 $langObj = new ilObjLanguage($id, false);
302 if ($langObj->refresh())
303 {
304 $refreshed[] = $langObj->getKey();
305 $this->data .= "<br />". $lng->txt("meta_l_".$langObj->getKey());
306 }
307 unset($langObj);
308 }
309
311 $this->out();
312 }
313
314
319 {
320 $this->lng->loadLanguageModule("meta");
321
322 require_once './Services/User/classes/class.ilObjUser.php';
323
324 if (!isset($_POST["id"]))
325 {
326 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
327 }
328
329 if (count($_POST["id"]) != 1)
330 {
331 $this->ilias->raiseError($this->lng->txt("choose_only_one_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
332 }
333
334 $obj_id = $_POST["id"][0];
335
336 $newUserLangObj = new ilObjLanguage($obj_id);
337
338 if ($newUserLangObj->isUserLanguage())
339 {
340 $this->ilias->raiseError($this->lng->txt("meta_l_".$newUserLangObj->getKey())." ".$this->lng->txt("is_already_your")." ".$this->lng->txt("user_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
341 }
342
343 if ($newUserLangObj->isInstalled() == false)
344 {
345 $this->ilias->raiseError($this->lng->txt("meta_l_".$newUserLangObj->getKey())." ".$this->lng->txt("language_not_installed")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
346 }
347
348 $curUser = new ilObjUser($_SESSION["AccountId"]);
349 $curUser->setLanguage($newUserLangObj->getKey());
350 $curUser->update();
351 //$this->setUserLanguage($new_lang_key);
352
353 $this->data = $this->lng->txt("user_language")." ".$this->lng->txt("changed_to")." ".$this->lng->txt("meta_l_".$newUserLangObj->getKey()).".";
354
355 $this->out();
356 }
357
358
363 {
364 $this->lng->loadLanguageModule("meta");
365
366 if (!isset($_POST["id"]))
367 {
368 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
369 }
370
371 if (count($_POST["id"]) != 1)
372 {
373 $this->ilias->raiseError($this->lng->txt("choose_only_one_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
374 }
375
376 $obj_id = $_POST["id"][0];
377
378 $newSysLangObj = new ilObjLanguage($obj_id);
379
380 if ($newSysLangObj->isSystemLanguage())
381 {
382 $this->ilias->raiseError($this->lng->txt("meta_l_".$newSysLangObj->getKey())." is already the system language!<br>Action aborted!",$this->ilias->error_obj->MESSAGE);
383 }
384
385 if ($newSysLangObj->isInstalled() == false)
386 {
387 $this->ilias->raiseError($this->lng->txt("meta_l_".$newSysLangObj->getKey())." is not installed. Please install that language first.<br>Action aborted!",$this->ilias->error_obj->MESSAGE);
388 }
389
390 $this->ilias->setSetting("language", $newSysLangObj->getKey());
391
392 // update ini-file
393 $this->ilias->ini->setVariable("language","default",$newSysLangObj->getKey());
394 $this->ilias->ini->write();
395
396 $this->data = $this->lng->txt("system_language")." ".$this->lng->txt("changed_to")." ".$this->lng->txt("meta_l_".$newSysLangObj->getKey()).".";
397
398 $this->out();
399 }
400
401
406 {
407 //$langFoldObj = new ilObjLanguageFolder($_GET["obj_id"]);
408 //$this->data = $langFoldObj->checkAllLanguages();
409 $this->data = $this->object->checkAllLanguages();
410 $this->out();
411 }
412
413
414 function out()
415 {
416 ilUtil::sendInfo($this->data,true);
417 $this->ctrl->redirect($this, "view");
418 }
419
420 function getAdminTabs(&$tabs_gui)
421 {
422 $this->getTabs($tabs_gui);
423 }
424
430 function getTabs(&$tabs_gui)
431 {
432 global $rbacsystem;
433
434 if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
435 {
436 $tabs_gui->addTarget("settings",
437 $this->ctrl->getLinkTarget($this, "view"), array("view",""), "", "");
438 }
439
440 if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
441 {
442 $tabs_gui->addTarget("perm_settings",
443 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
444 }
445 }
446
447 function &executeCommand()
448 {
449 $next_class = $this->ctrl->getNextClass($this);
450 $cmd = $this->ctrl->getCmd();
451 $this->prepareOutput();
452
453 switch($next_class)
454 {
455 case 'ilpermissiongui':
456 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
457 $perm_gui =& new ilPermissionGUI($this);
458 $ret =& $this->ctrl->forwardCommand($perm_gui);
459 break;
460
461 default:
462 if(!$cmd)
463 {
464 $cmd = "view";
465 }
466 $cmd .= "Object";
467 $this->$cmd();
468
469 break;
470 }
471 return true;
472 }
473
478 {
479 global $ilSetting, $ilCtrl;
480
481 $ilSetting->set("lang_ext_maintenance", 1);
482 $ilCtrl->redirect($this, "view");
483 }
484
489 {
490 global $ilSetting, $ilCtrl;
491
492 $ilSetting->set("lang_ext_maintenance", 0);
493 $ilCtrl->redirect($this, "view");
494 }
495
497 {
498 global $ilCtrl, $lng;
499
500 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
501 $conf_screen = new ilConfirmationGUI();
502 $conf_screen->setFormAction($ilCtrl->getFormAction($this));
503 $conf_screen->setHeaderText($lng->txt("lang_refresh_confirm"));
504 $conf_screen->addItem("d", "d", $lng->txt("lang_refresh_confirm_info"));
505 $conf_screen->setCancel($lng->txt("cancel"), "view");
506 $conf_screen->setConfirm($lng->txt("ok"), "refresh");
507
508 $this->tpl->setContent($conf_screen->getHTML());
509 }
510
512 {
513 global $ilCtrl, $lng;
514
515 if (!isset($_POST["id"]))
516 {
517 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
518 }
519
520 $lng->loadLanguageModule("meta");
521 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
522 $conf_screen = new ilConfirmationGUI();
523 $conf_screen->setFormAction($ilCtrl->getFormAction($this));
524 $conf_screen->setHeaderText($lng->txt("lang_refresh_confirm_selected"));
525 foreach ($_POST["id"] as $id)
526 {
527 $lang_title = ilObject::_lookupTitle($id);
528 $conf_screen->addItem("id[]", $id, $lng->txt("meta_l_".$lang_title));
529 }
530 $conf_screen->addItem("d", "d", $lng->txt("lang_refresh_confirm_info"));
531 $conf_screen->setCancel($lng->txt("cancel"), "view");
532 $conf_screen->setConfirm($lng->txt("ok"), "refreshSelected");
533 $this->tpl->setContent($conf_screen->getHTML());
534 }
535
539 function getActions()
540 {
541 global $ilSetting;
542
543 // standard actions for container
544 return array(
545 "install" => array("name" => "install", "lng" => "install"),
546 "installLocal" => array("name" => "installLocal", "lng" => "install_local"),
547 "uninstall" => array("name" => "uninstall", "lng" => "uninstall"),
548 "refresh" => $ilSetting->get("lang_ext_maintenance") == "1" ?
549 array("name" => "confirmRefreshSelected", "lng" => "refresh") :
550 array("name" => "RefreshSelected", "lng" => "refresh"),
551 "setSystemLanguage" => array("name" => "setSystemLanguage", "lng" => "setSystemLanguage"),
552 "setUserLanguage" => array("name" => "setUserLanguage", "lng" => "setUserLanguage")
553 );
554 }
555
559 protected function disableLanguageDetectionObject()
560 {
564 global $ilSetting;
565
566 $ilSetting->set('lang_detection', 0);
567 ilUtil::sendSuccess($this->lng->txt('saved_successfully'));
568 $this->viewObject();
569 }
570
574 protected function enableLanguageDetectionObject()
575 {
579 global $ilSetting;
580
581 $ilSetting->set('lang_detection', 1);
582 ilUtil::sendSuccess($this->lng->txt('saved_successfully'));
583 $this->viewObject();
584 }
585} // END class.ilObjLanguageFolderGUI
586?>
$_GET["client_id"]
$_SESSION["AccountId"]
Confirmation screen class.
Class ilObjLanguageFolderGUI.
checkLanguageObject()
check all languages
setSystemLanguageObject()
set the system language
installLocalObject()
Install local language modifications.
refreshSelectedObject()
update selected languages
ilObjLanguageFolderGUI($a_data, $a_id, $a_call_by_reference)
Constructor.
viewObject()
show installed languages
enableExtendedLanguageMaintenanceObject()
Enable extended language maintenance.
getAdminTabs(&$tabs_gui)
administration tabs show only permissions and trash folder
refreshObject()
update all installed languages
getTabs(&$tabs_gui)
get tabs @access public
disableExtendedLanguageMaintenanceObject()
Disable extended language maintenance.
Class ilObjLanguage.
static refreshPlugins($a_lang_keys=null)
static refreshAll()
Refresh all installed languages.
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
static _lookupTitle($a_id)
lookup object title
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$_POST['username']
Definition: cron.php:12
global $ilCtrl
Definition: ilias.php:18
redirection script todo: (a better solution should control the processing via a xml file)
global $ilSetting
Definition: privfeed.php:40
$cmd
Definition: sahs_server.php:35