Public Member Functions | Protected Member Functions

ilObjRootFolderGUI Class Reference

Class ilObjRootFolderGUI. More...

Inheritance diagram for ilObjRootFolderGUI:
Collaboration diagram for ilObjRootFolderGUI:

Public Member Functions

 ilObjRootFolderGUI ($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
 Constructor public.
 importCategoriesFormObject ()
 import categories form
 importCancelledObject ()
 import cancelled
 importCategoriesObject ()
 import categories
 importCategoriesWithRolObject ()
 import categories
 getTabs (&$tabs_gui)
 common tabs for all container objects (should be called at the end of child getTabs() method
executeCommand ()
 execute command note: this method is overwritten in all container objects
 editObject ()
 edit category
 setTitleAndDescription ()
 called by prepare output
 updateObject ()
 updates object entry in object_data
 addTranslationObject ()
 adds a translation form & save post vars to session
 removeTranslationObject ()
 removes a translation form & save post vars to session
 removeBigIconObject ()
 remove big icon
 removeSmallIconObject ()
 remove small icon
 removeTinyIconObject ()
 remove tiny icon
 _goto ($a_target)
 goto target group

Protected Member Functions

 showSortingSettings ()
 show sorting settings

Detailed Description

Class ilObjRootFolderGUI.

Author:
Stefan Meyer <smeyer@databay.de>
Version:
Id:
class.ilObjRootFolderGUI.php 15200 2007-11-05 12:00:08Z smeyer

Id: class.ilObjRootFolderGUI.php,v 1.13 2006/03/10 09:22:58 akill Exp $

ilObjRootFolderGUI: ilPermissionGUI, ilPageObjectGUI, ilContainerLinkListGUI

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


Member Function Documentation

ilObjRootFolderGUI::_goto ( a_target  ) 

goto target group

Definition at line 523 of file class.ilObjRootFolderGUI.php.

References $_GET, $ilErr, ilObjectGUI::$lng, and exit.

        {
                global $ilAccess, $ilErr, $lng;

                if ($ilAccess->checkAccess("read", "",1))
                {
                        $_GET["cmd"] = "frameset";
                        $_GET["ref_id"] = 1;
                        include("repository.php");
                        exit;
                }
                $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
        }

ilObjRootFolderGUI::addTranslationObject (  ) 

adds a translation form & save post vars to session

public

Definition at line 447 of file class.ilObjRootFolderGUI.php.

References $_GET, $_SESSION, and ilUtil::redirect().

        {
                if (!($_GET["mode"] != "create" or $_GET["mode"] != "edit"))
                {
                        $message = get_class($this)."::addTranslationObject(): Missing or wrong parameter! mode: ".$_GET["mode"];
                        $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
                }

                $_SESSION["translation_post"] = $_POST;
                $this->ctrl->setParameter($this, "entry", 0);
                $this->ctrl->setParameter($this, "mode", "session");
                $this->ctrl->setParameter($this, "new_type", $_GET["new_type"]);
                ilUtil::redirect($this->ctrl->getLinkTarget($this, $_GET["mode"]));
        }

Here is the call graph for this function:

ilObjRootFolderGUI::editObject (  ) 

edit category

public

Reimplemented from ilObjectGUI.

Definition at line 175 of file class.ilObjRootFolderGUI.php.

References $_GET, $_SESSION, ilObjectGUI::$data, ilObjectGUI::$lng, ilMDLanguageItem::_getLanguages(), ilObjectGUI::getTargetFrame(), ilObjectGUI::getTemplateFile(), ilUtil::prepareFormOutput(), ilContainerGUI::showCustomIconsEditing(), showSortingSettings(), and ilUtil::stripSlashes().

        {
                global $rbacsystem, $lng;

                if (!$rbacsystem->checkAccess("write", $this->ref_id))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }
                
                $this->ctrl->setParameter($this,"mode","edit");

                // for lang selection include metadata class
                include_once "./Services/MetaData/classes/class.ilMDLanguageItem.php";

                $this->getTemplateFile("edit",'');
                $this->showSortingSettings();
                
                $array_push = true;

                if ($_SESSION["error_post_vars"])
                {
                        $_SESSION["translation_post"] = $_SESSION["error_post_vars"];
                        $_GET["mode"] = "session";
                        $array_push = false;
                }

                // load from db if edit category is called the first time
                if (($_GET["mode"] != "session"))
                {
                        $data = $this->object->getTranslations();
                        $_SESSION["translation_post"] = $data;
                        $array_push = false;
                }       // remove a translation from session
                elseif ($_GET["entry"] != 0)
                {
                        array_splice($_SESSION["translation_post"]["Fobject"],$_GET["entry"],1,array());

                        if ($_GET["entry"] == $_SESSION["translation_post"]["default_language"])
                        {
                                $_SESSION["translation_post"]["default_language"] = "";
                        }
                }

                $data = $_SESSION["translation_post"];

                // add additional translation form
                if (!$_GET["entry"] and $array_push)
                {
                        $count = array_push($data["Fobject"],array("title" => "","desc" => ""));
                }
                else
                {
                        $count = count($data["Fobject"]);
                }

                // stripslashes in form?
                $strip = isset($_SESSION["translation_post"]) ? true : false;
                
                // add empty entry, if nothing exists
                if (count($data["Fobject"]) == 0)
                {
                        $data["Fobject"][0] =
                                array("title"   => "",
                                        "desc"  => "",
                                        "lang"  => $lng->getDefaultLanguage()
                                );
                }

                foreach ($data["Fobject"] as $key => $val)
                {
                        // add translation button
                        if ($key == $count -1)
                        {
                                $this->tpl->setCurrentBlock("addTranslation");
                                $this->tpl->setVariable("TXT_ADD_TRANSLATION",$this->lng->txt("add_translation")." >>");
                                $this->tpl->parseCurrentBlock();
                        }

                        // remove translation button
                        if ($key != 0)
                        {
                                $this->tpl->setCurrentBlock("removeTranslation");
                                $this->tpl->setVariable("TXT_REMOVE_TRANSLATION",$this->lng->txt("remove_translation"));
                                $this->ctrl->setParameter($this, "entry", $key);
                                $this->ctrl->setParameter($this, "mode", "edit");
                                $this->tpl->setVariable("LINK_REMOVE_TRANSLATION", $this->ctrl->getLinkTarget($this, "removeTranslation"));
                                $this->tpl->parseCurrentBlock();
                        }

                        // lang selection
                        $this->tpl->addBlockFile("SEL_LANGUAGE", "sel_language", "tpl.lang_selection.html", false);
                        $this->tpl->setVariable("SEL_NAME", "Fobject[".$key."][lang]");

                        $languages = ilMDLanguageItem::_getLanguages();

                        foreach ($languages as $code => $language)
                        {
                                $this->tpl->setCurrentBlock("lg_option");
                                $this->tpl->setVariable("VAL_LG", $code);
                                $this->tpl->setVariable("TXT_LG", $language);

                                if ($code == $val["lang"])
                                {
                                        $this->tpl->setVariable("SELECTED", "selected=\"selected\"");
                                }

                                $this->tpl->parseCurrentBlock();
                        }

                        // object data
                        $this->tpl->setCurrentBlock("obj_form");

                        if ($key == 0)
                        {
                                $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("repository"));
                        }
                        else
                        {
                                $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("translation")." ".$key);
                        }

                        if ($key == $data["default_language"])
                        {
                                $this->tpl->setVariable("CHECKED", "checked=\"checked\"");
                        }

                        $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
                        $this->tpl->setVariable("TXT_DESC", $this->lng->txt("title_long"));
                        $this->tpl->setVariable("TXT_DEFAULT", $this->lng->txt("default"));
                        $this->tpl->setVariable("TXT_LANGUAGE", $this->lng->txt("language"));
                        $this->tpl->setVariable("TITLE", ilUtil::prepareFormOutput($val["title"],$strip));
                        $this->tpl->setVariable("DESC", ilUtil::stripSlashes($val["desc"]));
                        $this->tpl->setVariable("NUM", $key);
                        $this->tpl->parseCurrentBlock();
                }
                
                $this->showCustomIconsEditing();

                // global
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TARGET", $this->getTargetFrame("update"));
                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
                $this->tpl->setVariable("CMD_SUBMIT", "update");
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
        }

