ILIAS  release_7 Revision v7.30-3-g800a261c036
ilObjectTranslationGUI Class Reference

GUI class for object translation handling. More...

+ Collaboration diagram for ilObjectTranslationGUI:

Public Member Functions

 __construct ($a_obj_gui)
 Constructor. More...
 
 setTitleDescrOnlyMode ($a_val)
 Set enable title/description only mode. More...
 
 getTitleDescrOnlyMode ()
 Get enable title/description only mode. More...
 
 setEnableFallbackLanguage ($a_val)
 Set enable fallback language. More...
 
 getEnableFallbackLanguage ()
 Get enable fallback language. More...
 
 executeCommand ()
 Execute command. More...
 
 listTranslations ($a_get_post_values=false, $a_add=false)
 List translations. More...
 
 saveTranslations ()
 Save translations. More...
 
 deleteTranslations ()
 Remove translation. More...
 
 activateContentMultilinguality ()
 Activate multi language (-> master language selection) More...
 
 getMultiLangForm ($a_add=false)
 Get multi language form. More...
 
 saveContentTranslationActivation ()
 Save content translation activation. More...
 
 confirmDeactivateContentMultiLang ()
 Confirm page translation creation. More...
 
 deactivateContentMultiLang ()
 Deactivate multilanguage. More...
 
 addLanguages ()
 Add language. More...
 
 saveLanguages ()
 Save languages. More...
 
 confirmRemoveLanguages ()
 Confirm remove languages. More...
 
 removeLanguages ()
 Remove languages. More...
 
 setFallback ()
 Save translations. More...
 

Protected Attributes

 $lng
 
 $ctrl
 
 $tpl
 
 $toolbar
 
 $user
 
 $obj_trans
 
 $title_descr_only = true
 
 $fallback_lang_mode = true
 

Detailed Description

GUI class for object translation handling.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 12 of file class.ilObjectTranslationGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjectTranslationGUI::__construct (   $a_obj_gui)

Constructor.

Definition at line 50 of file class.ilObjectTranslationGUI.php.

51 {
52 global $DIC;
53
54 $this->toolbar = $DIC->toolbar();
55 $this->user = $DIC->user();
56 $lng = $DIC->language();
57 $ilCtrl = $DIC->ctrl();
58 $tpl = $DIC["tpl"];
59
60 $this->lng = $lng;
61 $this->ctrl = $ilCtrl;
62 $this->tpl = $tpl;
63 $this->obj_gui = $a_obj_gui;
64 $this->obj = $a_obj_gui->object;
65
66 include_once("./Services/Object/classes/class.ilObjectTranslation.php");
67 $this->obj_trans = ilObjectTranslation::getInstance($this->obj->getId());
68 }
user()
Definition: user.php:4
static getInstance($a_obj_id)
Get instance.
global $DIC
Definition: goto.php:24

References $DIC, $lng, $tpl, ilObjectTranslation\getInstance(), and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ activateContentMultilinguality()

ilObjectTranslationGUI::activateContentMultilinguality ( )

Activate multi language (-> master language selection)

Definition at line 303 of file class.ilObjectTranslationGUI.php.

