Public Member Functions | Data Fields

ilLMPresentationGUI Class Reference
[Modules/IliasLearningModule]

Class ilLMPresentationGUI. More...

Public Member Functions

 ilLMPresentationGUI ()
executeCommand ()
 execute command
 setOfflineMode ($a_offline=true)
 set offline mode (content is generated for offline package)
 offlineMode ()
 checks wether offline content generation is activated
 setExportFormat ($a_format)
 set export format
 getExportFormat ()
 get export format
 nop ()
 this dummy function is needed for offline package creation
 lmAccess ($usr_id, $lm_id, $obj_id)
 logs access to lm objects to enable retrieval of a 'last viewed lm list' and 'return to last lm' allows only ONE entry per user and lm object
 export ()
 calls export of digilib-object at this point other lm-objects can be exported
 offlineexport ()
 the different export types are processed here
 offlineexportform ()
 draws export-form on screen
 exportbibinfo ()
 export bibinfo for download or copy/paste
 attrib2arr ($a_attributes)
 getCurrentFrameSet ()
 get frames of current frame set
 layout ($a_xml="main.xml", $doShow=true)
 generates frame layout
 fullscreen ()
 media ()
 glossary ()
 ilMainMenu ()
 output main menu
 ilTOC ($a_target)
 table of contents
 ilLMMenu ()
 output learning module menu
 ilLMSubMenu ()
 output learning module submenu
 ilLMNotes ()
 output notes of page
 ilLocator ()
 locator
 getCurrentPageId ()
 mapCurrentPageId ($current_page_id)
 ilTranslation (&$a_page_node)
 ilCitation ()
 getLayoutLinkTargets ()
 ilPage (&$a_page_node, $a_page_id=0)
 process <ilPage> content tag
 showPreconditionsOfPage ()
 show preconditions of the page
 getLinkXML ($a_int_links, $a_layoutframes)
 get xml for links
 ilGlossary ()
 show glossary term
 ilMedia ()
 output media
 ilLMNavigation ()
 inserts sequential learning module navigation at template variable LMNAVIGATION_CONTENT
 processNodes (&$a_content, &$a_node)
 buildTag ($type, $name, $attr="")
 generate a tag with given name and attributes
 showTableOfContents ()
 table of contents
 infoScreen ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed
 showInfoScreen ()
 info screen call from inside learning module
 outputInfoScreen ($a_standard_locator=false)
 info screen
 showPrintViewSelection ()
 show selection screen for print view
 showPrintView ()
 show print view
 setSessionVars ()
 downloadFile ()
 download file of file lists
 download_paragraph ()
 download source code paragraph
 showDownloadList ()
 show download list
 downloadExportFile ()
 send download file (xml/html)
 getLink ($a_ref_id, $a_cmd="", $a_obj_id="", $a_frame="", $a_type="", $a_back_link="append")
 handles links for learning module presentation
 showNoPublicAccess ()
 getSourcecodeDownloadLink ()
 setOfflineDirectory ($offdir)
 set offline directory to offdir
 getOfflineDirectory ()
 get offline directory
 handleCodeParagraph ($page_id, $paragraph_id, $title, $text)
 store paragraph into file directory files/codefile_$pg_id_$paragraph_id/downloadtitle

Data Fields

 $ilias
 $lm
 $tpl
 $lng
 $layout_doc
 $offline
 $offline_directory

Detailed Description

Class ilLMPresentationGUI.

GUI class for learning module presentation

Author:
Alex Killing <alex.killing@gmx.de>
Version:
Id:
class.ilLMPresentationGUI.php 14714 2007-09-16 18:48:10Z akill

ilLMPresentationGUI: ilNoteGUI, ilInfoScreenGUI, ilPaymentPurchaseGUI

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


Member Function Documentation

ilLMPresentationGUI::attrib2arr ( a_attributes  ) 

Definition at line 519 of file class.ilLMPresentationGUI.php.

Referenced by layout(), and processNodes().

        {
                $attr = array();
                if(!is_array($a_attributes))
                {
                        return $attr;
                }
                foreach ($a_attributes as $attribute)
                {
                        $attr[$attribute->name()] = $attribute->value();
                }
                return $attr;
        }

Here is the caller graph for this function:

ilLMPresentationGUI::buildTag ( type,
name,
attr = "" 
)

generate a tag with given name and attributes

Parameters:
string "start" | "end" | "" for starting or ending tag or complete tag
string element/tag name
array array of attributes

Definition at line 2265 of file class.ilLMPresentationGUI.php.

References $type.

Referenced by layout(), and processNodes().

        {
                $tag = "<";

                if ($type == "end")
                        $tag.= "/";

                $tag.= $name;

                if (is_array($attr))
                {
                        while (list($k,$v) = each($attr))
                                $tag.= " ".$k."=\"$v\"";
                }

                if ($type == "")
                        $tag.= "/";

                $tag.= ">\n";

                return $tag;
        }

Here is the caller graph for this function:

ilLMPresentationGUI::download_paragraph (  ) 

download source code paragraph

Definition at line 3160 of file class.ilLMPresentationGUI.php.

References $_GET.

        {
                require_once("content/classes/Pages/class.ilPageObject.php");
                $pg_obj =& new ilPageObject($this->lm->getType(), $_GET["pg_id"]);
                $pg_obj->send_paragraph ($_GET["par_id"], $_GET["downloadtitle"]);
        }

ilLMPresentationGUI::downloadExportFile (  ) 

send download file (xml/html)

Definition at line 3326 of file class.ilLMPresentationGUI.php.

References $_GET, $dir, $file, ilUtil::deliverFile(), and exit.

        {
                $file = $this->lm->getPublicExportFile($_GET["type"]);
                if ($this->lm->getPublicExportFile($_GET["type"]) != "")
                {
                        $dir = $this->lm->getExportDirectory($_GET["type"]);
                        if (is_file($dir."/".$file))
                        {
                                ilUtil::deliverFile($dir."/".$file, $file);
                                exit;
                        }
                }
                $this->ilias->raiseError($this->lng->txt("file_not_found"),$this->ilias->error_obj->MESSAGE);
        }

Here is the call graph for this function:

ilLMPresentationGUI::downloadFile (  ) 

download file of file lists

Definition at line 3148 of file class.ilLMPresentationGUI.php.

References $_GET, $file, and exit.

        {
                $file = explode("_", $_GET["file_id"]);
                require_once("classes/class.ilObjFile.php");
                $fileObj =& new ilObjFile($file[count($file) - 1], false);
                $fileObj->sendFile();
                exit;
        }

& ilLMPresentationGUI::executeCommand (  ) 

execute command

Definition at line 134 of file class.ilLMPresentationGUI.php.

References $_GET, $_POST, $cmd, $pa, ilPaymentObject::_hasAccess(), ilLocator(), layout(), lmAccess(), and outputInfoScreen().

        {

                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd("layout");

                $cmd = (isset($_POST['cmd']['citation']))
                        ? "ilCitation"
                        : $cmd;

                // ### AA 03.09.01 added page access logger ###
                $this->lmAccess($this->ilias->account->getId(),$_GET["ref_id"],$_GET["obj_id"]);

                switch($next_class)
                {
                        case "ilnotegui":
                                $ret =& $this->layout();
                                break;
                                
                        case "ilinfoscreengui":
                                $ret =& $this->outputInfoScreen();
                                break;
                                
                        case 'ilpaymentpurchasegui':
                                $this->tpl->getStandardTemplate();
                                $this->ilLocator();
                                        
                                include_once("./payment/classes/class.ilPaymentPurchaseGUI.php");
                                $pa =& new ilPaymentPurchaseGUI((int) $_GET['ref_id']);
                                $ret =& $this->ctrl->forwardCommand($pa);
                                $this->tpl->show();
                                break;

                        default:
                                include_once './payment/classes/class.ilPaymentObject.php';
                                
                                if(!ilPaymentObject::_hasAccess($_GET['ref_id']))
                                {
                                        $this->tpl->getStandardTemplate();
                                        $this->ilLocator();
                
                                        // payment
                                        include_once("./payment/classes/class.ilPaymentPurchaseGUI.php");
                                        $pa =& new ilPaymentPurchaseGUI((int) $_GET['ref_id']);
                                        $this->ctrl->setCmd("showDetails");
                                        $ret =& $this->ctrl->forwardCommand($pa);
                                        $this->tpl->show();
                                        return true;
                                }
                         
                                $ret =& $this->$cmd();
                                break;
                }
        }

Here is the call graph for this function:

ilLMPresentationGUI::export (  ) 

calls export of digilib-object at this point other lm-objects can be exported

Parameters:
@access public
Returns:

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

        {
                switch($this->lm->getType())
                {
                        case "dbk":
                                $this->lm_gui->export();
                                break;
                }
        }

ilLMPresentationGUI::exportbibinfo (  ) 

export bibinfo for download or copy/paste

Parameters:
@access public
Returns:

Definition at line 476 of file class.ilLMPresentationGUI.php.

References $_GET, $query, $result, ilUtil::deliverData(), exit, ilObjStyleSheet::getContentStylePath(), ilUtil::getStyleSheetLocation(), and ilObjStyleSheet::getSyntaxStylePath().

        {
                $query = "SELECT * FROM object_reference,object_data WHERE object_reference.ref_id='".$_GET["ref_id"]."' AND object_reference.obj_id=object_data.obj_id ";
                $result = $this->ilias->db->query($query);

                $objRow = $result->fetchRow(DB_FETCHMODE_ASSOC);

                $filename = preg_replace('/[^a-z0-9_]/i', '_', $objRow["title"]);

                $C = $this->lm_gui->showAbstract(array(1));

                if ($_GET["print"]==1)
                {
                        $printTpl = new ilTemplate("tpl.print.html", true, true, true);
                        $printTpl->touchBlock("printreq");
                        $css1 = ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId());
                        $css2 = ilUtil::getStyleSheetLocation();
                        $printTpl->setVariable("LOCATION_CONTENT_STYLESHEET", $css1 );

                        $printTpl->setVariable("LOCATION_STYLESHEET", $css2);

                        // syntax style
                        $printTpl->setCurrentBlock("SyntaxStyle");
                        $printTpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                                ilObjStyleSheet::getSyntaxStylePath());
                        $printTpl->parseCurrentBlock();

                        $printTpl->setVariable("CONTENT",$C);

                        echo $printTpl->get();
                        exit;
                }
                else
                {
                        ilUtil::deliverData($C, $filename.".html");
                        exit;
                }

        }

Here is the call graph for this function:

ilLMPresentationGUI::fullscreen (  ) 

Definition at line 792 of file class.ilLMPresentationGUI.php.

References layout(), and offlineMode().

        {
                return $this->layout("fullscreen.xml", !$this->offlineMode());
        }

Here is the call graph for this function:

ilLMPresentationGUI::getCurrentFrameSet (  ) 

get frames of current frame set

Definition at line 536 of file class.ilLMPresentationGUI.php.

        {
                return $this->frames;
        }

ilLMPresentationGUI::getCurrentPageId (  ) 

Definition at line 1194 of file class.ilLMPresentationGUI.php.

References $_GET, $obj_id, ilLMObject::_isPagePublic(), ilLMObject::_lookupActive(), and exit.