Here is the call graph for this function:

& ilObjRootFolderGUI::executeCommand (  ) 

execute command note: this method is overwritten in all container objects

Reimplemented from ilContainerGUI.

Definition at line 116 of file class.ilObjRootFolderGUI.php.

References $cmd, $ret, ilContainerGUI::forwardToPageObject(), ilObjStyleSheet::getContentStylePath(), ilUtil::infoPanel(), ilObjectGUI::prepareOutput(), ilUtil::sendInfo(), ilObjectGUI::setLocator(), ilContainerGUI::setPageEditorTabs(), and setTitleAndDescription().

        {
                global $rbacsystem;

                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd();
                
                switch($next_class)
                {
                        case 'ilcontainerlinklistgui':
                                include_once("./classes/class.ilContainerLinkListGUI.php");
                                $link_list_gui =& new ilContainerLinkListGUI();
                                $ret =& $this->ctrl->forwardCommand($link_list_gui);
                                break;

                                // container page editing
                        case "ilpageobjectgui":
                                $this->tpl->getStandardTemplate();
                                $this->setLocator();
                                ilUtil::sendInfo();
                                ilUtil::infoPanel();
                                //$this->prepareOutput(false);
                                $ret = $this->forwardToPageObject();
                                $this->setTitleAndDescription();
                                $this->setPageEditorTabs();
                                return $ret;
                                break;

                        case 'ilpermissiongui':
                                $this->prepareOutput();
                                include_once("./classes/class.ilPermissionGUI.php");
                                $perm_gui =& new ilPermissionGUI($this);
                                $ret =& $this->ctrl->forwardCommand($perm_gui);
                                break;
                        
                        default:
                                $this->prepareOutput();
                                include_once("classes/class.ilObjStyleSheet.php");
                                $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                        ilObjStyleSheet::getContentStylePath(0));

                                if(!$cmd)
                                {
                                        $cmd = "render";
                                }

                                $cmd .= "Object";
                                $this->$cmd();

                                break;
                }
                return true;
        }

