ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
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 $res[] = $rec;
71 }
72 return $res;
73 }
74
78 public static function getDefaultPortfolio(int $a_user_id): ?int
79 {
80 return null;
81 }
82
86 public static function deleteUserPortfolios(int $a_user_id): void
87 {
88 $all = self::getPortfoliosOfUser($a_user_id);
89 if ($all) {
90 $access_handler = new ilPortfolioAccessHandler();
91
92 foreach ($all as $item) {
93 $access_handler->removePermission($item["id"]);
94
95 $portfolio = new self($item["id"], false);
96 $portfolio->delete();
97 }
98 }
99 }
100
102 array $a_owner_ids
103 ): array {
104 $res = array();
105
106 $access_handler = new ilPortfolioAccessHandler();
107
108 foreach ($access_handler->getShardObjectsDataForUserIds($a_owner_ids) as $owner_id => $items) {
109 foreach ($items as $id => $title) {
110 $url = ilLink::_getLink($id, 'prtf');
111 $res[$owner_id][$url] = $title;
112 }
113 }
114
115 return $res;
116 }
117
121 public function isCommentsExportPossible(): bool
122 {
123 $setting = $this->setting;
125 if ($setting->get("disable_comments")) {
126 return false;
127 }
128 if (!$this->notes->domain()->commentsActive($this->id)) {
129 return false;
130 }
131 if (!$privacy->enabledCommentsExport()) {
132 return false;
133 }
134 return true;
135 }
136
137 public static function getAdvMDSubItemTitle(int $a_obj_id, string $a_sub_type, int $a_sub_id): string
138 {
139 return \ilPortfolioPage::lookupTitle($a_sub_id);
140 }
141}
$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)
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:68