4 require_once(
"./Services/COPage/classes/class.ilPCResources.php");
5 require_once(
"./Services/COPage/classes/class.ilPageContentGUI.php");
34 public function __construct(&$a_pg_obj, &$a_content_obj, $a_hier_id, $a_pc_id =
"")
38 $this->ctrl = $DIC->ctrl();
39 $this->tpl = $DIC[
"tpl"];
40 $this->lng = $DIC->language();
41 $this->obj_definition = $DIC[
"objDefinition"];
42 $tree = $DIC->repositoryTree();
44 $this->rep_tree =
$tree;
45 parent::__construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id);
54 $next_class = $this->ctrl->getNextClass($this);
57 $cmd = $this->ctrl->getCmd();
59 switch ($next_class) {
79 public function edit($a_insert =
false)
89 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
93 $form->setTitle($this->lng->txt(
"cont_insert_resources"));
95 $form->setTitle($this->lng->txt(
"cont_update_resources"));
99 $ref_id = (int)
$_GET[
"ref_id"];
100 $childs = $this->rep_tree->getChilds($ref_id);
101 $type_counts = array();
102 $item_groups = array();
103 foreach ($childs as
$c) {
106 $key = ($objDefinition->getGroupOfObj($c[
"type"]) !=
"")
107 ? $objDefinition->getGroupOfObj($c[
"type"])
109 $type_counts[
$key] += 1;
110 if ($c[
"type"] ==
"itgr") {
111 $item_groups[$c[
"ref_id"]] = $c[
"title"];
115 if (count($item_groups) > 0) {
118 if (!$a_insert && $this->content_obj->getMainType() ==
"ItemGroup") {
121 $radg->setValue(
"by_type");
124 $op_type =
new ilRadioOption(
$lng->txt(
"cont_resources_of_type"),
"by_type",
"");
125 $radg->addOption($op_type);
127 $radg->addOption($op_itemgroup);
128 $form->addItem($radg);
133 $this->lng->txt(
"cont_type"),
138 $sub_objs = $objDefinition->getGroupedRepositoryObjectTypes($obj_type);
140 foreach ($sub_objs as $k => $so) {
141 if (!$objDefinition->isPlugin($k)) {
143 $types[$k] = $this->lng->txt(
"objs_" . $k) .
" (" . (int) $type_counts[$k] .
")";
147 $types[$k] = $pl->txt(
"objs_" . $k) .
" (" . (int) $type_counts[$k] .
")";
150 $type_prop->setOptions($types);
151 $selected = ($a_insert)
153 : $this->content_obj->getResourceListType();
154 $type_prop->setValue($selected);
155 if (count($item_groups) > 0) {
156 $op_type->addSubItem($type_prop);
158 $form->addItem($type_prop);
161 if (count($item_groups) > 0) {
166 $selected = ($a_insert)
168 : $this->content_obj->getItemGroupRefId();
169 $op_itemgroup->addSubItem(
$si);
175 $form->addCommandButton(
"create_resources",
$lng->txt(
"save"));
176 $form->addCommandButton(
"cancelCreate",
$lng->txt(
"cancel"));
178 $form->addCommandButton(
"update_resources",
$lng->txt(
"save"));
179 $form->addCommandButton(
"cancelUpdate",
$lng->txt(
"cancel"));
193 $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
195 if (
$_POST[
"res_type"] !=
"itgr") {
200 $this->updated = $this->pg_obj->update();
201 if ($this->updated ===
true) {
202 $this->ctrl->returnToParent($this,
"jump" . $this->hier_id);
213 if (
$_POST[
"res_type"] !=
"itgr") {
218 $this->updated = $this->pg_obj->update();
219 if ($this->updated ===
true) {
220 $this->ctrl->returnToParent($this,
"jump" . $this->hier_id);
222 $this->pg_obj->addHierIDs();
237 $objDefinition = $DIC[
"objDefinition"];
238 $tree = $DIC->repositoryTree();
239 $lng = $DIC->language();
241 $ref_id = (int)
$_GET[
"ref_id"];
246 $type_to_grp = array();
248 $objDefinition->getGroupedRepositoryObjectTypes($obj_type);
249 foreach ($type_grps as $grp =>
$def) {
250 foreach (
$def[
"objs"] as
$t) {
251 $type_to_grp[
$t] = $grp;
255 $childs =
$tree->getChilds($ref_id);
256 $childs_by_type = array();
257 $item_groups = array();
258 foreach ($childs as $child) {
259 $childs_by_type[$type_to_grp[$child[
"type"]]][] = $child;
260 if ($child[
"type"] ==
"itgr") {
261 $item_groups[(int) $child[
"ref_id"]] = $child[
"title"];
266 foreach ($type_grps as
$type => $v) {
269 $tpl =
new ilTemplate(
"tpl.resource_block.html",
true,
true,
"Services/COPage");
272 if (is_array($childs_by_type[
$type]) && count($childs_by_type[$type]) > 0) {
273 foreach ($childs_by_type[$type] as $child) {
274 $tpl->setCurrentBlock(
"row");
275 $tpl->setVariable(
"IMG",
ilUtil::img(ilObject::_getIcon($child[
"obj_id"],
"small")));
276 $tpl->setVariable(
"TITLE", $child[
"title"]);
277 $tpl->parseCurrentBlock();
280 $tpl->setVariable(
"HEADER",
$lng->txt(
"objs_" . $type));
283 $tpl->setCurrentBlock(
"row");
284 $tpl->setVariable(
"TITLE",
$lng->txt(
"no_items"));
285 $tpl->parseCurrentBlock();
286 $tpl->setVariable(
"HEADER",
$lng->txt(
"objs_" . $type));
293 while (preg_match(
'/\[(item-group-([0-9]*))\]/i',
$a_content, $found)) {
294 $itgr_ref_id = (int) $found[2];
297 if (isset($item_groups[$itgr_ref_id])) {
298 include_once(
"./Modules/ItemGroup/classes/class.ilItemGroupItems.php");
300 $items = $itgr_items->getValidItems();
303 $tpl =
new ilTemplate(
"tpl.resource_block.html",
true,
true,
"Services/COPage");
304 foreach ($items as $it_ref_id) {
310 if (in_array($it_type, array(
"catr",
"crsr",
"grpr"))) {
311 include_once(
'./Services/ContainerReference/classes/class.ilContainerReference.php');
316 $tpl->setCurrentBlock(
"row");
317 $tpl->setVariable(
"IMG",
ilUtil::img(ilObject::_getIcon($it_obj_id,
"small")));
318 $tpl->setVariable(
"TITLE", $it_title);
319 $tpl->parseCurrentBlock();
321 $tpl->setVariable(
"HEADER", $item_groups[$itgr_ref_id]);
324 $html =
"<i>" .
$lng->txt(
"cont_element_refers_removed_itgr") .
"</i>";
This class represents an option in a radio group.
__construct(&$a_pg_obj, &$a_content_obj, $a_hier_id, $a_pc_id="")
Constructor public.
edit($a_insert=false)
Edit resources form.
static _lookupTitle($a_id)
lookup object title
static getPluginObjectByType($type)
Return either a repoObject plugin or a orgunit extension plugin or null if the type is not a plugin...
static insertResourcesIntoPageContent($a_content)
Insert resources (see also ilContainerContentGUI::determinePageEmbeddedBlocks for presentation) ...
User Interface for Editing of Page Content Objects (Paragraphs, Tables, ...)
create()
Create new Resources Component.
static _lookupTitle($a_obj_id)
Overwitten from base class.
if(isset($_POST['submit'])) $form
static _lookupObjId($a_id)
special template class to simplify handling of ITX/PEAR
displayValidationError()
display validation errors
executeCommand()
execute command
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static img($a_src, $a_alt=null, $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static _lookupType($a_id, $a_reference=false)
lookup object type
insert()
Insert new resources component form.
update()
Update Resources Component.