Here is the call graph for this function:

ilObjRootFolderGUI::getTabs ( &$  tabs_gui  ) 

common tabs for all container objects (should be called at the end of child getTabs() method

Reimplemented from ilContainerGUI.

Definition at line 88 of file class.ilObjRootFolderGUI.php.

References $_GET.

        {
                global $rbacsystem;

                $this->ctrl->setParameter($this,"ref_id",$this->ref_id);

                if ($rbacsystem->checkAccess('read',$this->ref_id))
                {
                        $tabs_gui->addTarget("view_content",
                                $this->ctrl->getLinkTarget($this, ""),
                                array("", "view", "render"));
                }
                
                if ($rbacsystem->checkAccess('write',$this->ref_id))
                {
                        $force_active = ($_GET["cmd"] == "edit")
                                ? true
                                : false;
                        $tabs_gui->addTarget("edit_properties",
                                $this->ctrl->getLinkTarget($this, "edit"), "edit", get_class($this)
                                , "", $force_active);
                }

                // parent tabs (all container: edit_permission, clipboard, trash
                parent::getTabs($tabs_gui);

        }

ilObjRootFolderGUI::ilObjRootFolderGUI ( a_data,
a_id,
a_call_by_reference = true,
a_prepare_output = true 
)

Constructor public.

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

References ilContainerGUI::ilContainerGUI().

        {
                $this->type = "root";
                $this->ilContainerGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
        }

Here is the call graph for this function:

ilObjRootFolderGUI::importCancelledObject (  ) 

import cancelled

private

Definition at line 64 of file class.ilObjRootFolderGUI.php.

References ilUtil::sendInfo().

        {
                ilUtil::sendInfo($this->lng->txt("action_aborted"),true);
                $this->ctrl->returnToParent($this);
        }

Here is the call graph for this function:

ilObjRootFolderGUI::importCategoriesFormObject (  ) 

import categories form

Definition at line 54 of file class.ilObjRootFolderGUI.php.

References ilObjCategoryGUI::_importCategoriesForm().

        {
                ilObjCategoryGUI::_importCategoriesForm($this->ref_id, $this->tpl);
        }

Here is the call graph for this function:

ilObjRootFolderGUI::importCategoriesObject (  ) 

import categories

Definition at line 73 of file class.ilObjRootFolderGUI.php.

References ilObjCategoryGUI::_importCategories().

        {
          ilObjCategoryGUI::_importCategories($this->ref_id,0);
        }

Here is the call graph for this function:

ilObjRootFolderGUI::importCategoriesWithRolObject (  ) 

import categories

Definition at line 82 of file class.ilObjRootFolderGUI.php.

References ilObjCategoryGUI::_importCategories().

        {
          ilObjCategoryGUI::_importCategories($this->ref_id,1);
        }

Here is the call graph for this function:

ilObjRootFolderGUI::removeBigIconObject (  ) 

remove big icon

public

Definition at line 487 of file class.ilObjRootFolderGUI.php.

References $_GET, $_SESSION, and ilUtil::redirect().

        {
                $_SESSION["translation_post"] = $_POST;
                $this->object->removeBigIcon();
                ilUtil::redirect($this->ctrl->getLinkTarget($this, $_GET["mode"]));
        }

Here is the call graph for this function:

ilObjRootFolderGUI::removeSmallIconObject (  ) 

remove small icon

public

Definition at line 499 of file class.ilObjRootFolderGUI.php.

References $_GET, $_SESSION, and ilUtil::redirect().

        {

                $_SESSION["translation_post"] = $_POST;
                $this->object->removeSmallIcon();
                ilUtil::redirect($this->ctrl->getLinkTarget($this, $_GET["mode"]));
        }

Here is the call graph for this function:

ilObjRootFolderGUI::removeTinyIconObject (  ) 

remove tiny icon

public

Definition at line 512 of file class.ilObjRootFolderGUI.php.

References $_GET, $_SESSION, and ilUtil::redirect().

        {

                $_SESSION["translation_post"] = $_POST;
                $this->object->removeTinyIcon();
                ilUtil::redirect($this->ctrl->getLinkTarget($this, $_GET["mode"]));
        }

Here is the call graph for this function:

ilObjRootFolderGUI::removeTranslationObject (  ) 

removes a translation form & save post vars to session

public

Definition at line 467 of file class.ilObjRootFolderGUI.php.

References $_GET, and ilUtil::redirect().

        {
                if (!($_GET["mode"] != "create" or $_GET["mode"] != "edit"))
                {
                        $message = get_class($this)."::removeTranslationObject(): Missing or wrong parameter! mode: ".$_GET["mode"];
                        $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
                }

                $this->ctrl->setParameter($this, "entry", $_GET["entry"]);
                $this->ctrl->setParameter($this, "mode", "session");
                $this->ctrl->setParameter($this, "new_type", $_GET["new_type"]);
                ilUtil::redirect($this->ctrl->getLinkTarget($this, $_GET["mode"]));

        }

Here is the call graph for this function:

ilObjRootFolderGUI::setTitleAndDescription (  ) 

called by prepare output

Reimplemented from ilContainerGUI.

Definition at line 326 of file class.ilObjRootFolderGUI.php.

References ilObjectGUI::$lng.

Referenced by executeCommand().

        {
                global $lng;

                parent::setTitleAndDescription();
                $this->tpl->setDescription("");
                if ($this->object->getTitle() == "ILIAS")
                {
                        $this->tpl->setTitle($lng->txt("repository"));
                }
                else
                {
                        if ($this->object->getDescription() != "")
                        {
                                $this->tpl->setTitle($this->object->getDescription());
                        }
                }
        }

Here is the caller graph for this function:

ilObjRootFolderGUI::showSortingSettings (  )  [protected]

show sorting settings

protected

Definition at line 542 of file class.ilObjRootFolderGUI.php.

References ilUtil::formRadioButton(), ilObjectGUI::getCreationMode(), ilContainerSortingSettings::MODE_MANUAL, and ilContainerSortingSettings::MODE_TITLE.

Referenced by editObject().

        {
                $this->tpl->setVariable('TXT_SORTING',$this->lng->txt('sorting_header'));
                $this->tpl->setVariable('TXT_SORT_TITLE',$this->lng->txt('sorting_title_header'));
                $this->tpl->setVariable('INFO_SORT_TITLE',$this->lng->txt('sorting_info_title'));
                $this->tpl->setVariable('TXT_SORT_MANUAL',$this->lng->txt('sorting_manual_header'));
                $this->tpl->setVariable('INFO_SORT_MANUAL',$this->lng->txt('sorting_info_manual'));
                
                include_once('Services/Container/classes/class.ilContainerSortingSettings.php');
                if($this->getCreationMode())
                {
                        $settings = new ilContainerSortingSettings(0);
                }
                else
                {
                        $settings = new ilContainerSortingSettings($this->object->getId());
                }
                
                
                $this->tpl->setVariable('RADIO_SORT_TITLE',ilUtil::formRadioButton(
                        $settings->getSortMode() == ilContainerSortingSettings::MODE_TITLE,
                        'sorting',
                        ilContainerSortingSettings::MODE_TITLE));
                $this->tpl->setVariable('RADIO_SORT_MANUAL',ilUtil::formRadioButton(
                        $settings->getSortMode() == ilContainerSortingSettings::MODE_MANUAL,
                        'sorting',
                        ilContainerSortingSettings::MODE_MANUAL));
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjRootFolderGUI::updateObject (  ) 

updates object entry in object_data

public

Reimplemented from ilObjectGUI.

Definition at line 350 of file class.ilObjRootFolderGUI.php.

References ilObjectGUI::$data, ilObjectGUI::getReturnLocation(), ilUtil::redirect(), ilUtil::sendInfo(), and ilUtil::stripSlashes().

        {
                global $rbacsystem;
                if (!$rbacsystem->checkAccess("write", $this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
                }
                else
                {
                        $data = $_POST;

                        // default language set?
                        if (!isset($data["default_language"]))
                        {
                                $this->ilias->raiseError($this->lng->txt("msg_no_default_language"),$this->ilias->error_obj->MESSAGE);
                        }

                        // prepare array fro further checks
                        foreach ($data["Fobject"] as $key => $val)
                        {
                                $langs[$key] = $val["lang"];
                        }

                        $langs = array_count_values($langs);

                        // all languages set?
                        if (array_key_exists("",$langs) &&
                                (count($data["Fobject"]) > 1 || $data["Fobject"][0]["title"] != ""))
                        {
                                $this->ilias->raiseError($this->lng->txt("msg_no_language_selected"),$this->ilias->error_obj->MESSAGE);
                        }

                        // no single language is selected more than once?
                        if (array_sum($langs) > count($langs))
                        {
                                $this->ilias->raiseError($this->lng->txt("msg_multi_language_selected"),$this->ilias->error_obj->MESSAGE);
                        }

                        // copy default translation to variable for object data entry
                        $_POST["Fobject"]["title"] = $_POST["Fobject"][$_POST["default_language"]]["title"];
                        $_POST["Fobject"]["desc"] = $_POST["Fobject"][$_POST["default_language"]]["desc"];

                        // first delete all translation entries...
                        $this->object->removeTranslations();

                        // ...and write new translations to object_translation
                        foreach ($data["Fobject"] as $key => $val)
                        {
                                if ($key == $data["default_language"])
                                {
                                        $default = 1;
                                }
                                else
                                {
                                        $default = 0;
                                }

                                if (trim($val["title"]) != "")
                                {
                                        $this->object->addTranslation(ilUtil::stripSlashes($val["title"]),ilUtil::stripSlashes($val["desc"]),$val["lang"],$default);
                                }
                        }

                        // bring back old translation, if no individual translation is given
                        if (trim($_POST["Fobject"]["title"]) == "")
                        {
                                $_POST["Fobject"]["title"] = "ILIAS";
                        }
                        
                        // update object data entry with default translation
                        $this->object->setTitle(ilUtil::stripSlashes($_POST["Fobject"]["title"]));
                        $this->object->setDescription(ilUtil::stripSlashes($_POST["Fobject"]["desc"]));
                        
                        //save custom icons
                        if ($this->ilias->getSetting("custom_icons"))
                        {
                                $this->object->saveIcons($_FILES["cont_big_icon"],
                                        $_FILES["cont_small_icon"], $_FILES["cont_tiny_icon"]);
                        }
                        
                        $this->update = $this->object->update();
                }

                include_once('Services/Container/classes/class.ilContainerSortingSettings.php');
                $settings = new ilContainerSortingSettings($this->object->getId());
                $settings->setSortMode((int) $_POST['sorting']);
                $settings->update();

                ilUtil::sendInfo($this->lng->txt("msg_obj_modified"),true);
                ilUtil::redirect($this->getReturnLocation("update",$this->ctrl->getTargetScript()."?".$this->link_params));
        }

Here is the call graph for this function:


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