19declare(strict_types=1);
27use Psr\Http\Message\ServerRequestInterface;
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[
'user']->getLoggedInUser();
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'),
362 )->withOnLoadCode($this->
getOnLoadCode(
'keepObjectsInClipboard'));
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) {
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];
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;
568 $this->sources = $this->
refinery->kindlyTo()->listOf($this->
refinery->kindlyTo()->int())->transform(
580 if (count($this->sources)) {
581 return (
int) $this->sources[0];
594 $this->targets = $this->
refinery->kindlyTo()->listOf($this->
refinery->kindlyTo()->int())->transform(
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.');
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());
1025 $json =
new stdClass();
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(
1081 $this->refinery->kindlyTo()->dictOf($this->refinery->kindlyTo()->string())
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);
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Builds a Color from either hex- or rgb values.
Class ArrayBasedRequestWrapper.
Manages items in repository clipboard.
This repo stores infos on repository objects that are using booking managers as a service (resource m...
static _allocateCopyId()
Allocate a copy for further entries.
static _isFinished(int $a_copy_id)
static _getInstance(int $a_copy_id)
Class ilCtrl provides processing control methods.
setReturnByClass(string $a_class, ?string $a_cmd=null)
@inheritDoc
returnToParent(object $a_gui_obj, ?string $a_anchor=null)
@inheritDoc
Error Handling & global info handling.
static getLogger(string $a_component_id)
Get component logger.
Component logger with individual log levels by component id.
static _lookupStandard(int $a_id)
Lookup standard flag.
static writeStyleUsage(int $a_obj_id, int $a_style_id)
Write style usage.
static writeOwner($obj_id, $style_id)
static lookupObjectStyle(int $a_obj_id)
Lookup object style.
GUI class for the workflow of copying objects.
GUI class for the workflow of copying objects.
const TAB_SELECTION_MEMBERSHIP
unsetSession()
Unset session variables.
isCopyingParentPageNeeded()
ServerRequestInterface $request
copyMultipleNonContainer(array $sources)
Copy multiple non container.
executeNextStepAfterSourceSelection()
ContainerDBRepository $container_repo
setTabs(int $tab_group, int $active_tab)
ilObjectDefinition $obj_definition
initTargetSelection()
Init copy from repository/search list commands.
const TAB_SELECTION_SOURCE_TREE
ilObjectRequestRetriever $retriever
setSource(array $source_ids)
ilObjectDataCache $obj_data_cache
buildCopyPageSelectionForm()
getParentObject()
Get parent gui object.
const SUBMODE_CONTENT_ONLY
copySingleObject()
Start cloning a single (not container) object.
const TAB_GROUP_SC_SELECTION
showSourceSelectionTree()
ilGlobalTemplateInterface $tpl
saveSourceMembership()
Save selected source from membership screen.
ClipboardManager $clipboard
ImplementsCreationCallback $parent_obj
copyContainer(int $target_ref_id)
getErrorMessageOnDisallowedObjectTypeForTarget(int $ref_id)
getOnLoadCode(string $cmd)
ArrayBasedRequestWrapper $post_wrapper
showSourceSearch(?string $tpl_var)
Show init screen Normally shown below the create and import form when creating a new object.
adoptContent()
Adopt content (crs in crs, grp in grp, crs in grp or grp in crs)
showSourceSelectionMembership()
show target selection membership
showItemSelection(bool $copy_page=false)
showTargetSelectionTree()
setTargets(array $targets)
RequestWrapper $request_wrapper
const TAB_SELECTION_TARGET_TREE
Table gui for copy progress.
Presentation of search results.
parses the objects.xml it handles the xml-description of all ilias objects
static getClassByType(string $obj_type)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
Class ilObjectGUI Basic methods of all Output classes.
Base class for all sub item list gui's.
Class ilObject Basic functions for all objects.
static _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.
static _getMembershipByType(int $a_usr_id, array $a_type, bool $a_only_member_role=false)
get membership by type Get course or group membership
ilPasteIntoMultipleItemsExplorer Explorer
static add(int $action, int $ref_id, array $diff, bool $source_ref_id=false)
static gatherFaPa(int $ref_id, array $role_ids, bool $add_action=false)
class ilRbacReview Contains Review functions of core Rbac.
class ilRbacSystem system function like checkAccess, addActiveRole ... Supporting system functions ar...
Explorer for selecting repository items.
static get(string $a_var)
static clear(string $a_var)
static set(string $a_var, $a_val)
Set a value.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a text property in a property form.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
static redirect(string $a_script)
Interface RequestWrapper.
An entity that renders components to a string output.
Interface ilAccessHandler This interface combines all available interfaces which can be called via gl...
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
form( $class_path, string $cmd, string $submit_caption="")