4include_once(
"./Services/COPage/classes/class.ilPageObjectGUI.php");
91 public function __construct(&$a_page_object, &$a_page_object_gui)
95 $this->
help = $DIC[
"ilHelp"];
96 $this->
user = $DIC->user();
97 $this->access =
$DIC->access();
101 $ilCtrl =
$DIC->ctrl();
102 $ilTabs =
$DIC->tabs();
104 $this->
ui = $DIC->ui();
105 $this->request =
$DIC->http()->request();
109 $this->tool_context =
$DIC->globalScreen()->tool()->context();
112 $this->ctrl = $ilCtrl;
116 $this->tabs_gui = $ilTabs;
117 $this->page = $a_page_object;
118 $this->page_gui = $a_page_object_gui;
120 $this->ctrl->saveParameter($this, array(
"hier_id",
"pc_id"));
131 $this->header = $a_header;
151 $this->locator = $a_locator;
159 $this->ctrl->returnToParent($this);
164 $this->int_link_return = $a_return;
170 $this->page_back_title = $a_title;
180 $this->log->debug(
"begin =========================");
191 $cmd = $this->ctrl->getCmd(
"displayPage");
192 $cmdClass = strtolower($this->ctrl->getCmdClass());
194 $hier_id =
$_GET[
"hier_id"];
195 $pc_id =
$_GET[
"pc_id"];
196 if (isset(
$_POST[
"new_hier_id"])) {
197 $hier_id =
$_POST[
"new_hier_id"];
200 $new_type = (isset(
$_GET[
"new_type"]))
204 $this->log->debug(
"step BC: cmd:$cmd, cmdClass:$cmdClass, hier_id: $hier_id, pc_id: $pc_id");
208 if (substr($cmd, 0, 5) ==
"exec_") {
210 $pca = explode(
":", key(
$_POST[
"cmd"]));
212 $cmd = explode(
"_", $pca[0]);
214 $hier_id = implode(
"_", $cmd);
215 $cmd =
$_POST[
"command" . $hier_id];
217 $this->log->debug(
"step EC: cmd:$cmd, hier_id: $hier_id, pc_id: $pc_id");
221 $first_hier_character = substr($hier_id, 0, 1);
222 if ($first_hier_character ==
"c" ||
223 $first_hier_character ==
"r" ||
224 $first_hier_character ==
"g" ||
225 $first_hier_character ==
"i") {
226 $hier_id = substr($hier_id, 1);
228 $this->log->debug(
"step CC: cmd:$cmd, hier_id: $hier_id, pc_id: $pc_id");
231 $this->page->buildDom();
232 $this->page->addHierIDs();
236 if ($cmdClass !=
"ilfilesystemgui") {
237 $com = explode(
"_", $cmd);
240 $this->log->debug(
"step CS: cmd:$cmd");
244 $next_class = $this->ctrl->getNextClass($this);
245 $this->log->debug(
"step NC: next class: " . $next_class);
249 if ($next_class ==
"ilpcplaceholdergui" && $hier_id ==
"" &&
$_GET[
"pl_pc_id"] !=
"") {
250 $hid = $this->page->getHierIdsForPCIds(array(
$_GET[
"pl_pc_id"]));
251 $hier_id = $hid[
$_GET[
"pl_pc_id"]];
253 $this->log->debug(
"step PH: next class: " . $next_class);
255 if ($com[0] ==
"insert" || $com[0] ==
"create") {
259 $add_type =
$_POST[
"pluginName"];
260 if ($ctype ==
"mob") {
264 $this->log->debug(
"step CM: cmd: " . $cmd .
", ctype: " . $ctype .
", add_type: " . $add_type);
267 if ($cmd ==
"editLinkedMedia") {
268 $this->ctrl->setCmd(
"edit");
270 $_GET[
"pgEdMediaMode"] =
"editLinkedMedia";
273 if (
$_GET[
"pgEdMediaMode"] ==
"editLinkedMedia") {
274 $this->ctrl->setParameter($this,
"pgEdMediaMode",
"editLinkedMedia");
275 $this->ctrl->setParameter($this,
"mob_id",
$_GET[
"mob_id"]);
276 if ($cmdClass !=
"ilinternallinkgui" && $cmdClass !=
"ilmdeditorgui"
277 && $cmdClass !=
"ilimagemapeditorgui" && $cmdClass !=
"ilfilesystemgui") {
278 $this->ctrl->setCmdClass(
"ilobjmediaobjectgui");
279 $cmdClass =
"ilobjmediaobjectgui";
282 $this->log->debug(
"step LM: cmd: " . $cmd .
", cmdClass: " . $cmdClass);
286 $this->log->debug(
"before PR: cmdClass: $cmdClass, nextClass: $next_class" .
287 ", hier_id: " . $hier_id .
", pc_id: " . $pc_id .
")");
290 if ($_REQUEST[
"ctype"] ==
"" && $_REQUEST[
"cname"] ==
"" &&
291 $cmd !=
"insertFromClipboard" && $cmd !=
"pasteFromClipboard" &&
292 $cmd !=
"setMediaMode" && $cmd !=
"copyLinkedMediaToClipboard" &&
293 $cmd !=
"activatePage" && $cmd !=
"deactivatePage" &&
294 $cmd !=
"copyLinkedMediaToMediaPool" && $cmd !=
"showSnippetInfo" &&
295 $cmd !=
"delete" && $cmd !=
"paste" &&
296 $cmd !=
"cancelDeleteSelected" && $cmd !=
"confirmedDeleteSelected" &&
297 $cmd !=
"copy" && $cmd !=
"cut" &&
298 ($cmd !=
"displayPage" ||
$_POST[
"editImagemapForward_x"] !=
"" ||
$_POST[
"imagemap_x"] !=
"") &&
299 ($cmd !=
"displayPage" ||
$_POST[
"editImagemapForward_x"] !=
"") &&
300 $cmd !=
"activate" && $cmd !=
"characteristic" &&
301 $cmd !=
"assignCharacteristic" &&
302 $cmdClass !=
"ilrepositoryselector2inputgui" &&
303 $cmdClass !=
"ilpageeditorserveradaptergui" &&
304 $cmd !=
"cancelCreate" && $cmd !=
"popup" &&
305 $cmdClass !=
"ileditclipboardgui" && $cmd !=
"addChangeComment" &&
306 ($cmdClass !=
"ilinternallinkgui" || ($next_class ==
"ilpcmediaobjectgui"))) {
307 if (
$_GET[
"pgEdMediaMode"] !=
"editLinkedMedia") {
308 $cont_obj = $this->page->getContentObject($hier_id, $pc_id);
310 $this->log->debug(
"returnToParent");
311 $ilCtrl->returnToParent($this);
316 $this->log->debug(
"step PR: ctype: $ctype");
320 if ($_REQUEST[
"ctype"] !=
"" || $_REQUEST[
"cname"] !=
"") {
321 $ctype = $_REQUEST[
"ctype"];
322 if ($_REQUEST[
"cname"] !=
"") {
324 $ctype = $pc_def[
"pc_type"];
326 $pc_id = $_REQUEST[
"pcid"];
327 $hier_id = $_REQUEST[
"hier_id"];
328 if (!in_array($cmd, [
"insert",
"create"])) {
329 $cont_obj = $this->page->getContentObject($hier_id, $pc_id);
333 if ($pc_id !=
"" && $hier_id ==
"") {
334 $hier_id = $this->page->getHierIdForPcId($pc_id);
336 if ($ctype !=
"media" || !is_object(
$cont_obj)) {
338 $this->tpl->setTitle($this->
getHeader());
346 $this->ctrl->setParameter($this,
"hier_id", $hier_id);
347 $this->ctrl->setParameter($this,
"pc_id", $pc_id);
348 $this->ctrl->setCmd($cmd);
349 if ($next_class ==
"") {
350 include_once(
"./Services/COPage/classes/class.ilCOPagePCDef.php");
352 if (is_array($pc_def)) {
353 $this->ctrl->setCmdClass($pc_def[
"pc_gui_class"]);
355 $next_class = $this->ctrl->getNextClass($this);
357 $this->log->debug(
"step NC2: next_class: $next_class");
361 if ($cmd ==
"displayPage" &&
$_POST[
"editImagemapForward_x"] ==
"" &&
$_POST[
"imagemap_x"] ==
"") {
364 $this->log->debug(
"step IM: next_class: $next_class");
366 $this->log->debug(
"before FC: next_class:" . $next_class .
", pc_id:" . $pc_id .
367 ", hier_id:" . $hier_id .
", ctype:" . $ctype .
", cmd:" . $cmd .
", _GET[cmd]: " .
$_GET[
"cmd"]);
370 switch ($next_class) {
371 case "ilinternallinkgui":
373 $this->page_gui->getPageConfig()->getIntLinkHelpDefaultType(),
374 $this->page_gui->getPageConfig()->getIntLinkHelpDefaultId(),
375 $this->page_gui->getPageConfig()->getIntLinkHelpDefaultIdIsRef()
377 $link_gui->setFilterWhiteList(
378 $this->page_gui->getPageConfig()->getIntLinkFilterWhiteList()
380 foreach ($this->page_gui->getPageConfig()->getIntLinkFilters() as $filter) {
381 $link_gui->filterLinkType($filter);
383 $link_gui->setReturn($this->int_link_return);
385 $ret = $this->ctrl->forwardCommand($link_gui);
389 case "ilpcmediaobjectgui":
390 include_once(
"./Services/COPage/classes/class.ilPCMediaObjectGUI.php");
392 $this->tabs_gui->clearTargets();
393 $this->tabs_gui->setBackTarget(
394 $this->page_gui->page_back_title,
395 $ilCtrl->getLinkTarget($this->page_gui,
"edit")
398 $pcmob_gui->setStyleId($this->page_gui->getStyleId());
399 $pcmob_gui->setSubCmd($ctype);
400 $pcmob_gui->setEnabledMapAreas($this->page_gui->getPageConfig()->getEnableInternalLinks());
401 $ret = $this->ctrl->forwardCommand($pcmob_gui);
402 $ilHelp->setScreenIdComponent(
"copg_media");
406 case "ilobjmediaobjectgui":
407 $this->tabs_gui->clearTargets();
408 $this->tabs_gui->setBackTarget(
409 $this->lng->txt(
"back"),
410 $ilCtrl->getParentReturn($this)
414 $mob_gui->setEnabledMapAreas($this->page_gui->getPageConfig()->getEnableInternalLinks());
415 $this->tpl->setTitle($this->lng->txt(
"mob") .
": " .
417 $ret = $this->ctrl->forwardCommand($mob_gui);
421 case "ilpcquestiongui":
422 include_once(
"./Services/COPage/classes/class.ilPCQuestionGUI.php");
424 $pc_question_gui->setSelfAssessmentMode($this->page_gui->getPageConfig()->getEnableSelfAssessment());
425 $pc_question_gui->setPageConfig($this->page_gui->getPageConfig());
427 if ($this->page_gui->getPageConfig()->getEnableSelfAssessment()) {
428 $this->tabs_gui->clearTargets();
429 $ilHelp->setScreenIdComponent(
"copg_pcqst");
430 $this->tabs_gui->setBackTarget(
431 $this->lng->txt(
"back"),
432 $ilCtrl->getParentReturn($this)
434 $ret = $this->ctrl->forwardCommand($pc_question_gui);
436 $cmd = $this->ctrl->getCmd();
437 $pc_question_gui->$cmd();
438 $this->ctrl->redirectByClass(array(
"ilobjquestionpoolgui", get_class(
$cont_obj)),
"editQuestion");
443 case "ilpcpluggedgui":
444 $this->tabs_gui->clearTargets();
445 include_once(
"./Services/COPage/classes/class.ilPCPluggedGUI.php");
453 $ret = $this->ctrl->forwardCommand($plugged_gui);
456 case "ilpageeditorserveradaptergui":
463 $this->ctrl->forwardCommand($adapter);
469 include_once(
"./Services/COPage/classes/class.ilCOPagePCDef.php");
471 $this->log->debug(
"Generic Call");
473 $this->tabs_gui->clearTargets();
474 $this->tabs_gui->setBackTarget(
475 $this->page_gui->page_back_title,
476 $ilCtrl->getLinkTarget($this->page_gui,
"edit")
478 $ilHelp->setScreenIdComponent(
"copg_" . $pc_def[
"pc_type"]);
480 $gui_class_name = $pc_def[
"pc_gui_class"];
481 $pc_gui =
new $gui_class_name($this->page,
$cont_obj, $hier_id, $pc_id);
482 if ($pc_def[
"style_classes"]) {
483 $pc_gui->setStyleId($this->page_gui->getStyleId());
485 $pc_gui->setPageConfig($this->page_gui->getPageConfig());
486 $ret = $this->ctrl->forwardCommand($pc_gui);
488 $this->log->debug(
"Call ilPageEditorGUI command.");
491 if ($cmd ==
"pasteFromClipboard") {
493 } elseif ($cmd ==
"paste") {
496 $ret = $this->$cmd();
503 $this->log->debug(
"end --------------------");
518 if (
$ilUser->getPref(
"ilPageEditor_JavaScript") !=
"disable"
535 $this->page_gui->activatePage();
540 $this->page_gui->deactivatePage();
550 $ilUser->writePref(
"ilPageEditor_MediaMode",
$_POST[
"media_mode"]);
551 $ilUser->writePref(
"ilPageEditor_HTMLMode",
$_POST[
"html_mode"]);
552 if (
$ilUser->getPref(
"ilPageEditor_JavaScript") !=
$_POST[
"js_mode"]) {
554 if ($this->page->getParentType() ==
"lm") {
555 $this->ctrl->setParameterByClass(
"illmpageobjectgui",
"reloadTree",
"y");
558 $ilUser->writePref(
"ilPageEditor_JavaScript",
$_POST[
"js_mode"]);
561 if ($this->page->getParentType() ==
"lm") {
562 $this->ctrl->redirectByClass(
"illmpageobjectgui",
"edit");
564 $this->ctrl->returnToParent($this);
575 ilUtil::sendSuccess($this->lng->txt(
"copied_to_clipboard"),
true);
577 $this->ctrl->returnToParent($this);
587 $this->ctrl->setParameterByClass(
"ilmediapooltargetselector",
"mob_id",
$_POST[
"mob_id"]);
588 $this->ctrl->redirectByClass(
"ilmediapooltargetselector",
"listPools");
596 include_once(
"./Services/History/classes/class.ilHistory.php");
598 $this->page->getId(),
601 $this->page->getParentType() .
":pg",
605 ilUtil::sendSuccess($this->lng->txt(
"cont_added_comment"),
true);
606 $this->ctrl->returnToParent($this);
612 public function delete()
620 if (count($targets) == 0) {
622 $this->ctrl->returnToParent($this);
624 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
626 $cgui->setFormAction($ilCtrl->getFormAction($this));
627 $cgui->setHeaderText(
$lng->txt(
"copg_confirm_el_deletion"));
628 $cgui->setCancel(
$lng->txt(
"cancel"),
"cancelDeleteSelected");
629 $cgui->setConfirm(
$lng->txt(
"confirm"),
"confirmedDeleteSelected");
630 foreach ($targets as $t) {
631 $cgui->addHiddenItem(
"ids[]", $t);
634 $tpl->setContent($cgui->getHTML());
646 $this->ctrl->returnToParent($this);
656 if (count($targets) > 0) {
657 $updated = $this->page->deleteContents(
660 $this->page_gui->getPageConfig()->getEnableSelfAssessment()
662 if ($updated !==
true) {
668 $this->ctrl->returnToParent($this);
678 if (is_array(
$_POST[
"ids"])) {
679 $this->page->copyContents(
$_POST[
"ids"]);
680 ilUtil::sendSuccess(
$lng->txt(
"cont_sel_el_copied_use_paste"),
true);
682 $this->ctrl->returnToParent($this);
692 if (is_array(
$_POST[
"ids"])) {
693 $updated = $this->page->cutContents(
$_POST[
"ids"]);
694 if ($updated !==
true) {
699 ilUtil::sendSuccess(
$lng->txt(
"cont_sel_el_cut_use_paste"),
true);
701 $this->ctrl->returnToParent($this);
710 $this->page->pasteContents($a_hier_id, $this->page_gui->getPageConfig()->getEnableSelfAssessment());
711 include_once(
"./Modules/LearningModule/classes/class.ilEditClipboard.php");
713 $this->ctrl->returnToParent($this);
721 if (is_array(
$_POST[
"ids"])) {
722 $updated = $this->page->switchEnableMultiple(
725 $this->page_gui->getPageConfig()->getEnableSelfAssessment()
727 if ($updated !==
true) {
733 $this->ctrl->returnToParent($this);
744 if (is_array(
$_POST[
"ids"])) {
748 foreach (
$_POST[
"ids"] as $t) {
749 $tarr = explode(
":", $t);
750 $cont_obj = $this->page->getContentObject($tarr[0], $tarr[1]);
752 $types[
"par"] =
"par";
755 $types[
"sec"] =
"sec";
759 if (count($types) == 0) {
761 $this->ctrl->returnToParent($this);
764 $tpl->setContent($this->form->getHTML());
767 $this->ctrl->returnToParent($this);
781 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
783 $this->form->setTitle($this->lng->txt(
"cont_choose_characteristic"));
785 if ($a_types[
"par"] ==
"par") {
787 $this->lng->txt(
"cont_choose_characteristic_text"),
790 include_once(
"./Services/COPage/classes/class.ilPCParagraphGUI.php");
792 $select_prop->setOptions($options);
793 $this->form->addItem($select_prop);
795 if ($a_types[
"sec"] ==
"sec") {
797 $this->lng->txt(
"cont_choose_characteristic_section"),
800 include_once(
"./Services/COPage/classes/class.ilPCSectionGUI.php");
802 $select_prop->setOptions($options);
803 $this->form->addItem($select_prop);
806 foreach ($a_target as $t) {
808 $hidden->setValue($t);
809 $this->form->addItem($hidden);
812 $this->form->setFormAction($ilCtrl->getFormAction($this));
813 $this->form->addCommandButton(
"assignCharacteristic",
$lng->txt(
"save"));
814 $this->form->addCommandButton(
"showPage",
$lng->txt(
"cancel"));
825 $updated = $this->page->assignCharacteristic(
$_POST[
"target"], $char_par, $char_sec);
826 if ($updated !==
true) {
831 $this->ctrl->returnToParent($this);
841 $ilCtrl->setParameter($this,
"hier_id", $a_hier_id);
842 $ilCtrl->setParameterByClass(
843 "ilEditClipboardGUI",
845 rawurlencode($ilCtrl->getLinkTarget(
847 "insertFromClipboard",
854 $ilCtrl->redirectByClass(
"ilEditClipboardGUI",
"getObject");
862 include_once(
"./Services/Clipboard/classes/class.ilEditClipboardGUI.php");
864 include_once(
"./Services/COPage/classes/class.ilPCMediaObject.php");
866 $hier_id = $this->page->getHierIDForPCId(
$_GET[
"pc_id"]);
867 if ($hier_id ==
"") {
872 foreach ($ids as $id2) {
873 $id = explode(
":", $id2);
876 if (
$type ==
"mob") {
878 $this->content_obj->readMediaObject($id);
879 $this->content_obj->createAlias($this->page, $hier_id);
880 $this->updated = $this->page->update();
882 if (
$type ==
"incl") {
883 include_once(
"./Services/COPage/classes/class.ilPCContentInclude.php");
885 $this->content_obj->create($this->page, $hier_id);
886 $this->content_obj->setContentType(
"mep");
887 $this->content_obj->setContentId($id);
888 $this->updated = $this->page->update();
892 $this->ctrl->returnToParent($this);
900 $this->ctrl->returnToParent($this);
924 $stpl =
new ilTemplate(
"tpl.snippet_info.html",
true,
true,
"Services/COPage");
926 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolItem.php");
928 foreach ($mep_pools as $mep_id) {
931 foreach ($ref_ids as $rid) {
932 if (!$edit_link && $ilAccess->checkAccess(
"write",
"", $rid)) {
933 $stpl->setCurrentBlock(
"edit_link");
934 $stpl->setVariable(
"TXT_EDIT",
$lng->txt(
"edit"));
937 "./goto.php?target=mep_" . $rid
939 $stpl->parseCurrentBlock();
942 $stpl->setCurrentBlock(
"pool");
943 $stpl->setVariable(
"TXT_MEDIA_POOL",
$lng->txt(
"obj_mep"));
945 $stpl->parseCurrentBlock();
948 include_once(
"./Modules/MediaPool/classes/class.ilMediaPoolPage.php");
949 $stpl->setVariable(
"TXT_TITLE",
$lng->txt(
"title"));
951 $stpl->setVariable(
"TXT_BACK",
$lng->txt(
"back"));
954 $ilCtrl->getLinkTarget($this->page_gui,
"edit")
956 $tpl->setContent($stpl->get());
An exception for terminatinating execution or to throw for unit testing.
static getPCDefinitionByGUIClassName($a_gui_class_name)
Get PC definition by name.
static getPCDefinitionByType($a_pc_type)
Get PC definition by type.
static getPCDefinitionByName($a_pc_name)
Get PC definition by name.
static requirePCGUIClassByName($a_name)
Get instance.
static isPCGUIClassName($a_class_name, $a_lower_case=false)
Is given class name a pc gui class?
Confirmation screen class.
static _createEntry( $a_obj_id, $a_action, $a_info_params="", $a_obj_type="", $a_user_comment="", $a_update_last=false)
Creates a new history entry for an object.
static getLogger($a_component_id)
Get component logger.
static lookupTitle($a_page_id)
Lookup title.
static _lookupTitle($a_id)
lookup object title
static _getAllReferences($a_id)
get all reference ids of object
Class ilPCContentInclude.
static _getCharacteristics($a_style_id)
Get characteristics.
static _getCharacteristics($a_style_id)
Get characteristics.
copyLinkedMediaToMediaPool()
copy linked media object to media pool
setPageBackTitle($a_title)
__construct(&$a_page_object, &$a_page_object_gui)
Constructor.
addChangeComment()
add change comment to history
initCharacteristicForm($a_target, $a_types)
Init map creation/update form.
insertFromClipboard()
insert object from clipboard
copyLinkedMediaToClipboard()
copy linked media object to clipboard
setLocator(&$a_locator)
set locator object
copy()
Copy selected items.
cancelDeleteSelected()
Cancel deletion.
displayPage()
Default for POST reloads and missing.
pasteFromClipboard($a_hier_id)
paste from clipboard (redirects to clipboard)
setMediaMode()
set media and editing mode
paste($a_hier_id)
paste from clipboard (redirects to clipboard)
setIntLinkReturn($a_return)
static _isBrowserJSEditCapable()
checks wether browser is javascript editing capable
static _doJSEditing()
checks if current user has activated js editing and if browser is js capable
characteristic()
Assign characeristic to text blocks/sections.
confirmedDeleteSelected()
Delete selected items.
activate()
(de-)activate selected items
displayLocator()
display locator
setHeader($a_header)
set header title
showSnippetInfo()
Show snippet info.
returnToContext()
redirect to parent context
getHeader()
get header title
executeCommand()
execute command
assignCharacteristic()
Assign characteristic.
Adapter for JSON frontend.
special template class to simplify handling of ITX/PEAR
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.