ILIAS  release_8 Revision v8.24
ilPCSectionGUI Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Inheritance diagram for ilPCSectionGUI:
+ Collaboration diagram for ilPCSectionGUI:

Public Member Functions

 __construct (ilPageObject $a_pg_obj, ?ilPageContent $a_content_obj=null, string $a_hier_id="", string $a_pc_id="")
 
 getHTML (array $params)
 
 checkInput (ilPropertyFormGUI $form)
 
 executeCommand ()
 
 insert (ilPropertyFormGUI $a_form=null)
 
 edit (bool $a_insert=false, ilPropertyFormGUI $a_form=null)
 
 initForm (bool $a_insert=false)
 
 create ()
 
 update ()
 
 setValuesFromForm (ilPropertyFormGUI $form)
 
- Public Member Functions inherited from ilPageContentGUI
 __construct (ilPageObject $a_pg_obj, ?ilPageContent $a_content_obj, string $a_hier_id="", string $a_pc_id="0")
 
 setContentObject (ilPageContent $a_val)
 
 getContentObject ()
 
 setPage (ilPageObject $a_val)
 
 getPage ()
 
 setPageConfig (ilPageConfig $a_val)
 
 getPageConfig ()
 
 setStyleId (int $a_styleid)
 
 getStyleId ()
 
 getStyle ()
 
 getCharacteristicsOfCurrentStyle (array $a_type)
 Get characteristics of current style and call setCharacteristics, if style is given. More...
 
 setCharacteristics (array $a_chars)
 
 getCharacteristics ()
 
 getHierId ()
 
 setHierId (string $a_hier_id)
 set hierarchical id in dom object More...
 
 delete ()
 
 moveAfter ()
 move content element after another element More...
 
 moveBefore ()
 move content element before another element More...
 
 splitPage ()
 split page to new page at specified position More...
 
 splitPageNext ()
 split page to next page at specified position More...
 
 displayValidationError ()
 
 cancelCreate ()
 cancel creating page content More...
 
 cancelUpdate ()
 cancel update More...
 
 cancel ()
 Cancel. More...
 
 deactivate ()
 gui function set enabled if is not enabled and vice versa More...
 
 cut ()
 Cut single element. More...
 
 copy ()
 Copy single element. More...
 
 getTemplateOptions (string $a_type="")
 Get table templates. More...
 

Static Public Member Functions

static _getStandardCharacteristics ()
 
static _getCharacteristics (string $a_style_id)
 
- Static Public Member Functions inherited from ilPageContentGUI
static _getCommonBBButtons ()
 

Additional Inherited Members

- Data Fields inherited from ilPageContentGUI
ilPageContent $content_obj
 
ilGlobalTemplateInterface $tpl
 
ilLanguage $lng
 
ilCtrl $ctrl
 
ilPageObject $pg_obj
 
string $hier_id = ""
 
php4DOMDocument $dom
 
 $updated
 
string $target_script = ""
 
string $return_location = ""
 
ilPageConfig $page_config = null
 
- Static Public Attributes inherited from ilPageContentGUI
static string $style_selector_reset = "margin-top:2px; margin-bottom:2px; text-indent:0px; position:static; float:none; width: auto;"
 
- Protected Member Functions inherited from ilPageContentGUI
 redirectToParent (string $hier_id="")
 
 getParentReturn (string $hier_id="")
 
 updateAndReturn ()
 
 setCurrentTextLang (string $lang_key)
 
 getCurrentTextLang ()
 
- Protected Attributes inherited from ilPageContentGUI
EditSessionRepository $edit_repo
 
string $pc_id = ""
 
array $chars
 
ilObjStyleSheet $style = null
 
ilLogger $log
 
int $styleid = 0
 
EditGUIRequest $request
 
string $sub_command = ""
 
int $requested_ref_id = 0
 
Style Content CharacteristicManager $char_manager
 
