Public Member Functions | Data Fields

ilCourseArchivesGUI Class Reference

Public Member Functions

 ilCourseArchivesGUI (&$content_gui)
 Constructor public.
executeCommand ()
 view ()
 confirmDeleteArchives ()
 delete ()
 addXMLArchive ()
 selectArchiveLanguage ()
 addHTMLArchive ()
 downloadArchives ()
 __showArchivesMenu ()
 __initCourseObject ()

Data Fields

 $container_obj
 $course_obj
 $tpl
 $ctrl
 $lng
 $tabs_gui

Detailed Description

Definition at line 34 of file class.ilCourseArchivesGUI.php.


Member Function Documentation

ilCourseArchivesGUI::__initCourseObject (  ) 

Definition at line 449 of file class.ilCourseArchivesGUI.php.

References $tree, and ilObjectFactory::getInstanceByRefId().

Referenced by ilCourseArchivesGUI().

        {
                global $tree;

                if($this->content_obj->getType() == 'crs')
                {
                        // Container is course
                        $this->course_obj =& $this->content_obj;
                }
                else
                {
                        $course_ref_id = $tree->checkForParentType($this->content_obj->getRefId(),'crs');
                        $this->course_obj =& ilObjectFactory::getInstanceByRefId($course_ref_id);
                }
                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCourseArchivesGUI::__showArchivesMenu (  ) 

Definition at line 427 of file class.ilCourseArchivesGUI.php.

Referenced by view().

        {
                if(!$this->is_tutor)
                {
                        return false;
                }
                $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");

                // create xml archive button
                $this->tpl->setCurrentBlock("btn_cell");
                $this->tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this, "addXMLArchive"));
                $this->tpl->setVariable("BTN_TXT", $this->lng->txt("crs_add_archive_xml"));
                $this->tpl->parseCurrentBlock();

                $this->tpl->setCurrentBlock("btn_cell");
                $this->tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this, "selectArchiveLanguage"));
                $this->tpl->setVariable("BTN_TXT", $this->lng->txt("crs_add_archive_html"));
                $this->tpl->parseCurrentBlock();
                
                return true;
        }

Here is the caller graph for this function:

ilCourseArchivesGUI::addHTMLArchive (  ) 

Definition at line 371 of file class.ilCourseArchivesGUI.php.

References $_POST, $ilErr, sendInfo(), and view().

        {
                global $ilAccess;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }
                
                $this->course_obj->initCourseArchiveObject();
                $this->course_obj->archives_obj->setLanguage($_POST['lang']);
                $this->course_obj->archives_obj->addHTML();

                sendInfo($this->lng->txt("crs_added_new_archive"));
                $this->view();

                return true;
        }

Here is the call graph for this function:

ilCourseArchivesGUI::addXMLArchive (  ) 

Definition at line 319 of file class.ilCourseArchivesGUI.php.

References $ilErr, sendInfo(), and view().

        {
                global $ilAccess;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }

                $this->course_obj->initCourseArchiveObject();
                $this->course_obj->archives_obj->addXML();
                
                sendInfo($this->lng->txt("crs_added_new_archive"));
                $this->view();

                return true;
        }

Here is the call graph for this function:

ilCourseArchivesGUI::confirmDeleteArchives (  ) 

Definition at line 248 of file class.ilCourseArchivesGUI.php.

References $_POST, $_SESSION, $counter, $ilErr, sendInfo(), ilUtil::switchColor(), and view().

        {
                global $ilAccess,$ilErr;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }

                if(!$_POST['archives'])
                {
                        sendInfo($this->lng->txt("crs_no_archives_selected"));
                        $this->view();
                        return false;
                }
                $_SESSION["crs_archives"] = $_POST["archives"];
                sendInfo($this->lng->txt("crs_sure_delete_selected_archives"));
                
                $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.crs_confirm_delete_archives.html','course');
                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TXT_ARCHIVE_NAME",$this->lng->txt('crs_file_name'));

                $this->course_obj->initCourseArchiveObject();
                $counter = 0;

                foreach($_POST['archives'] as $archive_id)
                {
                        $archive = $this->course_obj->archives_obj->getArchive($archive_id);
                        $this->tpl->setCurrentBlock("archives");

                        $this->tpl->setVariable("ARCHIVE_NAME",$archive['archive_name']);
                        $this->tpl->setVariable("CSS_ROW",ilUtil::switchColor($counter++,'tblrow1','tblrow2'));
                        $this->tpl->parseCurrentBlock();
                }
                
                $this->tpl->setVariable("DELETE",$this->lng->txt('delete'));
                $this->tpl->setVariable("CANCEL",$this->lng->txt('cancel'));

                return true;
        }

