4 require_once(
"./Services/COPage/classes/class.ilPCResources.php");
 
    5 require_once(
"./Services/COPage/classes/class.ilPageContentGUI.php");
 
   28                 $this->rep_tree = $tree;
 
   38                 $next_class = $this->ctrl->getNextClass($this);
 
   41                 $cmd = $this->ctrl->getCmd();
 
   64         function edit($a_insert = 
false)
 
   71                 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
   73                 $form->setFormAction($ilCtrl->getFormAction($this));
 
   76                         $form->setTitle($this->lng->txt(
"cont_insert_resources"));
 
   80                         $form->setTitle($this->lng->txt(
"cont_update_resources"));
 
   85                 $childs = $this->rep_tree->getChilds(
$ref_id);
 
   86                 $type_counts = array();
 
   87                 $item_groups = array();
 
   88                 foreach ($childs as $c)
 
   92                         $key = ($objDefinition->getGroupOfObj($c[
"type"]) != 
"")
 
   93                                 ? $objDefinition->getGroupOfObj($c[
"type"])
 
   95                         $type_counts[$key] += 1;
 
   96                         if ($c[
"type"] == 
"itgr")
 
   98                                 $item_groups[$c[
"ref_id"]] = $c[
"title"];
 
  102                 if (count($item_groups) > 0)
 
  106                         if (!$a_insert && $this->content_obj->getMainType() == 
"ItemGroup")
 
  112                                 $radg->setValue(
"by_type");
 
  115                         $op_type = 
new ilRadioOption($lng->txt(
"cont_resources_of_type"), 
"by_type", 
"");
 
  116                         $radg->addOption($op_type);
 
  117                         $op_itemgroup = 
new ilRadioOption($lng->txt(
"obj_itgr"), 
"itgr", 
"");
 
  118                         $radg->addOption($op_itemgroup);
 
  119                         $form->addItem($radg);
 
  127                 $sub_objs = $objDefinition->getGroupedRepositoryObjectTypes($obj_type);
 
  129                 foreach($sub_objs as $k => $so)
 
  131                         if ($k != 
"itgr" & $k != 
"icrs")
 
  133                                 $types[$k] = $this->lng->txt(
"objs_".$k).
" (".(int) $type_counts[$k].
")";
 
  136                 $type_prop->setOptions($types);
 
  137                 $selected = ($a_insert)
 
  139                         : $this->content_obj->getResourceListType();
 
  140                 $type_prop->setValue($selected);
 
  141                 if (count($item_groups) > 0)
 
  143                         $op_type->addSubItem($type_prop);
 
  147                         $form->addItem($type_prop);
 
  150                 if (count($item_groups) > 0)
 
  153                         $options = $item_groups;
 
  155                         $si->setOptions($options);
 
  156                         $selected = ($a_insert)
 
  158                                 : $this->content_obj->getItemGroupRefId();
 
  159                         $op_itemgroup->addSubItem(
$si);
 
  166                         $form->addCommandButton(
"create_resources", $lng->txt(
"save"));
 
  167                         $form->addCommandButton(
"cancelCreate", $lng->txt(
"cancel"));
 
  171                         $form->addCommandButton(
"update_resources", $lng->txt(
"save"));
 
  172                         $form->addCommandButton(
"cancelUpdate", $lng->txt(
"cancel"));
 
  174                 $html = $form->getHTML();
 
  175                 $tpl->setContent($html);
 
  187                 $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
 
  189                 if (
$_POST[
"res_type"] != 
"itgr")
 
  197                 $this->updated = $this->pg_obj->update();
 
  198                 if ($this->updated === 
true)
 
  200                         $this->ctrl->returnToParent($this, 
"jump".$this->hier_id);
 
  213                 if (
$_POST[
"res_type"] != 
"itgr")
 
  221                 $this->updated = $this->pg_obj->update();
 
  222                 if ($this->updated === 
true)
 
  224                         $this->ctrl->returnToParent($this, 
"jump".$this->hier_id);
 
  228                         $this->pg_obj->addHierIDs();
 
  241                 global $objDefinition, $tree, 
$lng;
 
  248                 $type_to_grp = array();
 
  250                         $objDefinition->getGroupedRepositoryObjectTypes($obj_type);
 
  251                 foreach ($type_grps as $grp => $def)
 
  253                         foreach ($def[
"objs"] as 
$t)
 
  255                                 $type_to_grp[
$t] = $grp;
 
  259                 $childs = $tree->getChilds(
$ref_id);
 
  260                 $childs_by_type = array();
 
  261                 $item_groups = array();
 
  262                 foreach ($childs as $child)
 
  264                         $childs_by_type[$type_to_grp[$child[
"type"]]][] = $child;
 
  265                         if ($child[
"type"] == 
"itgr")
 
  267                                 $item_groups[(int) $child[
"ref_id"]] = $child[
"title"];
 
  272                 foreach ($type_grps as $type => $v)
 
  274                         if (is_int(strpos($a_content, 
"[list-".$type.
"]")))
 
  277                                 $tpl = 
new ilTemplate(
"tpl.resource_block.html", 
true, 
true, 
"Services/COPage");
 
  280                                 if (is_array($childs_by_type[$type]) && count($childs_by_type[$type]) > 0)
 
  282                                         foreach ($childs_by_type[$type] as $child)
 
  284                                                 $tpl->setCurrentBlock(
"row");
 
  286                                                 $tpl->setVariable(
"TITLE", $child[
"title"]);
 
  287                                                 $tpl->parseCurrentBlock();
 
  290                                         $tpl->setVariable(
"HEADER", $lng->txt(
"objs_".$type));
 
  291                                         $a_content = str_replace(
"[list-".$type.
"]", 
$tpl->get(), $a_content);
 
  295                                         $tpl->setCurrentBlock(
"row");
 
  296                                         $tpl->setVariable(
"TITLE", $lng->txt(
"no_items"));
 
  297                                         $tpl->parseCurrentBlock();
 
  298                                         $tpl->setVariable(
"HEADER", $lng->txt(
"objs_".$type));
 
  299                                         $a_content = str_replace(
"[list-".$type.
"]", 
$tpl->get(), $a_content);
 
  305                 while (eregi(
"\[(item-group-([0-9]*))\]", $a_content, $found))
 
  307                         $itgr_ref_id = (int) $found[2];
 
  310                         if (isset($item_groups[$itgr_ref_id]))
 
  312                                 include_once(
"./Modules/ItemGroup/classes/class.ilItemGroupItems.php");
 
  314                                 $items = $itgr_items->getValidItems();
 
  317                                 $tpl = 
new ilTemplate(
"tpl.resource_block.html", 
true, 
true, 
"Services/COPage");
 
  318                                 foreach ($items as $it_ref_id)
 
  322                                         $tpl->setCurrentBlock(
"row");
 
  324                                         $tpl->setVariable(
"TITLE", $it_title);
 
  325                                         $tpl->parseCurrentBlock();
 
  327                                 $tpl->setVariable(
"HEADER", $item_groups[$itgr_ref_id]);
 
  332                                 $html = 
"<i>".$lng->txt(
"cont_element_refers_removed_itgr").
"</i>";
 
  334                         $a_content = eregi_replace(
"\[".$found[1].
"\]", $html, $a_content);