304 {
307
308 ilUtil::sendInfo($lng->txt("obj_select_master_lang"));
309
310 $form = $this->getMultiLangForm();
311 $tpl->setContent($form->getHTML());
312 }
getMultiLangForm($a_add=false)
Get multi language form.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $lng, $tpl, getMultiLangForm(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ addLanguages()

ilObjectTranslationGUI::addLanguages ( )

Add language.

Definition at line 443 of file class.ilObjectTranslationGUI.php.

444 {
446
447 $form = $this->getMultiLangForm(true);
448 $tpl->setContent($form->getHTML());
449 }

References $tpl, and getMultiLangForm().

+ Here is the call graph for this function:

◆ confirmDeactivateContentMultiLang()

ilObjectTranslationGUI::confirmDeactivateContentMultiLang ( )

Confirm page translation creation.

Definition at line 396 of file class.ilObjectTranslationGUI.php.

397 {
398 $ilCtrl = $this->ctrl;
401
402 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
403 $cgui = new ilConfirmationGUI();
404 $cgui->setFormAction($ilCtrl->getFormAction($this));
405 if ($this->getTitleDescrOnlyMode()) {
406 $cgui->setHeaderText($lng->txt("obj_deactivate_content_transl_conf"));
407 } else {
408 $cgui->setHeaderText($lng->txt("obj_deactivate_multilang_conf"));
409 }
410
411 $cgui->setCancel($lng->txt("cancel"), "listTranslations");
412 $cgui->setConfirm($lng->txt("confirm"), "deactivateContentMultiLang");
413 $tpl->setContent($cgui->getHTML());
414 }
Confirmation screen class.
getTitleDescrOnlyMode()
Get enable title/description only mode.

References $ctrl, $lng, $tpl, and getTitleDescrOnlyMode().

+ Here is the call graph for this function:

◆ confirmRemoveLanguages()

ilObjectTranslationGUI::confirmRemoveLanguages ( )

Confirm remove languages.

Definition at line 484 of file class.ilObjectTranslationGUI.php.

485 {
486 $ilCtrl = $this->ctrl;
489
490 $lng->loadLanguageModule("meta");
491
492 if (!is_array($_POST["lang"]) || count($_POST["lang"]) == 0) {
493 ilUtil::sendInfo($lng->txt("no_checkbox"), true);
494 $ilCtrl->redirect($this, "listTranslations");
495 } else {
496 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
497 $cgui = new ilConfirmationGUI();
498 $cgui->setFormAction($ilCtrl->getFormAction($this));
499 $cgui->setHeaderText($lng->txt("obj_conf_delete_lang"));
500 $cgui->setCancel($lng->txt("cancel"), "listTranslations");
501 $cgui->setConfirm($lng->txt("remove"), "removeLanguages");
502
503 foreach ($_POST["lang"] as $i) {
504 $cgui->addItem("lang[]", $i, $lng->txt("meta_l_" . $i));
505 }
506
507 $tpl->setContent($cgui->getHTML());
508 }
509 }
$_POST["username"]
$i
Definition: metadata.php:24

References $_POST, $ctrl, $i, $lng, $tpl, and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ deactivateContentMultiLang()

ilObjectTranslationGUI::deactivateContentMultiLang ( )

Deactivate multilanguage.

Definition at line 419 of file class.ilObjectTranslationGUI.php.

420 {
422 $ilCtrl = $this->ctrl;
423
424 if (!$this->getTitleDescrOnlyMode()) {
425 $this->obj_trans->setMasterLanguage("");
426 $this->obj_trans->setLanguages(array());
427 $this->obj_trans->save();
428 }
429 $this->obj_trans->deactivateContentTranslation();
430 if ($this->getTitleDescrOnlyMode()) {
431 ilUtil::sendSuccess($lng->txt("obj_cont_transl_deactivated"), true);
432 } else {
433 ilUtil::sendSuccess($lng->txt("obj_multilang_deactivated"), true);
434 }
435
436
437 $ilCtrl->redirect($this, "listTranslations");
438 }

References $ctrl, $lng, and getTitleDescrOnlyMode().

+ Here is the call graph for this function:

◆ deleteTranslations()

ilObjectTranslationGUI::deleteTranslations ( )

Remove translation.

Definition at line 277 of file class.ilObjectTranslationGUI.php.

278 {
279 foreach ($_POST["title"] as $k => $v) {
280 if ($_POST["check"][$k]) {
281 // default translation cannot be deleted
282 if ($k != $_POST["default"]) {
283 unset($_POST["title"][$k]);
284 unset($_POST["desc"][$k]);
285 unset($_POST["lang"][$k]);
286 } else {
287 ilUtil::sendFailure($this->lng->txt("msg_no_default_language"));
288 $this->listTranslations();
289 return;
290 }
291 }
292 }
293 $this->saveTranslations();
294 }
listTranslations($a_get_post_values=false, $a_add=false)
List translations.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_POST, listTranslations(), saveTranslations(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ executeCommand()

ilObjectTranslationGUI::executeCommand ( )

Execute command.

Definition at line 112 of file class.ilObjectTranslationGUI.php.

113 {
114 $next_class = $this->ctrl->getNextClass($this);
115
116 switch ($next_class) {
117 default:
118 $cmd = $this->ctrl->getCmd("listTranslations");
119 if (in_array($cmd, array("listTranslations", "saveTranslations",
120 "addTranslation", "deleteTranslations", "activateContentMultilinguality",
121 "confirmRemoveLanguages", "removeLanguages", "confirmDeactivateContentMultiLang", "saveLanguages",
122 "saveContentTranslationActivation", "deactivateContentMultiLang", "addLanguages", "setFallback"))) {
123 $this->$cmd();
124 }
125 break;
126 }
127 }

◆ getEnableFallbackLanguage()

ilObjectTranslationGUI::getEnableFallbackLanguage ( )

Get enable fallback language.

Returns
bool

Definition at line 103 of file class.ilObjectTranslationGUI.php.

References $fallback_lang_mode.

◆ getMultiLangForm()

ilObjectTranslationGUI::getMultiLangForm (   $a_add = false)

Get multi language form.

Definition at line 317 of file class.ilObjectTranslationGUI.php.

318 {
321 $ilCtrl = $this->ctrl;
323
324 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
325 $form = new ilPropertyFormGUI();
326
327 // master language
328 if (!$a_add) {
329 include_once("./Services/MetaData/classes/class.ilMDLanguageItem.php");
331 $si = new ilSelectInputGUI($lng->txt("obj_master_lang"), "master_lang");
332 $si->setOptions($options);
333 $si->setValue($ilUser->getLanguage());
334 $form->addItem($si);
335 }
336
337 // additional languages
338 if ($a_add) {
339 include_once("./Services/MetaData/classes/class.ilMDLanguageItem.php");
341 $options = array("" => $lng->txt("please_select")) + $options;
342 $si = new ilSelectInputGUI($lng->txt("obj_additional_langs"), "additional_langs");
343 $si->setOptions($options);
344 $si->setMulti(true);
345 $form->addItem($si);
346 }
347
348 if ($a_add) {
349 $form->setTitle($lng->txt("obj_add_languages"));
350 $form->addCommandButton("saveLanguages", $lng->txt("save"));
351 $form->addCommandButton("listTranslations", $lng->txt("cancel"));
352 } else {
353 if ($this->getTitleDescrOnlyMode()) {
354 $form->setTitle($lng->txt("obj_activate_content_lang"));
355 } else {
356 $form->setTitle($lng->txt("obj_activate_multilang"));
357 }
358 $form->addCommandButton("saveContentTranslationActivation", $lng->txt("save"));
359 $form->addCommandButton("listTranslations", $lng->txt("cancel"));
360 }
361 $form->setFormAction($ilCtrl->getFormAction($this));
362
363 return $form;
364 }
This class represents a property form user interface.
This class represents a selection list property in a property form.
$ilUser
Definition: imgupload.php:18

References $ctrl, $ilUser, $lng, $si, $tpl, $user, ilMDLanguageItem\_getLanguages(), and getTitleDescrOnlyMode().

Referenced by activateContentMultilinguality(), addLanguages(), saveContentTranslationActivation(), and saveLanguages().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTitleDescrOnlyMode()

ilObjectTranslationGUI::getTitleDescrOnlyMode ( )

Get enable title/description only mode.

Returns
bool enable title/description only mode

Definition at line 85 of file class.ilObjectTranslationGUI.php.

References $title_descr_only.

Referenced by confirmDeactivateContentMultiLang(), deactivateContentMultiLang(), getMultiLangForm(), and listTranslations().

+ Here is the caller graph for this function:

◆ listTranslations()

ilObjectTranslationGUI::listTranslations (   $a_get_post_values = false,
  $a_add = false 
)

List translations.

Definition at line 132 of file class.ilObjectTranslationGUI.php.

133 {
134 $ilToolbar = $this->toolbar;
135
136 $this->lng->loadLanguageModule(ilObject::_lookupType($this->obj->getId()));
137
138
139 if ($this->getTitleDescrOnlyMode() || $this->obj_trans->getContentActivated()) {
140 $ilToolbar->addButton(
141 $this->lng->txt("obj_add_languages"),
142 $this->ctrl->getLinkTarget($this, "addLanguages")
143 );
144 }
145
146 if ($this->getTitleDescrOnlyMode()) {
147 if (!$this->obj_trans->getContentActivated()) {
148 ilUtil::sendInfo($this->lng->txt("obj_multilang_title_descr_only"));
149 $ilToolbar->addButton(
150 $this->lng->txt("obj_activate_content_lang"),
151 $this->ctrl->getLinkTarget($this, "activateContentMultilinguality")
152 );
153 } else {
154 $ilToolbar->addButton(
155 $this->lng->txt("obj_deactivate_content_lang"),
156 $this->ctrl->getLinkTarget($this, "confirmDeactivateContentMultiLang")
157 );
158 }
159 } else {
160 if ($this->obj_trans->getContentActivated()) {
161 $ilToolbar->addButton(
162 $this->lng->txt("obj_deactivate_multilang"),
163 $this->ctrl->getLinkTarget($this, "confirmDeactivateContentMultiLang")
164 );
165 } else {
166 $ilToolbar->addButton(
167 $this->lng->txt("obj_activate_multilang"),
168 $this->ctrl->getLinkTarget($this, "activateContentMultilinguality")
169 );
170 return;
171 }
172 }
173
174 include_once("./Services/Object/classes/class.ilObjectTranslation2TableGUI.php");
175 $table = new ilObjectTranslation2TableGUI(
176 $this,
177 "listTranslations",
178 true,
179 "Translation",
180 $this->obj_trans->getMasterLanguage(),
181 $this->fallback_lang_mode,
182 $this->obj_trans->getFallbackLanguage()
183 );
184 if ($a_get_post_values) {
185 $vals = array();
186 foreach ($_POST["title"] as $k => $v) {
187 $vals[] = array("title" => $v,
188 "desc" => $_POST["desc"][$k],
189 "lang" => $_POST["lang"][$k],
190 "default" => ($_POST["default"] == $k));
191 }
192 $table->setData($vals);
193 } else {
194 $data = $this->obj_trans->getLanguages();
195 foreach ($data as $k => $v) {
196 $data[$k]["default"] = $v["lang_default"];
197 $data[$k]["desc"] = $v["description"];
198 $data[$k]["lang"] = $v["lang_code"];
199 }
200 /* if($a_add)
201 {
202 $data["Fobject"][++$k]["title"] = "";
203 }*/
204 $table->setData($data);
205 }
206 $this->tpl->setContent($table->getHTML());
207 }
TableGUI class for title/description translations.
static _lookupType($a_id, $a_reference=false)
lookup object type
$data
Definition: storeScorm.php:23

References $_POST, $data, $toolbar, ilObject\_lookupType(), getTitleDescrOnlyMode(), and ilUtil\sendInfo().

Referenced by deleteTranslations(), saveTranslations(), and setFallback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeLanguages()

ilObjectTranslationGUI::removeLanguages ( )

Remove languages.

Definition at line 514 of file class.ilObjectTranslationGUI.php.

515 {
517 $ilCtrl = $this->ctrl;
518
519 if (is_array($_POST["lang"])) {
520 $langs = $this->obj_trans->getLanguages();
521 foreach ($langs as $k => $l) {
522 if (in_array($l, $_POST["lang"])) {
523 $this->obj_trans->removeLanguage($l);
524 }
525 }
526 $this->obj_trans->save();
527 ilUtil::sendInfo($lng->txt("msg_obj_modified"), true);
528 }
529 $ilCtrl->redirect($this, "listTranslations");
530 }

References $_POST, $ctrl, $lng, and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ saveContentTranslationActivation()

ilObjectTranslationGUI::saveContentTranslationActivation ( )

Save content translation activation.

Definition at line 369 of file class.ilObjectTranslationGUI.php.

370 {
371 $ilCtrl = $this->ctrl;
372
373 // include_once("./Services/COPage/classes/class.ilPageMultiLang.php");
374
375 $form = $this->getMultiLangForm();
376 if ($form->checkInput()) {
377 $ml = $form->getInput("master_lang");
378 $this->obj_trans->setMasterLanguage($ml);
379 $this->obj_trans->addLanguage(
380 $ml,
381 $this->obj->getTitle(),
382 $this->obj->getDescription(),
383 true
384 );
385 $this->obj_trans->setDefaultTitle($this->obj->getTitle());
386 $this->obj_trans->setDefaultDescription($this->obj->getDescription());
387 $this->obj_trans->save();
388 }
389
390 $ilCtrl->redirect($this, "listTranslations");
391 }

References $ctrl, and getMultiLangForm().

+ Here is the call graph for this function:

◆ saveLanguages()

ilObjectTranslationGUI::saveLanguages ( )

Save languages.

Definition at line 454 of file class.ilObjectTranslationGUI.php.

455 {
456 $ilCtrl = $this->ctrl;
459
460 $form = $this->getMultiLangForm(true);
461 if ($form->checkInput()) {
462 $ad = $form->getInput("additional_langs");
463 if (is_array($ad)) {
464 $ml = $this->obj_trans->getMasterLanguage();
465 foreach ($ad as $l) {
466 if ($l != $ml && $l != "") {
467 $this->obj_trans->addLanguage($l, false, "", "");
468 }
469 }
470 }
471 $this->obj_trans->save();
472 ilUtil::sendInfo($lng->txt("msg_obj_modified"), true);
473 $ilCtrl->redirect($this, "listTranslations");
474 }
475
476 ilUtil::sendFailure($this->lng->txt('err_check_input'));
477 $form->setValuesByPost();
478 $tpl->setContent($form->getHTML());
479 }

References $ctrl, $lng, $tpl, getMultiLangForm(), ilUtil\sendFailure(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ saveTranslations()

ilObjectTranslationGUI::saveTranslations ( )

Save translations.

Definition at line 212 of file class.ilObjectTranslationGUI.php.

213 {
214 // default language set?
215 if (!isset($_POST["default"]) && $this->obj_trans->getMasterLanguage() == "") {
216 ilUtil::sendFailure($this->lng->txt("msg_no_default_language"));
217 $this->listTranslations(true);
218 return;
219 }
220
221 // all languages set?
222 if (array_key_exists("", $_POST["lang"])) {
223 ilUtil::sendFailure($this->lng->txt("msg_no_language_selected"));
224 $this->listTranslations(true);
225 return;
226 }
227
228 // no single language is selected more than once?
229 if (count(array_unique($_POST["lang"])) < count($_POST["lang"])) {
230 ilUtil::sendFailure($this->lng->txt("msg_multi_language_selected"));
231 $this->listTranslations(true);
232 return;
233 }
234
235 // save the stuff
236 $this->obj_trans->setLanguages(array());
237 if ($this->obj_trans->getFallbackLanguage() != "") {
238 $obj_store_lang = $this->obj_trans->getFallbackLanguage();
239 } else {
240 $obj_store_lang = $this->obj_trans->getMasterLanguage()
241 ?? $_POST["lang"][$_POST["default"]];
242 }
243
244 foreach ($_POST["title"] as $k => $v) {
245 // update object data if default
246 $is_default = ($_POST["default"] == $k);
247
248 // ensure master language is set as default
249 if ($this->obj_trans->getMasterLanguage() != "") {
250 $is_default = ($this->obj_trans->getMasterLanguage() == $_POST["lang"][$k]);
251 }
252 if ($_POST["lang"][$k] == $obj_store_lang) {
253 $this->obj->setTitle(ilUtil::stripSlashes($v));
254 $this->obj->setDescription(ilUtil::stripSlashes($_POST["desc"][$k]));
255 }
256
257 $this->obj_trans->addLanguage(
258 ilUtil::stripSlashes($_POST["lang"][$k]),
260 ilUtil::stripSlashes($_POST["desc"][$k]),
261 $is_default
262 );
263 }
264 $this->obj_trans->save();
265 if (method_exists($this->obj, "setObjectTranslation")) {
266 $this->obj->setObjectTranslation($this->obj_trans);
267 }
268 $this->obj->update();
269
270 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
271 $this->ctrl->redirect($this, "listTranslations");
272 }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References $_POST, listTranslations(), ilUtil\sendFailure(), and ilUtil\stripSlashes().

Referenced by deleteTranslations().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setEnableFallbackLanguage()

ilObjectTranslationGUI::setEnableFallbackLanguage (   $a_val)

Set enable fallback language.

Parameters
bool$a_val

Definition at line 94 of file class.ilObjectTranslationGUI.php.

95 {
96 $this->fallback_lang_mode = $a_val;
97 }

◆ setFallback()

ilObjectTranslationGUI::setFallback ( )

Save translations.

Definition at line 535 of file class.ilObjectTranslationGUI.php.

536 {
538 $ilCtrl = $this->ctrl;
539 // default language set?
540 if (!isset($_POST["check"]) || count($_POST["check"]) !== 1) {
541 ilUtil::sendFailure($this->lng->txt("obj_select_one_language"));
542 $this->listTranslations(true);
543 return;
544 }
545
546 $fallback_lang = $_POST["lang"][key($_POST["check"])];
547 if ($fallback_lang != $this->obj_trans->getFallbackLanguage()) {
548 $this->obj_trans->setFallbackLanguage($fallback_lang);
549 } else {
550 $this->obj_trans->setFallbackLanguage("");
551 }
552 $this->obj_trans->save();
553 ilUtil::sendInfo($lng->txt("msg_obj_modified"), true);
554 $ilCtrl->redirect($this, "listTranslations");
555 }

References $_POST, $ctrl, $lng, listTranslations(), ilUtil\sendFailure(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ setTitleDescrOnlyMode()

ilObjectTranslationGUI::setTitleDescrOnlyMode (   $a_val)

Set enable title/description only mode.

Parameters
bool$a_valenable title/description only mode

Definition at line 75 of file class.ilObjectTranslationGUI.php.

76 {
77 $this->title_descr_only = $a_val;
78 }

Field Documentation

◆ $ctrl

◆ $fallback_lang_mode

ilObjectTranslationGUI::$fallback_lang_mode = true
protected

Definition at line 45 of file class.ilObjectTranslationGUI.php.

Referenced by getEnableFallbackLanguage().

◆ $lng

◆ $obj_trans

ilObjectTranslationGUI::$obj_trans
protected

Definition at line 39 of file class.ilObjectTranslationGUI.php.

◆ $title_descr_only

ilObjectTranslationGUI::$title_descr_only = true
protected

Definition at line 40 of file class.ilObjectTranslationGUI.php.

Referenced by getTitleDescrOnlyMode().

◆ $toolbar

ilObjectTranslationGUI::$toolbar
protected

Definition at line 32 of file class.ilObjectTranslationGUI.php.

Referenced by listTranslations().

◆ $tpl

◆ $user

ilObjectTranslationGUI::$user
protected

Definition at line 37 of file class.ilObjectTranslationGUI.php.

Referenced by getMultiLangForm().


The documentation for this class was generated from the following file: