ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
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 
17 require_once "./Services/Language/classes/class.ilObjLanguage.php";
18 require_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  }
33 
39  function viewObject()
40  {
41  global $rbacsystem, $ilSetting, $tpl, $ilToolbar, $lng;
42 
43  if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
44  {
45  $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
46  }
47 
48  // refresh
49  if ($ilSetting->get("lang_ext_maintenance") == "1")
50  {
51  $ilToolbar->addButton($lng->txt("refresh_languages"),
52  $this->ctrl->getLinkTarget($this, "confirmRefresh"));
53  }
54  else
55  {
56  $ilToolbar->addButton($lng->txt("refresh_languages"),
57  $this->ctrl->getLinkTarget($this, "refresh"));
58  }
59 
60  // check languages
61  $ilToolbar->addButton($lng->txt("check_languages"),
62  $this->ctrl->getLinkTarget($this, "checkLanguage"));
63 
64  // extended language maintenance
65  if ($rbacsystem->checkAccess("write",$this->object->getRefId()))
66  {
67  if ($ilSetting->get("lang_ext_maintenance") == "1")
68  {
69  $ilToolbar->addButton($lng->txt("disable_ext_lang_maint"),
70  $this->ctrl->getLinkTarget($this, "disableExtendedLanguageMaintenance"));
71  }
72  else
73  {
74  $ilToolbar->addButton($lng->txt("enable_ext_lang_maint"),
75  $this->ctrl->getLinkTarget($this, "enableExtendedLanguageMaintenance"));
76  }
77  }
78 
79  include_once("./Services/Language/classes/class.ilLanguageTableGUI.php");
80  $ltab = new ilLanguageTableGUI($this, "view", $this->object);
81  $tpl->setContent($ltab->getHTML());
82  }
83 
87  function installObject()
88  {
89  $this->lng->loadLanguageModule("meta");
90 
91  if (!isset($_POST["id"]))
92  {
93  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
94  }
95 
96  foreach ($_POST["id"] as $obj_id)
97  {
98  $langObj = new ilObjLanguage($obj_id);
99  $key = $langObj->install();
100 
101  if ($key != "")
102  {
103  $lang_installed[] = $key;
104  }
105 
106  unset($langObj);
107  }
108 
109  if (isset($lang_installed))
110  {
111  if (count($lang_installed) == 1)
112  {
113  $this->data = $this->lng->txt("meta_l_" . $lang_installed[0]) . " " . strtolower($this->lng->txt("installed")) . ".";
114  }
115  else
116  {
117  foreach ($lang_installed as $lang_key)
118  {
119  $langnames[] = $this->lng->txt("meta_l_" . $lang_key);
120  }
121  $this->data = implode(", ",$langnames) . " " . strtolower($this->lng->txt("installed")) . ".";
122  }
123  }
124  else
125  {
126  $this->data = $this->lng->txt("languages_already_installed");
127  }
128 
129  $this->out();
130  }
131 
132 
137  {
138  $this->lng->loadLanguageModule("meta");
139 
140  if (!isset($_POST["id"]))
141  {
142  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
143  }
144 
145  foreach ($_POST["id"] as $obj_id)
146  {
147  $langObj = new ilObjLanguage($obj_id);
148  $key = $langObj->install();
149 
150  if ($key != "")
151  {
152  $lang_installed[] = $key;
153  }
154 
155  unset($langObj);
156 
157  $langObj = new ilObjLanguage($obj_id);
158  $key = $langObj->install('local');
159 
160  if ($key != "")
161  {
162  $local_installed[] = $key;
163  }
164 
165  unset($langObj);
166  }
167 
168  if (isset($lang_installed))
169  {
170  if (count($lang_installed) == 1)
171  {
172  $this->data = $this->lng->txt("meta_l_" . $lang_installed[0]) . " " . strtolower($this->lng->txt("installed")) . ".";
173  }
174  else
175  {
176  foreach ($lang_installed as $lang_key)
177  {
178  $langnames[] = $this->lng->txt("meta_l_" . $lang_key);
179  }
180  $this->data = implode(", ",$langnames) . " " . strtolower($this->lng->txt("installed")) . ".";
181  }
182  }
183 
184  if (isset($local_installed))
185  {
186  if (count($local_installed) == 1)
187  {
188  $this->data .= " " . $this->lng->txt("meta_l_" . $local_installed[0]) . " " . $this->lng->txt("local_language_file") . " " . strtolower($this->lng->txt("installed")) . ".";
189  }
190  else
191  {
192  foreach ($local_installed as $lang_key)
193  {
194  $langnames[] = $this->lng->txt("meta_l_" . $lang_key);
195  }
196  $this->data .= " " . implode(", ",$langnames) . " " . $this->lng->txt("local_language_files") . " " . strtolower($this->lng->txt("installed")) . ".";
197  }
198  }
199  else
200  {
201  $this->data .= " " . $this->lng->txt("local_languages_already_installed");
202  }
203 
204  $this->out();
205  }
206 
207 
211  function uninstallObject()
212  {
213  $this->lng->loadLanguageModule("meta");
214 
215  if (!isset($_POST["id"]))
216  {
217  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
218  }
219 
220  // uninstall all selected languages
221  foreach ($_POST["id"] as $obj_id)
222  {
223  $langObj = new ilObjLanguage($obj_id);
224  if (!($sys_lang = $langObj->isSystemLanguage()))
225  if (!($usr_lang = $langObj->isUserLanguage()))
226  {
227  $key = $langObj->uninstall();
228  if ($key != "")
229  $lang_uninstalled[] = $key;
230  }
231  unset($langObj);
232  }
233 
234  // generate output message
235  if (isset($lang_uninstalled))
236  {
237  if (count($lang_uninstalled) == 1)
238  {
239  $this->data = $this->lng->txt("meta_l_".$lang_uninstalled[0])." ".$this->lng->txt("uninstalled");
240  }
241  else
242  {
243  foreach ($lang_uninstalled as $lang_key)
244  {
245  $langnames[] = $this->lng->txt("meta_l_".$lang_key);
246  }
247 
248  $this->data = implode(", ",$langnames)." ".$this->lng->txt("uninstalled");
249  }
250  }
251  elseif ($sys_lang)
252  {
253  $this->data = $this->lng->txt("cannot_uninstall_systemlanguage");
254  }
255  elseif ($usr_lang)
256  {
257  $this->data = $this->lng->txt("cannot_uninstall_language_in_use");
258  }
259  else
260  {
261  $this->data = $this->lng->txt("languages_already_uninstalled");
262  }
263 
264  $this->out();
265  }
266 
270  function refreshObject()
271  {
273  $this->data = $this->lng->txt("languages_updated");
274  $this->out();
275  }
276 
277 
282  {
283  global $lng;
284 
285  $this->data = $this->lng->txt("selected_languages_updated");
286  $lng->loadLanguageModule("meta");
287 
288  $refreshed = array();
289  foreach ($_POST["id"] as $id)
290  {
291  $langObj = new ilObjLanguage($id, false);
292  if ($langObj->refresh())
293  {
294  $refreshed[] = $langObj->getKey();
295  $this->data .= "<br />". $lng->txt("meta_l_".$langObj->getKey());
296  }
297  unset($langObj);
298  }
299 
300  ilObjLanguage::refreshPlugins($refreshed);
301  $this->out();
302  }
303 
304 
309  {
310  $this->lng->loadLanguageModule("meta");
311 
312  require_once './Services/User/classes/class.ilObjUser.php';
313 
314  if (!isset($_POST["id"]))
315  {
316  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
317  }
318 
319  if (count($_POST["id"]) != 1)
320  {
321  $this->ilias->raiseError($this->lng->txt("choose_only_one_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
322  }
323 
324  $obj_id = $_POST["id"][0];
325 
326  $newUserLangObj = new ilObjLanguage($obj_id);
327 
328  if ($newUserLangObj->isUserLanguage())
329  {
330  $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);
331  }
332 
333  if ($newUserLangObj->isInstalled() == false)
334  {
335  $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);
336  }
337 
338  $curUser = new ilObjUser($_SESSION["AccountId"]);
339  $curUser->setLanguage($newUserLangObj->getKey());
340  $curUser->update();
341  //$this->setUserLanguage($new_lang_key);
342 
343  $this->data = $this->lng->txt("user_language")." ".$this->lng->txt("changed_to")." ".$this->lng->txt("meta_l_".$newUserLangObj->getKey()).".";
344 
345  $this->out();
346  }
347 
348 
353  {
354  $this->lng->loadLanguageModule("meta");
355 
356  if (!isset($_POST["id"]))
357  {
358  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
359  }
360 
361  if (count($_POST["id"]) != 1)
362  {
363  $this->ilias->raiseError($this->lng->txt("choose_only_one_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
364  }
365 
366  $obj_id = $_POST["id"][0];
367 
368  $newSysLangObj = new ilObjLanguage($obj_id);
369 
370  if ($newSysLangObj->isSystemLanguage())
371  {
372  $this->ilias->raiseError($this->lng->txt("meta_l_".$newSysLangObj->getKey())." is already the system language!<br>Action aborted!",$this->ilias->error_obj->MESSAGE);
373  }
374 
375  if ($newSysLangObj->isInstalled() == false)
376  {
377  $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);
378  }
379 
380  $this->ilias->setSetting("language", $newSysLangObj->getKey());
381 
382  // update ini-file
383  $this->ilias->ini->setVariable("language","default",$newSysLangObj->getKey());
384  $this->ilias->ini->write();
385 
386  $this->data = $this->lng->txt("system_language")." ".$this->lng->txt("changed_to")." ".$this->lng->txt("meta_l_".$newSysLangObj->getKey()).".";
387 
388  $this->out();
389  }
390 
391 
396  {
397  //$langFoldObj = new ilObjLanguageFolder($_GET["obj_id"]);
398  //$this->data = $langFoldObj->checkAllLanguages();
399  $this->data = $this->object->checkAllLanguages();
400  $this->out();
401  }
402 
403 
404  function out()
405  {
406  ilUtil::sendInfo($this->data,true);
407  $this->ctrl->redirect($this, "view");
408  }
409 
410  function getAdminTabs(&$tabs_gui)
411  {
412  $this->getTabs($tabs_gui);
413  }
414 
420  function getTabs(&$tabs_gui)
421  {
422  global $rbacsystem;
423 
424  if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
425  {
426  $tabs_gui->addTarget("settings",
427  $this->ctrl->getLinkTarget($this, "view"), array("view",""), "", "");
428  }
429 
430  if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
431  {
432  $tabs_gui->addTarget("perm_settings",
433  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
434  }
435  }
436 
437  function &executeCommand()
438  {
439  $next_class = $this->ctrl->getNextClass($this);
440  $cmd = $this->ctrl->getCmd();
441  $this->prepareOutput();
442 
443  switch($next_class)
444  {
445  case 'ilpermissiongui':
446  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
447  $perm_gui =& new ilPermissionGUI($this);
448  $ret =& $this->ctrl->forwardCommand($perm_gui);
449  break;
450 
451  default:
452  if(!$cmd)
453  {
454  $cmd = "view";
455  }
456  $cmd .= "Object";
457  $this->$cmd();
458 
459  break;
460  }
461  return true;
462  }
463 
468  {
469  global $ilSetting, $ilCtrl;
470 
471  $ilSetting->set("lang_ext_maintenance", 1);
472  $ilCtrl->redirect($this, "view");
473  }
474 
479  {
480  global $ilSetting, $ilCtrl;
481 
482  $ilSetting->set("lang_ext_maintenance", 0);
483  $ilCtrl->redirect($this, "view");
484  }
485 
487  {
488  global $ilCtrl, $lng;
489 
490  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
491  $conf_screen = new ilConfirmationGUI();
492  $conf_screen->setFormAction($ilCtrl->getFormAction($this));
493  $conf_screen->setHeaderText($lng->txt("lang_refresh_confirm"));
494  $conf_screen->addItem("d", "d", $lng->txt("lang_refresh_confirm_info"));
495  $conf_screen->setCancel($lng->txt("cancel"), "view");
496  $conf_screen->setConfirm($lng->txt("ok"), "refresh");
497 
498  $this->tpl->setContent($conf_screen->getHTML());
499  }
500 
502  {
503  global $ilCtrl, $lng;
504 
505  if (!isset($_POST["id"]))
506  {
507  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
508  }
509 
510  $lng->loadLanguageModule("meta");
511  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
512  $conf_screen = new ilConfirmationGUI();
513  $conf_screen->setFormAction($ilCtrl->getFormAction($this));
514  $conf_screen->setHeaderText($lng->txt("lang_refresh_confirm_selected"));
515  foreach ($_POST["id"] as $id)
516  {
517  $lang_title = ilObject::_lookupTitle($id);
518  $conf_screen->addItem("id[]", $id, $lng->txt("meta_l_".$lang_title));
519  }
520  $conf_screen->addItem("d", "d", $lng->txt("lang_refresh_confirm_info"));
521  $conf_screen->setCancel($lng->txt("cancel"), "view");
522  $conf_screen->setConfirm($lng->txt("ok"), "refreshSelected");
523  $this->tpl->setContent($conf_screen->getHTML());
524  }
525 
529  function getActions()
530  {
531  global $ilSetting;
532 
533  // standard actions for container
534  return array(
535  "install" => array("name" => "install", "lng" => "install"),
536  "installLocal" => array("name" => "installLocal", "lng" => "install_local"),
537  "uninstall" => array("name" => "uninstall", "lng" => "uninstall"),
538  "refresh" => $ilSetting->get("lang_ext_maintenance") == "1" ?
539  array("name" => "confirmRefreshSelected", "lng" => "refresh") :
540  array("name" => "RefreshSelected", "lng" => "refresh"),
541  "setSystemLanguage" => array("name" => "setSystemLanguage", "lng" => "setSystemLanguage"),
542  "setUserLanguage" => array("name" => "setUserLanguage", "lng" => "setUserLanguage")
543  );
544  }
545 
546 
547 } // END class.ilObjLanguageFolderGUI
548 ?>
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
refreshSelectedObject()
update selected languages
$_POST['username']
Definition: cron.php:12
$_GET["client_id"]
refreshObject()
update all installed languages
setSystemLanguageObject()
set the system language
Class ilObjLanguage.
$cmd
Definition: sahs_server.php:35
getTabs(&$tabs_gui)
get tabs public
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
static _lookupTitle($a_id)
lookup object title
disableExtendedLanguageMaintenanceObject()
Disable extended language maintenance.
installLocalObject()
Install local language modifications.
global $ilCtrl
Definition: ilias.php:18
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
ilObjLanguageFolderGUI($a_data, $a_id, $a_call_by_reference)
Constructor.
Class ilObjectGUI Basic methods of all Output classes.
redirection script todo: (a better solution should control the processing via a xml file) ...
prepareOutput()
prepare output
viewObject()
show installed languages
enableExtendedLanguageMaintenanceObject()
Enable extended language maintenance.
global $ilSetting
Definition: privfeed.php:40
static refreshAll()
Refresh all installed languages.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static refreshPlugins($a_lang_keys=null)
checkLanguageObject()
check all languages
Class ilObjLanguageFolderGUI.
Confirmation screen class.