6require_once(
"./Modules/LearningModule/classes/class.ilLMObjectGUI.php");
 
    7require_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
 
   54        $this->tree = 
$DIC->repositoryTree();
 
   55        $this->
user = $DIC->user();
 
   56        $this->ctrl = 
$DIC->ctrl();
 
   57        $this->lng = 
$DIC->language();
 
   58        $this->
error = $DIC[
"ilErr"];
 
   59        $this->tabs = 
$DIC->tabs();
 
   60        $this->log = 
$DIC[
"ilLog"];
 
   61        $this->tpl = 
$DIC[
"tpl"];
 
   62        parent::__construct($a_content_obj);
 
   63        $this->tree = $a_tree;
 
   73        $this->obj = $a_st_object;
 
   91        $next_class = $this->ctrl->getNextClass($this);
 
   92        $cmd = $this->ctrl->getCmd();
 
   94        switch ($next_class) {
 
   95            case 'ilobjectmetadatagui':
 
   99                include_once 
'Services/Object/classes/class.ilObjectMetaDataGUI.php';
 
  100                $md_gui = 
new ilObjectMetaDataGUI($this->content_object, $this->obj->getType(), $this->obj->getId());
 
  101                $md_gui->addMDObserver($this->obj, 
'MDUpdateListener', 
'General');
 
  102                $md_gui->addMDObserver($this->obj, 
'MDUpdateListener', 
'Educational'); 
 
  103                $this->ctrl->forwardCommand($md_gui);
 
  106            case "ilconditionhandlergui":
 
  108                include_once 
'./Services/Conditions/classes/class.ilConditionHandlerGUI.php';
 
  112                $this->ctrl->forwardCommand($this->condHI);
 
  113                $ilTabs->setTabActive(
'preconditions');
 
  117                if ($cmd == 
'listConditions') {
 
  120                    $this->condHI->executeCommand();
 
  121                } elseif (($cmd == 
"create") && (
$_POST[
"new_type"] == 
"pg")) {
 
  124                    $pg_gui->executeCommand();
 
  138        if (
$_GET[
"obj_id"] != 
"") {
 
  173        $ilCtrl->setParameter($this, 
"backcmd", 
"showHierarchy");
 
  175        include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
 
  177        $form_gui->setFormAction(
$ilCtrl->getFormAction($this));
 
  178        $form_gui->setTitle($this->obj->getTitle());
 
  180        $form_gui->setTree($this->tree);
 
  181        $form_gui->setCurrentTopNodeId($this->obj->getId());
 
  182        $form_gui->addMultiCommand(
$lng->txt(
"delete"), 
"delete");
 
  183        $form_gui->addMultiCommand(
$lng->txt(
"cut"), 
"cutItems");
 
  184        $form_gui->addMultiCommand(
$lng->txt(
"copy"), 
"copyItems");
 
  185        $form_gui->addMultiCommand(
$lng->txt(
"cont_de_activate"), 
"activatePages");
 
  186        if ($this->content_object->getLayoutPerPage()) {
 
  187            $form_gui->addMultiCommand(
$lng->txt(
"cont_set_layout"), 
"setPageLayout");
 
  190        $form_gui->addCommand(
$lng->txt(
"cont_save_all_titles"), 
"saveAllTitles");
 
  191        $form_gui->addHelpItem(
$lng->txt(
"cont_chapters_after_pages"));
 
  192        $up_gui = 
"ilobjlearningmodulegui";
 
  193        $ilCtrl->setParameterByClass($up_gui, 
"active_node", $this->obj->getId());
 
  194        $ilCtrl->setParameterByClass($up_gui, 
"active_node", 
"");
 
  196        $ctpl = 
new ilTemplate(
"tpl.chap_and_pages.html", 
true, 
true, 
"Modules/LearningModule");
 
  197        $ctpl->setVariable(
"HIERARCHY_FORM", $form_gui->getHTML());
 
  198        $ilCtrl->setParameter($this, 
"obj_id", 
$_GET[
"obj_id"]);
 
  200        include_once(
"./Modules/LearningModule/classes/class.ilObjContentObjectGUI.php");
 
  203        $this->tpl->setContent($ml_head . $ctpl->get());
 
  215        if (!is_array($items)) {
 
  217            $ilCtrl->redirect($this, 
"showHierarchy");
 
  221        foreach ($items as $k => $item) {
 
  226        foreach ($todel as $k) {
 
  232            $ilCtrl->redirect($this, 
"showHierarchy");
 
  240        $ilCtrl->redirect($this, $a_return);
 
  252        if (!is_array($items)) {
 
  254            $ilCtrl->redirect($this, 
"showHierarchy");
 
  258        foreach ($items as $k => $item) {
 
  263        foreach ($todel as $k) {
 
  269            $ilCtrl->redirect($this, 
"showHierarchy");
 
  276        $ilCtrl->redirect($this, $a_return);
 
  288        ilUtil::sendSuccess($this->lng->txt(
"lm_save_titles"), 
true);
 
  289        $ilCtrl->redirect($this, 
"showHierarchy");
 
  304        $this->tpl->addBlockFile(
"ADM_CONTENT", 
"adm_content", 
"tpl.structure_edit.html", 
"Modules/LearningModule");
 
  307        $this->tpl->setCurrentBlock(
"form");
 
  308        $this->ctrl->setParameter($this, 
"backcmd", 
"subchap");
 
  309        $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
 
  310        $this->tpl->setVariable(
"HEADER_TEXT", $this->lng->txt(
"cont_subchapters"));
 
  314        $childs = $this->tree->getChilds($this->obj->getId());
 
  315        foreach ($childs as $child) {
 
  316            if ($child[
"type"] != 
"st") {
 
  319            $this->tpl->setCurrentBlock(
"table_row");
 
  324            $this->tpl->setVariable(
"CHECKBOX_ID", $child[
"obj_id"]);
 
  325            $this->tpl->setVariable(
"CSS_ROW", $css_row);
 
  329            $this->ctrl->setParameterByClass(
"ilStructureObjectGUI", 
"obj_id", $child[
"obj_id"]);
 
  330            $link = $this->ctrl->getLinkTargetByClass(
"ilStructureObjectGUI", 
"view");
 
  331            $this->tpl->setVariable(
"LINK_TARGET", $link);
 
  334            $this->tpl->setVariable(
 
  339                    $this->content_object->isActiveNumbering()
 
  343            $this->tpl->parseCurrentBlock();
 
  346            $this->tpl->setCurrentBlock(
"notfound");
 
  347            $this->tpl->setVariable(
"NUM_COLS", 3);
 
  348            $this->tpl->setVariable(
"TXT_OBJECT_NOT_FOUND", $this->lng->txt(
"obj_not_found"));
 
  349            $this->tpl->parseCurrentBlock();
 
  354        $this->tpl->setVariable(
"NUM_COLS", 3);
 
  355        $acts = array(
"delete" => 
"delete", 
"cutChapter" => 
"cut",
 
  356                "copyChapter" => 
"copyChapter");
 
  357        if (
$ilUser->clipboardHasObjectsOfType(
"st")) {
 
  358            $acts[
"pasteChapter"] = 
"pasteChapter";
 
  364        $this->tpl->setVariable(
"NUM_COLS", 3);
 
  366        $subobj = array(
"st");
 
  369        $this->tpl->setCurrentBlock(
"add_object");
 
  370        $this->tpl->setVariable(
"SELECT_OBJTYPE", $opts);
 
  372        $this->tpl->setVariable(
"BTN_NAME", 
"create");
 
  373        $this->tpl->setVariable(
"TXT_ADD", $this->lng->txt(
"insert"));
 
  374        $this->tpl->parseCurrentBlock();
 
  379        $this->tpl->setCurrentBlock(
"form");
 
  380        $this->tpl->parseCurrentBlock();
 
  382        $ilCtrl->setParameter($this, 
"obj_id", 
$_GET[
"obj_id"]);
 
  391            $this->tpl->setCurrentBlock(
"begin_link");
 
  392            $this->tpl->setVariable(
"LINK_TARGET", $link);
 
  393            $this->tpl->parseCurrentBlock();
 
  394            $this->tpl->touchBlock(
"end_link");
 
  397        $this->tpl->setCurrentBlock(
"text");
 
  398        $this->tpl->setVariable(
"TEXT_CONTENT", $val);
 
  399        $this->tpl->parseCurrentBlock();
 
  400        $this->tpl->setCurrentBlock(
"table_cell");
 
  401        $this->tpl->parseCurrentBlock();
 
  412        $this->obj->setType(
"st");
 
  415        $this->obj->setLMId($this->content_object->getId());
 
  416        $this->obj->create();
 
  423        if (!empty(
$_GET[
"obj_id"])) {
 
  424            $this->ctrl->redirect($this, 
"subchap");
 
  438            $tree = 
new ilTree($this->content_object->getId());
 
  439            $tree->setTableNames(
'lm_tree', 
'lm_data');
 
  440            $tree->setTreeTablePK(
"lm_id");
 
  443            $parent_id = (!empty(
$_GET[
"obj_id"]))
 
  445                : 
$tree->getRootId();
 
  447            $childs = 
$tree->getChildsByType($parent_id, 
"pg");
 
  448            if (count($childs) != 0) {
 
  449                $_GET[
"target"] = $childs[count($childs) - 1][
"obj_id"];
 
  452        if (empty(
$_GET[
"target"])) {
 
  483        if (!
$ilUser->clipboardHasObjectsOfType(
"pg")) {
 
  484            $ilErr->raiseError($this->lng->txt(
"no_page_in_clipboard"), 
$ilErr->MESSAGE);
 
  524        include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
 
  525        if (is_array(
$_POST[
"id"])) {
 
  526            $act_items = array();
 
  529                $path = $this->tree->getPathId(
$id);
 
  531                foreach (
$path as $path_id) {
 
  532                    if ($path_id != 
$id && in_array($path_id, 
$_POST[
"id"])) {
 
  542            foreach ($act_items as 
$id) {
 
  543                $childs = $this->tree->getChilds(
$id);
 
  544                foreach ($childs as $child) {
 
  548                            $this->content_object->getType()
 
  552                            $this->content_object->getType(),
 
  560                        $this->content_object->getType()
 
  564                        $this->content_object->getType(),
 
  573        $this->ctrl->redirect($this, 
"view");
 
  582        include_once(
"./Services/Conditions/classes/class.ilConditionHandlerGUI.php");
 
  585        $this->condHI->setBackButtons(array());
 
  586        $this->condHI->setAutomaticValidation(
false);
 
  587        $this->condHI->setTargetType(
"st");
 
  588        $this->condHI->setTargetRefId($this->content_object->getRefId());
 
  589        $this->condHI->setTargetId($this->obj->getId());
 
  590        $this->condHI->setTargetTitle($this->obj->getTitle());
 
  599        if (
$_GET[
"obj_id"] != 0) {
 
  600            if (
$_GET[
"new_type"] == 
"pg") {
 
  601                $this->ctrl->redirect($this, 
"view");
 
  603                $this->ctrl->redirect($this, 
"subchap");
 
  620            "cont_pages_and_subchapters",
 
  621            $this->ctrl->getLinkTarget($this, 
'showHierarchy'),
 
  622            array(
"view", 
"showHierarchy"),
 
  629            $this->ctrl->getLinkTarget($this, 
'listConditions'),
 
  635        include_once 
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
 
  636        $mdgui = 
new ilObjectMetaDataGUI($this->content_object, $this->obj->getType(), $this->obj->getId());
 
  637        $mdtab = $mdgui->getTab();
 
  648        $this->tpl->setTitle(
 
  649            $this->lng->txt($this->obj->getType()) . 
": " . $this->obj->getTitle()
 
  653        $ilTabs->addNonTabbedLink(
 
  655            $lng->txt(
"cont_presentation_view"),
 
  656            ILIAS_HTTP_PATH . 
"/goto.php?target=st_" . $this->obj->getId(),
 
  666    public static function _goto($a_target, $a_target_ref_id = 
"")
 
  670        $rbacsystem = 
$DIC->rbac()->system();
 
  673        $ilAccess = 
$DIC->access();
 
  682        if (in_array($a_target_ref_id, $ref_ids)) {
 
  683            $ref_ids = array_merge(array($a_target_ref_id), $ref_ids);
 
  687        foreach ($ref_ids as $ref_id) {
 
  689            if ($ilAccess->checkAccess(
"read", 
"", $ref_id)) {
 
  692                $_GET[
"baseClass"] = 
"ilLMPresentationGUI";
 
  693                $_GET[
"obj_id"] = $a_target;
 
  694                $_GET[
"ref_id"] = $ref_id;
 
  695                include_once(
"ilias.php");
 
  701        if ($ilAccess->checkAccess(
"read", 
"", ROOT_FOLDER_ID)) {
 
  703                $lng->txt(
"msg_no_perm_read_item"),
 
  706            include_once(
"./Services/Object/classes/class.ilObjectGUI.php");
 
  721        include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
 
  728                $parent_id = $node_id;
 
  731                $ilCtrl->redirect($this, 
"showHierarchy");
 
  736                $parent_id = $this->tree->getParentId($node_id);
 
  739                $parent_id = $node_id;
 
  743        for (
$i = 1; 
$i <= $num; 
$i++) {
 
  745            $chap->setType(
"st");
 
  746            $chap->setTitle(
$lng->txt(
"cont_new_chap"));
 
  747            $chap->setLMId($this->content_object->getId());
 
  752        $ilCtrl->redirect($this, 
"view");
 
  774        $ilLog->write(
"Insert Chapter From Clipboard");
 
  776        include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
 
  783                $parent_id = $node_id;
 
  786                $ilCtrl->redirect($this, 
"showHierarchy");
 
  791                $parent_id = $this->tree->getParentId($node_id);
 
  794                $parent_id = $node_id;
 
  798                $childs = $this->tree->getChildsByType($parent_id, 
"pg");
 
  799                if (count($childs) != 0) {
 
  800                    $target = $childs[count($childs) - 1][
"obj_id"];
 
  806        $chapters = 
$ilUser->getClipboardObjects(
"st", 
true);
 
  807        $copied_nodes = array();
 
  809        foreach ($chapters as $chap) {
 
  810            $ilLog->write(
"Call pasteTree, Target LM: " . $this->content_object->getId() . 
", Chapter ID: " . $chap[
"id"]
 
  811                . 
", Parent ID: " . $parent_id . 
", Target: " . 
$target);
 
  813                $this->content_object,
 
  817                $chap[
"insert_time"],
 
  826            $ilUser->clipboardDeleteObjectsOfType(
"pg");
 
  827            $ilUser->clipboardDeleteObjectsOfType(
"st");
 
  831        $this->content_object->checkTree();
 
  832        $ilCtrl->redirect($this, $a_return);
 
  851        include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
 
  857            $parent_id = $this->tree->getParentId($node_id);
 
  860            $parent_id = $node_id;
 
  864        for (
$i = 1; 
$i <= $num; 
$i++) {
 
  866            $page->setType(
"pg");
 
  867            $page->setTitle(
$lng->txt(
"cont_new_page"));
 
  868            $page->setLMId($this->content_object->getId());
 
  873        $ilCtrl->redirect($this, 
"showHierarchy");
 
  884        include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
 
  890            $parent_id = $this->tree->getParentId($node_id);
 
  893            $parent_id = $node_id;
 
  898        $pages = 
$ilUser->getClipboardObjects(
"pg");
 
  899        $copied_nodes = array();
 
  900        foreach ($pages as $pg) {
 
  902                $this->content_object,
 
  915            $ilUser->clipboardDeleteObjectsOfType(
"pg");
 
  916            $ilUser->clipboardDeleteObjectsOfType(
"st");
 
  920        $ilCtrl->redirect($this, 
"view");
 
  932        $this->content_object->executeDragDrop(
 
  933            $_POST[
"il_hform_source_id"],
 
  934            $_POST[
"il_hform_target_id"],
 
  936            $_POST[
"il_hform_as_subitem"]
 
  938        $ilCtrl->redirect($this, 
"showHierarchy");
 
  954        if (!is_array(
$_POST[
"id"])) {
 
  956            $ilCtrl->redirect($this, 
"showHierarchy");
 
  961        $tpl->setContent($this->form->getHTML());
 
  972        include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
 
  975        if (is_array(
$_POST[
"id"])) {
 
  979                $this->form->addItem($hi);
 
  983            $lng->txt(
"cont_layout"),
 
  985            $this->content_object->getLayout()
 
  988        $this->form->addItem($layout);
 
  990        $this->form->addCommandButton(
"savePageLayout", 
$lng->txt(
"save"));
 
  991        $this->form->addCommandButton(
"showHierarchy", 
$lng->txt(
"cancel"));
 
  993        $this->form->setTitle(
$lng->txt(
"cont_set_layout"));
 
  994        $this->form->setFormAction(
$ilCtrl->getFormAction($this));
 
 1010                $this->content_object
 
 1013        ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"), 
true);
 
 1014        $ilCtrl->redirect($this, 
"showHierarchy");
 
 1027        $ilCtrl->setParameter($this, 
"transl", 
"");
 
 1028        $ilCtrl->redirect($this, 
"showHierarchy");
 
 1041        $ilCtrl->setParameter($this, 
"transl", 
$_GET[
"totransl"]);
 
 1042        $ilCtrl->redirect($this, 
"showHierarchy");
 
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
class ilConditionHandlerGUI
static setAction($a_action)
showActions($a_actions)
show possible action (form buttons)
checkTree()
check the content object tree
static _lookupType($a_obj_id, $a_lm_id=0)
Lookup type.
static clipboardCopy($a_cont_obj_id, $a_ids)
Copy a set of chapters/pages into the clipboard.
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static clipboardCut($a_cont_obj_id, $a_ids)
Copy a set of chapters/pages into the clipboard.
static saveTitles($a_lm, $a_titles, $a_lang="-")
Save titles for lm objects.
static uniqueTypesCheck($a_items)
Check for unique types (all pages or all chapters)
static updateInternalLinks($a_copied_nodes, $a_parent_type="lm")
Update internal links, after multiple pages have been copied.
static putInTree($a_obj, $a_parent_id="", $a_target_node_id="")
put this object into content object tree
static writeLayout($a_obj_id, $a_layout, $a_lm=null)
Write layout setting.
static pasteTree( $a_target_lm, $a_item_id, $a_parent_id, $a_target, $a_insert_time, &$a_copied_nodes, $a_as_copy=false, $a_source_lm=null)
Paste item (tree) from clipboard to current lm.
static getMultiLangHeader($a_lm_id, $a_gui_class, $a_mode="")
Get multi lang header.
static getLayoutOption($a_txt, $a_var, $a_def_option="")
Get layout option.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupTitle($a_id)
lookup object title
static _getAllReferences($a_id)
get all reference ids of object
static _lookupActive($a_id, $a_parent_type, $a_check_scheduled_activation=false, $a_lang="-")
lookup activation status
static _writeActive($a_id, $a_parent_type, $a_active, $a_reset_scheduled_activation=true, $a_lang="-")
write activation status
Class ilStructureObjectGUI.
proceedDragDrop()
Perform drag and drop action.
initSetPageLayoutForm()
Init set page layout form.
add_cell($val, $link="")
output a cell in object list
copyItems($a_return="view")
Copy items to clipboard.
insertSubchapterClip()
Insert Chapter from clipboard.
initConditionHandlerInterface()
executeCommand()
execute command
create()
create new page or chapter in chapter
activatePages()
activates or deactivates pages
__construct(&$a_content_obj, &$a_tree)
Constructor @access public.
savePageLayout()
Save page layout.
editMasterLanguage()
Edit master language.
saveAllTitles()
Save all titles of chapters/pages.
putInTree()
put chapter into tree
insertChapterClip($a_as_sub=false, $a_return="view")
Insert Chapter from clipboard.
cancel()
cancel creation of new page or chapter
insertPage()
Insert (multiple) pages at node.
insertSubchapter()
Insert (multiple) subchapters at node.
copyChapter()
copy a single chapter (selection)
showHierarchy()
Show subhiearchy of pages and subchapters.
static _goto($a_target, $a_target_ref_id="")
redirect script
switchToLanguage()
Switch to language.
cutChapter()
Cut chapter(s)
insertChapter($a_as_sub=false)
Insert (multiple) chapters at node.
insertPageClip()
Insert pages from clipboard.
pasteChapter()
paste chapter
cutItems($a_return="view")
Copy items to clipboard, then cut them from the current tree.
setPageLayout()
Set layout for multipl pages.
setStructureObject(&$a_st_object)
set structure object
getType()
this function is called by condition handler gui interface
static _getPresentationTitle( $a_st_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-", $a_include_short=false)
get presentation title
special template class to simplify handling of ITX/PEAR
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
if(!array_key_exists('StateId', $_REQUEST)) $id