31                $this->parent_ref_id = (int)$a_parent_ref_id;
 
   34                $lng->loadLanguageModule(
"rep");                
 
   35                $lng->loadLanguageModule(
"cntr");                               
 
   40                $this->mode = (int)$a_mode;
 
   50                $this->disabled_object_types = $a_types;
 
   60                $this->url_creation_callback = $a_ref_id;
 
   70                $this->url_creation = $a_url;
 
   84                $this->sub_objects = array();
 
   86                $settings_map = array(
"blog" => 
"blogs",
 
   88                                "tstv" => 
"certificates",
 
   89                                "excv" => 
"certificates",
 
   90                                "crsv" => 
"certificates",
 
   91                                "scov" => 
"certificates",
 
   95                if (count($subtypes) > 0)
 
   97                        foreach (array_keys($subtypes) as $type)
 
   99                                if (isset($settings_map[$type]) && 
 
  100                                        $ilSetting->get(
"disable_wsp_".$settings_map[$type]))
 
  105                                $this->sub_objects[] = array(
"type" => 
"object",
 
  107                                        "title" => 
$lng->txt(
"wsp_type_".$type));
 
  123                global $objDefinition, 
$lng, $ilAccess;
 
  125                $this->sub_objects = array();
 
  127                if(!is_array($this->disabled_object_types))
 
  129                        $this->disabled_object_types = array(); 
 
  131                $this->disabled_object_types[] = 
"rolf";                                                
 
  134                $subtypes = $objDefinition->getCreatableSubObjects($parent_type, $this->mode);          
 
  135                if (count($subtypes) > 0)
 
  139                        $grp_map = $pos_group_map = array();
 
  141                        include_once(
"Services/Repository/classes/class.ilObjRepositorySettings.php");
 
  148                                $groups = $default[
"groups"];
 
  149                                $grp_map = $default[
"items"];
 
  153                                foreach($subtypes as $item_type => $item)
 
  156                                        if(substr($item_type, 0, 1) == 
"x")
 
  158                                                $subtypes[$item_type][
"pos"] = 
"99992000";
 
  162                                                $subtypes[$item_type][
"pos"] = 
"9999".str_pad(++$pos, 4, 
"0", STR_PAD_LEFT);
 
  167                                foreach($default[
"sort"] as $item_type => $pos)
 
  169                                        if(array_key_exists($item_type, $subtypes))
 
  171                                                $subtypes[$item_type][
"pos"] = $pos;                                                                                            
 
  183                                        foreach($subitems as $subitem)
 
  185                                                $grp_map[$subitem] = $grp_id;
 
  190                        $group_separators = array();
 
  191                        $pos_group_map[0] = 
$lng->txt(
"rep_new_item_group_other");              
 
  192                        $old_grp_ids = array();
 
  193                        foreach($groups as $item)
 
  197                                        $pos_group_map[$item[
"id"]] = $item[
"title"];
 
  199                                else if(
sizeof($old_grp_ids))
 
  201                                        $group_separators[$item[
"id"]] = $old_grp_ids;
 
  203                                $old_grp_ids[] = $item[
"id"];
 
  207                        foreach ($subtypes as $type => $subitem)
 
  209                                if (!in_array($type, $this->disabled_object_types))
 
  212                                        if ($ilAccess->checkAccess(
"create_".$type, 
"", $this->parent_ref_id, $parent_type))
 
  215                                                if(
sizeof($pos_group_map) > 1)
 
  217                                                        $obj_grp_id = (int)$grp_map[$type];                                                     
 
  218                                                        if($obj_grp_id !== $current_grp)
 
  222                                                                foreach($group_separators as $idx => $spath)
 
  225                                                                        if($current_grp && !in_array($obj_grp_id, $spath))
 
  230                                                                                        $this->sub_objects[] = array(
"type" => 
"column_separator");             
 
  233                                                                                unset($group_separators[$idx]);
 
  237                                                                $title = $pos_group_map[$obj_grp_id];
 
  239                                                                $this->sub_objects[] = array(
"type" => 
"group",
 
  242                                                                $current_grp = $obj_grp_id;
 
  246                                                if ($subitem[
"plugin"])
 
  248                                                        include_once(
"./Services/Component/classes/class.ilPlugin.php");
 
  254                                                        $title = 
$lng->txt(
"obj_".$type);
 
  257                                                $this->sub_objects[] = array(
"type" => 
"object",
 
  279                        $base_url = 
"ilias.php?baseClass=ilRepositoryGUI&ref_id=".$this->parent_ref_id.
"&cmd=create";
 
  285                $base_url = 
$ilCtrl->appendRequestTokenParameterString($base_url);      
 
  287                if($this->url_creation_callback)
 
  289                        $base_url .= 
"&crtcb=".$this->url_creation_callback;
 
  292                include_once(
"./Services/UIComponent/GroupedList/classes/class.ilGroupedListGUI.php");
 
  294                $gl->setAsDropDown(
true, 
true);
 
  296                foreach ($this->sub_objects as $item)
 
  298                        switch($item[
"type"])
 
  300                                case "column_separator":
 
  311                                        $gl->addGroupHeader($item[
"title"]);
 
  315                                        $type = $item[
"value"];
 
  318                                        $icon = (
$path != 
"")
 
  322                                        $url = $base_url . 
"&new_type=".$type;
 
  326                                        $gl->addEntry($icon.$item[
"title"], $url, 
"_top", 
"", 
"",
 
  327                                                $type, $ttip, 
"bottom center", 
"top center", 
false);                                            
 
  334                return $gl->getHTML();
 
  356                $ov_id = 
"il_add_new_item_ov";
 
  357                $ov_trigger_id = $ov_id.
"_tr";          
 
  360                include_once(
"./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
 
  362                $adv->setListTitle(
$lng->txt(
"cntr_add_new_item"));
 
  364                $adv->setGroupedList($this->gl);
 
  366                $tpl->setVariable(
"SELECT_OBJTYPE_REPOS", $adv->getHTML());
 
  372                include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
  374                $button->setId($ov_trigger_id);
 
  375                $button->setCaption(
"cntr_add_new_item");
 
  376                $button->setPrimary(
true);
 
  377                $ilToolbar->addButtonInstance($button);
 
  380                $tpl->setVariable(
"SELECT_OBJTYPE_REPOS",
 
  381                        '<div id="'.$ov_id.
'" style="display:none;" class="ilOverlay">'.
 
  382                        $this->getHTML().
'</div>');     
 
User interface class for advanced drop-down selection lists.
static getObjCreationTooltipText($a_type)
Get object_creation tooltip tab text.
const NEW_ITEM_GROUP_TYPE_GROUP
static getNewItemGroups()
static getDefaultNewItemGrouping()
static getNewItemGroupSubItems()
Render add new item selector.
parsePersonalWorkspace()
Parse creatable sub objects for personal workspace.
render()
Add new item selection to current page incl.
setDisabledObjectTypes(array $a_types)
Set object types which may not be created.
setCreationUrl($a_url)
Set (custom) url for object creation.
parseRepository()
Parse creatable sub objects for repository incl.
getHTML()
Get rendered html of sub object list.
__construct($a_parent_ref_id)
Constructor.
setAfterCreationCallback($a_ref_id)
Set after creation callback.
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _lookupType($a_id, $a_reference=false)
lookup object type
static lookupTxt($a_mod_prefix, $a_pl_id, $a_lang_var)
Lookup language text.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.