Public Member Functions

ilObjLanguageFolderGUI Class Reference

Inheritance diagram for ilObjLanguageFolderGUI:
Collaboration diagram for ilObjLanguageFolderGUI:

Public Member Functions

 ilObjLanguageFolderGUI ($a_data, $a_id, $a_call_by_reference)
 Constructor.
 viewObject ()
 show installed languages
 displayList ()
 display object list
 installObject ()
 install languages
 installLocalObject ()
 Install local language modifications.
 uninstallObject ()
 uninstall language
 refreshObject ()
 update all installed languages
 setUserLanguageObject ()
 set user language
 setSystemLanguageObject ()
 set the system language
 checkLanguageObject ()
 check all languages
 out ()
 getAdminTabs (&$tabs_gui)
 administration tabs show only permissions and trash folder
 getTabs (&$tabs_gui)
 get tabs public
executeCommand ()
 execute command

Detailed Description

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


Member Function Documentation

ilObjLanguageFolderGUI::checkLanguageObject (  ) 

check all languages

Definition at line 573 of file class.ilObjLanguageFolderGUI.php.

References out().

        {
                //$langFoldObj = new ilObjLanguageFolder($_GET["obj_id"]);
                //$this->data = $langFoldObj->checkAllLanguages();
                $this->data = $this->object->checkAllLanguages();
                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::displayList (  ) 

display object list

public

Reimplemented from ilObjectGUI.

Definition at line 171 of file class.ilObjLanguageFolderGUI.php.

References $_GET, ilObjectGUI::$data, $key, $rbacsystem, $tbl, ilObjectGUI::$tree, ilObjectGUI::showActions(), and ilUtil::switchColor().

Referenced by viewObject().

        {
                global $tree, $rbacsystem;

                require_once "./classes/class.ilTableGUI.php";

                // load template for table
                $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
                // load template for table content data
                $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");

                $num = 0;

                $this->tpl->setVariable("FORMACTION",
                        $this->ctrl->getFormAction($this));

                // create table
                $tbl = new ilTableGUI();
                
                // title & header columns
                //$tbl->setTitle($this->lng->txt("obj_".$this->object->getType()),"icon_".$this->object->getType().".gif",$this->lng->txt("obj_".$this->object->getType()));
                //$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
                //$tbl->disable("header");
                $tbl->disable("title");
                
                foreach ($this->data["cols"] as $val)
                {
                        $header_names[] = $this->lng->txt($val);
                }
                
                $tbl->setHeaderNames($header_names);

                $header_params = array("ref_id" => $this->ref_id);
                $tbl->setHeaderVars($this->data["cols"],$header_params);
                
                // control
                $tbl->setOrderColumn($_GET["sort_by"]);
                $tbl->setOrderDirection($_GET["sort_order"]);
                $tbl->setLimit(0);
                $tbl->setOffset(0);
                $tbl->setMaxCount($this->maxcount);
                $tbl->disable("sort");
                
                // SHOW VALID ACTIONS
                $this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
                $this->showActions();
                
                // footer
                $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
                //$tbl->disable("footer");
                
                // render table
                $tbl->render();

                if (is_array($this->data["data"][0]))
                {
                        //table cell
                        for ($i=0; $i < count($this->data["data"]); $i++)
                        {
                                $data = $this->data["data"][$i];
                                $ctrl = $this->data["ctrl"][$i];

                                // color changing
                                $css_row = ilUtil::switchColor($i+1,"tblrow1","tblrow2");

                                $this->tpl->setCurrentBlock("checkbox");
                                $this->tpl->setVariable("CHECKBOX_ID",$ctrl["obj_id"]);
                                $this->tpl->setVariable("CSS_ROW",$css_row);
                                $this->tpl->parseCurrentBlock();

                                $this->tpl->setCurrentBlock("table_cell");
                                $this->tpl->setVariable("CELLSTYLE", "tblrow1");
                                $this->tpl->parseCurrentBlock();

                                foreach ($data as $key => $val)
                                {

                                        $this->tpl->setCurrentBlock("text");

                                        $this->tpl->setVariable("TEXT_CONTENT", $val);                                  
                                        $this->tpl->parseCurrentBlock();

                                        $this->tpl->setCurrentBlock("table_cell");
                                        $this->tpl->parseCurrentBlock();

                                } //foreach

                                $this->tpl->setCurrentBlock("tbl_content");
                                $this->tpl->setVariable("CSS_ROW", $css_row);
                                $this->tpl->parseCurrentBlock();
                        } //for
                } //if is_array
        }

Here is the call graph for this function:

Here is the caller graph for this function:

& ilObjLanguageFolderGUI::executeCommand (  ) 

execute command

Reimplemented from ilObjectGUI.

Definition at line 615 of file class.ilObjLanguageFolderGUI.php.

References $cmd, and ilObjectGUI::prepareOutput().

        {
                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd();
                $this->prepareOutput();

                switch($next_class)
                {
                        case 'ilpermissiongui':
                                include_once("./classes/class.ilPermissionGUI.php");
                                $perm_gui =& new ilPermissionGUI($this);
                                $ret =& $this->ctrl->forwardCommand($perm_gui);
                                break;

                        default:
                                if(!$cmd)
                                {
                                        $cmd = "view";
                                }
                                $cmd .= "Object";
                                $this->$cmd();

                                break;
                }
                return true;
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::getAdminTabs ( &$  tabs_gui  ) 

administration tabs show only permissions and trash folder

Reimplemented from ilObjectGUI.

Definition at line 588 of file class.ilObjLanguageFolderGUI.php.

References getTabs().

        {
                $this->getTabs($tabs_gui);
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::getTabs ( &$  tabs_gui  ) 

get tabs public

Parameters:
object tabs gui object

Reimplemented from ilObjectGUI.

Definition at line 598 of file class.ilObjLanguageFolderGUI.php.

References $rbacsystem.

Referenced by getAdminTabs().

        {
                global $rbacsystem;

                if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
                {
                        $tabs_gui->addTarget("settings",
                                $this->ctrl->getLinkTarget($this, "view"), array("view",""), "", "");
                }

                if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
                {
                        $tabs_gui->addTarget("perm_settings",
                                $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
                }
        }

Here is the caller graph for this function:

ilObjLanguageFolderGUI::ilObjLanguageFolderGUI ( a_data,
a_id,
a_call_by_reference 
)

Constructor.

public

Definition at line 47 of file class.ilObjLanguageFolderGUI.php.

References $_GET, and ilObjectGUI::ilObjectGUI().

        {
                $this->type = "lngf";
                $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, false);
                $_GET["sort_by"] = "language";
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::installLocalObject (  ) 

Install local language modifications.

Definition at line 315 of file class.ilObjLanguageFolderGUI.php.

References $_POST, $key, ilObjectGUI::$obj_id, and out().

        {
                if (!isset($_POST["id"]))
                {
                        $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
                }

                foreach ($_POST["id"] as $obj_id)
                {
                        $langObj = new ilObjLanguage($obj_id);
                        $key = $langObj->install();

                        if ($key != "")
                        {
                                $lang_installed[] = $key;
                        }

                        unset($langObj);

                        $langObj = new ilObjLanguage($obj_id);
                        $key = $langObj->install('local');

                        if ($key != "")
                        {
                                $local_installed[] = $key;
                        }

                        unset($langObj);
                }

                if (isset($lang_installed))
                {
                        if (count($lang_installed) == 1)
                        {
                                $this->data = $this->lng->txt("lang_" . $lang_installed[0]) . " " . strtolower($this->lng->txt("installed")) . ".";
                        }
                        else
                        {
                                foreach ($lang_installed as $lang_key)
                                {
                                        $langnames[] = $this->lng->txt("lang_" . $lang_key);
                                }
                                $this->data = implode(", ",$langnames) . " " . strtolower($this->lng->txt("installed")) . ".";
                        }
                }

                if (isset($local_installed))
                {
                        if (count($local_installed) == 1)
                        {
                                $this->data .= " " . $this->lng->txt("lang_" . $local_installed[0]) . " " . $this->lng->txt("local_language_file") . " " . strtolower($this->lng->txt("installed")) . ".";
                        }
                        else
                        {
                                foreach ($local_installed as $lang_key)
                                {
                                        $langnames[] = $this->lng->txt("lang_" . $lang_key);
                                }
                                $this->data .= " " . implode(", ",$langnames) . " " . $this->lng->txt("local_language_files") . " " . strtolower($this->lng->txt("installed")) . ".";
                        }
                }
                else
                {
                        $this->data .= " " . $this->lng->txt("local_languages_already_installed");
                }

                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::installObject (  ) 

install languages

Definition at line 268 of file class.ilObjLanguageFolderGUI.php.

References $_POST, $key, ilObjectGUI::$obj_id, and out().

        {
                if (!isset($_POST["id"]))
                {
                        $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
                }

                foreach ($_POST["id"] as $obj_id)
                {
                        $langObj = new ilObjLanguage($obj_id);
                        $key = $langObj->install();

                        if ($key != "")
                        {
                                $lang_installed[] = $key;
                        }

                        unset($langObj);
                }

                if (isset($lang_installed))
                {
                        if (count($lang_installed) == 1)
                        {
                                $this->data = $this->lng->txt("lang_" . $lang_installed[0]) . " " . strtolower($this->lng->txt("installed")) . ".";
                        }
                        else
                        {
                                foreach ($lang_installed as $lang_key)
                                {
                                        $langnames[] = $this->lng->txt("lang_" . $lang_key);
                                }
                                $this->data = implode(", ",$langnames) . " " . strtolower($this->lng->txt("installed")) . ".";
                        }
                }
                else
                {
                        $this->data = $this->lng->txt("languages_already_installed");
                }

                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::out (  ) 

Definition at line 582 of file class.ilObjLanguageFolderGUI.php.

References sendInfo().

Referenced by checkLanguageObject(), installLocalObject(), installObject(), refreshObject(), setSystemLanguageObject(), setUserLanguageObject(), and uninstallObject().

        {
                sendInfo($this->data,true);
                $this->ctrl->redirect($this, "view");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjLanguageFolderGUI::refreshObject (  ) 

update all installed languages

Definition at line 445 of file class.ilObjLanguageFolderGUI.php.

References $lang, getObjectList(), and out().

        {
                $languages = getObjectList("lng");

                foreach ($languages as $lang)
                {
                        $langObj = new ilObjLanguage($lang["obj_id"],false);

                        if ($langObj->isInstalled() == true)
                        {
                                if ($langObj->check())
                                {
                                        $langObj->flush();
                                        $langObj->insert();
                                        $langObj->setTitle($langObj->getKey());
                                        $langObj->setDescription($langObj->getStatus());
                                        $langObj->update();
                                        $langObj->optimizeData();

                                        if ($langObj->isLocal() == true)
                                        {
                                                if ($langObj->check('local'))
                                                {
                                                        $langObj->insert('local');
                                                        $langObj->setTitle($langObj->getKey());
                                                        $langObj->setDescription($langObj->getStatus());
                                                        $langObj->update();
                                                        $langObj->optimizeData();
                                                }
                                        }
                                }
                        }

                        unset($langObj);
                }

                $this->data = $this->lng->txt("languages_updated");

                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::setSystemLanguageObject (  ) 

set the system language

Definition at line 532 of file class.ilObjLanguageFolderGUI.php.

References $_POST, ilObjectGUI::$obj_id, and out().

        {
                if (!isset($_POST["id"]))
                {
                        $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
                }

                if (count($_POST["id"]) != 1)
                {
                        $this->ilias->raiseError($this->lng->txt("choose_only_one_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
                }

                $obj_id = $_POST["id"][0];

                $newSysLangObj = new ilObjLanguage($obj_id);

                if ($newSysLangObj->isSystemLanguage())
                {
                        $this->ilias->raiseError($this->lng->txt("lang_".$newSysLangObj->getKey())." is already the system language!<br>Action aborted!",$this->ilias->error_obj->MESSAGE);
                }

                if ($newSysLangObj->isInstalled() == false)
                {
                        $this->ilias->raiseError($this->lng->txt("lang_".$newSysLangObj->getKey())." is not installed. Please install that language first.<br>Action aborted!",$this->ilias->error_obj->MESSAGE);
                }

                $this->ilias->setSetting("language", $newSysLangObj->getKey());

                // update ini-file
                $this->ilias->ini->setVariable("language","default",$newSysLangObj->getKey());
                $this->ilias->ini->write();

                $this->data = $this->lng->txt("system_language")." ".$this->lng->txt("changed_to")." ".$this->lng->txt("lang_".$newSysLangObj->getKey()).".";

                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::setUserLanguageObject (  ) 

set user language

Definition at line 490 of file class.ilObjLanguageFolderGUI.php.

References $_POST, $_SESSION, ilObjectGUI::$obj_id, and out().

        {
                require_once "classes/class.ilObjUser.php";

                if (!isset($_POST["id"]))
                {
                        $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
                }

                if (count($_POST["id"]) != 1)
                {
                        $this->ilias->raiseError($this->lng->txt("choose_only_one_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
                }

                $obj_id = $_POST["id"][0];

                $newUserLangObj = new ilObjLanguage($obj_id);

                if ($newUserLangObj->isUserLanguage())
                {
                        $this->ilias->raiseError($this->lng->txt("lang_".$newUserLangObj->getKey())." ".$this->lng->txt("is_already_your")." ".$this->lng->txt("user_language")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
                }

                if ($newUserLangObj->isInstalled() == false)
                {
                        $this->ilias->raiseError($this->lng->txt("lang_".$newUserLangObj->getKey())." ".$this->lng->txt("language_not_installed")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
                }

                $curUser = new ilObjUser($_SESSION["AccountId"]);
                $curUser->setLanguage($newUserLangObj->getKey());
                $curUser->update();
                //$this->setUserLanguage($new_lang_key);

                $this->data = $this->lng->txt("user_language")." ".$this->lng->txt("changed_to")." ".$this->lng->txt("lang_".$newUserLangObj->getKey()).".";

                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::uninstallObject (  ) 

uninstall language

Definition at line 388 of file class.ilObjLanguageFolderGUI.php.

References $_POST, $key, ilObjectGUI::$obj_id, and out().

        {
                if (!isset($_POST["id"]))
                {
                        $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
                }

                // uninstall all selected languages
                foreach ($_POST["id"] as $obj_id)
                {
                        $langObj = new ilObjLanguage($obj_id);
                        if (!($sys_lang = $langObj->isSystemLanguage()))
                                if (!($usr_lang = $langObj->isUserLanguage()))
                                {
                                        $key = $langObj->uninstall();
                                        if ($key != "")
                                                $lang_uninstalled[] = $key;
                                }
                        unset($langObj);
                }

                // generate output message
                if (isset($lang_uninstalled))
                {
                        if (count($lang_uninstalled) == 1)
                        {
                                $this->data = $this->lng->txt("lang_".$lang_uninstalled[0])." ".$this->lng->txt("uninstalled");
                        }
                        else
                        {
                                foreach ($lang_uninstalled as $lang_key)
                                {
                                        $langnames[] = $this->lng->txt("lang_".$lang_key);
                                }

                                $this->data = implode(", ",$langnames)." ".$this->lng->txt("uninstalled");
                        }
                }
                elseif ($sys_lang)
                {
                        $this->data = $this->lng->txt("cannot_uninstall_systemlanguage");
                }
                elseif ($usr_lang)
                {
                        $this->data = $this->lng->txt("cannot_uninstall_language_in_use");
                }
                else
                {
                        $this->data = $this->lng->txt("languages_already_uninstalled");
                }

                $this->out();
        }

Here is the call graph for this function:

ilObjLanguageFolderGUI::viewObject (  ) 

show installed languages

public

Reimplemented from ilObjectGUI.

Definition at line 59 of file class.ilObjLanguageFolderGUI.php.

References $_GET, $key, $rbacsystem, displayList(), formatDate(), ilUtil::getWebspaceDir(), and ilUtil::sortArray().

        {
                global $rbacsystem;
                
                if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }

                //add template for buttons
                $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
                
                $this->tpl->setCurrentBlock("btn_cell");
                $this->tpl->setVariable("BTN_LINK",
                        $this->ctrl->getLinkTarget($this, "refresh"));
                $this->tpl->setVariable("BTN_TXT",$this->lng->txt("refresh_languages"));
                $this->tpl->parseCurrentBlock();
                
                $this->tpl->setCurrentBlock("btn_cell");
                $this->tpl->setVariable("BTN_LINK",
                        $this->ctrl->getLinkTarget($this, "checkLanguage"));
                $this->tpl->setVariable("BTN_TXT",$this->lng->txt("check_languages"));
                $this->tpl->parseCurrentBlock();

                //prepare objectlist
                $this->data = array();
                $this->data["data"] = array();
                $this->data["ctrl"] = array();
                $this->data["cols"] = array("","language","status","last_change", "usr_agreement");

                $languages = $this->object->getLanguages();
                
                foreach ($languages as $lang_key => $lang_data)
                {
                        $status = "";
        
                        // set status info (in use or systemlanguage)
                        if ($lang_data["status"])
                        {
                                $status = "<span class=\"small\"> (".$this->lng->txt($lang_data["status"]).")</span>";
                        }

                        // set remark color
                        switch ($lang_data["info"])
                        {
                                case "file_not_found":
                                        $remark = "<span class=\"smallred\"> ".$this->lng->txt($lang_data["info"])."</span>";
                                        break;
                                case "new_language":
                                        $remark = "<span class=\"smallgreen\"> ".$this->lng->txt($lang_data["info"])."</span>";
                                        break;
                                default:
                                        $remark = "";
                                        break;
                        }

                        if (file_exists(ilUtil::getWebspaceDir()."/agreement/agreement_".$lang_key.".html"))
                        {
                                $agreement_exists_str = $this->lng->txt("available")." (".$this->lng->txt("client").")";
                        }
                        else if (file_exists("./agreement/agreement_".$lang_key.".html"))
                        {
                                $agreement_exists_str = $this->lng->txt("available");
                        }
                        else
                        {
                                if ($lang_data["status"] == "system_language")
                                {
                                        $agreement_exists_str = "<b>".$this->lng->txt("missing")."</b>";
                                }
                                else
                                {
                                        $agreement_exists_str = $this->lng->txt("missing");
                                }
                        }

                        // visible data part
                        $this->data["data"][] = array(
                                                                        "language"              => $lang_data["name"].$status,
                                                                        "status"                => $this->lng->txt($lang_data["desc"])."<br/>".$remark,
                                                                        "last_change"   => $lang_data["last_update"],
                                                                        "obj_id"                => $lang_data["obj_id"],
                                                                        "agreement"             => $agreement_exists_str
                                                                                );

                }
        
                $this->maxcount = count($this->data["data"]);

                // sorting array
                $this->data["data"] = ilUtil::sortArray($this->data["data"],$_GET["sort_by"],$_GET["sort_order"]);

                // now compute control information
                foreach ($this->data["data"] as $key => $val)
                {
                        $this->data["ctrl"][$key] = array(
                                                                                        "obj_id"        => $val["obj_id"],
                                                                                        "type"          => $val["type"]
                                                                                        );              

                        unset($this->data["data"][$key]["obj_id"]);
                        $this->data["data"][$key]["last_change"] = ilFormat::formatDate($this->data["data"][$key]["last_change"]);
                }

                $this->displayList();
        }

Here is the call graph for this function:


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