36 protected ?\
ilBadge $award_badge = null,
37 int $a_parent_obj_id = null,
38 int $a_restrict_badge_id = 0
42 $this->
ctrl = $DIC->ctrl();
43 $this->
lng = $DIC->language();
44 $this->tree = $DIC->repositoryTree();
45 $ilCtrl = $DIC->ctrl();
46 $lng = $DIC->language();
47 $this->ui_factory = $DIC->ui()->factory();
48 $this->ui_renderer = $DIC->ui()->renderer();
50 $this->
setId(
"bdgusr");
51 $this->do_parent =
false;
54 if (in_array($parent_type, array(
"grp",
"crs"))) {
55 $this->do_parent = (!$a_parent_obj_id && !$this->award_badge);
62 if ($this->award_badge) {
63 $this->
setTitle(
$lng->
txt(
"badge_award_badge") .
": " . $award_badge->getTitle());
73 if ($a_parent_obj_id) {
81 if ($a_restrict_badge_id) {
82 $badge =
new ilBadge($a_restrict_badge_id);
83 $title .=
" - " . $badge->getTitle();
96 if ($this->do_parent) {
110 $this->
getItems($a_parent_ref_id, $this->award_badge, $a_parent_obj_id, $a_restrict_badge_id);
118 $this->
filter[
"name"] = $name->getValue();
122 int $a_parent_ref_id,
124 int $a_parent_obj_id = null,
125 int $a_restrict_badge_id = null
132 if (!$a_parent_obj_id) {
137 if ($a_parent_ref_id) {
141 $obj_ids = array($a_parent_obj_id);
144 if ($this->do_parent) {
146 $obj_ids[] = $node[
"obj_id"];
150 $badges = $assignments = array();
151 foreach ($obj_ids as $obj_id) {
153 $badges[$badge->getId()] = $badge;
157 if ($a_restrict_badge_id &&
158 $a_restrict_badge_id !== $ass->getBadgeId()) {
163 if ($this->award_badge &&
164 $ass->getBadgeId() !== $this->award_badge->getId()) {
168 $assignments[$ass->getUserId()][] = $ass;
174 $user_ids = array_keys($assignments);
177 $tmp[
"set"] = array();
178 if (count($user_ids) > 0) {
180 $uquery->setLimit(9999);
181 $uquery->setUserFilter($user_ids);
183 if ($this->
filter[
"name"]) {
184 $uquery->setTextFilter($this->
filter[
"name"]);
187 $tmp = $uquery->query();
189 foreach ($tmp[
"set"] as $user) {
191 if (array_key_exists($user[
"usr_id"], $assignments)) {
192 foreach ($assignments[$user[
"usr_id"]] as $user_ass) {
193 $idx = $user_ass->getBadgeId() .
"-" . $user[
"usr_id"];
195 $badge = $badges[$user_ass->getBadgeId()];
197 if ($this->do_parent) {
198 $parent = $badge->getParentMeta();
202 "user_id" => $user[
"usr_id"],
203 "name" => $user[
"lastname"] .
", " . $user[
"firstname"],
204 "login" => $user[
"login"],
206 "title" => $badge->getTitle(),
207 "issued" => $user_ass->getTimestamp(),
208 "parent_id" => $parent[
"id"] ?? 0,
209 "parent_meta" => $parent
214 elseif ($this->award_badge) {
215 $idx =
"0-" . $user[
"usr_id"];
218 "user_id" => $user[
"usr_id"],
219 "name" => $user[
"lastname"] .
", " . $user[
"firstname"],
220 "login" => $user[
"login"],
232 protected function fillRow(array $a_set): void
236 if ($this->award_badge) {
237 $this->tpl->setVariable(
'VAL_ID', $a_set[
'user_id']);
240 $this->tpl->setVariable(
'TXT_NAME', $a_set[
'name']);
241 $this->tpl->setVariable(
'TXT_LOGIN', $a_set[
'login']);
242 $this->tpl->setVariable(
'TXT_TYPE', $a_set[
'type']);
243 $this->tpl->setVariable(
'TXT_TITLE', $a_set[
'title']);
244 $this->tpl->setVariable(
'TXT_ISSUED', $a_set[
'issued']
248 if ($a_set[
'parent_id']) {
249 $parent = $a_set[
'parent_meta'];
250 $this->tpl->setVariable(
'PARENT_TITLE', $parent[
'title']);
252 $icon = $this->ui_factory->symbol()->icon()->custom(
254 $lng->
txt(
'obj_' . $parent[
'type'])
257 $this->tpl->setVariable(
259 $this->ui_renderer->render(
$icon)
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
setFormAction(string $a_form_action, bool $a_multipart=false)
setResetCommand(string $a_val, string $a_caption="")
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
setDescription(string $a_val)
getItems(int $a_parent_ref_id, ilBadge $a_award_bagde=null, int $a_parent_obj_id=null, int $a_restrict_badge_id=null)
static _lookupObjId(int $ref_id)
addFilterItemByMetaType(string $id, int $type=self::FILTER_TEXT, bool $a_optional=false, string $caption="")
Add filter by standard type.
static _lookupTitle(int $obj_id)
static getExtendedTypeCaption(ilBadgeType $a_type)
setDefaultOrderField(string $a_defaultorderfield)
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
setFilterCommand(string $a_val, string $a_caption="")
static getInstancesByParentId(int $a_parent_id, array $a_filter=null)
static getInstancesByParentId(int $a_parent_obj_id)
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
ILIAS UI Factory $ui_factory
ILIAS UI Renderer $ui_renderer
setLimit(int $a_limit=0, int $a_default_limit=0)
__construct(object $a_parent_obj, string $a_parent_cmd, int $a_parent_ref_id, protected ?\ilBadge $award_badge=null, int $a_parent_obj_id=null, int $a_restrict_badge_id=0)
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
static get(int $a_object_id)
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
getSubTree(array $a_node, bool $a_with_data=true, array $a_type=[])
get all nodes in the subtree under specified node
static _lookupType(int $id, bool $reference=false)
addMultiCommand(string $a_cmd, string $a_text)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...