54 $this->toolbar = $DIC->toolbar();
55 $this->
user = $DIC->user();
56 $lng = $DIC->language();
57 $ilCtrl = $DIC->ctrl();
61 $this->ctrl = $ilCtrl;
63 $this->obj_gui = $a_obj_gui;
64 $this->obj = $a_obj_gui->object;
66 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
77 $this->title_descr_only = $a_val;
96 $this->fallback_lang_mode = $a_val;
114 $next_class = $this->ctrl->getNextClass($this);
116 switch ($next_class) {
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"))) {
140 $ilToolbar->addButton(
141 $this->lng->txt(
"obj_add_languages"),
142 $this->ctrl->getLinkTarget($this,
"addLanguages")
147 if (!$this->obj_trans->getContentActivated()) {
149 $ilToolbar->addButton(
150 $this->lng->txt(
"obj_activate_content_lang"),
151 $this->ctrl->getLinkTarget($this,
"activateContentMultilinguality")
154 $ilToolbar->addButton(
155 $this->lng->txt(
"obj_deactivate_content_lang"),
156 $this->ctrl->getLinkTarget($this,
"confirmDeactivateContentMultiLang")
160 if ($this->obj_trans->getContentActivated()) {
161 $ilToolbar->addButton(
162 $this->lng->txt(
"obj_deactivate_multilang"),
163 $this->ctrl->getLinkTarget($this,
"confirmDeactivateContentMultiLang")
166 $ilToolbar->addButton(
167 $this->lng->txt(
"obj_activate_multilang"),
168 $this->ctrl->getLinkTarget($this,
"activateContentMultilinguality")
174 include_once(
"./Services/Object/classes/class.ilObjectTranslation2TableGUI.php");
180 $this->obj_trans->getMasterLanguage(),
182 $this->obj_trans->getFallbackLanguage()
184 if ($a_get_post_values) {
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));
192 $table->setData($vals);
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"];
204 $table->setData(
$data);
206 $this->tpl->setContent($table->getHTML());
215 if (!isset(
$_POST[
"default"]) && $this->obj_trans->getMasterLanguage() ==
"") {
222 if (array_key_exists(
"",
$_POST[
"lang"])) {
229 if (count(array_unique(
$_POST[
"lang"])) < count(
$_POST[
"lang"])) {
236 $this->obj_trans->setLanguages(array());
237 if ($this->obj_trans->getFallbackLanguage() !=
"") {
238 $obj_store_lang = $this->obj_trans->getFallbackLanguage();
240 $obj_store_lang = $this->obj_trans->getMasterLanguage()
244 foreach (
$_POST[
"title"] as $k => $v) {
246 $is_default = (
$_POST[
"default"] == $k);
249 if ($this->obj_trans->getMasterLanguage() !=
"") {
250 $is_default = ($this->obj_trans->getMasterLanguage() ==
$_POST[
"lang"][$k]);
252 if (
$_POST[
"lang"][$k] == $obj_store_lang) {
257 $this->obj_trans->addLanguage(
264 $this->obj_trans->save();
265 if (method_exists($this->obj,
"setObjectTranslation")) {
266 $this->obj->setObjectTranslation($this->obj_trans);
268 $this->obj->update();
270 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
271 $this->ctrl->redirect($this,
"listTranslations");
279 foreach (
$_POST[
"title"] as $k => $v) {
280 if (
$_POST[
"check"][$k]) {
282 if ($k !=
$_POST[
"default"]) {
283 unset(
$_POST[
"title"][$k]);
284 unset(
$_POST[
"desc"][$k]);
285 unset(
$_POST[
"lang"][$k]);
311 $tpl->setContent($form->getHTML());
324 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
329 include_once(
"./Services/MetaData/classes/class.ilMDLanguageItem.php");
332 $si->setOptions($options);
339 include_once(
"./Services/MetaData/classes/class.ilMDLanguageItem.php");
341 $options = array(
"" =>
$lng->txt(
"please_select")) + $options;
343 $si->setOptions($options);
349 $form->setTitle(
$lng->txt(
"obj_add_languages"));
350 $form->addCommandButton(
"saveLanguages",
$lng->txt(
"save"));
351 $form->addCommandButton(
"listTranslations",
$lng->txt(
"cancel"));
354 $form->setTitle(
$lng->txt(
"obj_activate_content_lang"));
356 $form->setTitle(
$lng->txt(
"obj_activate_multilang"));
358 $form->addCommandButton(
"saveContentTranslationActivation",
$lng->txt(
"save"));
359 $form->addCommandButton(
"listTranslations",
$lng->txt(
"cancel"));
361 $form->setFormAction($ilCtrl->getFormAction($this));
376 if ($form->checkInput()) {
377 $ml = $form->getInput(
"master_lang");
378 $this->obj_trans->setMasterLanguage($ml);
379 $this->obj_trans->addLanguage(
381 $this->obj->getTitle(),
382 $this->obj->getDescription(),
385 $this->obj_trans->setDefaultTitle($this->obj->getTitle());
386 $this->obj_trans->setDefaultDescription($this->obj->getDescription());
387 $this->obj_trans->save();
390 $ilCtrl->redirect($this,
"listTranslations");
402 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
404 $cgui->setFormAction($ilCtrl->getFormAction($this));
406 $cgui->setHeaderText(
$lng->txt(
"obj_deactivate_content_transl_conf"));
408 $cgui->setHeaderText(
$lng->txt(
"obj_deactivate_multilang_conf"));
411 $cgui->setCancel(
$lng->txt(
"cancel"),
"listTranslations");
412 $cgui->setConfirm(
$lng->txt(
"confirm"),
"deactivateContentMultiLang");
413 $tpl->setContent($cgui->getHTML());
425 $this->obj_trans->setMasterLanguage(
"");
426 $this->obj_trans->setLanguages(array());
427 $this->obj_trans->save();
429 $this->obj_trans->deactivateContentTranslation();
431 ilUtil::sendSuccess(
$lng->txt(
"obj_cont_transl_deactivated"),
true);
433 ilUtil::sendSuccess(
$lng->txt(
"obj_multilang_deactivated"),
true);
437 $ilCtrl->redirect($this,
"listTranslations");
448 $tpl->setContent($form->getHTML());
461 if ($form->checkInput()) {
462 $ad = $form->getInput(
"additional_langs");
464 $ml = $this->obj_trans->getMasterLanguage();
465 foreach ($ad as $l) {
466 if ($l != $ml && $l !=
"") {
467 $this->obj_trans->addLanguage($l,
false,
"",
"");
471 $this->obj_trans->save();
473 $ilCtrl->redirect($this,
"listTranslations");
477 $form->setValuesByPost();
478 $tpl->setContent($form->getHTML());
490 $lng->loadLanguageModule(
"meta");
492 if (!is_array(
$_POST[
"lang"]) || count(
$_POST[
"lang"]) == 0) {
494 $ilCtrl->redirect($this,
"listTranslations");
496 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
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");
504 $cgui->addItem(
"lang[]", $i,
$lng->txt(
"meta_l_" . $i));
507 $tpl->setContent($cgui->getHTML());
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);
526 $this->obj_trans->save();
529 $ilCtrl->redirect($this,
"listTranslations");
540 if (!isset(
$_POST[
"check"]) || count(
$_POST[
"check"]) !== 1) {
547 if ($fallback_lang != $this->obj_trans->getFallbackLanguage()) {
548 $this->obj_trans->setFallbackLanguage($fallback_lang);
550 $this->obj_trans->setFallbackLanguage(
"");
552 $this->obj_trans->save();
554 $ilCtrl->redirect($this,
"listTranslations");
__construct($a_obj_gui)
Constructor.
TableGUI class for title/description translations.
confirmDeactivateContentMultiLang()
Confirm page translation creation.
getEnableFallbackLanguage()
Get enable fallback language.
activateContentMultilinguality()
Activate multi language (-> master language selection)
listTranslations($a_get_post_values=false, $a_add=false)
List translations.
executeCommand()
Execute command.
removeLanguages()
Remove languages.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
deleteTranslations()
Remove translation.
setFallback()
Save translations.
getMultiLangForm($a_add=false)
Get multi language form.
getTitleDescrOnlyMode()
Get enable title/description only mode.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
deactivateContentMultiLang()
Deactivate multilanguage.
saveLanguages()
Save languages.
setEnableFallbackLanguage($a_val)
Set enable fallback language.
static getInstance($a_obj_id)
Get instance.
saveTranslations()
Save translations.
confirmRemoveLanguages()
Confirm remove languages.
addLanguages()
Add language.
saveContentTranslationActivation()
Save content translation activation.
GUI class for object translation handling.
setTitleDescrOnlyMode($a_val)
Set enable title/description only mode.
Confirmation screen class.