Referenced by getLink(), ilCitation(), ilLMNavigation(), ilLMNotes(), ilLMSubMenu(), ilPage(), ilTOC(), ilTranslation(), showNoPublicAccess(), and showPreconditionsOfPage().

        {
                global $ilUser;

                // determine object id
                if(empty($_GET["obj_id"]))
                {
                        $obj_id = $this->lm_tree->getRootId();
                }
                else
                {
                        $obj_id = $_GET["obj_id"];
                }

                // obj_id not in tree -> it is a unassigned page -> return page id
                if (!$this->lm_tree->isInTree($obj_id))
                {
                        return $obj_id;
                }

                $curr_node = $this->lm_tree->getNodeData($obj_id);
                
                if ($curr_node["type"] == "pg" &&
                        ilLMPageObject::_lookupActive($obj_id))         // page in tree -> return page id
                {
                        $page_id = $curr_node["obj_id"];
                }
                else            // no page -> search for next page and return its id
                {
                        $succ_node = true;
                        $active = false;
                        $page_id = $obj_id;
                        while($succ_node && !$active)
                        {
                                $succ_node = $this->lm_tree->fetchSuccessorNode($page_id, "pg");
                                $page_id = $succ_node["obj_id"];
                                $active = ilLMPageObject::_lookupActive($page_id);
                        }

                        if ($succ_node["type"] != "pg")
                        {
                                $this->tpl = new ilTemplate("tpl.main.html", true, true);
                                $this->ilias->raiseError($this->lng->txt("cont_no_page"),$this->ilias->error_obj->FATAL);
                                $this->tpl->show();
                                exit;
                        }

                        // if public access get first public page in chapter
                        if ($ilUser->getId() == ANONYMOUS_USER_ID and $this->lm_gui->object->getPublicAccessMode() == "selected")
                        {
                                $public = ilLMObject::_isPagePublic($page_id);

                                while ($public === false)
                                {
                                        $succ_node = $this->lm_tree->fetchSuccessorNode($page_id, "pg");
                                        $page_id = $succ_node["obj_id"];
                                        $public = ilLMObject::_isPagePublic($page_id);
                                }
                        }
                }

                return $page_id;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::getExportFormat (  ) 

get export format

Returns:
string export format

Definition at line 222 of file class.ilLMPresentationGUI.php.

Referenced by getLinkXML(), ilLMMenu(), layout(), and showTableOfContents().

        {
                return $this->export_format;
        }

Here is the caller graph for this function:

ilLMPresentationGUI::getLayoutLinkTargets (  ) 

Definition at line 1347 of file class.ilLMPresentationGUI.php.

References $res, $type, xpath_eval(), and xpath_new_context().

Referenced by ilGlossary(), ilMedia(), ilPage(), and ilTranslation().

        {

                if (!is_object($this->layout_doc))
                        return array ();

                $xpc = xpath_new_context($this->layout_doc);

                $path = "/ilLayout/ilLinkTargets/LinkTarget";
                $res = xpath_eval($xpc, $path);
                $targets = array();
                for ($i = 0; $i < count($res->nodeset); $i++)
                {
                        $type = $res->nodeset[$i]->get_attribute("Type");
                        $frame = $res->nodeset[$i]->get_attribute("Frame");
                        $targets[$type] = array("Type" => $type, "Frame" => $frame);
                }
                return $targets;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::getLink ( a_ref_id,
a_cmd = "",
a_obj_id = "",
a_frame = "",
a_type = "",
a_back_link = "append" 
)

handles links for learning module presentation

Definition at line 3344 of file class.ilLMPresentationGUI.php.

References $_GET, $ilCtrl, ilLMObject::_lookupNID(), getCurrentPageId(), and offlineMode().

Referenced by getLinkXML(), ilLMNavigation(), ilLocator(), ilMedia(), ilPage(), ilTOC(), processNodes(), showPreconditionsOfPage(), and showTableOfContents().

        {
                global $ilCtrl;
                
                if ($a_cmd == "")
                {
                        $a_cmd = "layout";
                }
                
                // handling of free pages
                $cur_page_id = $this->getCurrentPageId();
                $back_pg = $_GET["back_pg"];
                if ($a_obj_id != "" && !$this->lm_tree->isInTree($a_obj_id) && $cur_page_id != "" &&
                        $a_back_link == "append")
                {
                        if ($back_pg != "")
                        {
                                $back_pg = $cur_page_id.":".$back_pg;
                        }
                        else
                        {
                                $back_pg = $cur_page_id;
                        }
                }
                else
                {
                        if ($a_back_link == "reduce")
                        {
                                $limpos = strpos($_GET["back_pg"], ":");

                                if ($limpos > 0)
                                {
                                        $back_pg = substr($back_pg, strpos($back_pg, ":") + 1);
                                }
                                else
                                {
                                        $back_pg = "";
                                }
                        }
                        else if ($a_back_link != "keep")
                        {
                                $back_pg = "";
                        }
                }
                
                // handle online links
                if (!$this->offlineMode())
                {
                        switch ($a_cmd)
                        {
                                case "fullscreen":
                                        $link = $this->ctrl->getLinkTarget($this, "fullscreen");
                                        break;
                                
                                default:
                                        
                                        if ($back_pg != "")
                                        {
                                                $this->ctrl->setParameter($this, "back_pg", $back_pg);
                                        }
                                        if ($a_frame != "")
                                        {
                                                $this->ctrl->setParameter($this, "frame", $a_frame);
                                        }
                                        if ($a_obj_id != "")
                                        {
                                                switch ($a_type)
                                                {
                                                        case "MediaObject":
                                                                $this->ctrl->setParameter($this, "mob_id", $a_obj_id);
                                                                break;
                                                                
                                                        default:
                                                                $this->ctrl->setParameter($this, "obj_id", $a_obj_id);
                                                                $link.= "&amp;obj_id=".$a_obj_id;
                                                                break;
                                                }
                                        }
                                        if ($a_type != "")
                                        {
                                                $this->ctrl->setParameter($this, "obj_type", $a_type);
                                        }
                                        $link = $this->ctrl->getLinkTarget($this, $a_cmd);
                                        $link = str_replace("&", "&amp;", $link);
                                        
                                        $this->ctrl->setParameter($this, "frame", "");
                                        $this->ctrl->setParameter($this, "obj_id", "");
                                        $this->ctrl->setParameter($this, "mob_id", "");
                                        break;
                        }
                }
                else    // handle offline links
                {
                        switch ($a_cmd)
                        {
                                case "downloadFile":
                                        break;
                                        
                                case "fullscreen":
                                        $link = "fullscreen.html";              // id is handled by xslt
                                        break;
                                        
                                case "layout":
                                
                                        if ($a_obj_id == "")
                                        {
                                                $a_obj_id = $this->lm_tree->getRootId();
                                                $pg_node = $this->lm_tree->fetchSuccessorNode($a_obj_id, "pg");
                                                $a_obj_id = $pg_node["obj_id"];
                                        }
                                        if ($a_type == "StructureObject")
                                        {
                                                $pg_node = $this->lm_tree->fetchSuccessorNode($a_obj_id, "pg");
                                                $a_obj_id = $pg_node["obj_id"];
                                        }
                                        if ($a_frame != "")
                                        {
                                                if ($a_frame != "toc")
                                                {
                                                        $link = "frame_".$a_obj_id."_".$a_frame.".html";
                                                }
                                                else    // don't save multiple toc frames (all the same)
                                                {
                                                        $link = "frame_".$a_frame.".html";
                                                }                                               
                                        }
                                        else
                                        {
                                                if ($nid = ilLMObject::_lookupNID($this->lm->getId(), $a_obj_id, "pg"))
                                                {
                                                        $link = "lm_pg_".$nid.".html";
                                                }
                                                else
                                                {
                                                        $link = "lm_pg_".$a_obj_id.".html";
                                                }
                                        }
                                        break;
                                        
                                case "glossary":
                                        $link = "term_".$a_obj_id.".html";
                                        break;
                                
                                case "media":
                                        $link = "media_".$a_obj_id.".html";
                                        break;
                                        
                                default:
                                        break;
                        }
                }
                
                $this->ctrl->clearParameters($this);
                
                return $link;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::getLinkXML ( a_int_links,
a_layoutframes 
)

get xml for links

Definition at line 1646 of file class.ilLMPresentationGUI.php.

References $_GET, $lm_id, $obj_id, $target_arr, $target_id, $type, ilFrameTargetInfo::_getFrame(), ilLMObject::_lookupContObjID(), _lookupObjId(), ilObject::_lookupType(), getExportFormat(), getLink(), and offlineMode().

Referenced by ilGlossary(), ilMedia(), and ilPage().

        {
                // Determine whether the view of a learning resource should
                // be shown in the frameset of ilias, or in a separate window.
                //$showViewInFrameset = $this->ilias->ini->readVariable("layout","view_target") == "frame";
                $showViewInFrameset = true;

                if ($a_layoutframes == "")
                {
                        $a_layoutframes = array();
                }
                $link_info = "<IntLinkInfos>";
                foreach ($a_int_links as $int_link)
                {
                        $target = $int_link["Target"];
                        if (substr($target, 0, 4) == "il__")
                        {
                                $target_arr = explode("_", $target);
                                $target_id = $target_arr[count($target_arr) - 1];
                                $type = $int_link["Type"];
                                $targetframe = ($int_link["TargetFrame"] != "")
                                        ? $int_link["TargetFrame"]
                                        : "None";

                                switch($type)
                                {
                                        case "PageObject":
                                        case "StructureObject":
                                                $lm_id = ilLMObject::_lookupContObjID($target_id);
                                                if ($lm_id == $this->lm->getId() ||
                                                        ($targetframe != "None" && $targetframe != "New"))
                                                {
                                                        $ltarget = $a_layoutframes[$targetframe]["Frame"];
                                                        //$nframe = ($ltarget == "")
                                                        //      ? $_GET["frame"]
                                                        //      : $ltarget;
                                                        $nframe = ($ltarget == "")
                                                                ? ""
                                                                : $ltarget;
                                                        if ($ltarget == "")
                                                        {
                                                                if ($showViewInFrameset) {
                                                                        $ltarget="_parent";
                                                                } else {
                                                                        $ltarget="_top";
                                                                }
                                                        }
                                                        // scorm always in 1window view and link target
                                                        // is always same frame
                                                        if ($this->getExportFormat() == "scorm" &&
                                                                $this->offlineMode())
                                                        {
                                                                $ltarget = "";
                                                        }
                                                        $href =
                                                                $this->getLink($_GET["ref_id"], "layout", $target_id, $nframe, $type);
                                                }
                                                else
                                                {
                                                        if (!$this->offlineMode())
                                                        {
                                                                if ($type == "PageObject")
                                                                {
                                                                        $href = "./goto.php?target=pg_".$target_id;
                                                                }
                                                                else
                                                                {
                                                                        $href = "./goto.php?target=st_".$target_id;
                                                                }
                                                        }
                                                        else
                                                        {
                                                                if ($type == "PageObject")
                                                                {
                                                                        $href = ILIAS_HTTP_PATH."/goto.php?target=pg_".$target_id."&amp;client_id=".CLIENT_ID;
                                                                }
                                                                else
                                                                {
                                                                        $href = ILIAS_HTTP_PATH."/goto.php?target=st_".$target_id."&amp;client_id=".CLIENT_ID;
                                                                }
                                                        }
                                                        $ltarget = ilFrameTargetInfo::_getFrame("MainContent");
                                                }
                                                break;

                                        case "GlossaryItem":
                                                if ($targetframe == "None")
                                                {
                                                        $targetframe = "Glossary";
                                                }
                                                $ltarget = $a_layoutframes[$targetframe]["Frame"];
                                                $nframe = ($ltarget == "")
                                                        ? $_GET["frame"]
                                                        : $ltarget;
                                                $href =
                                                        $this->getLink($_GET["ref_id"], $a_cmd = "glossary", $target_id, $nframe, $type);
                                                break;

                                        case "MediaObject":
                                                $ltarget = $a_layoutframes[$targetframe]["Frame"];
                                                $nframe = ($ltarget == "")
                                                        ? $_GET["frame"]
                                                        : $ltarget;
                                                $href =
                                                        $this->getLink($_GET["ref_id"], $a_cmd = "media", $target_id, $nframe, $type);
                                                break;

                                        case "RepositoryItem":
                                                $obj_type = ilObject::_lookupType($target_id, true);
                                                $obj_id = ilObject::_lookupObjId($target_id);
                                                if (!$this->offlineMode())
                                                {
                                                        $href = "./goto.php?target=".$obj_type."_".$target_id;
                                                }
                                                else
                                                {
                                                        $href = ILIAS_HTTP_PATH."/goto.php?target=".$obj_type."_".$target_id."&amp;client_id=".CLIENT_ID;
                                                }
                                                $ltarget = ilFrameTargetInfo::_getFrame("MainContent");
                                                break;

                                }
                                $link_info.="<IntLinkInfo Target=\"$target\" Type=\"$type\" ".
                                        "TargetFrame=\"$targetframe\" LinkHref=\"$href\" LinkTarget=\"$ltarget\" />";

                                // set equal link info for glossary links of target "None" and "Glossary"
                                /*
                                if ($targetframe=="None" && $type=="GlossaryItem")
                                {
                                        $link_info.="<IntLinkInfo Target=\"$target\" Type=\"$type\" ".
                                                "TargetFrame=\"Glossary\" LinkHref=\"$href\" LinkTarget=\"$ltarget\" />";
                                }*/
                        }
                }
                $link_info.= "</IntLinkInfos>";

                return $link_info;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::getOfflineDirectory (  ) 

get offline directory

Returns:
directory where to store offline files

current used in code paragraph

Definition at line 3560 of file class.ilLMPresentationGUI.php.

Referenced by handleCodeParagraph(), and ilPage().

                                        {
                return $this->offline_directory;
        }

Here is the caller graph for this function:

ilLMPresentationGUI::getSourcecodeDownloadLink (  ) 

Definition at line 3528 of file class.ilLMPresentationGUI.php.

References ilUtil::appendUrlParameterString(), and offlineMode().

Referenced by ilPage().

                                             {
                if (!$this->offlineMode())
                {
                        //$this->ctrl->setParameter($this, session_name(), session_id());
                        $target = $this->ctrl->getLinkTarget($this, "");
                        $target = ilUtil::appendUrlParameterString($target, session_name()."=".session_id());
                        return $this->ctrl->getLinkTarget($this, "");
                }
                else
                {
                        return "";
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::glossary (  ) 

Definition at line 809 of file class.ilLMPresentationGUI.php.

References $_GET, ilUtil::getStyleSheetLocation(), ilGlossary(), layout(), and offlineMode().

        {
                if ($_GET["frame"] != "_blank")
                {
                        $this->layout();
                }
                else
                {
                        $this->tpl = new ilTemplate("tpl.glossary_term_output.html", true, true, true);
                        $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());

                        // set style sheets
                        if (!$this->offlineMode())
                        {
                                $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                        }
                        else
                        {
                                $style_name = $this->ilias->account->prefs["style"].".css";;
                                $this->tpl->setVariable("LOCATION_STYLESHEET","./".$style_name);
                        }

                        $this->ilGlossary($child);
                        if (!$this->offlineMode())
                        {
                                $this->tpl->show();
                        }
                        else
                        {
                                return $this->tpl->get();
                        }
                }
        }

Here is the call graph for this function:

ilLMPresentationGUI::handleCodeParagraph ( page_id,
paragraph_id,
title,
text 
)

store paragraph into file directory files/codefile_$pg_id_$paragraph_id/downloadtitle

Definition at line 3568 of file class.ilLMPresentationGUI.php.

References $file, $title, getOfflineDirectory(), and ilUtil::makeDirParents().

                                                                              {
                $directory = $this->getOfflineDirectory()."/codefiles/".$page_id."/".$paragraph_id;
                ilUtil::makeDirParents ($directory);
                $file = $directory."/".$title;
                if (!($fp = @fopen($file,"w+")))
                {
                        die ("<b>Error</b>: Could not open \"".$file."\" for writing".
                                " in <b>".__FILE__."</b> on line <b>".__LINE__."</b><br />");
                }               
                chmod($file, 0770);
                fwrite($fp, $text);
                fclose($fp);
        }

Here is the call graph for this function:

ilLMPresentationGUI::ilCitation (  ) 

Definition at line 1331 of file class.ilLMPresentationGUI.php.

References getCurrentPageId(), and ilLocator().

        {
                $page_id = $this->getCurrentPageId();
                $this->tpl = new ilTemplate("tpl.page.html",true,true,true);
                $this->ilLocator();
                $this->tpl->setVariable("MENU",$this->lm_gui->setilCitationMenu());

                include_once("content/classes/Pages/class.ilPageObject.php");

                $this->pg_obj =& new ilPageObject($this->lm->getType(),$page_id);
                $xml = $this->pg_obj->getXMLContent();
                $this->lm_gui->showCitation($xml);
                $this->tpl->show();
        }

Here is the call graph for this function:

ilLMPresentationGUI::ilGlossary (  ) 

show glossary term

Definition at line 1789 of file class.ilLMPresentationGUI.php.

References $_GET, $ilBench, ilObjStyleSheet::getContentStylePath(), getLayoutLinkTargets(), getLinkXML(), ilObjStyleSheet::getSyntaxStylePath(), and offlineMode().

Referenced by glossary(), and layout().

        {
                global $ilBench;

                $ilBench->start("ContentPresentation", "ilGlossary");

                //require_once("content/classes/Pages/class.ilPageObjectGUI.php");
                //require_once("content/classes/class.ilLMPageObject.php");

                require_once("content/classes/class.ilGlossaryTermGUI.php");
                $term_gui =& new ilGlossaryTermGUI($_GET["obj_id"]);

                // content style
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                // syntax style
                $this->tpl->setCurrentBlock("SyntaxStyle");

                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                                ilObjStyleSheet::getSyntaxStylePath());
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                                "syntaxhighlight.css");
                }
                $this->tpl->parseCurrentBlock();

                $int_links = $term_gui->getInternalLinks();
                $link_xml = $this->getLinkXML($int_links, $this->getLayoutLinkTargets());
                $term_gui->setLinkXML($link_xml);

                $term_gui->output($this->offlineMode(), "content/");
                //$term_gui->listDefinitions($this->offlineMode());

                $ilBench->stop("ContentPresentation", "ilGlossary");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilLMMenu (  ) 

output learning module menu

Definition at line 979 of file class.ilLMPresentationGUI.php.

References getExportFormat().

Referenced by layout().

        {
                $this->tpl->setVariable("MENU", $this->lm_gui->setilLMMenu($this->offlineMode()
                        ,$this->getExportFormat()));
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilLMNavigation (  ) 

inserts sequential learning module navigation at template variable LMNAVIGATION_CONTENT

Definition at line 1951 of file class.ilLMPresentationGUI.php.

References $_GET, $ilBench, $output, ilLMPageObject::_getPresentationTitle(), ilLMObject::_isPagePublic(), ilLMObject::_lookupActive(), getCurrentPageId(), ilUtil::getImagePath(), getLink(), offlineMode(), and ilUtil::shortenText().

Referenced by layout().

        {
                global $ilBench,$ilUser;

                $ilBench->start("ContentPresentation", "ilLMNavigation");

                $page_id = $this->getCurrentPageId();

                if(empty($page_id))
                {
                        return;
                }

                // process navigation for free page
                if(!$this->lm_tree->isInTree($page_id))
                {
                        if ($this->offlineMode() || $_GET["back_pg"] == "")
                        {
                                return;
                        }
                        $limpos = strpos($_GET["back_pg"], ":");
                        if ($limpos > 0)
                        {
                                $back_pg = substr($_GET["back_pg"], 0, $limpos);
                        }
                        else
                        {
                                $back_pg = $_GET["back_pg"];
                        }
                        if (!$this->lm->cleanFrames())
                        {
                                $back_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $back_pg, $_GET["frame"],
                                                "", "reduce");
                                $back_target = "";
                        }
                        else
                        {
                                $back_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $back_pg, "",
                                                "", "reduce");
                                $back_target = 'target="'.ilFrameTargetInfo::_getFrame("MainContent").'" ';
                        }
                        $back_img =
                                ilUtil::getImagePath("nav_arr2_L.gif", false, "output", $this->offlineMode());
                        $this->tpl->setCurrentBlock("ilLMNavigation_Prev");
                        $this->tpl->setVariable("IMG_PREV", $back_img);
                        $this->tpl->setVariable("HREF_PREV", $back_href);
                        $this->tpl->setVariable("FRAME_PREV", $back_target);
                        $this->tpl->setVariable("TXT_PREV", $this->lng->txt("back"));
                        $this->tpl->setVariable("ALT_PREV", $this->lng->txt("back"));
                        $this->tpl->parseCurrentBlock();
                        $this->tpl->setCurrentBlock("ilLMNavigation_Prev2");
                        $this->tpl->setVariable("IMG_PREV2", $back_img);
                        $this->tpl->setVariable("HREF_PREV2", $back_href);
                        $this->tpl->setVariable("FRAME_PREV2", $back_target);
                        $this->tpl->setVariable("TXT_PREV2", $this->lng->txt("back"));
                        $this->tpl->setVariable("ALT_PREV2", $this->lng->txt("back"));
                        $this->tpl->parseCurrentBlock();
                        return;
                }

                // determine successor page_id
                $ilBench->start("ContentPresentation", "ilLMNavigation_fetchSuccessor");
                $found = false;
                $c_id = $page_id;
                while (!$found)
                {
                        $succ_node = $this->lm_tree->fetchSuccessorNode($c_id, "pg");
                        $c_id = $succ_node["obj_id"];
                        if ($succ_node["obj_id"] > 0 &&
                                $ilUser->getId() == ANONYMOUS_USER_ID &&
                                ( $this->lm->getPublicAccessMode() == "selected" &&
                                !ilLMObject::_isPagePublic($succ_node["obj_id"])))
                        {
                                $found = false;
                        }
                        else if ($succ_node["obj_id"] > 0 &&
                                !ilLMObject::_lookupActive($succ_node["obj_id"]))
                        {
                                $found = false;
                        }
                        else
                        {
                                $found = true;
                        }
                }
                $ilBench->stop("ContentPresentation", "ilLMNavigation_fetchSuccessor");

                $succ_str = ($succ_node !== false)
                        ? " -> ".$succ_node["obj_id"]."_".$succ_node["type"]
                        : "";

                // determine predecessor page id
                $ilBench->start("ContentPresentation", "ilLMNavigation_fetchPredecessor");
                $found = false;
                $c_id = $page_id;
                while (!$found)
                {
                        $pre_node = $this->lm_tree->fetchPredecessorNode($c_id, "pg");
                        $c_id = $pre_node["obj_id"];
                        if ($pre_node["obj_id"] > 0 &&
                                $ilUser->getId() == ANONYMOUS_USER_ID &&
                                ($this->lm->getPublicAccessMode() == "selected" &&
                                !ilLMObject::_isPagePublic($pre_node["obj_id"])))
                        {
                                $found = false;
                        }
                        else if ($pre_node["obj_id"] > 0 &&
                                !ilLMObject::_lookupActive($pre_node["obj_id"]))
                        {
                                $found = false;
                        }
                        else
                        {
                                $found = true;
                        }
                }
                $ilBench->stop("ContentPresentation", "ilLMNavigation_fetchPredecessor");

                $pre_str = ($pre_node !== false)
                        ? $pre_node["obj_id"]."_".$pre_node["type"]." -> "
                        : "";

                // determine target frame
                $framestr = (!empty($_GET["frame"]))
                        ? "frame=".$_GET["frame"]."&"
                        : "";


                // Determine whether the view of a learning resource should
                // be shown in the frameset of ilias, or in a separate window.
                //$showViewInFrameset = $this->ilias->ini->readVariable("layout","view_target") == "frame";
                $showViewInFrameset = true;

                if($pre_node != "")
                {
                        $ilBench->start("ContentPresentation", "ilLMNavigation_outputPredecessor");

                        // get page object
                        //$ilBench->start("ContentPresentation", "ilLMNavigation_getPageObject");
                        //$pre_page =& new ilLMPageObject($this->lm, $pre_node["obj_id"]);
                        //$pre_page->setLMId($this->lm->getId());
                        //$ilBench->stop("ContentPresentation", "ilLMNavigation_getPageObject");

                        // get presentation title
                        $ilBench->start("ContentPresentation", "ilLMNavigation_getPresentationTitle");
                        $prev_title = ilLMPageObject::_getPresentationTitle($pre_node["obj_id"],
                                $this->lm->getPageHeader(), $this->lm->isActiveNumbering());
                        $prev_title = ilUtil::shortenText($prev_title, 50, true);
                        $prev_img = 
                                ilUtil::getImagePath("nav_arr_L.gif", false, "output", $this->offlineMode());

                        if (!$this->lm->cleanFrames())
                        {
                                $prev_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $pre_node["obj_id"], $_GET["frame"]);
                                $prev_target = "";
                        }
                        else if ($showViewInFrameset && !$this->offlineMode())
                        {
                                $prev_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $pre_node["obj_id"]);
                                $prev_target = 'target="'.ilFrameTargetInfo::_getFrame("MainContent").'" ';
                        }
                        else
                        {
                                $prev_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $pre_node["obj_id"]);
                                $prev_target = 'target="_top" ';
                        }
                        
                        if ($ilUser->getId() == ANONYMOUS_USER_ID and ($this->lm->getPublicAccessMode() == "selected" and !ilLMObject::_isPagePublic($pre_node["obj_id"])))
                        {
                                $output = $this->lng->txt("msg_page_not_public");
                        }
                        
                        $ilBench->stop("ContentPresentation", "ilLMNavigation_getPresentationTitle");
                        
                        $this->tpl->setCurrentBlock("ilLMNavigation_Prev");
                        $this->tpl->setVariable("IMG_PREV", $prev_img);
                        $this->tpl->setVariable("HREF_PREV", $prev_href);
                        $this->tpl->setVariable("FRAME_PREV", $prev_target);
                        $this->tpl->setVariable("TXT_PREV", $prev_title);
                        $this->tpl->setVariable("ALT_PREV", $this->lng->txt("previous"));
                        $this->tpl->parseCurrentBlock();
                        $this->tpl->setCurrentBlock("ilLMNavigation_Prev2");
                        $this->tpl->setVariable("IMG_PREV2", $prev_img);
                        $this->tpl->setVariable("HREF_PREV2", $prev_href);
                        $this->tpl->setVariable("FRAME_PREV2", $prev_target);
                        $this->tpl->setVariable("TXT_PREV2", $prev_title);
                        $this->tpl->setVariable("ALT_PREV2", $this->lng->txt("previous"));
                        $this->tpl->parseCurrentBlock();
                        $ilBench->stop("ContentPresentation", "ilLMNavigation_outputPredecessor");
                }
                if($succ_node != "")
                {
                        $ilBench->start("ContentPresentation", "ilLMNavigation_outputSuccessor");

                        // get presentation title
                        $ilBench->start("ContentPresentation", "ilLMNavigation_getPresentationTitle");
                        $succ_title = ilLMPageObject::_getPresentationTitle($succ_node["obj_id"],
                                $this->lm->getPageHeader(), $this->lm->isActiveNumbering());
                        $succ_title = ilUtil::shortenText($succ_title,50,true);
                        $succ_img =
                                ilUtil::getImagePath("nav_arr_R.gif", false, "output", $this->offlineMode());
                        if (!$this->lm->cleanFrames())
                        {
                                $succ_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $succ_node["obj_id"], $_GET["frame"]);
                                $succ_target = "";
                        }
                        else if ($showViewInFrameset && !$this->offlineMode())
                        {
                                $succ_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $succ_node["obj_id"]);
                                $succ_target = ' target="'.ilFrameTargetInfo::_getFrame("MainContent").'" ';
                        }
                        else
                        {
                                $succ_href =
                                        $this->getLink($this->lm->getRefId(), "layout", $succ_node["obj_id"]);
                                $succ_target = ' target="_top" ';
                        }
                        
                        if ($ilUser->getId() == ANONYMOUS_USER_ID and ($this->lm->getPublicAccessMode() == "selected" and !ilLMObject::_isPagePublic($succ_node["obj_id"])))
                        {
                                $output = $this->lng->txt("msg_page_not_public");
                        }

                        $ilBench->stop("ContentPresentation", "ilLMNavigation_getPresentationTitle");
                        
                        $this->tpl->setCurrentBlock("ilLMNavigation_Next");
                        $this->tpl->setVariable("IMG_SUCC", $succ_img);
                        $this->tpl->setVariable("HREF_SUCC", $succ_href);
                        $this->tpl->setVariable("FRAME_SUCC", $succ_target);
                        $this->tpl->setVariable("TXT_SUCC", $succ_title);
                        $this->tpl->setVariable("ALT_SUCC", $this->lng->txt("next"));
                        $this->tpl->parseCurrentBlock();
                        $this->tpl->setCurrentBlock("ilLMNavigation_Next2");
                        $this->tpl->setVariable("IMG_SUCC2", $succ_img);
                        $this->tpl->setVariable("HREF_SUCC2", $succ_href);
                        $this->tpl->setVariable("FRAME_SUCC2", $succ_target);
                        $this->tpl->setVariable("TXT_SUCC2", $succ_title);
                        $this->tpl->setVariable("ALT_SUCC2", $this->lng->txt("next"));
                        $this->tpl->parseCurrentBlock();
                        $ilBench->stop("ContentPresentation", "ilLMNavigation_outputSuccessor");
                }

                $ilBench->stop("ContentPresentation", "ilLMNavigation");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilLMNotes (  ) 