- Static Protected Attributes inherited from ilPageContentGUI
static array $common_bb_buttons
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning User Interface for Section Editing

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de @ilCtrl_Calls ilPCSectionGUI: ilPropertyFormGUI

Definition at line 24 of file class.ilPCSectionGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilPCSectionGUI::__construct ( ilPageObject  $a_pg_obj,
?ilPageContent  $a_content_obj = null,
string  $a_hier_id = "",
string  $a_pc_id = "" 
)

Reimplemented from ilPageContentGUI.

Definition at line 26 of file class.ilPCSectionGUI.php.

31 {
32 global $DIC;
33
34 $this->tpl = $DIC["tpl"];
35 $this->lng = $DIC->language();
36 $this->ctrl = $DIC->ctrl();
37 parent::__construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id);
38
40 }
static _getStandardCharacteristics()
setCharacteristics(array $a_chars)
global $DIC
Definition: feed.php:28
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc

References $DIC, ILIAS\GlobalScreen\Provider\__construct(), _getStandardCharacteristics(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ilPageContentGUI\setCharacteristics().

+ Here is the call graph for this function:

Member Function Documentation

◆ _getCharacteristics()

static ilPCSectionGUI::_getCharacteristics ( string  $a_style_id)
static

Definition at line 141 of file class.ilPCSectionGUI.php.

141 : array
142 {
143 global $DIC;
144
145 $service = $DIC->contentStyle()->internal();
146 $request = $DIC->copage()->internal()
147 ->gui()
148 ->pc()
149 ->editRequest();
150 $requested_ref_id = $request->getRefId();
151 $access_manager = $service->domain()->access(
153 $DIC->user()->getId()
154 );
155 $char_manager = $service->domain()->characteristic(
156 $a_style_id,
157 $access_manager
158 );
159
161 $chars = $std_chars;
162 if ($a_style_id > 0 &&
163 ilObject::_lookupType($a_style_id) == "sty") {
164 $style = new ilObjStyleSheet($a_style_id);
165 $chars = $style->getCharacteristics("section");
166 $new_chars = array();
167 foreach ($chars as $char) {
168 if ($char_manager->isOutdated("section", $char)) {
169 continue;
170 }
171 if (($std_chars[$char] ?? "") != "") { // keep lang vars for standard chars
172 $new_chars[$char] = $std_chars[$char];
173 } else {
174 $new_chars[$char] = $char;
175 }
176 asort($new_chars);
177 }
178 $chars = $new_chars;
179 }
180 return $chars;
181 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getCharacteristics(string $a_type="", bool $a_no_hidden=false, bool $a_include_core=true)
Get characteristics.
static _lookupType(int $id, bool $reference=false)
Style Content CharacteristicManager $char_manager
$service
Definition: ltiservices.php:43

References ilPageContentGUI\$char_manager, ilPageContentGUI\$chars, $DIC, ilPageContentGUI\$request, ilPageContentGUI\$requested_ref_id, $service, ilPageContentGUI\$style, _getStandardCharacteristics(), ilObject\_lookupType(), and ilObjStyleSheet\getCharacteristics().

+ Here is the call graph for this function:

◆ _getStandardCharacteristics()

static ilPCSectionGUI::_getStandardCharacteristics ( )
static

Definition at line 113 of file class.ilPCSectionGUI.php.

113 : array
114 {
115 global $DIC;
116
117 $lng = $DIC->language();
118
119 return array("Block" => $lng->txt("cont_Block"),
120 "Mnemonic" => $lng->txt("cont_Mnemonic"),
121 "Remark" => $lng->txt("cont_Remark"),
122 "Example" => $lng->txt("cont_Example"),
123 "Additional" => $lng->txt("cont_Additional"),
124 "Special" => $lng->txt("cont_Special"),
125
126 "Attention" => $lng->txt("cont_Attention"),
127 "Background" => $lng->txt("cont_Background"),
128 "Citation" => $lng->txt("cont_Citation"),
129 "Confirmation" => $lng->txt("cont_Confirmation"),
130 "Information" => $lng->txt("cont_Information"),
131 "Interaction" => $lng->txt("cont_Interaction"),
132 "Link" => $lng->txt("cont_Link"),
133 "Literature" => $lng->txt("cont_Literature"),
134 "Separator" => $lng->txt("cont_Separator"),
135 "StandardCenter" => $lng->txt("cont_StandardCenter"),
136
137 "Excursus" => $lng->txt("cont_Excursus"),
138 "AdvancedKnowledge" => $lng->txt("cont_AdvancedKnowledge"));
139 }
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...

References $DIC, ilPageContentGUI\$lng, and ilLanguage\txt().

Referenced by __construct(), and _getCharacteristics().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkInput()

ilPCSectionGUI::checkInput ( ilPropertyFormGUI  $form)

Definition at line 97 of file class.ilPCSectionGUI.php.

97 : bool
98 {
99 $ret = $form->checkInput();
100 if ($ret) {
101 $from = $form->getItemByPostVar("active_from")->getDate();
102 $to = $form->getItemByPostVar("active_to")->getDate();
103 if ($from && $to && $from->get(IL_CAL_UNIX) > $to->get(IL_CAL_UNIX)) {
104 $form->getItemByPostVar("active_to")->setAlert(
105 $this->lng->txt("copg_active_to_small")
106 );
107 $ret = false;
108 }
109 }
110 return $ret;
111 }
const IL_CAL_UNIX
getItemByPostVar(string $a_post_var)

References ilPropertyFormGUI\checkInput(), ilPropertyFormGUI\getItemByPostVar(), IL_CAL_UNIX, and ILIAS\Repository\lng().

Referenced by getHTML().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ create()

ilPCSectionGUI::create ( )

Definition at line 374 of file class.ilPCSectionGUI.php.

374 : void
375 {
376 $form = $this->initForm(true);
377 if ($form->checkInput()) {
378 $this->content_obj = new ilPCSection($this->getPage());
379 $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
380
381 $this->setValuesFromForm($form);
382
383 $this->updated = $this->pg_obj->update();
384 if ($this->updated === true) {
385 $this->ctrl->returnToParent($this, "jump" . $this->hier_id);
386 }
387 }
388
389 $this->insert($form);
390 }
setValuesFromForm(ilPropertyFormGUI $form)
initForm(bool $a_insert=false)
insert(ilPropertyFormGUI $a_form=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ edit()

ilPCSectionGUI::edit ( bool  $a_insert = false,
ilPropertyFormGUI  $a_form = null 
)

Definition at line 218 of file class.ilPCSectionGUI.php.

221 : void {
223
224 $this->displayValidationError();
225
226 if (!$a_form) {
227 $a_form = $this->initForm($a_insert);
228 }
229
230 $tpl->setContent($a_form->getHTML());
231 }
ilGlobalTemplateInterface $tpl
setContent(string $a_html)
Sets content for standard template.

Referenced by insert().

+ Here is the caller graph for this function:

◆ executeCommand()

ilPCSectionGUI::executeCommand ( )
Returns
mixed
Exceptions
ilCtrlException

Definition at line 187 of file class.ilPCSectionGUI.php.

188 {
189 $ret = "";
190
191 $this->getCharacteristicsOfCurrentStyle(["section"]); // scorm-2004
192
193 // get next class that processes or forwards current command
194 $next_class = $this->ctrl->getNextClass($this);
195
196 // get current command
197 $cmd = $this->ctrl->getCmd();
198
199 switch ($next_class) {
200 case "ilpropertyformgui":
201 $form = $this->initForm(true);
202 $this->ctrl->forwardCommand($form);
203 break;
204
205 default:
206 $ret = $this->$cmd();
207 break;
208 }
209
210 return $ret;
211 }
getCharacteristicsOfCurrentStyle(array $a_type)
Get characteristics of current style and call setCharacteristics, if style is given.

References ILIAS\Repository\ctrl(), ilPageContentGUI\getCharacteristicsOfCurrentStyle(), and initForm().

+ Here is the call graph for this function:

◆ getHTML()

ilPCSectionGUI::getHTML ( array  $params)

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

42 : string
43 {
44 $this->getCharacteristicsOfCurrentStyle(["section"]);
45
46 if ($params["form"] == true) {
47 $insert = $params["insert"] ?? false;
48 $form = $this->initForm($insert);
49 $form->setShowTopButtons(false);
50
51 $onload_code = [];
52 $char = $form->getItemByPostVar("characteristic");
53 $onload_code = array_merge($onload_code, $char->getOnloadCode());
54
55 $from = $form->getItemByPostVar("active_from");
56 $from->setSideBySide(false);
57 $onload_code = array_merge($onload_code, $from->getOnloadCode());
58
59 $to = $form->getItemByPostVar("active_to");
60 $to->setSideBySide(false);
61 $onload_code = array_merge($onload_code, $to->getOnloadCode());
62
63 $link = $form->getItemByPostVar("link");
64 $onload_code = array_merge($onload_code, $link->getOnloadCode());
65
66 $rep_sel = $form->getItemByPostVar("permission_ref_id");
67 $on_load_code3 = "";
68 $on_load_code4 = [];
69 if ($rep_sel) {
70 $exp = $rep_sel->getExplorerGUI();
71 $this->ctrl->setParameterByClass("ilformpropertydispatchgui", "postvar", "permission_ref_id");
72 $onload_code = array_merge($onload_code, [$exp->getOnloadCode()]);
73
74 $this->ctrl->setParameterByClass("ilformpropertydispatchgui", "postvar", "");
75 $onload_code = array_merge($onload_code, $rep_sel->getOnloadCode());
76 }
77
78 if (($params["update_fail"] ?? false) === true) {
79 $this->checkInput($form);
80 $form->setValuesByPost();
81 }
82
83 $html = $params["ui_wrapper"]->getRenderedForm(
84 $form,
85 $params["buttons"]
86 );
87
88 $html .= "<script>" .
89 implode("\n", $onload_code) .
90 "</script>";
91
92 return $html;
93 }
94 return "";
95 }
checkInput(ilPropertyFormGUI $form)
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
Definition: ltiregstart.php:33

References $params, checkInput(), ILIAS\Repository\ctrl(), ilPageContentGUI\getCharacteristicsOfCurrentStyle(), and initForm().

+ Here is the call graph for this function:

◆ initForm()

ilPCSectionGUI::initForm ( bool  $a_insert = false)

Definition at line 233 of file class.ilPCSectionGUI.php.

237 $ilCtrl = $this->ctrl;
238 $a_seleted_value = "";
239
240 // edit form
241 $form = new ilPropertyFormGUI();
242 $form->setFormAction($ilCtrl->getFormAction($this));
243 if ($a_insert) {
244 $form->setTitle($this->lng->txt("cont_insert_section"));
245 } else {
246 $form->setTitle($this->lng->txt("cont_update_section"));
247 }
248
249 // characteristic selection
250 $char_prop = new ilAdvSelectInputGUI(
251 $this->lng->txt("cont_characteristic"),
252 "characteristic"
253 );
254 $chars = $this->getCharacteristics();
255 if (is_object($this->content_obj)) {
256 if (($chars[$a_seleted_value] ?? "") == "" && ($this->content_obj->getCharacteristic() != "")) {
257 $chars = array_merge(
258 array($this->content_obj->getCharacteristic() => $this->content_obj->getCharacteristic()),
259 $chars
260 );
261 }
262 }
263
264 $selected = ($a_insert)
265 ? "Block"
266 : $this->content_obj->getCharacteristic();
267
268 foreach ($chars as $k => $char) {
269 $html = '<div class="ilCOPgEditStyleSelectionItem"><div class="ilc_section_' . $k . '" style="' . self::$style_selector_reset . '">' .
270 $char . '</div></div>';
271 $char_prop->addOption($k, $char, $html);
272 }
273
274 $char_prop->setValue($selected);
275 $form->addItem($char_prop);
276
277 // link input
278 $ac = new ilLinkInputGUI($this->lng->txt('cont_link'), 'link');
279 if ($this->getPageConfig()->getEnableInternalLinks()) {
280 $ac->setAllowedLinkTypes(ilLinkInputGUI::BOTH);
281 } else {
282 $ac->setAllowedLinkTypes(ilLinkInputGUI::EXT);
283 }
284 $ac->setRequired(false);
285 $ac->setInfo($this->lng->txt("copg_sec_link_info"));
286 $ac->setInternalLinkDefault(
287 $this->getPageConfig()->getIntLinkHelpDefaultType(),
288 $this->getPageConfig()->getIntLinkHelpDefaultId()
289 );
290 $link_types = array();
291 foreach ($this->getPageConfig()->getIntLinkFilters() as $f) {
292 $link_types[] = $f;
293 }
294 $ac->setInternalLinkFilterTypes($link_types);
295 $ac->setFilterWhiteList(
296 $this->getPageConfig()->getIntLinkFilterWhiteList()
297 );
298
299 if (!$a_insert) {
300 $l = $this->content_obj->getLink();
301 if ($l["LinkType"] == "IntLink") {
302 $ac->setValueByIntLinkAttributes($l["Type"], $l["Target"], $l["TargetFrame"]);
303 }
304 if ($l["LinkType"] == "ExtLink") {
305 $ac->setValue($l["Href"]);
306 }
307 }
308 $form->addItem($ac);
309
310 // activation
311
312 // active from
313 $dt_prop = new ilDateTimeInputGUI($lng->txt("cont_active_from"), "active_from");
314 if (!$a_insert && ($from = $this->content_obj->getActiveFrom()) != "") {
315 $dt_prop->setDate(new ilDateTime($from, IL_CAL_UNIX));
316 }
317 $dt_prop->setShowTime(true);
318 $form->addItem($dt_prop);
319
320 // active to
321 $dt_prop = new ilDateTimeInputGUI($lng->txt("cont_active_to"), "active_to");
322 if (!$a_insert && ($to = $this->content_obj->getActiveTo()) != "") {
323 $dt_prop->setDate(new ilDateTime($to, IL_CAL_UNIX));
324 }
325 $dt_prop->setShowTime(true);
326 $form->addItem($dt_prop);
327
328 // rep selector
329 if ($this->getPageConfig()->getEnablePermissionChecks()) {
330 $rs = new ilRepositorySelector2InputGUI($lng->txt("cont_permission_object"), "permission_ref_id", false, $form);
331 //$rs->setParent($this);
332 $rs->setParentForm($form);
333 $form->addItem($rs);
334
335 // permission
336 $options = array(
337 "read" => $lng->txt("read"),
338 "write" => $lng->txt("write"),
339 "visible" => $lng->txt("visible"),
340 "no_read" => $lng->txt("cont_no_read")
341 );
342 $si = new ilSelectInputGUI($lng->txt("permission"), "permission");
343 $si->setInfo($lng->txt("cont_permission_object_desc"));
344 $si->setOptions($options);
345 $form->addItem($si);
346
347 if (!$a_insert) {
348 $si->setValue($this->content_obj->getPermission());
349 $rs->setValue($this->content_obj->getPermissionRefId());
350 }
351 }
352
353 // protection
354 if ($this->getPageConfig()->getSectionProtection() == ilPageConfig::SEC_PROTECT_EDITABLE) {
355 $cb = new ilCheckboxInputGUI($lng->txt("cont_sec_protected"), "protected");
356 $cb->setInfo($this->getPageConfig()->getSectionProtectionInfo());
357 if (!$a_insert) {
358 $cb->setChecked($this->content_obj->getProtected());
359 }
360 $form->addItem($cb);
361 }
362
363 // save/cancel buttons
364 if ($a_insert) {
365 $form->addCommandButton("create_section", $lng->txt("save"));
366 $form->addCommandButton("cancelCreate", $lng->txt("cancel"));
367 } else {
368 $form->addCommandButton("update", $lng->txt("save"));
369 $form->addCommandButton("cancelUpdate", $lng->txt("cancel"));
370 }
371 return $form;
372 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a checkbox property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
@classDescription Date and time handling
This class represents a external and/or internal link in a property form.
This class represents a property form user interface.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a selection list property in a property form.

Referenced by executeCommand(), and getHTML().

+ Here is the caller graph for this function:

◆ insert()

ilPCSectionGUI::insert ( ilPropertyFormGUI  $a_form = null)

Definition at line 213 of file class.ilPCSectionGUI.php.

213 : void
214 {
215 $this->edit(true, $a_form);
216 }
edit(bool $a_insert=false, ilPropertyFormGUI $a_form=null)

References edit().

+ Here is the call graph for this function:

◆ setValuesFromForm()

ilPCSectionGUI::setValuesFromForm ( ilPropertyFormGUI  $form)

Definition at line 408 of file class.ilPCSectionGUI.php.

408 : void
409 {
410 $this->content_obj->setCharacteristic($form->getInput("characteristic"));
411
412 $from = $form->getItemByPostVar("active_from")->getDate();
413 if ($from) {
414 $this->content_obj->setActiveFrom($from->get(IL_CAL_UNIX));
415 } else {
416 $this->content_obj->setActiveFrom(0);
417 }
418
419 $to = $form->getItemByPostVar("active_to")->getDate();
420 if ($to) {
421 $this->content_obj->setActiveTo($to->get(IL_CAL_UNIX));
422 } else {
423 $this->content_obj->setActiveTo(0);
424 }
425
426 if ($this->getPageConfig()->getEnablePermissionChecks()) {
427 $this->content_obj->setPermissionRefId((int) $form->getInput("permission_ref_id"));
428 $this->content_obj->setPermission($form->getInput("permission"));
429 }
430
431 if ($form->getInput("link_mode") == "ext" && $form->getInput("link") != "") {
432 $this->content_obj->setExtLink($form->getInput("link"));
433 } elseif ($form->getInput("link_mode") == "int" && $form->getInput("link") != "") {
434 $la = $form->getItemByPostVar("link")->getIntLinkAttributes();
435 if (($la["Type"] ?? "") != "") {
436 $this->content_obj->setIntLink($la["Type"], $la["Target"], $la["TargetFrame"]);
437 }
438 } else {
439 $this->content_obj->setNoLink();
440 }
441
442 if ($this->getPageConfig()->getSectionProtection() == ilPageConfig::SEC_PROTECT_EDITABLE) {
443 $this->content_obj->setProtected($form->getInput("protected"));
444 }
445 }
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...

References ilPropertyFormGUI\getInput(), ilPropertyFormGUI\getItemByPostVar(), IL_CAL_UNIX, and ilPageConfig\SEC_PROTECT_EDITABLE.

+ Here is the call graph for this function:

◆ update()

ilPCSectionGUI::update ( )

Definition at line 392 of file class.ilPCSectionGUI.php.

392 : void
393 {
394 $form = $this->initForm(false);
395 if ($form->checkInput()) {
396 $this->setValuesFromForm($form);
397
398 $this->updated = $this->pg_obj->update();
399 if ($this->updated === true) {
400 $this->ctrl->returnToParent($this, "jump" . $this->hier_id);
401 }
402 }
403
404 $this->pg_obj->addHierIDs();
405 $this->edit(false, $form);
406 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

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