63 public function __construct($a_parent_ref_id, $a_parent_obj_id = null, $a_parent_obj_type = null)
67 $this->lng = $DIC->language();
68 $this->ctrl = $DIC->ctrl();
69 $this->tabs = $DIC->tabs();
70 $this->access = $DIC->access();
71 $this->toolbar = $DIC->toolbar();
72 $this->tpl = $DIC[
"tpl"];
73 $this->
user = $DIC->user();
74 $lng = $DIC->language();
76 $this->parent_ref_id = $a_parent_ref_id;
77 $this->parent_obj_id = $a_parent_obj_id
80 $this->parent_obj_type = $a_parent_obj_type
88 $lng->loadLanguageModule(
"badge");
97 $next_class =
$ilCtrl->getNextClass($this);
98 $cmd =
$ilCtrl->getCmd(
"listBadges");
100 switch ($next_class) {
101 case "ilpropertyformgui":
103 if ((
int) $_REQUEST[
"bid"]) {
104 $badge =
new ilBadge((
int) $_REQUEST[
"bid"]);
105 $type = $badge->getTypeInstance();
111 $type_id = $_REQUEST[
"type"];
112 $ilCtrl->setParameter($this,
"type", $type_id);
114 $type = $handler->getTypeInstanceByUniqueId($type_id);
117 $ilCtrl->forwardCommand($form);
155 $lng->txt(
"obj_bdga"),
156 $ilCtrl->getLinkTarget($this,
"listBadges")
162 $ilCtrl->getLinkTarget($this,
"listUsers")
165 $ilTabs->activateSubTab($a_active);
171 return $ilAccess->checkAccess(
"write",
"", $this->parent_ref_id);
185 $valid_types = $handler->getAvailableTypesForObjType($this->parent_obj_type);
188 foreach ($valid_types as $id =>
$type) {
189 $options[$id] = ($this->parent_obj_type !=
"bdga")
191 :
$type->getCaption();
196 $drop->setOptions($options);
197 $ilToolbar->addInputItem($drop,
true);
199 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"addBadge"));
200 $ilToolbar->addFormButton(
$lng->txt(
"create"),
"addBadge");
205 if (is_array(
$_SESSION[self::CLIPBOARD_ID])) {
207 $ilToolbar->addSeparator();
212 $tt[] = $badge->getTitle();
217 implode(
"<br />", $tt),
224 $lng->loadLanguageModule(
"content");
225 $ilToolbar->addButton(
226 $lng->txt(
"cont_paste_from_clipboard") .
227 " (" .
sizeof($tt) .
")",
228 $ilCtrl->getLinkTarget($this,
"pasteBadges"),
234 $ilToolbar->addButton(
235 $lng->txt(
"clear_clipboard"),
236 $ilCtrl->getLinkTarget($this,
"clearClipboard")
242 $tpl->setContent($tbl->getHTML());
249 $tbl->writeFilterToSession();
271 $type_id = $_REQUEST[
"type"];
274 $ilCtrl->redirect($this,
"listBadges");
277 $ilCtrl->setParameter($this,
"type", $type_id);
280 $type = $handler->getTypeInstanceByUniqueId($type_id);
282 $ilCtrl->redirect($this,
"listBadges");
289 $tpl->setContent($a_form->getHTML());
298 $form->setFormAction(
$ilCtrl->getFormAction($this,
"saveBadge"));
299 $form->setTitle(
$lng->txt(
"badge_badge") .
' "' . $a_type->
getCaption() .
'"');
302 $form->addItem($active);
305 $title->setRequired(
true);
306 $form->addItem($title);
310 $form->addItem($desc);
314 $form->addItem($crit);
316 if ($a_mode ==
"create") {
321 $form->addItem($img_mode);
323 $img_mode_tmpl =
new ilRadioOption(
$lng->txt(
"badge_image_from_template"),
"tmpl");
324 $img_mode->addOption($img_mode_tmpl);
327 $img_mode->addOption($img_mode_up);
331 $img_upload->setSuffixes(array(
"png",
"svg"));
332 $img_mode_up->addSubItem($img_upload);
337 if (
sizeof($valid_templates)) {
339 $options[
""] =
$lng->txt(
"please_select");
340 foreach ($valid_templates as $tmpl) {
341 $options[$tmpl->getId()] = $tmpl->getTitle();
345 $tmpl->setRequired(
true);
346 $tmpl->setOptions($options);
347 $img_mode_tmpl->addSubItem($tmpl);
350 $img_mode_tmpl->setDisabled(
true);
351 $img_mode->setValue(
"up");
356 $img_upload->setALlowDeletion(
false);
357 $form->addItem($img_upload);
366 $custom->initConfigForm($form, $this->parent_ref_id);
371 if ($a_mode ==
"create") {
372 $form->addCommandButton(
"saveBadge",
$lng->txt(
"save"));
374 $form->addCommandButton(
"updateBadge",
$lng->txt(
"save"));
376 $form->addCommandButton(
"listBadges",
$lng->txt(
"cancel"));
386 $type_id = $_REQUEST[
"type"];
389 $ilCtrl->redirect($this,
"listBadges");
392 $ilCtrl->setParameter($this,
"type", $type_id);
395 $type = $handler->getTypeInstanceByUniqueId($type_id);
397 $ilCtrl->redirect($this,
"listBadges");
401 $custom =
$type->getConfigGUIInstance();
403 if ($form->checkInput() &&
404 (!$custom || $custom->validateForm($form))) {
406 $badge->setParentId($this->parent_obj_id);
407 $badge->setTypeId($type_id);
408 $badge->setActive($form->getInput(
"act"));
409 $badge->setTitle($form->getInput(
"title"));
410 $badge->setDescription($form->getInput(
"desc"));
411 $badge->setCriteria($form->getInput(
"crit"));
412 $badge->setValid($form->getInput(
"valid"));
416 $badge->setConfiguration($custom->getConfigFromForm($form));
421 if ($form->getInput(
"img_mode") ==
"up") {
422 $badge->uploadImage($_FILES[
"img"]);
425 $badge->importImage($tmpl->getImage(), $tmpl->getImagePath());
428 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
429 $ilCtrl->redirect($this,
"listBadges");
432 $form->setValuesByPost();
442 $badge_id = $_REQUEST[
"bid"];
445 $ilCtrl->redirect($this,
"listBadges");
448 $ilCtrl->setParameter($this,
"bid", $badge_id);
450 $badge =
new ilBadge($badge_id);
458 $type = $badge->getTypeInstance();
463 $tpl->setContent($a_form->getHTML());
488 $badge_id = $_REQUEST[
"bid"];
491 $ilCtrl->redirect($this,
"listBadges");
494 $ilCtrl->setParameter($this,
"bid", $badge_id);
496 $badge =
new ilBadge($badge_id);
497 $type = $badge->getTypeInstance();
498 $custom =
$type->getConfigGUIInstance();
504 if ($form->checkInput() &&
505 (!$custom || $custom->validateForm($form))) {
506 $badge->setActive($form->getInput(
"act"));
507 $badge->setTitle($form->getInput(
"title"));
508 $badge->setDescription($form->getInput(
"desc"));
509 $badge->setCriteria($form->getInput(
"crit"));
510 $badge->setValid($form->getInput(
"valid"));
513 $badge->setConfiguration($custom->getConfigFromForm($form));
518 $badge->uploadImage($_FILES[
"img"]);
520 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
521 $ilCtrl->redirect($this,
"listBadges");
525 $form->setValuesByPost();
538 $ilTabs->clearTargets();
539 $ilTabs->setBackTarget(
541 $ilCtrl->getLinkTarget($this,
"listBadges")
545 $confirmation_gui->setFormAction(
$ilCtrl->getFormAction($this));
546 $confirmation_gui->setHeaderText(
$lng->txt(
"badge_deletion_confirmation"));
547 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listBadges");
548 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deleteBadges");
550 foreach ($badge_ids as $badge_id) {
551 $badge =
new ilBadge($badge_id);
552 $confirmation_gui->addItem(
"id[]", $badge_id, $badge->getTitle() .
556 $tpl->setContent($confirmation_gui->getHTML());
566 foreach ($badge_ids as $badge_id) {
567 $badge =
new ilBadge($badge_id);
571 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
572 $ilCtrl->redirect($this,
"listBadges");
584 $badge_ids = $_REQUEST[
"id"];
587 $ilCtrl->redirect($this,
"listBadges");
599 $_SESSION[self::CLIPBOARD_ID] = array_unique(
600 array_merge((array)
$_SESSION[self::CLIPBOARD_ID], $badge_ids)
603 $ilCtrl->redirect($this,
"listBadges");
611 $ilCtrl->redirect($this,
"listBadges");
620 foreach (
$_SESSION[self::CLIPBOARD_ID] as $badge_id) {
621 $badge =
new ilBadge($badge_id);
622 if (in_array($badge->getTypeId(), $valid_types)) {
635 !is_array(
$_SESSION[self::CLIPBOARD_ID])) {
636 $ilCtrl->redirect($this,
"listBadges");
640 $badge->copy($this->parent_obj_id);
643 $ilCtrl->redirect($this,
"listBadges");
653 foreach ($badge_ids as $badge_id) {
654 $badge =
new ilBadge($badge_id);
655 $badge->setActive($a_status);
659 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
660 $ilCtrl->redirect($this,
"listBadges");
689 if (
sizeof($manual)) {
691 $drop->setOptions($manual);
692 $ilToolbar->addInputItem($drop,
true);
694 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"awardBadgeUserSelection"));
695 $ilToolbar->addFormButton(
$lng->txt(
"badge_award_badge"),
"awardBadgeUserSelection");
700 $tpl->setContent($tbl->getHTML());
707 $tbl->writeFilterToSession();
726 $bid = (int) $_REQUEST[
"bid"];
729 $ilCtrl->redirect($this,
"listUsers");
733 if (!in_array($bid, $manual)) {
734 $ilCtrl->redirect($this,
"listUsers");
737 $back_target =
"listUsers";
738 if ($_REQUEST[
"tgt"] ==
"bdgl") {
739 $ilCtrl->saveParameter($this,
"tgt");
740 $back_target =
"listBadges";
743 $ilTabs->clearTargets();
744 $ilTabs->setBackTarget(
746 $ilCtrl->getLinkTarget($this, $back_target)
749 $ilCtrl->setParameter($this,
"bid", $bid);
753 $tbl =
new ilBadgeUserTableGUI($this,
"awardBadgeUserSelection", $this->parent_ref_id, $badge);
754 $tpl->setContent($tbl->getHTML());
761 $tbl->writeFilterToSession();
780 $badge_id = $_REQUEST[
"bid"];
784 $ilCtrl->redirect($this,
"listUsers");
787 $new_badges = array();
788 foreach ($user_ids as $user_id) {
791 $ass->setAwardedBy(
$ilUser->getId());
794 $new_badges[$user_id][] = $badge_id;
800 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
801 $ilCtrl->redirect($this,
"listUsers");
812 $badge_id = $_REQUEST[
"bid"];
816 $ilCtrl->redirect($this,
"listUsers");
819 $ilTabs->clearTargets();
820 $ilTabs->setBackTarget(
822 $ilCtrl->getLinkTarget($this,
"listUsers")
825 $badge =
new ilBadge($badge_id);
827 $ilCtrl->setParameter($this,
"bid", $badge->getId());
830 $confirmation_gui->setFormAction(
$ilCtrl->getFormAction($this));
831 $confirmation_gui->setHeaderText(sprintf(
$lng->txt(
"badge_assignment_deletion_confirmation"), $badge->getTitle()));
832 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listUsers");
833 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deassignBadge");
837 foreach ($user_ids as $user_id) {
838 if (in_array($user_id, $assigned_users)) {
839 $confirmation_gui->addItem(
847 $tpl->setContent($confirmation_gui->getHTML());
856 $badge_id = $_REQUEST[
"bid"];
860 $ilCtrl->redirect($this,
"listUsers");
863 foreach ($user_ids as $user_id) {
868 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
869 $ilCtrl->redirect($this,
"listUsers");
This class represents an option in a radio group.
initBadgeForm($a_mode, ilBadgeType $a_type, $a_type_unique_id)
Class ilBadgeManagementGUI.
getImagePath($a_full_path=true)
static exists($a_badge_id, $a_user_id)
static getAssignedUsers($a_badge_id)
resetAwardBadgeUserSelection()
getConfigGUIInstance()
Get GUI config instance.
editBadge(ilPropertyFormGUI $a_form=null)
setBadgeFormValues(ilPropertyFormGUI $a_form, ilBadge $a_badge, ilBadgeType $a_type)
applyAwardBadgeUserSelection()
__construct($a_parent_ref_id, $a_parent_obj_id=null, $a_parent_obj_type=null)
Construct.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
addBadge(ilPropertyFormGUI $a_form=null)
foreach($_POST as $key=> $value) $res
static getExtendedTypeCaption(ilBadgeType $a_type)
static _lookupObjId($a_id)
Badge type gui interface.
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
TableGUI class for badge listing.
This class represents a text area property in a property form.
getBadgesFromMultiAction()
getValidBadgesFromClipboard()
awardBadgeUserSelection()
static getInstancesByBadgeId($a_badge_id)
TableGUI class for badge user listing.
Confirmation screen class.
static getInstance()
Constructor.
static getInstancesByType($a_type_unique_id)