output notes of page

Definition at line 1045 of file class.ilLMPresentationGUI.php.

References $_GET, getCurrentPageId(), and offlineMode().

Referenced by layout().

        {
                global $ilAccess;
                
                // no notes for abstract of digilib book
                if ($this->lm->getType() == "dbk" && $this->abstract)
                {
                        return;
                }


                // no notes in offline (export) mode
                if ($this->offlineMode())
                {
                        return;
                }
                
                
                $next_class = $this->ctrl->getNextClass($this);

                include_once("Services/Notes/classes/class.ilNoteGUI.php");
                $notes_gui = new ilNoteGUI($this->lm->getId(), $this->getCurrentPageId(), "pg");
                if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
                {
                        $notes_gui->enablePublicNotesDeletion(true);
                }
                
                $this->ctrl->setParameter($this, "frame", $_GET["frame"]);
                $this->ctrl->setParameter($this, "obj_id", $_GET["obj_id"]);
                
                $notes_gui->enablePrivateNotes();
                if ($this->lm->publicNotes())
                {
                        $notes_gui->enablePublicNotes();
                }

                if ($next_class == "ilnotegui")
                {
                        $html = $this->ctrl->forwardCommand($notes_gui);
                }
                else
                {       
                        $html = $notes_gui->getNotesHTML();
                }
                $this->tpl->setVariable("NOTES", $html);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilLMPresentationGUI (  ) 

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

References $_GET, $_POST, $data, $ilCtrl, $ilias, $lng, $rbacsystem, $tpl, $type, and setSessionVars().

        {
                global $ilias, $lng, $tpl, $rbacsystem, $ilCtrl, $ilAccess;

                // load language vars
                $lng->loadLanguageModule("content");

                $this->ilias =& $ilias;
                $this->lng =& $lng;
                $this->tpl =& $tpl;
                $this->offline = false;
                $this->frames = array();
                $this->ctrl =& $ilCtrl;
                $this->ctrl->saveParameter($this, array("ref_id"));

                // check read permission, payment and parent conditions
                // todo: replace all this by ilAccess call
                if (!$ilAccess->checkAccess("read", "", $_GET["ref_id"]) &&
                        (!(($this->ctrl->getCmd() == "infoScreen" || $this->ctrl->getNextClass() == "ilinfoscreengui")
                        && $ilAccess->checkAccess("visible", "", $_GET["ref_id"]))))
                {
                        $ilias->raiseError($lng->txt("permission_denied"), $ilias->error_obj->WARNING);
                }
#               include_once './classes/class.ilSearch.php';

#               if(!ilSearch::_checkParentConditions($_GET['ref_id']))
#               {
#                       $ilias->error_obj->raiseError($lng->txt('access_denied'),$ilias->error_obj->WARNING);
#               }
                // Todo: check lm id
                $type = $this->ilias->obj_factory->getTypeByRefId($_GET["ref_id"]);

                // TODO: WE NEED AN OBJECT FACTORY FOR GUI CLASSES
                switch($type)
                {
                        case "dbk":
                                include_once("./content/classes/class.ilObjDlBookGUI.php");

                                $this->lm_gui = new ilObjDlBookGUI($data,$_GET["ref_id"],true,false);
                                break;
                        case "lm":
                                include_once("./content/classes/class.ilObjLearningModuleGUI.php");

                                $this->lm_gui = new ilObjLearningModuleGUI($data,$_GET["ref_id"],true,false);

                                break;
                }
                $this->lm =& $this->lm_gui->object;

                // check, if learning module is online
                if (!$rbacsystem->checkAccess("write", $_GET["ref_id"]))
                {
                        if (!$this->lm->getOnline())
                        {
                                $ilias->raiseError($lng->txt("permission_denied"), $ilias->error_obj->WARNING);
                        }
                }
                
                $this->lm_tree = new ilTree($this->lm->getId());
                $this->lm_tree->setTableNames('lm_tree','lm_data');
                $this->lm_tree->setTreeTablePK("lm_id");

                // do digilib book initialisation stuff
                if ($type == "dbk")
                {
                        $this->abstract = true;
                        $this->setSessionVars();
                        if((count($_POST["tr_id"]) > 1) or
                           (!$_POST["target"] and ($_POST["action"] == "show" or $_POST["action"] == "show_citation")))
                        {
                                $this->abstract = true;
                        }
                        else if($_GET["obj_id"] or ($_POST["action"] == "show") or ($_POST["action"] == "show_citation"))
                        {
                                $this->abstract = false;
                        }
                }

        }

Here is the call graph for this function:

ilLMPresentationGUI::ilLMSubMenu (  ) 

output learning module submenu

Definition at line 988 of file class.ilLMPresentationGUI.php.

References $_GET, $rbacsystem, ilFrameTargetInfo::_getFrame(), getCurrentPageId(), and offlineMode().

Referenced by layout().

        {
                global $rbacsystem;
                
                // no sub menu for abstract of digilib book
                if ($this->lm->getType() == "dbk" && $this->abstract)
                {
                        return;
                }

                //$showViewInFrameset = $this->ilias->ini->readVariable("layout","view_target") == "frame";
                $showViewInFrameset = true;
                
                if ($showViewInFrameset)
                {
                        $buttonTarget = ilFrameTargetInfo::_getFrame("MainContent");
                }
                else
                {
                        $buttonTarget = "_top";
                }


                include_once("./classes/class.ilTemplate.php");
                $tpl_menu =& new ilTemplate("tpl.lm_sub_menu.html", true, true, true);

                // edit learning module
                if (!$this->offlineMode())
                {
                        if ($rbacsystem->checkAccess("write", $_GET["ref_id"]))
                        {
                                $tpl_menu->setCurrentBlock("edit_page");
                                $page_id = $this->getCurrentPageId();
                                $tpl_menu->setVariable("EDIT_LINK", ILIAS_HTTP_PATH."/ilias.php?baseClass=ilLMEditorGUI&ref_id=".$_GET["ref_id"].
                                        "&obj_id=".$page_id."&to_page=1");
                                $tpl_menu->setVariable("EDIT_TXT", $this->lng->txt("edit_page"));
                                $tpl_menu->setVariable("EDIT_TARGET", $buttonTarget);
                                $tpl_menu->parseCurrentBlock();
                        }

                        $tpl_menu->setCurrentBlock("perma_link");
                        $page_id = $this->getCurrentPageId();
                        $tpl_menu->setVariable("PERMA_LINK", ILIAS_HTTP_PATH.
                                "/goto.php?target=pg_".$page_id."_".$this->lm->getRefId()."&client_id=".CLIENT_ID);
                        $tpl_menu->setVariable("TXT_PERMA_LINK", $this->lng->txt("perma_link"));
                        $tpl_menu->setVariable("PERMA_TARGET", "_top");
                        $tpl_menu->parseCurrentBlock();

                }

                $this->tpl->setVariable("SUBMENU", $tpl_menu->get());
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilLocator (  ) 

locator

Definition at line 1096 of file class.ilLMPresentationGUI.php.

References $_GET, $key, $row, $tree, ilFrameTargetInfo::_getFrame(), ilStructureObject::_getPresentationTitle(), ilObject::_lookupObjId(), ilObject::_lookupTitle(), ilLMObjectFactory::getInstance(), getLink(), offlineMode(), and ilUtil::shortenText().

Referenced by executeCommand(), ilCitation(), layout(), outputInfoScreen(), showDownloadList(), showPrintViewSelection(), and showTableOfContents().

        {
                global $ilLocator, $tree;

                require_once("content/classes/class.ilStructureObject.php");

                if (empty($_GET["obj_id"]))
                {
                        $a_id = $this->lm_tree->getRootId();
                }
                else
                {
                        $a_id = $_GET["obj_id"];
                }

                $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
                
                if (!$this->lm->cleanFrames())
                {
                        $frame_param = $_GET["frame"];
                        $frame_target = "";
                }
                else if (!$this->offlineMode())
                {
                        $frame_param = "";
                        $frame_target = ilFrameTargetInfo::_getFrame("MainContent");
                }
                else
                {
                        $frame_param = "";
                        $frame_target = "_top";
                }

                if (!$this->offlineMode())
                {
                        $ilLocator->addItem("...", "");

                        $par_id = $tree->getParentId($_GET["ref_id"]);
                        $ilLocator->addItem(
                                ilObject::_lookupTitle(ilObject::_lookupObjId($par_id)),
                                "repository.php?cmd=frameset&amp;ref_id=".$par_id,
                                ilFrameTargetInfo::_getFrame("MainContent"));
                }

                if($this->lm_tree->isInTree($a_id))
                {                       
                        $path = $this->lm_tree->getPathFull($a_id);

                        foreach ($path as $key => $row)
                        {
                                if ($row["type"] != "pg")
                                {
                                        if($row["child"] != $this->lm_tree->getRootId())
                                        {
                                                $ilLocator->addItem(
                                                        ilUtil::shortenText(
                                                                ilStructureObject::_getPresentationTitle($row["child"],
                                                                $this->lm->isActiveNumbering()),50,true),
                                                        $this->getLink($_GET["ref_id"], "layout", $row["child"], $frame_param, "StructureObject"),
                                                        $frame_target);
                                        }
                                        else
                                        {
                                                $ilLocator->addItem(
                                                        ilUtil::shortenText($this->lm->getTitle(),50,true),
                                                        $this->getLink($_GET["ref_id"], "layout", "", $frame_param),
                                                        $frame_target);
                                        }
                                }
                        }
                }
                else            // lonely page
                {
        
                        $ilLocator->addItem(
                                $this->lm->getTitle(),
                                $this->getLink($_GET["ref_id"], "layout", "", $_GET["frame"]));

                        require_once("content/classes/class.ilLMObjectFactory.php");
                        $lm_obj =& ilLMObjectFactory::getInstance($this->lm, $a_id);

                        $ilLocator->addItem(
                                $lm_obj->getTitle(),
                                $this->getLink($_GET["ref_id"], "layout", $a_id, $frame_param),
                                $frame_target);
                }

                if (DEBUG)
                {
                        $debug = "DEBUG: <font color=\"red\">".$this->type."::".$this->id."::".$_GET["cmd"]."</font><br/>";
                }

                //$prop_name = $this->objDefinition->getPropertyName($_GET["cmd"],$this->type);


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

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilMainMenu (  ) 

output main menu

Definition at line 846 of file class.ilLMPresentationGUI.php.

References $ilBench, and offlineMode().

Referenced by layout().

        {
                global $ilBench, $ilMainMenu;

                if ($this->offlineMode())
                {
                        return;
                }

                $ilBench->start("ContentPresentation", "ilMainMenu");

                /*
                $menu = new ilMainMenuGUI(ilFrameTargetInfo::_getFrame("MainContent"));
                $menu->setTemplate($this->tpl);
                $menu->addMenuBlock("MAINMENU", "mainmenu");
                $menu->setTemplateVars();*/
                if ($this->lm->getLayout() == "2window" || 
                        $this->lm->getLayout() == "3window")
                {
                        $ilMainMenu->setSmallMode(true);
                }
                else
                {
                        $ilMainMenu->setSmallMode(false);
                }
                
                $this->tpl->setVariable("MAINMENU", $ilMainMenu->getHTML());
                
                $ilBench->stop("ContentPresentation", "ilMainMenu");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilMedia (  ) 

output media

Definition at line 1842 of file class.ilLMPresentationGUI.php.

References $_GET, $ilBench, $output, ilMediaItem::_getMapAreasIntLinks(), ilObjStyleSheet::getContentStylePath(), ilUtil::getImagePath(), getLayoutLinkTargets(), getLink(), getLinkXML(), ilUtil::getStyleSheetLocation(), ilUtil::getWebspaceDir(), offlineMode(), xslt_create(), xslt_error(), xslt_free(), and xslt_process().

Referenced by layout().

        {
                global $ilBench;

                $ilBench->start("ContentPresentation", "ilMedia");

                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());
                
                // set style sheets
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                }
                else
                {
                        $style_name = $this->ilias->account->prefs["style"].".css";;
                        $this->tpl->setVariable("LOCATION_STYLESHEET","./".$style_name);
                }

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

                //$int_links = $page_object->getInternalLinks();
                $med_links = ilMediaItem::_getMapAreasIntLinks($_GET["mob_id"]);
                $link_xml = $this->getLinkXML($med_links, $this->getLayoutLinkTargets());
//echo "<br><br>".htmlentities($link_xml);
                require_once("content/classes/Media/class.ilObjMediaObject.php");
                $media_obj =& new ilObjMediaObject($_GET["mob_id"]);
                if (!empty ($_GET["pg_id"]))
                {
                        require_once("content/classes/Pages/class.ilPageObject.php");
                        $pg_obj =& new ilPageObject($this->lm->getType(), $_GET["pg_id"]);
                        $pg_obj->buildDom();

                        $xml = "<dummy>";
                        // todo: we get always the first alias now (problem if mob is used multiple
                        // times in page)
                        $xml.= $pg_obj->getMediaAliasElement($_GET["mob_id"]);
                        $xml.= $media_obj->getXML(IL_MODE_OUTPUT);
                        $xml.= $link_xml;
                        $xml.="</dummy>";
                }
                else
                {
                        $xml = "<dummy>";
                        // todo: we get always the first alias now (problem if mob is used multiple
                        // times in page)
                        $xml.= $media_obj->getXML(IL_MODE_ALIAS);
                        $xml.= $media_obj->getXML(IL_MODE_OUTPUT);
                        $xml.= $link_xml;
                        $xml.="</dummy>";
                }

//echo htmlentities($xml); exit;

                // todo: utf-header should be set globally
                //header('Content-type: text/html; charset=UTF-8');

                $xsl = file_get_contents("./content/page.xsl");
                $args = array( '/_xml' => $xml, '/_xsl' => $xsl );
                $xh = xslt_create();

//echo "<b>XML:</b>".htmlentities($xml);
                // determine target frames for internal links
                //$pg_frame = $_GET["frame"];
                if (!$this->offlineMode())
                {
                        $wb_path = ilUtil::getWebspaceDir("output");
                }
                else
                {
                        $wb_path = ".";
                }
//              $wb_path = "../".$this->ilias->ini->readVariable("server","webspace_dir");
                $mode = ($_GET["cmd"] == "fullscreen")
                        ? "fullscreen"
                        : "media";
                $enlarge_path = ilUtil::getImagePath("enlarge.gif", false, "output", $this->offlineMode());
                $fullscreen_link =
                        $this->getLink($this->lm->getRefId(), "fullscreen");
                $params = array ('mode' => $mode, 'enlarge_path' => $enlarge_path,
                        'link_params' => "ref_id=".$this->lm->getRefId(),'fullscreen_link' => $fullscreen_link,
                        'ref_id' => $this->lm->getRefId(), 'pg_frame' => $pg_frame, 'webspace_path' => $wb_path);
                $output = xslt_process($xh,"arg:/_xml","arg:/_xsl",NULL,$args, $params);
                echo xslt_error($xh);
                xslt_free($xh);

                // unmask user html
                $this->tpl->setVariable("MEDIA_CONTENT", $output);

                $ilBench->stop("ContentPresentation", "ilMedia");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilPage ( &$  a_page_node,
a_page_id = 0 
)

process <ilPage> content tag

Definition at line 1370 of file class.ilLMPresentationGUI.php.

References $_GET, $_SESSION, $ilBench, ilObjContentObject::_checkPreconditionsOfPage(), ilLMObject::_exists(), ilLMPageObject::_getPresentationTitle(), ilLMObject::_isPagePublic(), ilTracking::_trackAccess(), ilCourseLMHistory::_updateLastAccess(), ilObjStyleSheet::getContentStylePath(), getCurrentPageId(), getLayoutLinkTargets(), getLink(), getLinkXML(), getOfflineDirectory(), getSourcecodeDownloadLink(), ilObjStyleSheet::getSyntaxStylePath(), offlineMode(), showNoPublicAccess(), and showPreconditionsOfPage().

Referenced by layout().

        {
                global $ilBench,$ilUser;

                if ($ilUser->getId() == ANONYMOUS_USER_ID and $this->lm_gui->object->getPublicAccessMode() == "selected")
                {
                        $public = ilLMObject::_isPagePublic($this->getCurrentPageId());

                        if (!$public)
                                return $this->showNoPublicAccess($this->getCurrentPageId());
                }

                if (!ilObjContentObject::_checkPreconditionsOfPage($this->lm->getId(), $this->getCurrentPageId()))
                {
                        return $this->showPreconditionsOfPage($this->getCurrentPageId());
                }

                $ilBench->start("ContentPresentation", "ilPage");

                require_once("content/classes/Pages/class.ilPageObjectGUI.php");
                require_once("content/classes/class.ilLMPageObject.php");
                
                // page id is e.g. > 0 when footer or header page is processed
                if ($a_page_id == 0)
                {
                        $ilBench->start("ContentPresentation", "ilPage_getCurrentPageId");
                        $page_id = $this->getCurrentPageId();
                        $ilBench->stop("ContentPresentation", "ilPage_getCurrentPageId");
                }
                else
                {
                        $page_id = $a_page_id;
                }
                
                $ilBench->start("ContentPresentation", "ilPage_getPageObject");
                $page_object =& new ilPageObject($this->lm->getType(), $page_id);
                $page_object->buildDom();
                $page_object->registerOfflineHandler($this);
                $ilBench->stop("ContentPresentation", "ilPage_getPageObject");
                
                $ilBench->start("ContentPresentation", "ilPage_getInternalLinks");
                $int_links = $page_object->getInternalLinks();
                $ilBench->stop("ContentPresentation", "ilPage_getInternalLinks");
                
                $ilBench->start("ContentPresentation", "ilPage_getPageObjectGUI");
                $page_object_gui =& new ilPageObjectGUI($page_object);
                $page_object_gui->setTemplateOutput(false);
                $ilBench->stop("ContentPresentation", "ilPage_getPageObjectGUI");
                
                // Update personal desktop items
                $this->ilias->account->setDesktopItemParameters($this->lm->getRefId(), $this->lm->getType(), $page_id);

                // Update course items
                $ilBench->start("ContentPresentation", "ilPage_updateCourseItems");
                include_once './course/classes/class.ilCourseLMHistory.php';
                ilCourseLMHistory::_updateLastAccess($ilUser->getId(),$this->lm->getRefId(),$page_id);
                $ilBench->stop("ContentPresentation", "ilPage_updateCourseItems");

                // read link targets
                $link_xml = $this->getLinkXML($int_links, $this->getLayoutLinkTargets());
//echo "<br>+".htmlentities($link_xml)."+";
                
                // get lm page object
                $ilBench->start("ContentPresentation", "ilPage_getLMPageObject");
                $lm_pg_obj =& new ilLMPageObject($this->lm, $page_id);
                $lm_pg_obj->setLMId($this->lm->getId());
                $page_object_gui->setLinkXML($link_xml);
                $ilBench->stop("ContentPresentation", "ilPage_getLMPageObject");

                $ilBench->start("ContentPresentation", "ilPage_preparePage");
                
                // USED FOR DBK PAGE TURNS
                $page_object_gui->setBibId($_SESSION["bib_id"]);
                $page_object_gui->enableCitation((bool) $_SESSION["citation"]);

                // determine target frames for internal links
                //$pg_frame = $_GET["frame"];
                $page_object_gui->setLinkFrame($_GET["frame"]);
                if (!$this->offlineMode())
                {
                        $page_object_gui->setOutputMode("presentation");
                }
                else
                {
                        $page_object_gui->setOutputMode("offline");
                        $page_object_gui->setOfflineDirectory($this->getOfflineDirectory());
                }               
                $page_object_gui->setFileDownloadLink($this->getLink($_GET["ref_id"], "downloadFile"));
                $page_object_gui->setFullscreenLink($this->getLink($_GET["ref_id"], "fullscreen"));
                
                
                // page title (not for header or footer page)
                if ($page_id == 0 || ($page_id != $this->lm->getHeaderPage() &&
                        $page_id != $this->lm->getFooterPage()))
                {
                        $page_object_gui->setPresentationTitle(
                                ilLMPageObject::_getPresentationTitle($lm_pg_obj->getId(),
                                $this->lm->getPageHeader(), $this->lm->isActiveNumbering()));
                }

                // ADDED FOR CITATION
                $page_object_gui->setLinkParams("ref_id=".$this->lm->getRefId());
                $page_object_gui->setTemplateTargetVar("PAGE_CONTENT");
                $page_object_gui->setSourcecodeDownloadScript($this->getSourcecodeDownloadLink());

                if($_SESSION["tr_id"])
                {
                        $page_object_gui->setOutputSubmode("translation");
                }

                // content style
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                // syntax style
                $this->tpl->setCurrentBlock("SyntaxStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                                ilObjStyleSheet::getSyntaxStylePath());
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                                "syntaxhighlight.css");
                }
                $this->tpl->parseCurrentBlock();
                
                $ilBench->stop("ContentPresentation", "ilPage_preparePage");

                // track user access to page
                $ilBench->start("ContentPresentation", "ilPage_trackUserAccess");
                include_once "Services/Tracking/classes/class.ilTracking.php";
                ilTracking::_trackAccess($this->lm->getId(), $this->lm->getType(),
                        $page_id, "pg", "read");
                $ilBench->stop("ContentPresentation", "ilPage_trackUserAccess");

                $ilBench->start("ContentPresentation", "ilPage_getPageContent");
                $ret = $page_object_gui->presentation($page_object_gui->getOutputMode());
                $ilBench->stop("ContentPresentation", "ilPage_getPageContent");
                
                $ilBench->stop("ContentPresentation", "ilPage");
                
                // process header
                if ($this->lm->getHeaderPage() > 0 && 
                        $page_id != $this->lm->getHeaderPage() &&
                        ($page_id == 0 || $page_id != $this->lm->getFooterPage()))
                {
                        if (ilLMObject::_exists($this->lm->getHeaderPage()))
                        {
                                $head = $this->ilPage($a_page_node, $this->lm->getHeaderPage());
                        }
                }

                // process footer
                if ($this->lm->getFooterPage() > 0 && 
                        $page_id != $this->lm->getFooterPage() &&
                        ($page_id == 0 || $page_id != $this->lm->getHeaderPage()))
                {
                        if (ilLMObject::_exists($this->lm->getFooterPage()))
                        {
                                $foot = $this->ilPage($a_page_node, $this->lm->getFooterPage());
                        }
                }
                
                $this->tpl->setVariable("PAGE_CONTENT", $head.$ret.$foot); 
//echo htmlentities("-".$ret."-");
                return $head.$ret.$foot;

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilTOC ( a_target  ) 

table of contents

Definition at line 880 of file class.ilLMPresentationGUI.php.

References $_GET, $exp, $expanded, $ilBench, $output, ilFrameTargetInfo::_getFrame(), getCurrentPageId(), ilUtil::getImagePath(), getLink(), ilUtil::getStyleSheetLocation(), and offlineMode().

Referenced by layout().

        {
                global $ilBench;

                $ilBench->start("ContentPresentation", "ilTOC");
                require_once("./content/classes/class.ilLMTOCExplorer.php");
                if ($this->lm->cleanFrames())
                {
                        $a_target = "";
                }
                $exp = new ilLMTOCExplorer($this->getLink($this->lm->getRefId(), "layout", "", $a_target),$this->lm);
                $exp->setExpandTarget($this->getLink($this->lm->getRefId(), $_GET["cmd"], $_GET["obj_id"], $_GET["frame"]));
                $exp->setTargetGet("obj_id");
                if ($this->lm->cleanFrames())
                {
                        if ($this->offlineMode())
                        {
                                $exp->setFrameTarget("_top");
                        }
                        else
                        {
                                $exp->setFrameTarget(ilFrameTargetInfo::_getFrame("MainContent"));
                        }
                }
                else
                {
                        $exp->setFrameTarget($a_target);
                }
                $exp->addFilter("du");
                $exp->addFilter("st");
                
                // force expansion
                if ($this->lm->cleanFrames())
                {
                        $page_id = $this->getCurrentPageId();
                        if ($page_id > 0)
                        {
                                $path = $this->lm_tree->getPathId($page_id);
                                $exp->setForceOpenPath($path);
                        }
                        if (!$this->offlineMode())
                        {
                                $exp->highlightNode($page_id);
                        }
                }
                
                $exp->setOfflineMode($this->offlineMode());
                if ($this->lm->getTOCMode() == "pages")
                {
                        $exp->addFilter("pg");
                }
                $exp->setFiltered(true);
                $exp->setFilterMode(IL_FM_POSITIVE);

                if ($_GET["lmexpand"] == "")
                {
                        $expanded = $this->lm_tree->readRootId();
                }
                else
                {
                        $expanded = $_GET["lmexpand"];
                }
                $exp->setExpand($expanded);

                // build html-output
                $exp->setOutput(0);
                $output = $exp->getOutput();

                $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());

                // set style sheets
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                }
                else
                {
                        $style_name = $this->ilias->account->prefs["style"].".css";;
                        $this->tpl->setVariable("LOCATION_STYLESHEET","./".$style_name);
                }

                if (!$this->offlineMode())
                {
                        $this->tpl->addBlockFile("EXPL_TOP", "exp_top", "tpl.explorer_top.html");
                        //$this->tpl->setVariable("DUMMY", "&nbsp;");
                        $this->tpl->setVariable("IMG_SPACE", ilUtil::getImagePath("spacer.gif", false));
                }
                $this->tpl->setVariable("TXT_EXPLORER_HEADER", $this->lng->txt("cont_toc"));
                $this->tpl->setVariable("EXPLORER",$output);
                $this->tpl->setVariable("ACTION",
                        $this->getLink($this->lm->getRefId(), $_GET["cmd"], "", $_GET["frame"]).
                        "&lmexpand=".$_GET["lmexpand"]);
                $this->tpl->parseCurrentBlock();
                $ilBench->stop("ContentPresentation", "ilTOC");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::ilTranslation ( &$  a_page_node  ) 

Definition at line 1275 of file class.ilLMPresentationGUI.php.

References $_GET, $_SESSION, ilLMPageObject::_getPresentationTitle(), ilCourseLMHistory::_updateLastAccess(), getCurrentPageId(), getLayoutLinkTargets(), and mapCurrentPageId().

Referenced by layout().

        {
                global $ilUser;

                require_once("content/classes/Pages/class.ilPageObjectGUI.php");
                require_once("content/classes/class.ilLMPageObject.php");

                $page_id = $this->mapCurrentPageId($this->getCurrentPageId());

                if(!$page_id)
                {
                        $this->tpl->setVariable("TRANSLATION_CONTENT","NO TRNSLATION FOUND");
                        return false;
                }

                $page_object =& new ilPageObject($this->lm->getType(), $page_id);
                $page_object_gui =& new ilPageObjectGUI($page_object);

                // Update personal desktop items
                $this->ilias->account->setDesktopItemParameters($_SESSION["tr_id"], $this->lm->getType(),$page_id);

                // Update course items
                include_once './course/classes/class.ilCourseLMHistory.php';

                ilCourseLMHistory::_updateLastAccess($ilUser->getId(),$this->lm->getRefId(),$page_id);

                // read link targets
                $targets = $this->getLayoutLinkTargets();

                $lm_pg_obj =& new ilLMPageObject($this->lm, $page_id);
                $lm_pg_obj->setLMId($_SESSION["tr_id"]);
                //$pg_obj->setParentId($this->lm->getId());
                #$page_object_gui->setLayoutLinkTargets($targets);

                // USED FOR DBK PAGE TURNS
                $page_object_gui->setBibId($_SESSION["bib_id"]);

                // determine target frames for internal links
                //$pg_frame = $_GET["frame"];
                $page_object_gui->setLinkFrame($_GET["frame"]);
                $page_object_gui->setOutputMode("presentation");
                $page_object_gui->setOutputSubmode("translation");

                $page_object_gui->setPresentationTitle(
                        ilLMPageObject::_getPresentationTitle($lm_pg_obj->getId(),
                        $this->lm->getPageHeader(), $this->lm->isActiveNumbering()));
#               $page_object_gui->setLinkParams("ref_id=".$this->lm->getRefId());
                $page_object_gui->setLinkParams("ref_id=".$_SESSION["tr_id"]);
                $page_object_gui->setTemplateTargetVar("PAGE_CONTENT");
                $page_object_gui->setTemplateOutputVar("TRANSLATION_CONTENT");


                return $page_object_gui->presentation();

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::infoScreen (  ) 

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Definition at line 2390 of file class.ilLMPresentationGUI.php.

References outputInfoScreen().

        {
                $this->ctrl->setCmd("showSummary");
                $this->ctrl->setCmdClass("ilinfoscreengui");
                $this->outputInfoScreen();
        }

Here is the call graph for this function:

ilLMPresentationGUI::layout ( a_xml = "main.xml",
doShow = true 
)

generates frame layout

Definition at line 544 of file class.ilLMPresentationGUI.php.

References $_GET, $_POST, $_SESSION, $ilBench, $result, $tpl, attrib2arr(), buildTag(), domxml_open_mem(), exit, getExportFormat(), ilUtil::getStyleSheetLocation(), ilGlossary(), ilLMMenu(), ilLMNavigation(), ilLMNotes(), ilLMSubMenu(), ilLocator(), ilMainMenu(), ilMedia(), ilPage(), ilTOC(), ilTranslation(), offlineMode(), processNodes(), setSessionVars(), xpath_eval(), and xpath_new_context().

Referenced by executeCommand(), fullscreen(), glossary(), media(), and offlineexport().

        {
                global $tpl, $ilBench;

                $ilBench->start("ContentPresentation", "layout");

                // export scorm always to 1window
                if ($this->getExportFormat() == "scorm")
                {
                        $layout = "1window";
                }
                else
                {
                        $layout = $this->lm->getLayout();
                }

                //$doc = xmldocfile("./layouts/lm/".$layout."/".$a_xml);

                // xmldocfile is deprecated! Use domxml_open_file instead.
                // But since using relative pathes with domxml under windows don't work,
                // we need another solution:
                $xmlfile = file_get_contents("./layouts/lm/".$layout."/".$a_xml);

                if (!$doc = domxml_open_mem($xmlfile)) { echo "ilLMPresentation: XML File invalid"; exit; }
                $this->layout_doc =& $doc;
//echo ":".htmlentities($xmlfile).":$layout:$a_xml:";

                // get current frame node
                $ilBench->start("ContentPresentation", "layout_getFrameNode");
                $xpc = xpath_new_context($doc);
                $path = (empty($_GET["frame"]) || ($_GET["frame"] == "_blank"))
                        ? "/ilLayout/ilFrame[1]"
                        : "//ilFrame[@name='".$_GET["frame"]."']";
                $result = xpath_eval($xpc, $path);
                $found = $result->nodeset;
                if (count($found) != 1) { echo "ilLMPresentation: XML File invalid"; exit; }
                $node = $found[0];

                $ilBench->stop("ContentPresentation", "layout_getFrameNode");
//echo "<br>layout 2";
                // ProcessFrameset
                // node is frameset, if it has cols or rows attribute
                $attributes = $this->attrib2arr($node->attributes());
                $this->frames = array();
                if((!empty($attributes["rows"])) || (!empty($attributes["cols"])))
                {
                        $ilBench->start("ContentPresentation", "layout_processFrameset");
                        $content .= $this->buildTag("start", "frameset", $attributes);
//echo "<br>A: reset frames"; flush();
                        //$this->frames = array();
                        $this->processNodes($content, $node);
                        $content .= $this->buildTag("end", "frameset");
                        $this->tpl = new ilTemplate("tpl.frameset.html", true, true, true);
                        $this->tpl->setVariable("PAGETITLE", "- ".$this->lm->getTitle());
                        $this->tpl->setVariable("FS_CONTENT", $content);
                        $ilBench->stop("ContentPresentation", "layout_processFrameset");
                        if (!$doshow)
                        {
                                $content = $this->tpl->get();
                        }
                }
                else    // node is frame -> process the content tags
                {
                        // ProcessContentTag
                        $ilBench->start("ContentPresentation", "layout_processContentTag");
                        //if ((empty($attributes["template"]) || !empty($_GET["obj_type"])))
                        if ((empty($attributes["template"]) || !empty($_GET["obj_type"]))
                                && ($_GET["frame"] != "_blank" || $_GET["obj_type"] != "MediaObject"))
                        {
                                // we got a variable content frame (can display different
                                // object types (PageObject, MediaObject, GlossarItem)
                                // and contains elements for them)

                                // determine object type
                                if(empty($_GET["obj_type"]))
                                {
                                        $obj_type = "PageObject";
                                }
                                else
                                {
                                        $obj_type = $_GET["obj_type"];
                                }

                                // get object specific node
                                $childs = $node->child_nodes();
                                $found = false;
                                foreach($childs as $child)
                                {
                                        if ($child->node_name() == $obj_type)
                                        {
                                                $found = true;
                                                $attributes = $this->attrib2arr($child->attributes());
                                                $node =& $child;
//echo "<br>2node:".$node->node_name();
                                                break;
                                        }
                                }
                                if (!$found) { echo "ilLMPresentation: No template specified for frame '".
                                        $_GET["frame"]."' and object type '".$obj_type."'."; exit; }
                        }

                        // get template
                        $in_module = ($attributes["template_location"] == "module")
                                ? true
                                : false;
                        if ($in_module)
                        {
                                $this->tpl = new ilTemplate($attributes["template"], true, true, $in_module);
                        }
                        else
                        {
                                $this->tpl =& $tpl;
                        }

                        // set style sheets
                        if (!$this->offlineMode())
                        {
                                $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                        }
                        else
                        {
                                $style_name = $this->ilias->account->prefs["style"].".css";;
                                $this->tpl->setVariable("LOCATION_STYLESHEET","./".$style_name);
                        }

                        $childs = $node->child_nodes();
                        
                        $ilBench->start("ContentPresentation", "layout_processContentNodes");
                        foreach($childs as $child)
                        {

                                $child_attr = $this->attrib2arr($child->attributes());
//echo "-".$child->node_name()."-";
                                switch ($child->node_name())
                                {
                                        case "ilMainMenu":
                                                $ilBench->start("ContentPresentation", "layout_mainmenu");
                                                $this->ilMainMenu();
                                                $ilBench->stop("ContentPresentation", "layout_mainmenu");
                                                break;

                                        case "ilTOC":
                                                $this->ilTOC($child_attr["target_frame"]);
                                                break;

                                        case "ilPage":
                                                switch($this->lm->getType())
                                                {
                                                        case "lm":
                                                                unset($_SESSION["tr_id"]);
                                                                unset($_SESSION["bib_id"]);
                                                                unset($_SESSION["citation"]);
                                                                $content = $this->ilPage($child);
                                                                break;

                                                        case "dbk":
                                                                $this->setSessionVars();
                                                                if($this->abstract)
                                                                {
                                                                        $content = $this->lm_gui->showAbstract($_POST["target"]);
                                                                }
                                                                else
                                                                {
                                                                        // SHOW PAGE IF PAGE WAS SELECTED
                                                                        $content = $this->ilPage($child);

                                                                        if($_SESSION["tr_id"])
                                                                        {
                                                                                $translation_content = $this->ilTranslation($child);
                                                                        }
                                                                }
                                                                break;
                                                }
                                                                                                break;

                                        case "ilGlossary":
                                                $content = $this->ilGlossary($child);
                                                break;

                                        case "ilLMNavigation":

                                                // NOT FOR ABSTRACT
                                                if($_GET["obj_id"] or
                                                   ((count($_POST["tr_id"]) < 2) and $_POST["target"] and
                                                        ($_POST["action"] == "show" or $_POST["action"] == "show_citation")) or
                                                   $this->lm->getType() == 'lm')
                                                {
                                                        $ilBench->start("ContentPresentation", "layout_lmnavigation");
                                                        $this->ilLMNavigation();
                                                        $ilBench->stop("ContentPresentation", "layout_lmnavigation");
                                                }
                                                break;

                                        case "ilMedia":
                                                $this->ilMedia();
                                                break;

                                        case "ilLocator":
                                                $ilBench->start("ContentPresentation", "layout_locator");
                                                $this->ilLocator();
                                                $ilBench->stop("ContentPresentation", "layout_locator");
                                                break;

                                        case "ilLMMenu":
                                                $ilBench->start("ContentPresentation", "layout_lmmenu");
                                                $this->ilLMMenu();
                                                $ilBench->stop("ContentPresentation", "layout_lmmenu");
                                                break;

                                        case "ilLMSubMenu":
                                                $ilBench->start("ContentPresentation", "layout_lmsubmenu");
                                                $this->ilLMSubMenu();
                                                $ilBench->stop("ContentPresentation", "layout_lmsubmenu");
                                                break;
                                                
                                        case "ilLMNotes":
                                                $ilBench->start("ContentPresentation", "layout_lmnotes");
                                                $this->ilLMNotes();
                                                $ilBench->stop("ContentPresentation", "layout_lmnotes");
                                                break;
                                }
                        }
                        $ilBench->stop("ContentPresentation", "layout_processContentNodes");
                        
                        $ilBench->stop("ContentPresentation", "layout_processContentTag");
                }
                $content =  $this->tpl->get();

                if ($doShow)
                {
                        // (horrible) workaround for preventing template engine
                        // from hiding paragraph text that is enclosed
                        // in curly brackets (e.g. "{a}", see ilPageObjectGUI::showPage())
                        
                        $this->tpl->fillTabs();
                        $content =  $this->tpl->get();
                        $content = str_replace("&#123;", "{", $content);
                        $content = str_replace("&#125;", "}", $content);

                        header('Content-type: text/html; charset=UTF-8');
                        echo $content;
                }

                $ilBench->stop("ContentPresentation", "layout");

                return($content);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::lmAccess ( usr_id,
lm_id,
obj_id 
)

logs access to lm objects to enable retrieval of a 'last viewed lm list' and 'return to last lm' allows only ONE entry per user and lm object

A.L. Ammerlaan / INGMEDIA FH-Aachen / 2003.09.08

Definition at line 241 of file class.ilLMPresentationGUI.php.

References $lm_id, $obj_id, $q, $title, and ilUtil::prepareDBString().

Referenced by executeCommand().

        {
                global $ilDB;
                
                // first check if an entry for this user and this lm already exist, when so, delete
                $q = "DELETE FROM lo_access ".
                        "WHERE usr_id='".$usr_id."' ".
                        "AND lm_id='".$lm_id."'";
                $this->ilias->db->query($q);
                $title = (is_object($this->lm))?$this->lm->getTitle():"- no title -";
                // insert new entry
                $pg_title = "";
                $q = "INSERT INTO lo_access ".
                        "(timestamp,usr_id,lm_id,obj_id,lm_title) ".
                        "VALUES ".
                        "(now(),'".$usr_id."','".$lm_id."',".$ilDB->quote($obj_id).",'".ilUtil::prepareDBString($title)."')";
                $this->ilias->db->query($q);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::mapCurrentPageId ( current_page_id  ) 

Definition at line 1258 of file class.ilLMPresentationGUI.php.

References $_SESSION, and $pos.

Referenced by ilTranslation().

        {
                $subtree = $this->lm_tree->getSubTree($this->lm_tree->getNodeData(1));
                $node = $this->lm_tree->getNodeData($current_page_id);
                $pos = array_search($node,$subtree);

                $this->tr_obj =& $this->ilias->obj_factory->getInstanceByRefId($_SESSION["tr_id"]);

                $lmtree = new ilTree($this->tr_obj->getId());
                $lmtree->setTableNames('lm_tree','lm_data');
                $lmtree->setTreeTablePK("lm_id");

                $subtree = $lmtree->getSubTree($lmtree->getNodeData(1));

                return $subtree[$pos]["child"];
        }

Here is the caller graph for this function:

ilLMPresentationGUI::media (  ) 

Definition at line 797 of file class.ilLMPresentationGUI.php.

References $_GET, layout(), and offlineMode().

        {
                if ($_GET["frame"] != "_blank")
                {
                        return $this->layout("main.xml", !$this->offlineMode());
                }
                else
                {
                        return $this->layout("fullscreen.xml", !$this->offlineMode());
                }
        }

Here is the call graph for this function:

ilLMPresentationGUI::nop (  ) 

this dummy function is needed for offline package creation

Definition at line 230 of file class.ilLMPresentationGUI.php.

        {
        }

ilLMPresentationGUI::offlineexport (  ) 

the different export types are processed here

Parameters:
@access public
Returns:

Check if export-directory exists

create html-offline-directory

copy data into dir zip all end deliver zip-file for download

Definition at line 285 of file class.ilLMPresentationGUI.php.

References $_GET, $_POST, $output, $query, $result, $row, ilUtil::deliverFile(), exit, ilObjStyleSheet::getContentStylePath(), ilUtil::getStyleSheetLocation(), ilObjStyleSheet::getSyntaxStylePath(), ilUtil::html2pdf(), layout(), and ilUtil::zip().

                                 {

                if ($_POST["cmd"]["cancel"] != "")
                {
                        $this->ctrl->setParameter($this, "frame", "maincontent");
                        $this->ctrl->redirect($this, "layout");
                }

                switch($this->lm->getType())
                {
                        case "dbk":
                                //$this->lm_gui->offlineexport();
                                $_GET["frame"] = "maincontent";

                                $query = "SELECT * FROM object_reference,object_data WHERE object_reference.ref_id='".
                                        $_GET["ref_id"]."' AND object_reference.obj_id=object_data.obj_id ";
                                $result = $this->ilias->db->query($query);
                                $objRow = $result->fetchRow(DB_FETCHMODE_ASSOC);
                                $_GET["obj_id"] = $objRow["obj_id"];

                                $query = "SELECT * FROM lm_data WHERE lm_id='".$objRow["obj_id"]."' AND type='pg' ";
                                $result = $this->ilias->db->query($query);

                                $page = 0;
                                $showpage = 0;
                                while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) )
                                {

                                        $page++;

                                        if ($_POST["pages"]=="all" || ($_POST["pages"]=="fromto" && $page>=$_POST["pagefrom"] && $page<=$_POST["pageto"] ))
                    {

                                                if ($showpage>0)
                                                {
                                                        if($_POST["type"] == "pdf") $output .= "<hr BREAK >\n";
                                                        if($_POST["type"] == "print") $output .= "<p style=\"page-break-after:always\" />";
                                                        if($_POST["type"] == "html") $output .= "<br><br><br><br>";
                                                }
                                                $showpage++;

                                                $_GET["obj_id"] = $row["obj_id"];
                                                $o = $this->layout("main.xml",false);

                        $output .= "<div xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" class=\"ilc_PageTitle\">".$this->lm->title."</div><p>";
                                                $output .= $o;

                                                $output .= "\n<table cellpadding=0 cellspacing=0 border=0 width=100%><tr><td valign=top align=center>- ".$page." -</td></tr></table>\n";

                                        }
                                }

                                $printTpl = new ilTemplate("tpl.print.html", true, true, true);

                                if($_POST["type"] == "print")
                                {
                                        $printTpl->touchBlock("printreq");
                                        $css1 = ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId());
                                        $css2 = ilUtil::getStyleSheetLocation();
                                }
                                else
                                {
                                        $css1 = "./css/delos.css";
                                        $css2 = "./css/content.css";
                                }
                                $printTpl->setVariable("LOCATION_CONTENT_STYLESHEET", $css1 );

                                $printTpl->setVariable("LOCATION_STYLESHEET", $css2);
                                $printTpl->setVariable("CONTENT",$output);

                                // syntax style
                                $printTpl->setCurrentBlock("SyntaxStyle");
                                $printTpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                                        ilObjStyleSheet::getSyntaxStylePath());
                                $printTpl->parseCurrentBlock();


                                $html = $printTpl->get();

                                $this->lm->createExportDirectory();
                                $export_dir = $this->lm->getExportDirectory();

                                $fileName = "offline";
                                $fileName = str_replace(" ","_",$fileName);

                                if (!file_exists($export_dir."/".$fileName))
                                {
                                        @mkdir($export_dir."/".$fileName);
                                        @chmod($export_dir."/".$fileName, 0755);

                                        @mkdir($export_dir."/".$fileName."/css");
                                        @chmod($export_dir."/".$fileName."/css", 0755);

                                }

                                if($_POST["type"] == "xml")
                                {
                                        //vd($_GET["ref_id"]);
                                        $tmp_obj =& $this->ilias->obj_factory->getInstanceByRefId($_GET["ref_id"]);

                                        if ($tmp_obj->getType() == "dbk" )
                                        {
                                                require_once "content/classes/class.ilObjDlBook.php";
                                                $dbk =& new ilObjDlBook($_GET["ref_id"]);
                                                $dbk->export();
                                        }

                                }
                                else if($_POST["type"] == "print")
                                {
                                        echo $html;
                                }
                                else if ($_POST["type"]=="html")
                                {

                                        $css1 = file("./templates/default/delos.css");
                                        $css1 = implode($css1,"");

                                        $fp = fopen($export_dir."/".$fileName."/css/delos.css","wb");
                                        fwrite($fp,$css1);
                                        fclose($fp);

                                        $css2 = file("./content/content.css");
                                        $css2 = implode($css2,"");

                                        $fp = fopen($export_dir."/".$fileName."/css/content.css","wb");
                                        fwrite($fp,$css2);
                                        fclose($fp);


                                        $fp = fopen($export_dir."/".$fileName."/".$fileName.".html","wb");
                                        fwrite($fp,$html);
                                        fclose($fp);

                                        ilUtil::zip($export_dir."/".$fileName, $export_dir."/".$fileName.".zip");

                    ilUtil::deliverFile($export_dir."/".$fileName.".zip", $fileName.".zip");

                                }
                else if ($_POST["type"]=="pdf")
                                {

                    ilUtil::html2pdf($html, $export_dir."/".$fileName.".pdf");

                    ilUtil::deliverFile($export_dir."/".$fileName.".pdf", $fileName.".pdf");

                                }

                                exit;
                }

        }

Here is the call graph for this function:

ilLMPresentationGUI::offlineexportform (  ) 

draws export-form on screen

Parameters:
@access public
Returns:

Definition at line 456 of file class.ilLMPresentationGUI.php.

    {

                switch($this->lm->getType())
                {
                        case "dbk":
                                $this->lm_gui->offlineexportform();
                                break;
                }

        }

ilLMPresentationGUI::offlineMode (  ) 
ilLMPresentationGUI::outputInfoScreen ( a_standard_locator = false  ) 

info screen

Definition at line 2408 of file class.ilLMPresentationGUI.php.

References $_GET, $ilBench, ilUtil::getImagePath(), ilUtil::getStyleSheetLocation(), ilLocator(), and offlineMode().

Referenced by executeCommand(), infoScreen(), and showInfoScreen().

        {
                global $ilBench, $ilLocator, $ilAccess;

                $this->tpl->setHeaderPageTitle("PAGETITLE", " - ".$this->lm->getTitle());

                // set style sheets
                if (!$this->offlineMode())
                {
                        $this->tpl->setStyleSheetLocation(ilUtil::getStyleSheetLocation());
                }
                else
                {
                        $style_name = $this->ilias->account->prefs["style"].".css";;
                        $this->tpl->setStyleSheetLocation("./".$style_name);
                }

                $this->tpl->getStandardTemplate();
                $this->tpl->setTitle($this->lm->getTitle());
                $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm_b.gif"));
                
                // Full locator, if read permission is given
                if ($ilAccess->checkAccess("read", "", $_GET["ref_id"]))
                {
                        $this->ilLocator();
                }
                else
                {
                        $ilLocator->addRepositoryItems();
                        $this->tpl->setLocator();
                }
                
                $this->lng->loadLanguageModule("meta");

                include_once("classes/class.ilInfoScreenGUI.php");

                $info = new ilInfoScreenGUI($this->lm_gui);
                $info->enablePrivateNotes();
                $info->enableLearningProgress();

                // add read / back button
                if ($ilAccess->checkAccess("read", "", $_GET["ref_id"]))
                {
                        if ($_GET["obj_id"] > 0)
                        {
                                $this->ctrl->setParameter($this, "obj_id", $_GET["obj_id"]);
                                $info->addButton($this->lng->txt("back"),
                                        $this->ctrl->getLinkTarget($this, "layout"));
                        }
                        else
                        {
                                $info->addButton($this->lng->txt("view"),
                                        $this->ctrl->getLinkTarget($this, "layout"));
                        }
                }
                
                // show standard meta data section
                $info->addMetaDataSections($this->lm->getId(),0, $this->lm->getType());

                if ($this->offlineMode())
                {
                        $this->tpl->setContent($info->getHTML());
                        return $this->tpl->get();
                }
                else
                {
                        // forward the command
                        $this->ctrl->forwardCommand($info);
                        //$this->tpl->setContent("aa");
                        $this->tpl->show();
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::processNodes ( &$  a_content,
&$  a_node 
)

Definition at line 2204 of file class.ilLMPresentationGUI.php.

References $_GET, attrib2arr(), buildTag(), and getLink().

Referenced by layout().

        {
                $child_nodes = $a_node->child_nodes();
                foreach ($child_nodes as $child)
                {
                        if($child->node_name() == "ilFrame")
                        {
                                $attributes = $this->attrib2arr($child->attributes());
                                // node is frameset, if it has cols or rows attribute
                                if ((!empty($attributes["rows"])) || (!empty($attrubtes["cols"])))
                                {
                                        // if framset has name, another http request is necessary
                                        // (html framesets don't have names, so we need a wrapper frame)
                                        if(!empty($attributes["name"]))
                                        {
                                                unset($attributes["template"]);
                                                unset($attributes["template_location"]);
                                                $attributes["src"] =
                                                        $this->getLink($this->lm->getRefId(), "layout", $_GET["obj_id"], $attributes["name"],
                                                                "", "keep");
                                                $attributes["title"] = $this->lng->txt("cont_frame_".$attributes["name"]);
                                                $a_content .= $this->buildTag("", "frame", $attributes);
                                                $this->frames[$attributes["name"]] = $attributes["name"];
//echo "<br>processNodes:add1 ".$attributes["name"];
                                        }
                                        else    // ok, no name means that we can easily output the frameset tag
                                        {
                                                $a_content .= $this->buildTag("start", "frameset", $attributes);
                                                $this->processNodes($a_content, $child);
                                                $a_content .= $this->buildTag("end", "frameset");
                                        }
                                }
                                else    // frame with
                                {
                                        unset($attributes["template"]);
                                        unset($attributes["template_location"]);
                                        $attributes["src"] =
                                                $this->getLink($this->lm->getRefId(), "layout", $_GET["obj_id"], $attributes["name"],
                                                        "", "keep");
                                        $attributes["title"] = $this->lng->txt("cont_frame_".$attributes["name"]);
                                        if ($attributes["name"] == "toc")
                                        {
                                                $attributes["src"].= "#".$_GET["obj_id"];
                                        }
                                        $a_content .= $this->buildTag("", "frame", $attributes);
                                        $this->frames[$attributes["name"]] = $attributes["name"];
//echo "<br>processNodes:add2 ".$attributes["name"];
                                        //$a_content .= "<frame name=\"".$attributes["name"]."\" ".
                                        //      "src=\"lm_presentation.php?ref_id=".$this->lm->getRefId()."&cmd=layout&frame=".$attributes["name"]."&obj_id=".$_GET["obj_id"]."\" />\n";
                                }
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::setExportFormat ( a_format  ) 

set export format

Parameters:
string $a_format "html" / "scorm"

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

        {
                $this->export_format = $a_format;
        }

ilLMPresentationGUI::setOfflineDirectory ( offdir  ) 

set offline directory to offdir

Parameters:
offdir contains diretory where to store files

current used in code paragraph

Definition at line 3549 of file class.ilLMPresentationGUI.php.

                                               {
                $this->offline_directory = $offdir;
        }

ilLMPresentationGUI::setOfflineMode ( a_offline = true  ) 

set offline mode (content is generated for offline package)

Definition at line 193 of file class.ilLMPresentationGUI.php.

        {
                $this->offline = $a_offline;
        }

ilLMPresentationGUI::setSessionVars (  ) 

Definition at line 3105 of file class.ilLMPresentationGUI.php.

References $_POST, $_SESSION, and sendInfo().

Referenced by ilLMPresentationGUI(), and layout().

        {
                if($_POST["action"] == "show" or $_POST["action"] == "show_citation")
                {
                        if($_POST["action"] == "show_citation")
                        {
                                // ONLY ONE EDITION
                                if(count($_POST["target"]) != 1)
                                {
                                        sendInfo($this->lng->txt("cont_citation_err_one"));
                                        $_POST["action"] = "";
                                        $_POST["target"] = 0;
                                        return false;
                                }
                                $_SESSION["citation"] = 1;
                        }
                        else
                        {
                                unset($_SESSION["citation"]);
                        }
                        if(isset($_POST["tr_id"]))
                        {
                                $_SESSION["tr_id"] = $_POST["tr_id"][0];
                        }
                        else
                        {
                                unset($_SESSION["tr_id"]);
                        }
                        if(is_array($_POST["target"]))
                        {
                                $_SESSION["bib_id"] = ",".implode(',',$_POST["target"]).",";
                        }
                        else
                        {
                                $_SESSION["bib_id"] = ",0,";
                        }
                }
                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::showDownloadList (  ) 

show download list

Definition at line 3170 of file class.ilLMPresentationGUI.php.

References $_GET, $dir, $ilBench, $tbl, $type, ilObjStyleSheet::getContentStylePath(), ilUtil::getImagePath(), ilUtil::getStyleSheetLocation(), ilLocator(), offlineMode(), and ilUtil::switchColor().

        {
                global $ilBench;

                //$this->tpl = new ilTemplate("tpl.lm_toc.html", true, true, true);
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());
                $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                $this->tpl->getStandardTemplate();
                $this->ilLocator();
                $this->tpl->stopTitleFloating();
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lm_download_list.html", true);

                // set title header
                $this->tpl->setTitle($this->lm->getTitle());
                $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm_b.gif"));
                $this->tpl->setVariable("TXT_BACK", $this->lng->txt("back"));
                $this->ctrl->setParameter($this, "obj_id", $_GET["obj_id"]);
                $this->tpl->setVariable("LINK_BACK",
                        $this->ctrl->getLinkTarget($this, ""));

                // output copyright information
                include_once 'Services/MetaData/classes/class.ilMD.php';
                $md = new ilMD($this->lm->getId(),0, $this->lm->getType());
                if (is_object($md_rights = $md->getRights()))
                {
                        $copyright = $md_rights->getDescription();
                        if ($copyright != "")
                        {
                                $this->lng->loadLanguageModule("meta");
                                $this->tpl->setCurrentBlock("copyright");
                                $this->tpl->setVariable("TXT_COPYRIGHT", $this->lng->txt("meta_copyright"));
                                $this->tpl->setVariable("LM_COPYRIGHT", $copyright);
                                $this->tpl->parseCurrentBlock();
                        }
                }

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

                // load files templates
                $this->tpl->addBlockfile("DOWNLOAD_TABLE", "download_table", "tpl.table.html");

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

                $export_files = array();
                $types = array("xml", "html");
                foreach($types as $type)
                {
                        if ($this->lm->getPublicExportFile($type) != "")
                        {
                                if (is_file($this->lm->getExportDirectory($type)."/".
                                        $this->lm->getPublicExportFile($type)))
                                {
                                        $dir = $this->lm->getExportDirectory($type);
                                        $size = filesize($this->lm->getExportDirectory($type)."/".
                                                $this->lm->getPublicExportFile($type));
                                        $export_files[] = array("type" => $type,
                                                "file" => $this->lm->getPublicExportFile($type),
                                                "size" => $size);
                                }
                        }
                }
                
                $num = 0;
                
                $tbl->setTitle($this->lng->txt("download"));

                $tbl->setHeaderNames(array($this->lng->txt("cont_format"),
                        $this->lng->txt("cont_file"),
                        $this->lng->txt("size"), $this->lng->txt("date"),
                        ""));

                $cols = array("format", "file", "size", "date", "download");
                $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"],
                        "cmd" => "showDownloadList", "cmdClass" => strtolower(get_class($this)));
                $tbl->setHeaderVars($cols, $header_params);
                $tbl->setColumnWidth(array("10%", "30%", "20%", "20%","20%"));
                $tbl->disable("sort");

                // control
                $tbl->setOrderColumn($_GET["sort_by"]);
                $tbl->setOrderDirection($_GET["sort_order"]);
                $tbl->setLimit($_GET["limit"]);
                $tbl->setOffset($_GET["offset"]);
                $tbl->setMaxCount($this->maxcount);             // ???

                //$this->tpl->setVariable("COLUMN_COUNTS", 5);

                // footer
                //$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
                $tbl->disable("footer");

                $tbl->setMaxCount(count($export_files));
                $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);

                $tbl->render();
                if(count($export_files) > 0)
                {
                        $i=0;
                        foreach($export_files as $exp_file)
                        {
                                if (!$exp_file["size"] > 0)
                                {
                                        continue;
                                }
                                
                                $this->tpl->setCurrentBlock("tbl_content");
                                $this->tpl->setVariable("TXT_FILENAME", $exp_file["file"]);

                                $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
                                $this->tpl->setVariable("CSS_ROW", $css_row);

                                $this->tpl->setVariable("TXT_SIZE", $exp_file["size"]);
                                $this->tpl->setVariable("TXT_FORMAT", strtoupper($exp_file["type"]));
                                $this->tpl->setVariable("CHECKBOX_ID", $exp_file["type"].":".$exp_file["file"]);

                                $file_arr = explode("__", $exp_file["file"]);
                                $this->tpl->setVariable("TXT_DATE", date("Y-m-d H:i:s",$file_arr[0]));

                                $this->tpl->setVariable("TXT_DOWNLOAD", $this->lng->txt("download"));
                                $this->ctrl->setParameter($this, "type", $exp_file["type"]);
                                $this->tpl->setVariable("LINK_DOWNLOAD",
                                        $this->ctrl->getLinkTarget($this, "downloadExportFile"));

                                $this->tpl->parseCurrentBlock();
                        }
                } //if is_array
                else
                {
                        $this->tpl->setCurrentBlock("notfound");
                        $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
                        $this->tpl->setVariable("NUM_COLS", 5);
                        $this->tpl->parseCurrentBlock();
                }

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

Here is the call graph for this function:

ilLMPresentationGUI::showInfoScreen (  ) 

info screen call from inside learning module

Definition at line 2400 of file class.ilLMPresentationGUI.php.

References outputInfoScreen().

        {
                $this->outputInfoScreen(true);
        }

Here is the call graph for this function:

ilLMPresentationGUI::showNoPublicAccess (  ) 

Definition at line 3504 of file class.ilLMPresentationGUI.php.

References ilObjStyleSheet::getContentStylePath(), getCurrentPageId(), and offlineMode().

Referenced by ilPage().

        {
                $page_id = $this->getCurrentPageId();

                // content style
                $this->tpl->setCurrentBlock("ContentStyle");
                
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                
                $this->tpl->parseCurrentBlock();
                $this->tpl->addBlockFile("PAGE_CONTENT", "pg_content", "tpl.page_nopublicaccess.html", true);
                $this->tpl->setCurrentBlock("pg_content");
                $this->tpl->setVariable("TXT_PAGE_NO_PUBLIC_ACCESS",$this->lng->txt("msg_page_no_public_access"));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::showPreconditionsOfPage (  ) 

show preconditions of the page

Definition at line 1553 of file class.ilLMPresentationGUI.php.

References $_GET, $ilBench, ilObjContentObject::_getMissingPreconditionsOfPage(), ilObjContentObject::_getMissingPreconditionsTopChapter(), ilLMObject::_lookupTitle(), ilObject::_lookupTitle(), ilRepositoryExplorer::buildFrameTarget(), ilRepositoryExplorer::buildLinkTarget(), ilObjStyleSheet::getContentStylePath(), getCurrentPageId(), getLink(), and offlineMode().

Referenced by ilPage().

        {
                global $ilBench;

                $ilBench->start("ContentPresentation", "showPagePreconditions");
                $conds = ilObjContentObject::_getMissingPreconditionsOfPage($this->lm->getId(), $this->getCurrentPageId());
                $topchap = ilObjContentObject::_getMissingPreconditionsTopChapter($this->lm->getId(), $this->getCurrentPageId());

                $page_id = $this->getCurrentPageId();

                // content style
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                $this->tpl->addBlockFile("PAGE_CONTENT", "pg_content", "tpl.page_preconditions.html", true);
                
                // list all missing preconditions
                include_once("classes/class.ilRepositoryExplorer.php");
                foreach($conds as $cond)
                {
                        $obj_link = ilRepositoryExplorer::buildLinkTarget($cond["trigger_ref_id"],$cond["trigger_type"]);
                        $obj_frame = ilRepositoryExplorer::buildFrameTarget($cond["trigger_type"],$cond["trigger_ref_id"],$cond["trigger_obj_id"]);
                        $this->tpl->setCurrentBlock("condition");
                        $this->tpl->setVariable("ROWCOL", $rc = ($rc != "tblrow2") ? "tblrow2" : "tblrow1");
                        $this->tpl->setVariable("VAL_ITEM", ilObject::_lookupTitle($cond["trigger_obj_id"]));
                        $this->tpl->setVariable("LINK_ITEM", $obj_link);
                        $this->tpl->setVariable("FRAME_ITEM", $obj_frame);
                        if ($cond["operator"] == "passed")
                        {
                                $cond_str = $this->lng->txt("passed");
                        }
                        else
                        {
                                $cond_str = $cond["operator"];
                        }
                        $this->tpl->setVariable("VAL_CONDITION", $cond_str." ".$cond["value"]);
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("pg_content");
                
                //include_once("content/classes/class.ilLMObject.php");
                $this->tpl->setVariable("TXT_MISSING_PRECONDITIONS", 
                        sprintf($this->lng->txt("cont_missing_preconditions"),
                        ilLMObject::_lookupTitle($topchap)));
                $this->tpl->setVariable("TXT_ITEM", $this->lng->txt("item"));
                $this->tpl->setVariable("TXT_CONDITION", $this->lng->txt("condition"));
                
                // output skip chapter link
                $parent = $this->lm_tree->getParentId($topchap);
                $childs = $this->lm_tree->getChildsByType($parent, "st");
                $next = "";
                $j=-2; $i=1; 
                foreach($childs as $child)
                {
                        if ($child["child"] == $topchap)
                        {
                                $j = $i;
                        }
                        if ($i++ == ($j+1))
                        {
                                $succ_node = $this->lm_tree->fetchSuccessorNode($child["child"], "pg");
                        }
                }
                if($succ_node != "")
                {
                        $framestr = (!empty($_GET["frame"]))
                                ? "frame=".$_GET["frame"]."&"
                                : "";
                        //$showViewInFrameset = $this->ilias->ini->readVariable("layout","view_target") == "frame";
                        $showViewInFrameset = true;
                        $link = "<br /><a href=\"".
                                $this->getLink($this->lm->getRefId(), "layout", $succ_node["obj_id"], $_GET["frame"]).
                                "\">".$this->lng->txt("cont_skip_chapter")."</a>";
                        $this->tpl->setVariable("LINK_SKIP_CHAPTER", $link);
                }
                
                $this->tpl->parseCurrentBlock();
                
                $ilBench->stop("ContentPresentation", "showPagePreconditions");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMPresentationGUI::showPrintView (  ) 

show print view

Definition at line 2628 of file class.ilLMPresentationGUI.php.

References $_GET, $_POST, $id, $ilBench, $key, $output, ilObjContentObject::_checkPreconditionsOfPage(), ilStructureObject::_getPresentationTitle(), ilLMPageObject::_getPresentationTitle(), ilInternalLink::_getTargetsOfSource(), ilLMObject::_isPagePublic(), ilGlossaryTerm::_lookGlossaryTerm(), ilObjStyleSheet::getContentPrintStyle(), ilObjStyleSheet::getContentStylePath(), ilGlossaryDefinition::getDefinitionList(), ilUtil::getImagePath(), ilObjStyleSheet::getSyntaxStylePath(), ilUtil::getWebspaceDir(), and offlineMode().

        {
                global $ilBench,$ilUser;

                if (!$this->lm->isActivePrintView())
                {
                        return;
                }

                $ilBench->start("ContentPresentation", "PrintView");

                $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());
                
                // set style sheets
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_STYLESHEET", ilObjStyleSheet::getContentPrintStyle());
                }
                else
                {
                        $style_name = $this->ilias->account->prefs["style"].".css";;
                        $this->tpl->setVariable("LOCATION_STYLESHEET","./".$style_name);
                }

                // content style
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                // syntax style
                $this->tpl->setCurrentBlock("SyntaxStyle");
                $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
                        ilObjStyleSheet::getSyntaxStylePath());
                $this->tpl->parseCurrentBlock();

                //$this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                $this->tpl->addBlockFile("CONTENT", "content", "tpl.lm_print_view.html", true);

                // set title header
                $this->tpl->setVariable("HEADER", $this->lm->getTitle());

                $nodes = $this->lm_tree->getSubtree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));

                include_once("content/classes/Pages/class.ilPageObjectGUI.php");
                include_once("content/classes/class.ilLMPageObject.php");
                include_once("content/classes/class.ilStructureObject.php");

                $act_level = 99999;
                $activated = false;

                $glossary_links = array();
                $output_header = false;
                $media_links = array();

                // get header and footer
                if ($this->lm->getFooterPage() > 0)
                {
                        $page_object =& new ilPageObject($this->lm->getType(), $this->lm->getFooterPage());
                        $page_object_gui =& new ilPageObjectGUI($page_object);

                        // determine target frames for internal links
                        $page_object_gui->setLinkFrame($_GET["frame"]);
                        $page_object_gui->setOutputMode("print");
                        $page_object_gui->setPresentationTitle("");
                        $footer_page_content = $page_object_gui->showPage();
                }
                if ($this->lm->getHeaderPage() > 0)
                {
                        $page_object =& new ilPageObject($this->lm->getType(), $this->lm->getHeaderPage());
                        $page_object_gui =& new ilPageObjectGUI($page_object);

                        // determine target frames for internal links
                        $page_object_gui->setLinkFrame($_GET["frame"]);
                        $page_object_gui->setOutputMode("print");
                        $page_object_gui->setPresentationTitle("");
                        $header_page_content = $page_object_gui->showPage();
                }

                foreach ($nodes as $node_key => $node)
                {

                        // print all subchapters/subpages if higher chapter
                        // has been selected
                        if ($node["depth"] <= $act_level)
                        {
                                if ($_POST["item"][$node["obj_id"]] == "y")
                                {
                                        $act_level = $node["depth"];
                                        $activated = true;
                                }
                                else
                                {
                                        $act_level = 99999;
                                        $activated = false;
                                }
                        }
                        
                        if ($activated &&
                                ilObjContentObject::_checkPreconditionsOfPage($this->lm->getId(), $node["obj_id"]))
                        {
                                // output learning module header
                                if ($node["type"] == "du")
                                {
                                        $output_header = true;
                                }

                                // output chapter title
                                if ($node["type"] == "st")
                                {
                                        if ($ilUser->getId() == ANONYMOUS_USER_ID and $this->lm_gui->object->getPublicAccessMode() == "selected")
                                        {
                                                if (!ilLMObject::_isPagePublic($node["obj_id"]))
                                                {
                                                        continue;
                                                }
                                        }
                                        
                                        $chap =& new ilStructureObject($this->lm, $node["obj_id"]);
                                        $this->tpl->setCurrentBlock("print_chapter");

                                        $chapter_title = $chap->_getPresentationTitle($node["obj_id"],
                                                $this->lm->isActiveNumbering());
                                        $this->tpl->setVariable("CHAP_TITLE",
                                                $chapter_title);
                                                
                                        if ($this->lm->getPageHeader() == IL_CHAPTER_TITLE)
                                        {
                                                if ($nodes[$node_key + 1]["type"] == "pg")
                                                {
                                                        $this->tpl->setVariable("CHAP_HEADER",
                                                                $header_page_content);
                                                        $did_chap_page_header = true;
                                                }
                                        }

                                        $this->tpl->parseCurrentBlock();
                                        $this->tpl->setCurrentBlock("print_block");
                                        $this->tpl->parseCurrentBlock();
                                }

                                // output page
                                if ($node["type"] == "pg")
                                {
                                        if ($ilUser->getId() == ANONYMOUS_USER_ID and $this->lm_gui->object->getPublicAccessMode() == "selected")
                                        {
                                                if (!ilLMObject::_isPagePublic($node["obj_id"]))
                                                {
                                                        continue;
                                                }
                                        }

                                        $this->tpl->setCurrentBlock("print_item");
                                        
                                        // get page
                                        $page_id = $node["obj_id"];
                                        $page_object =& new ilPageObject($this->lm->getType(), $page_id);
                                        $page_object_gui =& new ilPageObjectGUI($page_object);

                                        // get lm page
                                        $lm_pg_obj =& new ilLMPageObject($this->lm, $page_id);
                                        $lm_pg_obj->setLMId($this->lm->getId());

                                        // determine target frames for internal links
                                        $page_object_gui->setLinkFrame($_GET["frame"]);
                                        $page_object_gui->setOutputMode("print");
                                        $page_object_gui->setPresentationTitle("");
                                        
                                        if ($this->lm->getPageHeader() == IL_PAGE_TITLE)
                                        {
                                                $page_title = ilLMPageObject::_getPresentationTitle($lm_pg_obj->getId(),
                                                                $this->lm->getPageHeader(), $this->lm->isActiveNumbering());

                                                // prevent page title after chapter title
                                                // that have the same content
                                                if ($this->lm->isActiveNumbering())
                                                {
                                                        $chapter_title = trim(substr($chapter_title,
                                                                strpos($chapter_title, " ")));
                                                }

                                                if ($page_title != $chapter_title)
                                                {
                                                        $page_object_gui->setPresentationTitle($page_title);
                                                }
                                        }

                                        // handle header / footer
                                        $hcont = $header_page_content;
                                        $fcont = $footer_page_content;

                                        if ($this->lm->getPageHeader() == IL_CHAPTER_TITLE)
                                        {
                                                if ($did_chap_page_header)
                                                {
                                                        $hcont = "";
                                                }
                                                if ($nodes[$node_key + 1]["type"] == "pg" &&
                                                        !($nodes[$node_key + 1]["depth"] <= $act_level
                                                         && $_POST["item"][$nodes[$node_key + 1]["obj_id"]] != "y"))
                                                {
                                                        $fcont = "";
                                                }
                                        }
                                        
                                        $page_content = $page_object_gui->showPage();
                                        if ($this->lm->getPageHeader() != IL_PAGE_TITLE)
                                        {
                                                $this->tpl->setVariable("CONTENT",
                                                        $hcont.$page_content.$fcont);
                                        }
                                        else
                                        {
                                                $this->tpl->setVariable("CONTENT", 
                                                        $hcont.$page_content.$fcont."<br />");
                                        }
                                        $chapter_title = "";
                                        $this->tpl->parseCurrentBlock();
                                        $this->tpl->setCurrentBlock("print_block");
                                        $this->tpl->parseCurrentBlock();

                                        // get internal links
                                        $int_links = ilInternalLink::_getTargetsOfSource($this->lm->getType().":pg", $node["obj_id"]);

                                        $got_mobs = false;

                                        foreach ($int_links as $key => $link)
                                        {
                                                if ($link["type"] == "git" &&
                                                        ($link["inst"] == IL_INST_ID || $link["inst"] == 0))
                                                {
                                                        $glossary_links[$key] = $link;
                                                }
                                                if ($link["type"] == "mob" &&
                                                        ($link["inst"] == IL_INST_ID || $link["inst"] == 0))
                                                {
                                                        $got_mobs = true;
                                                        $mob_links[$key] = $link;
                                                }
                                        }

                                        // this is not cool because of performance reasons
                                        // unfortunately the int link table does not
                                        // store the target frame (we want to append all linked
                                        // images but not inline images (i.e. mobs with no target
                                        // frame))
                                        if ($got_mobs)
                                        {
                                                $page_object->buildDom();
                                                $links = $page_object->getInternalLinks();
                                                foreach($links as $link)
                                                {
                                                        if ($link["Type"] == "MediaObject"
                                                                && $link["TargetFrame"] != ""
                                                                && $link["TargetFrame"] != "None")
                                                        {
                                                                $media_links[] = $link;
                                                        }
                                                }
                                        }
                                }
                        }
                }

                $annex_cnt = 0;
                $annexes = array();

                // glossary
                if (count($glossary_links) > 0)
                {
                        include_once("content/classes/class.ilGlossaryTerm.php");
                        include_once("content/classes/class.ilGlossaryDefinition.php");

                        // sort terms
                        $terms = array();
                        
                        foreach($glossary_links as $key => $link)
                        {
                                $term = ilGlossaryTerm::_lookGlossaryTerm($link["id"]);
                                $terms[$term.":".$key] = $link;
                        }
                        ksort($terms);

                        foreach($terms as $key => $link)
                        {
                                $defs = ilGlossaryDefinition::getDefinitionList($link["id"]);
                                $def_cnt = 1;

                                // output all definitions of term
                                foreach($defs as $def)
                                {
                                        // definition + number, if more than 1 definition
                                        if (count($defs) > 1)
                                        {
                                                $this->tpl->setCurrentBlock("def_title");
                                                $this->tpl->setVariable("TXT_DEFINITION",
                                                        $this->lng->txt("cont_definition")." ".($def_cnt++));
                                                $this->tpl->parseCurrentBlock();
                                        }
                                        $page =& new ilPageObject("gdf", $def["id"]);
                                        $page_gui =& new ilPageObjectGUI($page);
                                        $page_gui->setTemplateOutput(false);
                                        $page_gui->setOutputMode("print");

                                        $this->tpl->setCurrentBlock("definition");
                                        $output = $page_gui->showPage();
                                        $this->tpl->setVariable("VAL_DEFINITION", $output);
                                        $this->tpl->parseCurrentBlock();
                                }

                                // output term
                                $this->tpl->setCurrentBlock("term");
                                $this->tpl->setVariable("VAL_TERM",
                                        $term = ilGlossaryTerm::_lookGlossaryTerm($link["id"]));
                                $this->tpl->parseCurrentBlock();
                        }

                        // output glossary header
                        $annex_cnt++;
                        $this->tpl->setCurrentBlock("glossary");
                        $annex_title = $this->lng->txt("cont_annex")." ".
                                chr(64+$annex_cnt).": ".$this->lng->txt("glo");
                        $this->tpl->setVariable("TXT_GLOSSARY", $annex_title);
                        $this->tpl->parseCurrentBlock();

                        $annexes[] = $annex_title;
                }

                // referenced images
                if (count($media_links) > 0)
                {
                        include_once("content/classes/Media/class.ilObjMediaObject.php");
                        include_once("content/classes/Media/class.ilMediaItem.php");

                        foreach($media_links as $media)
                        {
                                if (substr($media["Target"],0,4) == "il__")
                                {
                                        $arr = explode("_",$media["Target"]);
                                        $id = $arr[count($arr) - 1];
                                        
                                        $med_obj = new ilObjMediaObject($id);
                                        $med_item =& $med_obj->getMediaItem("Standard");
                                        if (is_object($med_item))
                                        {
                                                if (is_int(strpos($med_item->getFormat(), "image")))
                                                {
                                                        $this->tpl->setCurrentBlock("ref_image");
                                                        
                                                        // image source
                                                        if ($med_item->getLocationType() == "LocalFile")
                                                        {
                                                                $this->tpl->setVariable("IMG_SOURCE",
                                                                        ilUtil::getWebspaceDir("output")."/mobs/mm_".$id.
                                                                        "/".$med_item->getLocation());
                                                        }
                                                        else
                                                        {
                                                                $this->tpl->setVariable("IMG_SOURCE",
                                                                        $med_item->getLocation());                                                              
                                                        }
                                                        
                                                        if ($med_item->getCaption() != "")
                                                        {
                                                                $this->tpl->setVariable("IMG_TITLE", $med_item->getCaption());
                                                        }
                                                        else
                                                        {
                                                                $this->tpl->setVariable("IMG_TITLE", $med_obj->getTitle());
                                                        }
                                                        $this->tpl->parseCurrentBlock();
                                                }
                                        }
                                }
                        }
                        
                        // output glossary header
                        $annex_cnt++;
                        $this->tpl->setCurrentBlock("ref_images");
                        $annex_title = $this->lng->txt("cont_annex")." ".
                                chr(64+$annex_cnt).": ".$this->lng->txt("cont_ref_images");
                        $this->tpl->setVariable("TXT_REF_IMAGES", $annex_title);
                        $this->tpl->parseCurrentBlock();

                        $annexes[] = $annex_title;
                }

                // output learning module title and toc
                if ($output_header)
                {
                        $this->tpl->setCurrentBlock("print_header");
                        $this->tpl->setVariable("LM_TITLE", $this->lm->getTitle());
                        if ($this->lm->getDescription() != "none")
                        {
                                include_once("Services/MetaData/classes/class.ilMD.php");
                                $md = new ilMD($this->lm->getId(), 0, $this->lm->getType());
                                $md_gen = $md->getGeneral();
                                foreach($md_gen->getDescriptionIds() as $id)
                                {
                                        $md_des = $md_gen->getDescription($id);
                                        $description = $md_des->getDescription();
                                }

                                $this->tpl->setVariable("LM_DESCRIPTION",
                                        $description);
                        }
                        $this->tpl->parseCurrentBlock();

                        // output toc
                        $nodes2 = $nodes;
                        foreach ($nodes2 as $node2)
                        {
                                if ($node2["type"] == "st"
                                        && ilObjContentObject::_checkPreconditionsOfPage($this->lm->getId(), $node2["obj_id"]))
                                {
                                        for ($j=1; $j < $node2["depth"]; $j++)
                                        {
                                                $this->tpl->setCurrentBlock("indent");
                                                $this->tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.gif"));
                                                $this->tpl->parseCurrentBlock();
                                        }
                                        $this->tpl->setCurrentBlock("toc_entry");
                                        $this->tpl->setVariable("TXT_TOC_TITLE",
                                                ilStructureObject::_getPresentationTitle($node2["obj_id"],
                                                $this->lm->isActiveNumbering()));
                                        $this->tpl->parseCurrentBlock();
                                }
                        }

                        // annexes
                        foreach ($annexes as $annex)
                        {
                                $this->tpl->setCurrentBlock("indent");
                                $this->tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.gif"));
                                $this->tpl->parseCurrentBlock();
                                $this->tpl->setCurrentBlock("toc_entry");
                                $this->tpl->setVariable("TXT_TOC_TITLE", $annex);
                                $this->tpl->parseCurrentBlock();
                        }

                        $this->tpl->setCurrentBlock("toc");
                        $this->tpl->setVariable("TXT_TOC", $this->lng->txt("cont_toc"));
                        $this->tpl->parseCurrentBlock();

                        $this->tpl->setCurrentBlock("print_start_block");
                        $this->tpl->parseCurrentBlock();
                }
                
                // output copyright information
                include_once 'Services/MetaData/classes/class.ilMD.php';
                $md = new ilMD($this->lm->getId(),0, $this->lm->getType());
                if (is_object($md_rights = $md->getRights()))
                {
                        $copyright = $md_rights->getDescription();
                        if ($copyright != "")
                        {
                                $this->lng->loadLanguageModule("meta");
                                $this->tpl->setCurrentBlock("copyright");
                                $this->tpl->setVariable("TXT_COPYRIGHT", $this->lng->txt("meta_copyright"));
                                $this->tpl->setVariable("LM_COPYRIGHT", $copyright);
                                $this->tpl->parseCurrentBlock();
                        }
                }

                $this->tpl->show(false);

                $ilBench->stop("ContentPresentation", "PrintView");
        }

Here is the call graph for this function:

ilLMPresentationGUI::showPrintViewSelection (  ) 

show selection screen for print view

Definition at line 2484 of file class.ilLMPresentationGUI.php.

References $_GET, $_POST, $ilBench, ilObjContentObject::_checkPreconditionsOfPage(), ilStructureObject::_getPresentationTitle(), ilLMPageObject::_getPresentationTitle(), ilLMObject::_isPagePublic(), ilObjStyleSheet::getContentStylePath(), ilUtil::getImagePath(), ilUtil::getStyleSheetLocation(), ilLocator(), and offlineMode().

        {
                global $ilBench,$ilUser;
                
                if (!$this->lm->isActivePrintView())
                {
                        return;
                }

                include_once("content/classes/class.ilStructureObject.php");

                $ilBench->start("ContentPresentation", "PrintViewSelection");

                //$this->tpl = new ilTemplate("tpl.lm_toc.html", true, true, true);
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());
                $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                $this->tpl->getStandardTemplate();
                $this->ilLocator();
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content",
                        "tpl.lm_print_selection.html", true);

                // set title header
                $this->tpl->setTitle($this->lm->getTitle());
                $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm_b.gif"));
                $this->tpl->setVariable("TXT_SHOW_PRINT", $this->lng->txt("cont_show_print_view"));
                $this->tpl->setVariable("TXT_BACK", $this->lng->txt("back"));
                $this->ctrl->setParameterByClass("illmpresentationgui", "obj_id", $_GET["obj_id"]);
                $this->tpl->setVariable("LINK_BACK",
                        $this->ctrl->getLinkTargetByClass("illmpresentationgui", ""));

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

                $nodes = $this->lm_tree->getSubtree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));

                if (!is_array($_POST["item"]))
                {
                        if ($_GET["obj_id"] != "")
                        {
                                $_POST["item"][$_GET["obj_id"]] = "y";
                        }
                        else
                        {
                                $_POST["item"][1] = "y";
                        }
                }

                foreach ($nodes as $node)
                {

                        // indentation
                        for ($i=0; $i<$node["depth"]; $i++)
                        {
                                $this->tpl->setCurrentBlock("indent");
                                $this->tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.gif"));
                                $this->tpl->parseCurrentBlock();
                        }

                        // output title
                        $this->tpl->setCurrentBlock("lm_item");

                        switch ($node["type"])
                        {
                                // page
                                case "pg":
                                        $this->tpl->setVariable("TXT_TITLE",
                                        ilLMPageObject::_getPresentationTitle($node["obj_id"],
                                        $this->lm->getPageHeader(), $this->lm->isActiveNumbering()));
                                        
                                        if ($ilUser->getId() == ANONYMOUS_USER_ID and $this->lm_gui->object->getPublicAccessMode() == "selected")
                                        {
                                                if (!ilLMObject::_isPagePublic($node["obj_id"]))
                                                {
                                                        $this->tpl->setVariable("DISABLED", "disabled=\"disabled\"");
                                                        $this->tpl->setVariable("TXT_NO_ACCESS", "(".$this->lng->txt("cont_no_access").")");
                                                }
                                        }
                                        $this->tpl->setVariable("IMG_TYPE", ilUtil::getImagePath("icon_pg.gif"));
                                        break;

                                // learning module
                                case "du":
                                        $this->tpl->setVariable("TXT_TITLE", "<b>".$this->lm->getTitle()."</b>");
                                        $this->tpl->setVariable("IMG_TYPE", ilUtil::getImagePath("icon_lm.gif"));
                                        break;

                                // chapter
                                case "st":
                                        /*
                                        $this->tpl->setVariable("TXT_TITLE", "<b>".
                                                ilStructureObject::_getPresentationTitle($node["obj_id"],
                                                $this->lm->getPageHeader(), $this->lm->isActiveNumbering())
                                                ."</b>");*/
                                        $this->tpl->setVariable("TXT_TITLE", "<b>".
                                                ilStructureObject::_getPresentationTitle($node["obj_id"],
                                                $this->lm->isActiveNumbering())
                                                ."</b>");
                                        if ($ilUser->getId() == ANONYMOUS_USER_ID and $this->lm_gui->object->getPublicAccessMode() == "selected")
                                        {
                                                if (!ilLMObject::_isPagePublic($node["obj_id"]))
                                                {
                                                        $this->tpl->setVariable("DISABLED", "disabled=\"disabled\"");
                                                        $this->tpl->setVariable("TXT_NO_ACCESS", "(".$this->lng->txt("cont_no_access").")");
                                                }
                                        }
                                        $this->tpl->setVariable("IMG_TYPE", ilUtil::getImagePath("icon_st.gif"));

                                        break;
                        }
                        
                        if (!ilObjContentObject::_checkPreconditionsOfPage($this->lm->getId(), $node["obj_id"]))
                        {
                                $this->tpl->setVariable("TXT_NO_ACCESS", "(".$this->lng->txt("cont_no_access").")");
                        }

                        $this->tpl->setVariable("ITEM_ID", $node["obj_id"]);

                        if ($_POST["item"][$node["obj_id"]] == "y")
                        {
                                $this->tpl->setVariable("CHECKED", "checked=\"checked\"");
                        }

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

                $this->tpl->show();

                $ilBench->stop("ContentPresentation", "PrintViewSelection");
        }