Here is the call graph for this function:

ilCourseArchivesGUI::delete (  ) 

Definition at line 290 of file class.ilCourseArchivesGUI.php.

References $_SESSION, $ilErr, sendInfo(), and view().

        {
                global $ilAccess,$ilErr;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }

                if(!$_SESSION['crs_archives'])
                {
                        sendInfo($this->lng->txt("crs_no_archives_selected"));
                        $this->view();
                }
                
                $this->course_obj->initCourseArchiveObject();
                foreach($_SESSION['crs_archives'] as $archive_id)
                {
                        $this->course_obj->archives_obj->delete($archive_id);
                }
                
                sendInfo($this->lng->txt('crs_archives_deleted'));
                unset($_SESSION["crs_archives"]);

                $this->view();
                return true;
        }

Here is the call graph for this function:

ilCourseArchivesGUI::downloadArchives (  ) 

Definition at line 391 of file class.ilCourseArchivesGUI.php.

References $_POST, $ilErr, ilUtil::deliverFile(), sendInfo(), and view().

        {
                global $ilAccess;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("read",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }

                $_POST["archives"] = $_POST["archives"] ? $_POST["archives"] : array();

                if(!count($_POST['archives']))
                {
                        sendInfo($this->lng->txt('crs_no_archive_selected'));
                        $this->view();

                        return false;
                }
                if(count($_POST['archives']) > 1)
                {
                        sendInfo($this->lng->txt('crs_select_one_archive'));
                        $this->view();

                        return false;
                }

                $this->course_obj->initCourseArchiveObject();
                
                $abs_path = $this->course_obj->archives_obj->getArchiveFile((int) $_POST['archives'][0]);
                $basename = basename($abs_path);

                ilUtil::deliverFile($abs_path,$basename);
        }

Here is the call graph for this function:

& ilCourseArchivesGUI::executeCommand (  ) 

Definition at line 65 of file class.ilCourseArchivesGUI.php.

References $cmd.

        {
                $cmd = $this->ctrl->getCmd();
                if (!$cmd = $this->ctrl->getCmd())
                {
                        $cmd = "view";
                }
                $this->$cmd();
        }

ilCourseArchivesGUI::ilCourseArchivesGUI ( &$  content_gui  ) 

Constructor public.

Definition at line 48 of file class.ilCourseArchivesGUI.php.

References $ilCtrl, $lng, $tpl, and __initCourseObject().

        {
                global $tpl,$ilCtrl,$lng,$ilObjDataCache,$ilTabs;

                $this->tpl =& $tpl;
                $this->ctrl =& $ilCtrl;
                $this->lng =& $lng;
                $this->tabs_gui =& $ilTabs;

                $this->content_gui =& $content_gui;
                $this->content_obj =& $this->content_gui->object;

                $this->__initCourseObject();
        }

Here is the call graph for this function:

ilCourseArchivesGUI::selectArchiveLanguage (  ) 

Definition at line 338 of file class.ilCourseArchivesGUI.php.

