3 include_once(
"./Services/Badge/classes/class.ilBadgeHandler.php");
65 public function __construct($a_parent_ref_id, $a_parent_obj_id = null, $a_parent_obj_type = null)
69 $this->lng = $DIC->language();
70 $this->ctrl = $DIC->ctrl();
71 $this->tabs = $DIC->tabs();
72 $this->access = $DIC->access();
73 $this->toolbar = $DIC->toolbar();
74 $this->tpl = $DIC[
"tpl"];
75 $this->
user = $DIC->user();
76 $lng = $DIC->language();
78 $this->parent_ref_id = $a_parent_ref_id;
79 $this->parent_obj_id = $a_parent_obj_id
82 $this->parent_obj_type = $a_parent_obj_type
90 $lng->loadLanguageModule(
"badge");
99 $next_class =
$ilCtrl->getNextClass($this);
100 $cmd =
$ilCtrl->getCmd(
"listBadges");
102 switch ($next_class) {
103 case "ilpropertyformgui":
105 if ((
int) $_REQUEST[
"bid"]) {
106 include_once
"./Services/Badge/classes/class.ilBadge.php";
107 $badge =
new ilBadge((
int) $_REQUEST[
"bid"]);
108 $type = $badge->getTypeInstance();
114 $type_id = $_REQUEST[
"type"];
115 $ilCtrl->setParameter($this,
"type", $type_id);
160 $lng->txt(
"obj_bdga"),
161 $ilCtrl->getLinkTarget($this,
"listBadges")
167 $ilCtrl->getLinkTarget($this,
"listUsers")
170 $ilTabs->activateSubTab($a_active);
176 return $ilAccess->checkAccess(
"write",
"", $this->parent_ref_id);
190 $valid_types =
$handler->getAvailableTypesForObjType($this->parent_obj_type);
192 include_once
"Services/Badge/classes/class.ilBadge.php";
194 foreach ($valid_types as
$id =>
$type) {
197 :
$type->getCaption();
201 include_once
"Services/Form/classes/class.ilSelectInputGUI.php";
204 $ilToolbar->addInputItem($drop,
true);
206 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"addBadge"));
207 $ilToolbar->addFormButton(
$lng->txt(
"create"),
"addBadge");
212 if (is_array(
$_SESSION[self::CLIPBOARD_ID])) {
214 $ilToolbar->addSeparator();
219 $tt[] = $badge->getTitle();
222 include_once
"Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php";
225 implode(
"<br />", $tt),
232 $lng->loadLanguageModule(
"content");
233 $ilToolbar->addButton(
234 $lng->txt(
"cont_paste_from_clipboard") .
235 " (" .
sizeof($tt) .
")",
236 $ilCtrl->getLinkTarget($this,
"pasteBadges"),
242 $ilToolbar->addButton(
243 $lng->txt(
"clear_clipboard"),
244 $ilCtrl->getLinkTarget($this,
"clearClipboard")
249 include_once
"Services/Badge/classes/class.ilBadgeTableGUI.php";
256 include_once
"Services/Badge/classes/class.ilBadgeTableGUI.php";
259 $tbl->writeFilterToSession();
265 include_once
"Services/Badge/classes/class.ilBadgeTableGUI.php";
282 $type_id = $_REQUEST[
"type"];
285 $ilCtrl->redirect($this,
"listBadges");
288 $ilCtrl->setParameter($this,
"type", $type_id);
293 $ilCtrl->redirect($this,
"listBadges");
300 $tpl->setContent($a_form->getHTML());
308 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
310 $form->setFormAction(
$ilCtrl->getFormAction($this,
"saveBadge"));
314 $form->addItem($active);
317 $title->setRequired(
true);
322 $form->addItem($desc);
326 $form->addItem($crit);
328 if ($a_mode ==
"create") {
333 $form->addItem($img_mode);
335 $img_mode_tmpl =
new ilRadioOption(
$lng->txt(
"badge_image_from_template"),
"tmpl");
336 $img_mode->addOption($img_mode_tmpl);
339 $img_mode->addOption($img_mode_up);
343 $img_upload->setSuffixes(array(
"png",
"svg"));
344 $img_mode_up->addSubItem($img_upload);
348 include_once
"Services/Badge/classes/class.ilBadgeImageTemplate.php";
350 if (
sizeof($valid_templates)) {
353 foreach ($valid_templates as $tmpl) {
354 $options[$tmpl->getId()] = $tmpl->getTitle();
360 $img_mode_tmpl->addSubItem($tmpl);
363 $img_mode_tmpl->setDisabled(
true);
364 $img_mode->setValue(
"up");
369 $img_upload->setALlowDeletion(
false);
370 $form->addItem($img_upload);
379 $custom->initConfigForm(
$form, $this->parent_ref_id);
384 if ($a_mode ==
"create") {
385 $form->addCommandButton(
"saveBadge",
$lng->txt(
"save"));
387 $form->addCommandButton(
"updateBadge",
$lng->txt(
"save"));
389 $form->addCommandButton(
"listBadges",
$lng->txt(
"cancel"));
399 $type_id = $_REQUEST[
"type"];
402 $ilCtrl->redirect($this,
"listBadges");
405 $ilCtrl->setParameter($this,
"type", $type_id);
410 $ilCtrl->redirect($this,
"listBadges");
414 $custom =
$type->getConfigGUIInstance();
416 if (
$form->checkInput() &&
417 (!$custom || $custom->validateForm(
$form))) {
418 include_once
"Services/Badge/classes/class.ilBadge.php";
420 $badge->setParentId($this->parent_obj_id);
421 $badge->setTypeId($type_id);
422 $badge->setActive(
$form->getInput(
"act"));
423 $badge->setTitle(
$form->getInput(
"title"));
424 $badge->setDescription(
$form->getInput(
"desc"));
425 $badge->setCriteria(
$form->getInput(
"crit"));
426 $badge->setValid(
$form->getInput(
"valid"));
430 $badge->setConfiguration($custom->getConfigFromForm(
$form));
435 if (
$form->getInput(
"img_mode") ==
"up") {
436 $badge->uploadImage($_FILES[
"img"]);
439 $badge->importImage($tmpl->getImage(), $tmpl->getImagePath());
442 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
443 $ilCtrl->redirect($this,
"listBadges");
446 $form->setValuesByPost();
456 $badge_id = $_REQUEST[
"bid"];
459 $ilCtrl->redirect($this,
"listBadges");
462 $ilCtrl->setParameter($this,
"bid", $badge_id);
464 include_once
"./Services/Badge/classes/class.ilBadge.php";
465 $badge =
new ilBadge($badge_id);
473 $type = $badge->getTypeInstance();
478 $tpl->setContent($a_form->getHTML());
503 $badge_id = $_REQUEST[
"bid"];
506 $ilCtrl->redirect($this,
"listBadges");
509 $ilCtrl->setParameter($this,
"bid", $badge_id);
511 include_once
"./Services/Badge/classes/class.ilBadge.php";
512 $badge =
new ilBadge($badge_id);
513 $type = $badge->getTypeInstance();
514 $custom =
$type->getConfigGUIInstance();
520 if (
$form->checkInput() &&
521 (!$custom || $custom->validateForm(
$form))) {
522 $badge->setActive(
$form->getInput(
"act"));
523 $badge->setTitle(
$form->getInput(
"title"));
524 $badge->setDescription(
$form->getInput(
"desc"));
525 $badge->setCriteria(
$form->getInput(
"crit"));
526 $badge->setValid(
$form->getInput(
"valid"));
529 $badge->setConfiguration($custom->getConfigFromForm(
$form));
534 $badge->uploadImage($_FILES[
"img"]);
536 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
537 $ilCtrl->redirect($this,
"listBadges");
541 $form->setValuesByPost();
554 $ilTabs->clearTargets();
555 $ilTabs->setBackTarget(
557 $ilCtrl->getLinkTarget($this,
"listBadges")
560 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
562 $confirmation_gui->setFormAction(
$ilCtrl->getFormAction($this));
563 $confirmation_gui->setHeaderText(
$lng->txt(
"badge_deletion_confirmation"));
564 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listBadges");
565 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deleteBadges");
567 include_once
"Services/Badge/classes/class.ilBadge.php";
568 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
569 foreach ($badge_ids as $badge_id) {
570 $badge =
new ilBadge($badge_id);
571 $confirmation_gui->addItem(
"id[]", $badge_id, $badge->getTitle() .
575 $tpl->setContent($confirmation_gui->getHTML());
585 include_once
"Services/Badge/classes/class.ilBadge.php";
586 foreach ($badge_ids as $badge_id) {
587 $badge =
new ilBadge($badge_id);
591 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
592 $ilCtrl->redirect($this,
"listBadges");
604 $badge_ids = $_REQUEST[
"id"];
607 $ilCtrl->redirect($this,
"listBadges");
619 $_SESSION[self::CLIPBOARD_ID] = array_unique(
620 array_merge((array)
$_SESSION[self::CLIPBOARD_ID], $badge_ids)
623 $ilCtrl->redirect($this,
"listBadges");
631 $ilCtrl->redirect($this,
"listBadges");
640 include_once
"Services/Badge/classes/class.ilBadge.php";
641 foreach (
$_SESSION[self::CLIPBOARD_ID] as $badge_id) {
642 $badge =
new ilBadge($badge_id);
643 if (in_array($badge->getTypeId(), $valid_types)) {
656 !is_array(
$_SESSION[self::CLIPBOARD_ID])) {
657 $ilCtrl->redirect($this,
"listBadges");
661 $badge->copy($this->parent_obj_id);
664 $ilCtrl->redirect($this,
"listBadges");
674 include_once
"Services/Badge/classes/class.ilBadge.php";
675 foreach ($badge_ids as $badge_id) {
676 $badge =
new ilBadge($badge_id);
677 $badge->setActive($a_status);
681 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
682 $ilCtrl->redirect($this,
"listBadges");
711 if (
sizeof($manual)) {
712 include_once
"Services/Form/classes/class.ilSelectInputGUI.php";
715 $ilToolbar->addInputItem($drop,
true);
717 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"awardBadgeUserSelection"));
718 $ilToolbar->addFormButton(
$lng->txt(
"badge_award_badge"),
"awardBadgeUserSelection");
722 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
729 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
732 $tbl->writeFilterToSession();
738 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
752 $bid = (int) $_REQUEST[
"bid"];
755 $ilCtrl->redirect($this,
"listUsers");
759 if (!in_array($bid, $manual)) {
760 $ilCtrl->redirect($this,
"listUsers");
763 $back_target =
"listUsers";
764 if ($_REQUEST[
"tgt"] ==
"bdgl") {
765 $ilCtrl->saveParameter($this,
"tgt");
766 $back_target =
"listBadges";
769 $ilTabs->clearTargets();
770 $ilTabs->setBackTarget(
772 $ilCtrl->getLinkTarget($this, $back_target)
775 $ilCtrl->setParameter($this,
"bid", $bid);
777 include_once
"./Services/Badge/classes/class.ilBadge.php";
780 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
787 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
790 $tbl->writeFilterToSession();
796 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
810 $badge_id = $_REQUEST[
"bid"];
814 $ilCtrl->redirect($this,
"listUsers");
817 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
818 $new_badges = array();
819 foreach ($user_ids as $user_id) {
822 $ass->setAwardedBy(
$ilUser->getId());
825 $new_badges[$user_id][] = $badge_id;
831 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
832 $ilCtrl->redirect($this,
"listUsers");
843 $badge_id = $_REQUEST[
"bid"];
847 $ilCtrl->redirect($this,
"listUsers");
850 $ilTabs->clearTargets();
851 $ilTabs->setBackTarget(
853 $ilCtrl->getLinkTarget($this,
"listUsers")
856 include_once
"Services/Badge/classes/class.ilBadge.php";
857 $badge =
new ilBadge($badge_id);
859 $ilCtrl->setParameter($this,
"bid", $badge->getId());
861 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
863 $confirmation_gui->setFormAction(
$ilCtrl->getFormAction($this));
864 $confirmation_gui->setHeaderText(sprintf(
$lng->txt(
"badge_assignment_deletion_confirmation"), $badge->getTitle()));
865 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listUsers");
866 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deassignBadge");
868 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
871 include_once
"Services/User/classes/class.ilUserUtil.php";
872 foreach ($user_ids as $user_id) {
873 if (in_array($user_id, $assigned_users)) {
874 $confirmation_gui->addItem(
882 $tpl->setContent($confirmation_gui->getHTML());
891 $badge_id = $_REQUEST[
"bid"];
895 $ilCtrl->redirect($this,
"listUsers");
898 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
899 foreach ($user_ids as $user_id) {
904 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
905 $ilCtrl->redirect($this,
"listUsers");
This class represents an option in a radio group.
initBadgeForm($a_mode, ilBadgeType $a_type, $a_type_unique_id)
getImagePath($a_full_path=true)
static exists($a_badge_id, $a_user_id)
static getAssignedUsers($a_badge_id)
resetAwardBadgeUserSelection()
getConfigGUIInstance()
Get GUI config instance.
if(!array_key_exists('StateId', $_REQUEST)) $id
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
if(isset($_POST['submit'])) $form
static getExtendedTypeCaption(ilBadgeType $a_type)
static _lookupObjId($a_id)
This class represents a text property in a property form.
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)