19 declare(strict_types=1);
95 $this->
ctrl = $DIC[
'ilCtrl'];
96 $this->tree = $DIC[
'tree'];
97 $this->
tabs = $DIC[
'ilTabs'];
98 $this->tpl = $DIC[
"tpl"];
99 $this->obj_definition = $DIC[
"objDefinition"];
100 $this->obj_data_cache = $DIC[
"ilObjDataCache"];
101 $this->
access = $DIC->access();
102 $this->error = $DIC[
"ilErr"];
103 $this->
user = $DIC[
'ilUser'];
104 $this->rbacsystem = $DIC[
'rbacsystem'];
105 $this->rbacreview = $DIC[
'rbacreview'];
107 $this->
lng = $DIC[
'lng'];
108 $this->request_wrapper = $DIC->http()->wrapper()->query();
109 $this->post_wrapper = $DIC->http()->wrapper()->post();
111 $this->request = $DIC->http()->request();
112 $this->ui_factory = $DIC[
'ui.factory'];
113 $this->ui_renderer = $DIC[
'ui.renderer'];
119 $this->parent_obj = $parent_gui;
121 $this->
lng->loadLanguageModule(
'search');
122 $this->
lng->loadLanguageModule(
'obj');
123 $this->
ctrl->saveParameter($this,
"crtcb");
125 $this->clipboard = $DIC
138 $this->
ctrl->getNextClass($this);
139 $cmd = $this->
ctrl->getCmd();
144 protected function init(): void
146 if ($this->retriever->has(
'smode')) {
147 $this->
setSubMode($this->retriever->getMaybeInt(
'smode') ?? 0);
153 if ($this->retriever->has(
'source_ids')) {
154 $this->
setSource(explode(
'_', $this->retriever->getMaybeString(
'source_ids')));
155 $this->
ctrl->setParameter($this,
'source_ids', implode(
'_', $this->
getSources()));
158 if ($this->retriever->has(
'source_id')) {
159 $this->
setSource([$this->retriever->getMaybeInt(
'source_id')]);
160 $this->
ctrl->setParameter($this,
'source_ids', implode(
'_', $this->
getSources()));
170 if ($this->retriever->has(
'new_type')) {
171 $this->
setMode(self::SEARCH_SOURCE);
172 $this->
setType($this->retriever->getMaybeString(
'new_type'));
173 $this->
setTarget($this->request_wrapper->retrieve(
"ref_id", $this->refinery->kindlyTo()->int()));
175 $this->
ctrl->setParameter($this,
'new_type', $this->
getType());
184 elseif ($this->retriever->getMaybeInt(
'selectMode') === self::SOURCE_SELECTION) {
185 $this->
setMode(self::SOURCE_SELECTION);
187 $this->
ctrl->setParameterByClass(get_class($this->parent_obj),
'selectMode', self::SOURCE_SELECTION);
188 $this->
setTarget($this->request_wrapper->retrieve(
"ref_id", $this->refinery->kindlyTo()->int()));
189 $this->
ctrl->setReturnByClass(get_class($this->parent_obj),
'');
192 } elseif ($this->retriever->getMaybeInt(
'selectMode') === self::TARGET_SELECTION) {
193 $this->
setMode(self::TARGET_SELECTION);
194 $this->
ctrl->setReturnByClass(get_class($this->parent_obj),
'');
199 if ($this->retriever->has(
'target_ids')) {
200 $this->
setTargets(explode(
'_', $this->retriever->getMaybeString(
'target_ids')));
207 $this->
lng->loadLanguageModule(
'cntr');
208 $this->
tabs->clearTargets();
209 $this->
tabs->setBackTarget(
210 $this->
lng->txt(
'cancel'),
211 (string) $this->
ctrl->getParentReturn($this->parent_obj)
215 protected function setTabs(
int $tab_group,
int $active_tab): void
217 if ($tab_group == self::TAB_GROUP_SC_SELECTION) {
218 if ($this->
getSubMode() == self::SUBMODE_CONTENT_ONLY) {
219 if ($this->
getMode() == self::SOURCE_SELECTION) {
221 (
string) self::TAB_SELECTION_SOURCE_TREE,
222 $this->
lng->txt(
'cntr_copy_repo_tree'),
223 $this->
ctrl->getLinkTarget($this,
'initSourceSelection')
226 (
string) self::TAB_SELECTION_MEMBERSHIP,
227 $this->
lng->txt(
'cntr_copy_crs_grp'),
228 $this->
ctrl->getLinkTarget($this,
'showSourceSelectionMembership')
233 $this->
tabs->activateTab((
string) $active_tab);
241 $this->
ctrl->setParameter($this,
'smode', self::SUBMODE_CONTENT_ONLY);
242 $this->
ctrl->setParameter($this,
'selectMode', self::SOURCE_SELECTION);
244 $this->
setSubMode(self::SUBMODE_CONTENT_ONLY);
245 $this->
setMode(self::SOURCE_SELECTION);
246 $this->
setTarget($this->request_wrapper->retrieve(
"ref_id", $this->refinery->kindlyTo()->int()));
256 $this->
ctrl->setParameter($this,
'selectMode', self::TARGET_SELECTION);
268 $path = $this->tree->getPathId($source_id);
269 foreach (
$path as $node_id) {
270 if (!in_array($node_id, $node_ids)) {
271 $node_ids[] = $node_id;
279 $this->
ctrl->setReturnByClass(get_class($this->parent_obj),
'');
288 $this->
setTabs(self::TAB_GROUP_SC_SELECTION, self::TAB_SELECTION_SOURCE_TREE);
292 foreach ($this->
getTargets() as $target_ref_id) {
293 $path = $this->tree->getPathId($target_ref_id);
294 foreach (
$path as $node_id) {
295 if (!in_array($node_id, $node_ids)) {
296 $node_ids[] = $node_id;
304 $this->
ctrl->setReturnByClass(get_class($this->parent_obj),
'');
314 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_copy_clipboard_source'));
315 $this->
setTabs(self::TAB_GROUP_SC_SELECTION, self::TAB_SELECTION_MEMBERSHIP);
319 'showSourceSelectionMembership',
320 'copy_selection_mmbrs' 331 $this->tpl->setContent($cgs->getHTML());
336 if ($this->obj_definition->isContainer($this->getType())) {
337 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_copy_clipboard_container'));
339 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_copy_clipboard'));
343 $exp->setTypeWhiteList([
"root",
"cat",
"grp",
"crs",
"fold",
"lso",
"prg"]);
344 $exp->setSelectMode(
"target",
true);
345 if ($exp->handleCommand()) {
348 $output = $exp->getHTML();
351 $t->setFormAction($this->
ctrl->getFormAction($this,
"saveTarget"));
352 $primary_button = $this->ui_factory->button()->primary(
356 $t->addComponent($primary_button);
359 $clipboard_btn = $this->ui_factory->button()->standard(
360 $this->
lng->txt(
'obj_insert_into_clipboard'),
363 $t->addComponent($clipboard_btn);
365 $cancel_btn = $this->ui_factory->button()->standard(
366 $this->
lng->txt(
'cancel'),
369 $t->addComponent($cancel_btn);
371 $t->setCloseFormTag(
false);
373 $output = $t->getHTML() . $output;
375 $t->setCloseFormTag(
true);
376 $t->setOpenFormTag(
false);
377 $output .=
"<br />" . $t->getHTML();
379 $this->tpl->setContent($output);
384 if ($this->obj_definition->isContainer($this->getType())) {
385 return $this->
lng->txt(
'btn_next');
388 return $this->
lng->txt(
'paste');
393 return function (
$id) use ($cmd) {
394 return "document.getElementById('$id')" 395 .
'.addEventListener("click", ' 396 .
'(e) => {e.preventDefault();' 397 .
'e.target.setAttribute("name", "cmd[' . $cmd .
']");' 398 .
'e.target.form.requestSubmit(e.target);});';
404 $this->tpl->addBlockFile(
407 'tpl.paste_into_multiple_objects.html',
408 "components/ILIAS/ILIASObject" 411 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_copy_clipboard_source'));
414 'ilias.php?baseClass=ilRepositoryGUI&cmd=goto',
415 'paste_copy_repexpand' 417 $exp->setRequiredFormItemPermission(
'visible,read,copy');
419 $this->
ctrl->setParameter($this,
'selectMode', self::SOURCE_SELECTION);
420 $exp->setExpandTarget($this->
ctrl->getLinkTarget($this,
'showSourceSelectionTree'));
421 $exp->setTargetGet(
'ref_id');
422 $exp->setPostVar(
'source');
427 foreach ([
'cat',
'root',
'fold'] as
$container) {
428 $exp->removeFormItemForType($container);
431 if (!$this->request_wrapper->has(
"paste_copy_repexpand")) {
432 $expanded = $this->tree->readRootId();
434 $expanded = $this->request_wrapper->retrieve(
"paste_copy_repexpand", $this->
refinery->kindlyTo()->int());
437 $this->tpl->setVariable(
'FORM_TARGET',
'_self');
438 $this->tpl->setVariable(
'FORM_ACTION', $this->
ctrl->getFormAction($this,
'copySelection'));
440 $exp->setExpand($expanded);
443 $output = $exp->getOutput();
445 $this->tpl->setVariable(
'OBJECT_TREE', $output);
446 $this->tpl->setVariable(
'CMD_SUBMIT',
'saveSource');
447 $this->tpl->setVariable(
'TXT_SUBMIT', $this->
lng->txt(
'btn_next'));
452 if (!$this->retriever->has(
'target')) {
453 $this->
ctrl->setParameter($this,
'selectMode', self::TARGET_SELECTION);
454 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
460 $targets = $this->retriever->getArrayOfInt(
'target');
462 $possible_target = $this->retriever->getMaybeInt(
'target');
463 $targets = $possible_target ===
null ? [] : [$possible_target];
466 if ($targets !== []) {
468 $this->
ctrl->setParameter($this,
'target_ids', implode(
'_', $this->
getTargets()));
469 } elseif (($target = $this->retriever->getMaybeInt(
'target')) !==
null) {
471 $this->
ctrl->setParameter($this,
'target_ids', implode(
'_', $this->
getTargets()));
475 foreach ($this->
getSources() as $source_ref_id) {
476 foreach ($this->
getTargets() as $target_ref_id) {
479 $target_object =
new $target_class_name((
int) $target_ref_id);
480 $possible_subtypes = $target_object->getPossibleSubObjects();
484 if (!array_key_exists($source_type, (array) $possible_subtypes)) {
485 $this->tpl->setOnScreenMessage(
'failure', sprintf(
486 $this->
lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
487 $this->
lng->txt(
'obj_' . $target_type),
488 $this->
lng->txt(
'obj_' . $source_type)
496 if (count($this->
getSources()) == 1 && $this->obj_definition->isContainer($this->getType())) {
500 foreach ($this->
getTargets() as $target_ref_id) {
501 if ($this->tree->isGrandChild($this->getFirstSource(), (
int) $target_ref_id)) {
509 if (count($is_child) > 0) {
510 $this->tpl->setOnScreenMessage(
512 $this->
lng->txt(
"msg_not_in_itself") .
" " . implode(
',', $is_child)
540 $this->sub_mode =
$mode;
580 if (count($this->sources)) {
581 return (
int) $this->sources[0];
606 if (array_key_exists(0, $this->
getTargets())) {
608 return (
int) $targets[0];
618 $ilCtrl->returnToParent($this);
623 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"obj_inserted_clipboard"),
true);
625 $this->clipboard->setCmd(
"copy");
626 $this->clipboard->setRefIds($this->
getSources());
632 if ($this->post_wrapper->has(
'tit')) {
633 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'wizard_search_list'));
634 ilSession::set(
'source_query', $this->post_wrapper->retrieve(
"tit", $this->refinery->kindlyTo()->string()));
638 $this->
form->setValuesByPost();
640 if (!$this->
form->checkInput()) {
641 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_search_string'),
true);
642 $this->
ctrl->returnToParent($this);
646 $tit = $this->
form->getInput(
'tit');
651 $query_parser->setMinWordLength(1);
653 $query_parser->parse();
654 if (!$query_parser->validate()) {
655 $this->tpl->setOnScreenMessage(
'failure', $query_parser->getMessage(),
true);
656 $this->
ctrl->returnToParent($this);
661 $object_search->setFilter([$this->retriever->getMaybeString(
'new_type')]);
662 $res = $object_search->performSearch();
663 $res->setRequiredPermission(
'copy');
667 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'search_no_match'),
true);
668 $this->
ctrl->returnToParent($this);
672 $table->setFormAction($this->
ctrl->getFormAction($this));
674 $table->parseSearchResults(
$results);
675 $this->tpl->setContent($table->getHTML());
680 if (!$this->post_wrapper->has(
"source")) {
681 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
686 $source = $this->post_wrapper->retrieve(
"source", $this->
refinery->kindlyTo()->int());
689 $this->
ctrl->setParameter($this,
'source_id', $source);
691 foreach ($this->
getSources() as $source_ref_id) {
693 $this->tpl->setOnScreenMessage(
'failure',
$message);
704 foreach ($this->
getTargets() as $target_ref_id) {
707 $target_object =
new $target_class_name($target_ref_id);
708 $possible_subtypes = $target_object->getPossibleSubObjects();
712 if (!array_key_exists($source_type, $possible_subtypes)
713 && $this->
getSubMode() != self::SUBMODE_CONTENT_ONLY
714 && ($source_type !==
'crs' || $target_type !==
'crs')
717 $this->
lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
718 $this->
lng->txt(
'obj_' . $target_type),
719 $this->
lng->txt(
'obj_' . $source_type)
732 $source = $this->retriever->getMaybeInt(
'source');
733 if ($source ===
null) {
734 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
735 $this->
ctrl->redirect($this,
'showSourceSelectionMembership');
741 $this->
ctrl->setParameter($this,
'source_id', $source);
748 if (!$this->obj_definition->isContainer($this->getType())) {
769 $this->tpl->setContent($this->ui_renderer->render($form));
775 $data = $form->withRequest($this->request)->getData();
782 $form_action = $this->
ctrl->getFormAction($this,
'saveCopyPage');
785 'copy_page' => $this->ui_factory->input()->field()
787 $this->
lng->txt(
'cntr_adopt_content')
789 ->withOption(
'1', $this->
lng->txt(
'copy_container_page_yes_label'), $this->
lng->txt(
'copy_container_page_yes_byline'))
790 ->withOption(
'0', $this->
lng->txt(
'copy_container_page_no_label'))
792 ->withAdditionalTransformation($this->
refinery->kindlyTo()->bool())
795 return $this->ui_factory->input()->container()->form()
796 ->standard($form_action, $input)
797 ->withSubmitLabel($this->
lng->txt(
'next'));
803 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
808 $this->log->debug(
'Source(s): ' . print_r($this->
getSources(),
true));
809 $this->log->debug(
'Target(s): ' . print_r($this->
getTargets(),
true));
811 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt($this->getType() .
'_copy_threads_info'));
812 $this->tpl->addJavaScript(
'assets/js/ilContainer.js');
813 $this->tpl->setVariable(
'BODY_ATTRIBUTES',
'onload="ilDisableChilds(\'cmd\');"');
818 $this->tpl->setContent($table->getHTML());
828 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'),
true);
829 $this->
ctrl->returnToParent($this);
843 foreach ($sources as $source_ref_id) {
848 foreach ($this->
getTargets() as $target_ref_id) {
849 if (!$this->rbacsystem->checkAccess(
'create', $target_ref_id, $source_type)) {
851 'Permission denied for target_id: ' .
857 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'permission_denied'),
true);
858 $this->
ctrl->returnToParent($this);
863 if (!$this->
access->checkAccess(
'copy',
'', $source_ref_id)) {
864 $this->log->notice(
'Permission denied for source_ref_id: ' . $source_ref_id .
' COPY');
865 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'permission_denied'),
true);
866 $this->
ctrl->returnToParent($this);
870 if ($this->obj_definition->isContainer($source_type) and $this->
getSubMode() != self::SUBMODE_CONTENT_ONLY) {
871 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'cntr_container_only_on_their_own'),
true);
872 $this->
ctrl->returnToParent($this);
883 foreach ($sources as $source_ref_id) {
887 foreach ($this->
getTargets() as $target_ref_id) {
891 $wizard_options->saveOwner($this->
user->getId());
892 $wizard_options->saveRoot((
int) $source_ref_id);
893 $wizard_options->read();
896 $new_obj = $orig->cloneObject($target_ref_id, $copy_id);
899 $wizard_options->deleteAll();
900 $this->parent_obj->callCreationCallback(
902 $this->obj_definition,
903 $this->retriever->getMaybeInt(
'crtcb', 0)
908 $rbac_log_roles = $this->rbacreview->getParentRoleIds($new_obj->getRefId());
915 $this->clipboard->clear();
916 $this->log->info(
'Object copy completed.');
917 if (count($sources) == 1) {
918 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"object_duplicated"),
true);
919 $ref_id = $new_obj->getRefId();
921 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"objects_duplicated"),
true);
925 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"objects_duplicated"),
true);
931 $this->log->debug(
'Copy container to targets: ' . print_r($_REQUEST,
true));
932 $this->log->debug(
'Source(s): ' . print_r($this->
getSources(),
true));
933 $this->log->debug(
'Target(s): ' . print_r($this->
getTargets(),
true));
940 foreach ($this->
getTargets() as $target_ref_id) {
944 $this->clipboard->clear();
947 $this->log->info(
'Object copy completed.');
948 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"object_duplicated"),
true);
949 if ($this->
getSubMode() == self::SUBMODE_CONTENT_ONLY) {
950 $this->
ctrl->returnToParent($this);
952 $link = ilLink::_getLink($result[
'ref_id']);
953 $this->
ctrl->redirectToURL($link);
955 $this->log->debug(
'Object copy in progress.');
962 return $this->post_wrapper->has(
'copy_page')
963 && $this->post_wrapper->retrieve(
'copy_page', $this->
refinery->kindlyTo()->bool());
972 $source_object->getId()
975 $orig_page->
copy($target_object->getId(),
"cont", $target_object->getId());
979 if ($style_id <= 0) {
987 $new_id = $style_obj->ilClone();
990 $reuse = $this->container_repo->readReuse($source_object->getRefId());
991 $this->container_repo->updateReuse($target_object->getRefId(), $reuse);
997 if ($this->request_wrapper->has(
'ref_id')) {
998 $ref_id = $this->request_wrapper->retrieve(
1004 $this->
tabs->setBackTarget(
1005 $this->
lng->txt(
'tab_back_to_repository'),
1006 (string) $this->
ctrl->getParentReturn($this->parent_obj)
1014 $progress->setObjectInfo($this->targets_copy_id);
1017 $link = ilLink::_getLink(
$ref_id);
1018 $progress->setRedirectionUrl($link);
1020 $this->tpl->setContent($progress->getHTML());
1026 $json->percentage =
null;
1027 $json->performed_steps =
null;
1029 $copy_id = $this->retriever->getMaybeInt(
'_copy_id');
1031 $node = $options->fetchFirstNode();
1032 $json->current_node_id = 0;
1033 $json->current_node_title =
"";
1034 $json->in_dependencies =
false;
1035 if (is_array($node)) {
1036 $json->current_node_id = $node[
'obj_id'];
1037 $json->current_node_title = $node[
'title'];
1039 $node = $options->fetchFirstDependenciesNode();
1040 if (is_array($node)) {
1041 $json->current_node_id = $node[
'obj_id'];
1042 $json->current_node_title = $node[
'title'];
1043 $json->in_dependencies =
true;
1046 $json->required_steps = $options->getRequiredSteps();
1047 $json->id = $copy_id;
1049 $this->log->debug(
'Update copy progress: ' . json_encode($json));
1051 echo json_encode($json);
1057 if ($this->
getSubMode() != self::SUBMODE_CONTENT_ONLY) {
1058 if (!$this->rbacsystem->checkAccess(
'create', $target_ref_id, $this->getType())) {
1060 'Permission denied for target: ' .
1066 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'permission_denied'),
true);
1067 $this->
ctrl->returnToParent($this);
1072 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'),
true);
1073 $this->
ctrl->returnToParent($this);
1077 if ($this->post_wrapper->has(
"cp_options")) {
1078 $options = $this->post_wrapper->retrieve(
1080 $this->
refinery->kindlyTo()->dictOf(
1086 $this->log->debug(
'Copy container (sources): ' . print_r($this->
getSources(),
true));
1089 $result = $orig->cloneAllObject(
1100 $this->targets_copy_id[$target_ref_id] = $result[
'copy_id'];
1102 $new_ref_id = (
int) $result[
'ref_id'];
1103 if ($new_ref_id > 0) {
1105 if ($new_obj instanceof
ilObject) {
1106 $this->parent_obj->callCreationCallback(
1108 $this->obj_definition,
1109 $this->retriever->getMaybeInt(
'crtcb', 0)
1128 $this->tpl->setVariable($tpl_var, $this->
form->getHTML());
1138 $this->
form->setTableWidth(
'600px');
1139 $this->
ctrl->setParameter($this,
'new_type', $this->
getType());
1140 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
1141 $this->
form->setTitle($this->
lng->txt($this->getType() .
'_copy'));
1142 $this->
form->addCommandButton(
'searchSource', $this->
lng->txt(
'search_for'));
1143 $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
1147 $tit->setMaxLength(70);
1148 $tit->setRequired(
true);
1149 $tit->setInfo($this->
lng->txt(
'wizard_title_info'));
1150 $this->
form->addItem($tit);
GUI class for the workflow of copying objects.
ContainerDBRepository $container_repo
static get(string $a_var)
RequestWrapper $request_wrapper
getOnLoadCode(string $cmd)
adoptContent()
Adopt content (crs in crs, grp in grp, crs in grp or grp in crs)
static getLogger(string $a_component_id)
Get component logger.
buildCopyPageSelectionForm()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Presentation of search results.
showSourceSearch(?string $tpl_var)
Show init screen Normally shown below the create and import form when creating a new object...
GUI class for the workflow of copying objects.
initTargetSelection()
Init copy from repository/search list commands.
ilObjectDefinition $obj_definition
This repo stores infos on repository objects that are using booking managers as a service (resource m...
saveSourceMembership()
Save selected source from membership screen.
setTabs(int $tab_group, int $active_tab)
const TAB_SELECTION_TARGET_TREE
ilPasteIntoMultipleItemsExplorer Explorer
const TAB_GROUP_SC_SELECTION
withOnLoadCode(Closure $binder)
static _lookupObjId(int $ref_id)
static writeOwner($obj_id, $style_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static gatherFaPa(int $ref_id, array $role_ids, bool $add_action=false)
showItemSelection(bool $copy_page=false)
getParentObject()
Get parent gui object.
Table gui for copy progress.
executeNextStepAfterSourceSelection()
setReturnByClass(string $a_class, ?string $a_cmd=null)
static _lookupTitle(int $obj_id)
ilGlobalTemplateInterface $tpl
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.
Class ilObjectGUI Basic methods of all Output classes.
ImplementsCreationCallback $parent_obj
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
static _isFinished(int $a_copy_id)
static _lookupStandard(int $a_id)
Lookup standard flag.
unsetSession()
Unset session variables.
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
isCopyingParentPageNeeded()
static _allocateCopyId()
Allocate a copy for further entries.
copySingleObject()
Start cloning a single (not container) object.
Manages items in repository clipboard.
Base class for all sub item list gui's.
const TAB_SELECTION_MEMBERSHIP
static redirect(string $a_script)
static getClassByType(string $obj_type)
showTargetSelectionTree()
showSourceSelectionTree()
ilObjectRequestRetriever $retriever
static add(int $action, int $ref_id, array $diff, bool $source_ref_id=false)
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
form( $class_path, string $cmd, string $submit_caption="")
static writeStyleUsage(int $a_obj_id, int $a_style_id)
Write style usage.
ilObjectDataCache $obj_data_cache
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(Container $dic, ilPlugin $plugin)
ClipboardManager $clipboard
copyMultipleNonContainer(array $sources)
Copy multiple non container.
getErrorMessageOnDisallowedObjectTypeForTarget(int $ref_id)
static lookupObjectStyle(int $a_obj_id)
Lookup object style.
setSource(array $source_ids)
const TAB_SELECTION_SOURCE_TREE
copyContainer(int $target_ref_id)
static _getInstance(int $a_copy_id)
copy(int $a_id, string $a_parent_type="", int $a_new_parent_id=0, bool $a_clone_mobs=false, int $obj_copy_id=0, bool $overwrite_existing=true)
Copy page.
ArrayBasedRequestWrapper $post_wrapper
returnToParent(object $a_gui_obj, ?string $a_anchor=null)
static _getMembershipByType(int $a_usr_id, array $a_type, bool $a_only_member_role=false)
get membership by type Get course or group membership
static _lookupType(int $id, bool $reference=false)
showSourceSelectionMembership()
show target selection membership
static clear(string $a_var)
const SUBMODE_CONTENT_ONLY
static set(string $a_var, $a_val)
Set a value.
ServerRequestInterface $request
setTargets(array $targets)
Class ArrayBasedRequestWrapper.