References $actions, $ilErr, and ilUtil::formSelect().

        {
                global $ilAccess;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }

                foreach($this->lng->getInstalledLanguages() as $lang_code)
                {
                        $actions["$lang_code"] = $this->lng->txt('lang_'.$lang_code);

                        if($this->lng->getLangKey() == $lang_code)
                        {
                                $selected = $lang_code;
                        }
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_selectLanguage.html","course");

                $this->tpl->setVariable("LANGUAGE_SELECTION",$this->lng->txt('crs_archive_language_selection'));
                $this->tpl->setVariable("LANGUAGE",$this->lng->txt('obj_lng'));
                $this->tpl->setVariable("INFO_TXT",$this->lng->txt('crs_select_archive_language'));
                $this->tpl->setVariable("SELECT_FORMACTION",$this->ctrl->getFormAction($this));
                $this->tpl->setVariable("LANG_SELECTOR",ilUtil::formSelect($selected,'lang',$actions,false,true));
                $this->tpl->setVariable("TXT_CANCEL",$this->lng->txt('cancel'));
                $this->tpl->setVariable("TXT_SUBMIT",$this->lng->txt('crs_add_html_archive'));

                return true;
        }

Here is the call graph for this function:

ilCourseArchivesGUI::view (  ) 

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

References $_GET, $counter, $ilErr, $tbl, $type, __showArchivesMenu(), ilFormat::formatUnixTime(), ilUtil::formCheckbox(), ilUtil::getImagePath(), and ilUtil::switchColor().

