36 int $a_parent_obj_id = null,
37 int $a_restrict_badge_id = 0
41 $this->
ctrl = $DIC->ctrl();
42 $this->
lng = $DIC->language();
43 $this->tree = $DIC->repositoryTree();
44 $ilCtrl = $DIC->ctrl();
45 $lng = $DIC->language();
47 $this->
setId(
"bdgusr");
48 $this->award_badge = $a_award_bagde;
49 $this->do_parent =
false;
52 if (in_array($parent_type, array(
"grp",
"crs"))) {
60 if ($this->award_badge) {
61 $this->
setTitle(
$lng->
txt(
"badge_award_badge") .
": " . $a_award_bagde->getTitle());
71 if ($a_parent_obj_id) {
79 if ($a_restrict_badge_id) {
80 $badge =
new ilBadge($a_restrict_badge_id);
81 $title .=
" - " . $badge->getTitle();
94 if ($this->do_parent) {
108 $this->
getItems($a_parent_ref_id, $this->award_badge, $a_parent_obj_id, $a_restrict_badge_id);
120 int $a_parent_ref_id,
122 int $a_parent_obj_id = null,
123 int $a_restrict_badge_id = null
130 if (!$a_parent_obj_id) {
135 if ($a_parent_ref_id) {
139 $obj_ids = array($a_parent_obj_id);
142 if ($this->do_parent) {
144 $obj_ids[] = $node[
"obj_id"];
148 $badges = $assignments = array();
149 foreach ($obj_ids as $obj_id) {
151 $badges[$badge->getId()] = $badge;
155 if ($a_restrict_badge_id &&
156 $a_restrict_badge_id !== $ass->getBadgeId()) {
161 if ($this->award_badge &&
162 $ass->getBadgeId() !== $this->award_badge->getId()) {
166 $assignments[$ass->getUserId()][] = $ass;
172 $user_ids = array_keys($assignments);
175 $tmp[
"set"] = array();
176 if (count($user_ids) > 0) {
178 $uquery->setLimit(9999);
179 $uquery->setUserFilter($user_ids);
181 if ($this->
filter[
"name"]) {
182 $uquery->setTextFilter($this->
filter[
"name"]);
185 $tmp = $uquery->query();
187 foreach ($tmp[
"set"] as $user) {
189 if (array_key_exists($user[
"usr_id"], $assignments)) {
190 foreach ($assignments[$user[
"usr_id"]] as $user_ass) {
191 $idx = $user_ass->getBadgeId() .
"-" . $user[
"usr_id"];
193 $badge = $badges[$user_ass->getBadgeId()];
195 if ($this->do_parent) {
196 $parent = $badge->getParentMeta();
200 "user_id" => $user[
"usr_id"],
201 "name" => $user[
"lastname"] .
", " . $user[
"firstname"],
202 "login" => $user[
"login"],
204 "title" => $badge->getTitle(),
205 "issued" => $user_ass->getTimestamp(),
206 "parent_id" => $parent[
"id"] ?? 0,
207 "parent_meta" => $parent
212 elseif ($this->award_badge) {
213 $idx =
"0-" . $user[
"usr_id"];
216 "user_id" => $user[
"usr_id"],
217 "name" => $user[
"lastname"] .
", " . $user[
"firstname"],
218 "login" => $user[
"login"],
230 protected function fillRow(array $a_set): void
234 if ($this->award_badge) {
235 $this->tpl->setVariable(
"VAL_ID", $a_set[
"user_id"]);
238 $this->tpl->setVariable(
"TXT_NAME", $a_set[
"name"]);
239 $this->tpl->setVariable(
"TXT_LOGIN", $a_set[
"login"]);
240 $this->tpl->setVariable(
"TXT_TYPE", $a_set[
"type"]);
241 $this->tpl->setVariable(
"TXT_TITLE", $a_set[
"title"]);
242 $this->tpl->setVariable(
"TXT_ISSUED", $a_set[
"issued"]
246 if ($a_set[
"parent_id"]) {
247 $parent = $a_set[
"parent_meta"];
248 $this->tpl->setVariable(
"PARENT", $parent[
"title"]);
249 $this->tpl->setVariable(
"PARENT_TYPE",
$lng->
txt(
"obj_" . $parent[
"type"]));
250 $this->tpl->setVariable(
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="")
__construct(Container $dic, ilPlugin $plugin)
setLimit(int $a_limit=0, int $a_default_limit=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)
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)
__construct(object $a_parent_obj, string $a_parent_cmd, int $a_parent_ref_id, ilBadge $a_award_bagde=null, int $a_parent_obj_id=null, int $a_restrict_badge_id=0)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...