5 include_once(
"Services/Block/classes/class.ilBlockGUI.php");
6 include_once
'./Services/PersonalDesktop/interfaces/interface.ilDesktopItemHandling.php';
7 require_once(
'./Services/Repository/classes/class.ilObjectPlugin.php');
65 $this->rbacsystem = $DIC->rbac()->system();
67 $this->obj_definition = $DIC[
"objDefinition"];
68 $this->access = $DIC->access();
70 parent::__construct();
72 $this->lng = $DIC->language();
73 $this->ctrl = $DIC->ctrl();
74 $this->
user = $DIC->user();
76 $this->lng->loadLanguageModule(
'pd');
77 $this->lng->loadLanguageModule(
'cntr');
82 $this->allow_moving =
false;
92 require_once
'Services/PersonalDesktop/ItemsBlock/classes/class.ilPDSelectedItemsBlockViewSettings.php';
94 $this->viewSettings->parse();
96 require_once
'Services/PersonalDesktop/ItemsBlock/classes/class.ilPDSelectedItemsBlockViewGUI.php';
99 $_GET[
'view'] = $this->viewSettings->getCurrentView();
100 $this->ctrl->saveParameter($this,
'view');
125 parent::fillDetailRow();
134 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
137 $this->ctrl->setParameterByClass(
'ilpersonaldesktopgui',
'view', $this->viewSettings->getCurrentView());
138 $this->ctrl->redirectByClass(
'ilpersonaldesktopgui',
'show');
146 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
149 $this->ctrl->setParameterByClass(
'ilpersonaldesktopgui',
'view', $this->viewSettings->getCurrentView());
150 $this->ctrl->redirectByClass(
'ilpersonaldesktopgui',
'show');
158 return self::$block_type;
167 if ($cmd ==
'post') {
169 $cmd = array_shift(array_keys($cmd));
173 case 'confirmRemove':
197 $DIC->database()->useSlave(
true);
202 require_once
'Services/Object/classes/class.ilObjectListGUI.php';
203 ilObjectListGUI::prepareJSLinks(
205 $this->ctrl->getLinkTargetByClass(
array(
'ilcommonactiondispatchergui',
'ilnotegui'),
'',
'',
true,
false),
206 $this->ctrl->getLinkTargetByClass(
array(
'ilcommonactiondispatchergui',
'iltagginggui'),
'',
'',
true,
false)
210 $this->
setTitle($this->view->getTitle());
218 $this->ctrl->clearParameters($this);
220 $DIC->database()->useSlave(
false);
222 return parent::getHTML();
230 if ($this->viewSettings->isStudyProgrammeViewActive()) {
234 return parent::getFooterLinks();
242 $next_class = $this->ctrl->getNextClass();
243 $cmd = $this->ctrl->getCmd(
'getHTML');
245 switch ($next_class) {
246 case 'ilcommonactiondispatchergui':
247 include_once(
'Services/Object/classes/class.ilCommonActionDispatcherGUI.php');
249 $this->ctrl->forwardCommand($gui);
253 if (method_exists($this, $cmd)) {
254 return $this->$cmd();
256 return $this->{$cmd .
'Object'}();
285 $this->tpl->setVariable(
'BLOCK_ROW', $this->
getContent());
297 $this->tpl->setVariable(
'FCOLSPAN', $this->
getColSpan());
298 if ($this->tpl->blockExists(
'block_footer')) {
299 $this->tpl->setCurrentBlock(
'block_footer');
300 $this->tpl->parseCurrentBlock();
319 $this->lng->txt(
"pd_sort_by_type"),
320 $this->ctrl->getLinkTarget($this,
"orderPDItemsByType"),
321 $this->ctrl->getLinkTarget($this,
"orderPDItemsByType",
"",
true),
325 $this->viewSettings->isSortedByType()
329 $this->lng->txt(
"pd_sort_by_location"),
330 $this->ctrl->getLinkTarget($this,
"orderPDItemsByLocation"),
331 $this->ctrl->getLinkTarget($this,
"orderPDItemsByLocation",
"",
true),
335 $this->viewSettings->isSortedByLocation()
338 if ($this->viewSettings->isMembershipsViewActive()) {
340 $this->lng->txt(
"pd_sort_by_start_date"),
341 $this->ctrl->getLinkTarget($this,
"orderPDItemsByStartDate"),
342 $this->ctrl->getLinkTarget($this,
"orderPDItemsByStartDate",
"",
true),
346 $this->viewSettings->isSortedByStartDate()
351 $this->viewSettings->isSelectedItemsViewActive() ?
352 $this->lng->txt(
"pd_remove_multiple") :
353 $this->lng->txt(
"pd_unsubscribe_multiple_memberships"),
354 $this->ctrl->getLinkTarget($this,
"manage"),
366 protected function renderGroupedItems(
ilTemplate $tpl,
array $grouped_items, $show_header =
false)
371 if (0 == count($grouped_items)) {
377 require_once
'Services/Object/classes/class.ilObjectActivation.php';
378 require_once
'Services/PersonalDesktop/ItemsBlock/classes/class.ilPDSelectedItemsBlockListGUIFactory.php';
381 foreach ($grouped_items as $group) {
382 $item_html =
array();
384 foreach ($group->getItems() as $item) {
386 $item_list_gui = $list_factory->byType($item[
'type']);
391 if ($this->view->mayRemoveItem((
int) $item[
'ref_id'])) {
392 $item_list_gui->enableCheckbox(
true);
394 $item_list_gui->enableCheckbox(
false);
398 $html = $item_list_gui->getListItemHTML($item[
'ref_id'], $item[
'obj_id'], $item[
'title'], $item[
'description']);
400 $item_html[] =
array(
402 'item_ref_id' => $item[
'ref_id'],
403 'item_obj_id' => $item[
'obj_id'],
404 'parent_ref' => $item[
'parent_ref'],
405 'type' => $item[
'type'],
406 'item_icon_image_type' => $item_list_gui->getIconImageType()
414 if (0 == count($item_html)) {
423 foreach ($item_html as $item) {
427 $item[
'item_ref_id'],
428 $item[
'item_obj_id'],
429 $item[
'item_icon_image_type'],
430 'th_' . md5($group->getLabel())
446 $this->renderGroupedItems(
448 $this->view->getItemGroups(),
452 if ($this->manage && $this->view->supportsSelectAll()) {
455 $tpl->
setVariable(
'CHECKBOXNAME',
'ilToolbarSelectAll');
458 $tpl->
setVariable(
'TXT_SELECT_ALL', $this->lng->txt(
'select_all'));
467 $this->cur_row_type =
"";
478 $tpl =
new ilTemplate(
"tpl.pd_list_block.html",
true,
true,
"Services/PersonalDesktop");
479 $this->cur_row_type =
"";
519 $a_related_header =
"" 523 $this->cur_row_type = ($this->cur_row_type ==
"row_type_1")
526 $a_tpl->touchBlock($this->cur_row_type);
528 if ($a_image_type !=
"") {
529 if (!is_array($a_image_type) && !in_array($a_image_type,
array(
"lm",
"htlm",
"sahs"))) {
531 $title = $this->lng->txt(
"obj_" . $a_image_type);
534 $title = $this->lng->txt(
"learning_resource");
539 in_array($a_image_type,
array(
"cat",
"grp",
"crs"))) {
540 require_once(
"./Services/Container/classes/class.ilContainer.php");
546 $a_tpl->setCurrentBlock(
"block_row_image");
547 $a_tpl->setVariable(
"ROW_IMG", $icon);
548 $a_tpl->setVariable(
"ROW_ALT",
$title);
549 $a_tpl->parseCurrentBlock();
551 $a_tpl->setVariable(
"ROW_NBSP",
" ");
553 $a_tpl->setCurrentBlock(
"container_standard_row");
554 $a_tpl->setVariable(
"BLOCK_ROW_CONTENT", $a_html);
555 $rel_headers = ($a_related_header !=
"")
556 ?
"th_selected_items " . $a_related_header
557 :
"th_selected_items";
558 $a_tpl->setVariable(
"BLOCK_ROW_HEADERS", $rel_headers);
559 $a_tpl->parseCurrentBlock();
560 $a_tpl->touchBlock(
"container_row");
568 $this->
user->writePref(
'pd_order_items', $sort_type);
571 if ($this->ctrl->isAsynch()) {
576 $this->ctrl->setParameterByClass(
'ilpersonaldesktopgui',
'view', $this->viewSettings->getCurrentView());
577 $this->ctrl->redirectByClass(
'ilpersonaldesktopgui',
'show');
585 $this->
changeSortMode($this->viewSettings->getSortByLocationMode());
601 $this->
changeSortMode($this->viewSettings->getSortByStartDateMode());
609 $this->manage =
true;
613 $top_tb->setFormAction(
$ilCtrl->getFormAction($this));
617 if ($this->viewSettings->isSelectedItemsViewActive()) {
618 $button->setCaption(
"remove");
620 $button->setCaption(
"pd_unsubscribe_memberships");
622 $button->setCommand(
"confirmRemove");
623 $top_tb->addStickyItem($button);
626 $button2->setCaption(
"cancel");
627 $button2->setCommand(
"getHTML");
628 $top_tb->addStickyItem($button2);
630 $top_tb->setCloseFormTag(
false);
634 $bot_tb->addStickyItem($button);
635 $bot_tb->addStickyItem($button2);
636 $bot_tb->setOpenFormTag(
false);
637 return $top_tb->getHTML() . $this->
getHTML() . $bot_tb->getHTML();
644 $ilCtrl->setParameter($this,
'view', $this->viewSettings->getCurrentView());
645 if (!
sizeof(
$_POST[
"id"])) {
647 $ilCtrl->redirect($this,
"manage");
650 if ($this->viewSettings->isSelectedItemsViewActive()) {
651 $question = $this->lng->txt(
"pd_info_delete_sure_remove");
652 $cmd =
"confirmedRemove";
654 $question = $this->lng->txt(
"pd_info_delete_sure_unsubscribe");
655 $cmd =
"confirmedUnsubscribe";
658 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
660 $cgui->setHeaderText($question);
662 $cgui->setFormAction(
$ilCtrl->getFormAction($this));
663 $cgui->setCancel($this->lng->txt(
"cancel"),
"manage");
664 $cgui->setConfirm($this->lng->txt(
"confirm"), $cmd);
666 foreach (
$_POST[
"id"] as $ref_id) {
676 $this->lng->txt(
"icon") .
" " . $this->lng->txt(
"obj_" .
$type)
680 return $cgui->getHTML();
688 if (!
sizeof(
$_POST[
"ref_id"])) {
689 $ilCtrl->redirect($this,
"manage");
692 foreach (
$_POST[
"ref_id"] as $ref_id) {
699 $ilCtrl->setParameterByClass(
'ilpersonaldesktopgui',
'view', $this->viewSettings->getCurrentView());
700 $ilCtrl->redirectByClass(
"ilpersonaldesktopgui",
"show");
709 if (!
sizeof(
$_POST[
"ref_id"])) {
710 $ilCtrl->redirect($this,
"manage");
713 foreach (
$_POST[
"ref_id"] as $ref_id) {
714 if ($ilAccess->checkAccess(
"leave",
"", $ref_id)) {
718 include_once
"Modules/Course/classes/class.ilCourseParticipants.php";
720 $members->delete(
$ilUser->getId());
722 $members->sendUnsubscribeNotificationToAdmins(
$ilUser->getId());
723 $members->sendNotification(
724 $members->NOTIFY_UNSUBSCRIBE,
731 include_once
"Modules/Group/classes/class.ilGroupParticipants.php";
733 $members->delete(
$ilUser->getId());
735 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
736 $members->sendNotification(
740 $members->sendNotification(
751 include_once
'./Modules/Forum/classes/class.ilForumNotification.php';
758 $ilCtrl->setParameterByClass(
'ilpersonaldesktopgui',
'view', $this->viewSettings->getCurrentView());
759 $ilCtrl->redirectByClass(
"ilpersonaldesktopgui",
"show");
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
removeFromDeskObject()
Remove from desktop public.
const TYPE_NOTIFICATION_UNSUBSCRIBE
__construct()
ilPDSelectedItemsBlockGUI constructor.
newBlockTemplate()
returns a new list block template
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
Class ilPDSelectedItemsBlockGroup.
fillFooterLinks($a_top=false, $a_numinfo="")
Fill footer links.
static _lookupTitle($a_id)
lookup object title
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
Class ilPDSelectedItemsBlockListGUIFactory.
static addToDesktop()
Add desktop item public.
addStandardRow(&$a_tpl, $a_html, $a_item_ref_id="", $a_item_obj_id="", $a_image_type="", $a_related_header="")
adds a standard row to a block template
static _lookupObjectId($a_ref_id)
lookup object id
static _lookupIconPath($a_id, $a_size="big")
lookup icon path
orderPDItemsByLocation()
Sort desktop items by location.
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\+" &#(? foreach( $entity_files as $file) $output
setVariable($variable, $value='')
Sets a variable value.
addFooterLink( $a_text, $a_href="", $a_onclick="", $a_block_id="", $a_top=false, $a_omit_separator=false, $a_checked=false)
Add a footer text/link.
setTitle($a_title)
Set Title.
static bySettings(ilPDSelectedItemsBlockViewSettings $viewSettings)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Class ilPDSelectedItemsBlockViewSettings.
touchBlock($block)
overwrites ITX::touchBlock.
setData($a_data)
Set Data.
static _lookupObjId($a_id)
addToDeskObject()
Add desktop item public.
special template class to simplify handling of ITX/PEAR
setAvailableDetailLevels($a_max, $a_min=0)
Set Available Detail Levels.
orderPDItemsByType()
Sort desktop items by Type.
static _dropDesktopItem($a_usr_id, $a_item_id, $a_type)
drop an item from user's personal desktop
const TYPE_UNSUBSCRIBE_MEMBER
addSectionHeader(ilTemplate $a_tpl, ilPDSelectedItemsBlockGroup $group)
static addListGUIActivationProperty(ilObjectListGUI $a_list_gui, array &$a_item)
Get timing details for list gui.
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static checkForumsExistsDelete($ref_id, $user_id=0)
setCurrentBlock($part="DEFAULT")
Überladene Funktion, die sich hier lokal noch den aktuellen Block merkt.
get( $part="DEFAULT", $add_error_mess=false, $handle_referer=false, $add_ilias_footer=false, $add_standard_elements=false, $a_main_menu=true, $a_tabs=true)
??? public
orderPDItemsByStartDate()
Sort desktop items by start date.
changeSortMode($sort_type)
static removeFromDesktop()
Remove item from personal desktop public.
setLimit($a_limit)
Set Limit.
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
BlockGUI class for Selected Items on Personal Desktop.
getColSpan()
Get Columns Span.
This class represents a block method of a block.
setEnableDetailRow($a_enabledetailrow)
Set EnableDetailRow.
parseCurrentBlock($part="DEFAULT")
Überladene Funktion, die auf den aktuelle Block vorher noch ein replace ausführt public...
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static isRepositoryObject()
getViewBlockHtml()
get selected item block
getCurrentDetailLevel()
Get Current Detail Level.
Confirmation screen class.