Here is the call graph for this function:

ilLMPresentationGUI::showTableOfContents (  ) 

table of contents

Definition at line 2292 of file class.ilLMPresentationGUI.php.

References $_GET, $exp, $expanded, $ilBench, $output, $tree, ilObjStyleSheet::getContentStylePath(), getExportFormat(), ilUtil::getImagePath(), getLink(), ilUtil::getStyleSheetLocation(), ilLocator(), and offlineMode().

        {
                global $ilBench;

                $ilBench->start("ContentPresentation", "TableOfContents");

                //$this->tpl = new ilTemplate("tpl.lm_toc.html", true, true, true);
                $this->tpl->setCurrentBlock("ContentStyle");
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
                                ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
                }
                else
                {
                        $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content.css");
                }
                $this->tpl->parseCurrentBlock();

                $this->tpl->setVariable("PAGETITLE", " - ".$this->lm->getTitle());

                // set style sheets
                if (!$this->offlineMode())
                {
                        $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
                }
                else
                {
                        $style_name = $this->ilias->account->prefs["style"].".css";;
                        $this->tpl->setVariable("LOCATION_STYLESHEET","./".$style_name);
                }

                //$this->tpl->addBlockFile("CONTENT", "content", "tpl.lm_toc.html", true);
                $this->tpl->getStandardTemplate();
                $this->ilLocator();
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lm_toc.html", true);

                // set title header
                $this->tpl->setVariable("TXT_TOC", $this->lng->txt("cont_toc"));
                $this->tpl->setTitle($this->lm->getTitle());
                $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm_b.gif"));

                if (!$this->offlineMode())
                {
                        $this->tpl->setCurrentBlock("back_to_lm");
                        $this->tpl->setVariable("TXT_BACK", $this->lng->txt("back"));
                        $this->ctrl->setParameter($this, "obj_id", $_GET["obj_id"]);
                        $this->tpl->setVariable("LINK_BACK",
                                $this->ctrl->getLinkTarget($this, ""));
                        $this->tpl->parseCurrentBlock();
                }

                include_once ("content/classes/class.ilLMTableOfContentsExplorer.php");
                $exp = new ilTableOfContentsExplorer(
                        $this->getLink($this->lm->getRefId(), ""),
                        $this->lm, $this->getExportFormat());
                $exp->setExpandTarget($this->getLink($this->lm->getRefId(), $_GET["cmd"], "", $_GET["frame"]));
                $exp->setTargetGet("obj_id");
                $exp->setOfflineMode($this->offlineMode());
                $exp->forceExpandAll(true, false);

                $tree =& $this->lm->getTree();
                if ($_GET["lmtocexpand"] == "")
                {
                        $expanded = $tree->readRootId();
                }
                else
                {
                        $expanded = $_GET["lmtocexpand"];
                }

                $exp->setExpand($expanded);

                // build html-output
                $exp->setOutput(0);
                $output = $exp->getOutput();

                $this->tpl->setVariable("EXPLORER", $output);
                $this->tpl->parseCurrentBlock();

                if ($this->offlineMode())
                {
                        return $this->tpl->get();
                }
                else
                {
                        $this->tpl->show();
                }

                $ilBench->stop("ContentPresentation", "TableOfContents");
        }

Here is the call graph for this function:


Field Documentation

ilLMPresentationGUI::$ilias

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

Referenced by ilLMPresentationGUI().

ilLMPresentationGUI::$layout_doc

Definition at line 46 of file class.ilLMPresentationGUI.php.

ilLMPresentationGUI::$lm

Definition at line 43 of file class.ilLMPresentationGUI.php.

ilLMPresentationGUI::$lng

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

Referenced by ilLMPresentationGUI().

ilLMPresentationGUI::$offline

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

ilLMPresentationGUI::$offline_directory

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

ilLMPresentationGUI::$tpl

Definition at line 44 of file class.ilLMPresentationGUI.php.

Referenced by ilLMPresentationGUI(), and layout().


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