ILIAS  trunk Revision v12.0_alpha-1227-g7ff6d300864
class.ilObjPortfolio.php
Go to the documentation of this file.
1<?php
2
24{
25 protected function initType(): void
26 {
27 $this->type = "prtf";
28 }
29
30
31 protected function deleteAllPages(): void
32 {
33 // delete pages
34 $pages = ilPortfolioPage::getAllPortfolioPages($this->id);
35 foreach ($pages as $page) {
36 try {
37 $page_obj = new ilPortfolioPage($page["id"]);
38 $page_obj->setPortfolioId($this->id);
39 $page_obj->delete();
40 } catch (Exception $e) {
41 }
42 }
43 }
44
45
46 //
47 // HELPER
48 //
49
50
55 public static function getPortfoliosOfUser(
56 int $a_user_id
57 ): array {
58 global $DIC;
59
60 $ilDB = $DIC->database();
61
62 $set = $ilDB->query("SELECT up.*,od.title,od.description" .
63 " FROM usr_portfolio up" .
64 " JOIN object_data od ON (up.id = od.obj_id)" .
65 " WHERE od.owner = " . $ilDB->quote($a_user_id, "integer") .
66 " AND od.type = " . $ilDB->quote("prtf", "text") .
67 " ORDER BY od.title");
68 $res = array();
69 while ($rec = $ilDB->fetchAssoc($set)) {
70 $rec["is_online"] = !ilObject::lookupOfflineStatus($rec["id"]);
71 $res[] = $rec;
72 }
73 return $res;
74 }
75
79 public static function getDefaultPortfolio(int $a_user_id): ?int
80 {
81 return null;
82 }
83
87 public static function deleteUserPortfolios(int $a_user_id): void
88 {
89 $all = self::getPortfoliosOfUser($a_user_id);
90 if ($all) {
91 $access_handler = new ilPortfolioAccessHandler();
92
93 foreach ($all as $item) {
94 $access_handler->removePermission($item["id"]);
95
96 $portfolio = new self($item["id"], false);
97 $portfolio->delete();
98 }
99 }
100 }
101
103 array $a_owner_ids
104 ): array {
105 $res = array();
106
107 $access_handler = new ilPortfolioAccessHandler();
108
109 foreach ($access_handler->getShardObjectsDataForUserIds($a_owner_ids) as $owner_id => $items) {
110 foreach ($items as $id => $title) {
111 $url = ilLink::_getLink($id, 'prtf');
112 $res[$owner_id][$url] = $title;
113 }
114 }
115
116 return $res;
117 }
118
122 public function isCommentsExportPossible(): bool
123 {
124 $setting = $this->setting;
126 if ($setting->get("disable_comments")) {
127 return false;
128 }
129 if (!$this->notes->domain()->commentsActive($this->id)) {
130 return false;
131 }
132 if (!$privacy->enabledCommentsExport()) {
133 return false;
134 }
135 return true;
136 }
137
138 public static function getAdvMDSubItemTitle(int $a_obj_id, string $a_sub_type, int $a_sub_id): string
139 {
140 return \ilPortfolioPage::lookupTitle($a_sub_id);
141 }
142}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getPortfoliosOfUser(int $a_user_id)
Get portfolios of user.
isCommentsExportPossible()
Is export possible.
static deleteUserPortfolios(int $a_user_id)
Delete all portfolio data for user.
static getDefaultPortfolio(int $a_user_id)
static getAdvMDSubItemTitle(int $a_obj_id, string $a_sub_type, int $a_sub_id)
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids)
static lookupOfflineStatus(int $obj_id)
Lookup offline status using objectDataCache.
Access handler for portfolio NOTE: This file needs to stay in the classes directory,...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getAllPortfolioPages(int $a_portfolio_id)
Get pages of portfolio.
Interface for repository objects to use adv md with subitems.
$res
Definition: ltiservices.php:69
global $DIC
Definition: shib_login.php:26
$url
Definition: shib_logout.php:70