Referenced by addHTMLArchive(), addXMLArchive(), confirmDeleteArchives(), delete(), and downloadArchives().

        {
                global $ilAccess,$ilErr;

                // MINIMUM ACCESS LEVEL = 'write'
                if(!$ilAccess->checkAccess("read",'',$this->course_obj->getRefId()))
                {
                        $ilErr->raiseError($this->lng->txt('msg_no_perm_write'),$ilErr->MESSAGE);
                }


                $this->is_tutor = $ilAccess->checkAccess('write','',$this->course_obj->getRefId());
                $this->download_allowed = ($this->is_tutor or $this->course_obj->getArchiveType() == $this->course_obj->ARCHIVE_DOWNLOAD);
                
                $this->course_obj->initCourseArchiveObject();
                $this->course_obj->archives_obj->initCourseFilesObject();
                

                $archives = $this->is_tutor ? 
                        $this->course_obj->archives_obj->getArchives() :
                        $this->course_obj->archives_obj->getPublicArchives();

                require_once("classes/class.ilTableGUI.php");
                $tbl = new ilTableGUI();

                $this->__showArchivesMenu();
                $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
                $this->tpl->addBlockfile("TBL_CONTENT","tbl_content","tpl.crs_archives_row.html",'course');
                
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
                
                $tbl->setTitle($this->lng->txt("crs_header_archives"));


                if($this->download_allowed or $this->is_tutor)
                {
                        $header_names = array('',
                                                                  $this->lng->txt("type"),
                                                                  $this->lng->txt("crs_file_name"),
                                                                  $this->lng->txt("crs_size"),
                                                                  $this->lng->txt("crs_create_date"),
                                                                  $this->lng->txt("crs_archive_lang"));

                        $header_vars = array("",
                                                                 "type",
                                                                 "name",
                                                                 "size",
                                                                 "date",
                                                                 "lang");
                        $column_width = array("1%","9%","30%","20%","20%","20%");
                        $this->tpl->setVariable("COLUMN_COUNTS",6);
                }
                else
                {
                        $header_names = array($this->lng->txt("type"),
                                                                  $this->lng->txt("crs_file_name"),
                                                                  $this->lng->txt("crs_create_date"),
                                                                  $this->lng->txt("crs_size"),
                                                                  $this->lng->txt("crs_archive_lang"));
                        
                        $header_vars = array("type",
                                                                 "name",
                                                                 "date",
                                                                 "size",
                                                                 "lang");
                        $column_width = array("10%","30%","20%","20%","20%");
                        $this->tpl->setVariable("COLUMN_COUNTS",5);
                }
                
                $tbl->setHeaderNames($header_names);
                $tbl->setHeaderVars($header_vars,
                                                        array("ref_id" => $this->course_obj->getRefId(),
                                                                  "cmd" => "view",
                                                                  "cmdClass" => strtolower(get_class($this))));
                $tbl->setColumnWidth($column_width);


                // control
                $tbl->setOrderColumn($_GET["sort_by"]);
                $tbl->setOrderDirection($_GET["sort_order"]);
                $tbl->setLimit($_GET["limit"]);
                $tbl->setOffset($_GET["offset"]);
                $tbl->disable("sort");

                if($this->download_allowed)
                {
                        $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
                        if($this->is_tutor)
                        {
                                // delete
                                $this->tpl->setCurrentBlock("tbl_action_btn");
                                $this->tpl->setVariable("BTN_NAME", "confirmDeleteArchives");
                                $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
                                $this->tpl->parseCurrentBlock();
                        }
                        
                        // download
                        $this->tpl->setCurrentBlock("tbl_action_btn");
                        $this->tpl->setVariable("BTN_NAME", "downloadArchives");
                        $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
                        $this->tpl->parseCurrentBlock();
                }

                $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
                $tbl->setMaxCount(count($archives));
                $archives = array_slice($archives,$_GET['offset'],$_GET['limit']);
                $tbl->render();

                if(!count($archives))
                {
                        $this->tpl->setCurrentBlock("notfound");
                        $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
                        $this->tpl->setVariable("NUM_COLS",6);
                        $this->tpl->parseCurrentBlock();
                }


                $counter = 0;
                foreach($archives as $archive_data)
                {
                        $this->tpl->setCurrentBlock("tbl_content");
                        $this->tpl->setVariable("CSS_ROW",ilUtil::switchColor($counter++,'tblrow1','tblrow2'));


                        if($this->download_allowed)
                        {
                                $this->tpl->setVariable("VAL_CHECK",ilUtil::formCheckbox(0,"archives[]",$archive_data['archive_id']));
                        }
                        // Type
                        switch($archive_data["archive_type"])
                        {
                                case $this->course_obj->archives_obj->ARCHIVE_XML:
                                        $type = $this->lng->txt("crs_xml");
                                        break;

                                case $this->course_obj->archives_obj->ARCHIVE_HTML:
                                        $type = $this->lng->txt("crs_html");
                                        break;

                                case $this->course_obj->archives_obj->ARCHIVE_PDF:
                                        $type = $this->lng->txt("crs_pdf");
                                        break;
                        }
                        $this->tpl->setVariable("VAL_TYPE",$type);

                        // Name
                        if($archive_data['archive_type'] == $this->course_obj->archives_obj->ARCHIVE_HTML)
                        {
                                $link = '<a href="'.$this->course_obj->archives_obj->course_files_obj->getOnlineLink($archive_data['archive_name']).'"'.
                                        ' target="_blank">'.$archive_data["archive_name"].'</a>';
                        }
                        else
                        {
                                $link = $archive_data['archive_name'];
                        }

                        $this->tpl->setVariable("VAL_NAME",$link);
                        $this->tpl->setVariable("VAL_SIZE",$archive_data['archive_size']);
                        $this->tpl->setVariable("VAL_DATE",ilFormat::formatUnixTime($archive_data['archive_name'],true));
                        if($archive_data["archive_lang"])
                        {
                                $this->tpl->setVariable("VAL_LANG",$this->lng->txt('lang_'.$archive_data["archive_lang"]));
                        }
                        else
                        {
                                $this->tpl->setVariable("VAL_LANG",$this->lng->txt('crs_not_available'));
                        }
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

ilCourseArchivesGUI::$container_obj

Definition at line 36 of file class.ilCourseArchivesGUI.php.

ilCourseArchivesGUI::$course_obj

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

ilCourseArchivesGUI::$ctrl

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

ilCourseArchivesGUI::$lng

Definition at line 41 of file class.ilCourseArchivesGUI.php.

Referenced by ilCourseArchivesGUI().

ilCourseArchivesGUI::$tabs_gui

Definition at line 42 of file class.ilCourseArchivesGUI.php.

ilCourseArchivesGUI::$tpl

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

Referenced by ilCourseArchivesGUI().


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