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();
113 $type_id = $_REQUEST[
"type"];
114 $ilCtrl->setParameter($this,
"type", $type_id);
159 $lng->txt(
"obj_bdga"),
160 $ilCtrl->getLinkTarget($this,
"listBadges")
166 $ilCtrl->getLinkTarget($this,
"listUsers")
169 $ilTabs->activateSubTab($a_active);
175 return $ilAccess->checkAccess(
"write",
"", $this->parent_ref_id);
189 $valid_types =
$handler->getAvailableTypesForObjType($this->parent_obj_type);
191 include_once
"Services/Badge/classes/class.ilBadge.php";
193 foreach ($valid_types as
$id =>
$type) {
196 :
$type->getCaption();
200 include_once
"Services/Form/classes/class.ilSelectInputGUI.php";
203 $ilToolbar->addInputItem($drop,
true);
205 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"addBadge"));
206 $ilToolbar->addFormButton(
$lng->txt(
"create"),
"addBadge");
211 if (is_array(
$_SESSION[self::CLIPBOARD_ID])) {
213 $ilToolbar->addSeparator();
218 $tt[] = $badge->getTitle();
221 include_once
"Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php";
224 implode(
"<br />", $tt),
231 $lng->loadLanguageModule(
"content");
232 $ilToolbar->addButton(
233 $lng->txt(
"cont_paste_from_clipboard") .
234 " (" .
sizeof($tt) .
")",
235 $ilCtrl->getLinkTarget($this,
"pasteBadges"),
241 $ilToolbar->addButton(
242 $lng->txt(
"clear_clipboard"),
243 $ilCtrl->getLinkTarget($this,
"clearClipboard")
248 include_once
"Services/Badge/classes/class.ilBadgeTableGUI.php";
255 include_once
"Services/Badge/classes/class.ilBadgeTableGUI.php";
258 $tbl->writeFilterToSession();
264 include_once
"Services/Badge/classes/class.ilBadgeTableGUI.php";
281 $type_id = $_REQUEST[
"type"];
284 $ilCtrl->redirect($this,
"listBadges");
287 $ilCtrl->setParameter($this,
"type", $type_id);
292 $ilCtrl->redirect($this,
"listBadges");
299 $tpl->setContent($a_form->getHTML());
307 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
309 $form->setFormAction(
$ilCtrl->getFormAction($this,
"saveBadge"));
313 $form->addItem($active);
316 $title->setRequired(
true);
321 $form->addItem($desc);
325 $form->addItem($crit);
327 if ($a_mode ==
"create") {
332 $form->addItem($img_mode);
334 $img_mode_tmpl =
new ilRadioOption(
$lng->txt(
"badge_image_from_template"),
"tmpl");
335 $img_mode->addOption($img_mode_tmpl);
338 $img_mode->addOption($img_mode_up);
342 $img_upload->setSuffixes(
array(
"png",
"svg"));
343 $img_mode_up->addSubItem($img_upload);
347 include_once
"Services/Badge/classes/class.ilBadgeImageTemplate.php";
349 if (
sizeof($valid_templates)) {
352 foreach ($valid_templates as $tmpl) {
353 $options[$tmpl->getId()] = $tmpl->getTitle();
359 $img_mode_tmpl->addSubItem($tmpl);
362 $img_mode_tmpl->setDisabled(
true);
363 $img_mode->setValue(
"up");
368 $img_upload->setALlowDeletion(
false);
369 $form->addItem($img_upload);
378 $custom->initConfigForm(
$form, $this->parent_ref_id);
383 if ($a_mode ==
"create") {
384 $form->addCommandButton(
"saveBadge",
$lng->txt(
"save"));
386 $form->addCommandButton(
"updateBadge",
$lng->txt(
"save"));
388 $form->addCommandButton(
"listBadges",
$lng->txt(
"cancel"));
398 $type_id = $_REQUEST[
"type"];
401 $ilCtrl->redirect($this,
"listBadges");
404 $ilCtrl->setParameter($this,
"type", $type_id);
409 $ilCtrl->redirect($this,
"listBadges");
413 $custom =
$type->getConfigGUIInstance();
415 if (
$form->checkInput() &&
416 (!$custom || $custom->validateForm(
$form))) {
417 include_once
"Services/Badge/classes/class.ilBadge.php";
419 $badge->setParentId($this->parent_obj_id);
420 $badge->setTypeId($type_id);
421 $badge->setActive(
$form->getInput(
"act"));
422 $badge->setTitle(
$form->getInput(
"title"));
423 $badge->setDescription(
$form->getInput(
"desc"));
424 $badge->setCriteria(
$form->getInput(
"crit"));
425 $badge->setValid(
$form->getInput(
"valid"));
429 $badge->setConfiguration($custom->getConfigFromForm(
$form));
434 if (
$form->getInput(
"img_mode") ==
"up") {
435 $badge->uploadImage($_FILES[
"img"]);
438 $badge->importImage($tmpl->getImage(), $tmpl->getImagePath());
442 $ilCtrl->redirect($this,
"listBadges");
445 $form->setValuesByPost();
455 $badge_id = $_REQUEST[
"bid"];
458 $ilCtrl->redirect($this,
"listBadges");
461 $ilCtrl->setParameter($this,
"bid", $badge_id);
463 include_once
"./Services/Badge/classes/class.ilBadge.php";
464 $badge =
new ilBadge($badge_id);
472 $type = $badge->getTypeInstance();
477 $tpl->setContent($a_form->getHTML());
502 $badge_id = $_REQUEST[
"bid"];
505 $ilCtrl->redirect($this,
"listBadges");
508 $ilCtrl->setParameter($this,
"bid", $badge_id);
510 include_once
"./Services/Badge/classes/class.ilBadge.php";
511 $badge =
new ilBadge($badge_id);
512 $type = $badge->getTypeInstance();
513 $custom =
$type->getConfigGUIInstance();
519 if (
$form->checkInput() &&
520 (!$custom || $custom->validateForm(
$form))) {
521 $badge->setActive(
$form->getInput(
"act"));
522 $badge->setTitle(
$form->getInput(
"title"));
523 $badge->setDescription(
$form->getInput(
"desc"));
524 $badge->setCriteria(
$form->getInput(
"crit"));
525 $badge->setValid(
$form->getInput(
"valid"));
528 $badge->setConfiguration($custom->getConfigFromForm(
$form));
533 $badge->uploadImage($_FILES[
"img"]);
536 $ilCtrl->redirect($this,
"listBadges");
540 $form->setValuesByPost();
553 $ilTabs->clearTargets();
554 $ilTabs->setBackTarget(
556 $ilCtrl->getLinkTarget($this,
"listBadges")
559 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
561 $confirmation_gui->setFormAction(
$ilCtrl->getFormAction($this));
562 $confirmation_gui->setHeaderText(
$lng->txt(
"badge_deletion_confirmation"));
563 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listBadges");
564 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deleteBadges");
566 include_once
"Services/Badge/classes/class.ilBadge.php";
567 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
568 foreach ($badge_ids as $badge_id) {
569 $badge =
new ilBadge($badge_id);
570 $confirmation_gui->addItem(
"id[]", $badge_id, $badge->getTitle() .
574 $tpl->setContent($confirmation_gui->getHTML());
584 include_once
"Services/Badge/classes/class.ilBadge.php";
585 foreach ($badge_ids as $badge_id) {
586 $badge =
new ilBadge($badge_id);
591 $ilCtrl->redirect($this,
"listBadges");
603 $badge_ids = $_REQUEST[
"id"];
606 $ilCtrl->redirect($this,
"listBadges");
618 $_SESSION[self::CLIPBOARD_ID] = array_unique(
622 $ilCtrl->redirect($this,
"listBadges");
630 $ilCtrl->redirect($this,
"listBadges");
639 include_once
"Services/Badge/classes/class.ilBadge.php";
640 foreach (
$_SESSION[self::CLIPBOARD_ID] as $badge_id) {
641 $badge =
new ilBadge($badge_id);
642 if (in_array($badge->getTypeId(), $valid_types)) {
655 !is_array(
$_SESSION[self::CLIPBOARD_ID])) {
656 $ilCtrl->redirect($this,
"listBadges");
660 $badge->copy($this->parent_obj_id);
663 $ilCtrl->redirect($this,
"listBadges");
673 include_once
"Services/Badge/classes/class.ilBadge.php";
674 foreach ($badge_ids as $badge_id) {
675 $badge =
new ilBadge($badge_id);
676 $badge->setActive($a_status);
681 $ilCtrl->redirect($this,
"listBadges");
710 if (
sizeof($manual)) {
711 include_once
"Services/Form/classes/class.ilSelectInputGUI.php";
714 $ilToolbar->addInputItem($drop,
true);
716 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"awardBadgeUserSelection"));
717 $ilToolbar->addFormButton(
$lng->txt(
"badge_award_badge"),
"awardBadgeUserSelection");
721 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
728 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
731 $tbl->writeFilterToSession();
737 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
751 $bid = (int) $_REQUEST[
"bid"];
754 $ilCtrl->redirect($this,
"listUsers");
758 if (!in_array($bid, $manual)) {
759 $ilCtrl->redirect($this,
"listUsers");
762 $back_target =
"listUsers";
763 if ($_REQUEST[
"tgt"] ==
"bdgl") {
764 $ilCtrl->saveParameter($this,
"tgt");
765 $back_target =
"listBadges";
768 $ilTabs->clearTargets();
769 $ilTabs->setBackTarget(
771 $ilCtrl->getLinkTarget($this, $back_target)
774 $ilCtrl->setParameter($this,
"bid", $bid);
776 include_once
"./Services/Badge/classes/class.ilBadge.php";
779 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
786 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
789 $tbl->writeFilterToSession();
795 include_once
"Services/Badge/classes/class.ilBadgeUserTableGUI.php";
809 $badge_id = $_REQUEST[
"bid"];
813 $ilCtrl->redirect($this,
"listUsers");
816 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
817 $new_badges =
array();
818 foreach ($user_ids as $user_id) {
821 $ass->setAwardedBy(
$ilUser->getId());
824 $new_badges[$user_id][] = $badge_id;
831 $ilCtrl->redirect($this,
"listUsers");
842 $badge_id = $_REQUEST[
"bid"];
846 $ilCtrl->redirect($this,
"listUsers");
849 $ilTabs->clearTargets();
850 $ilTabs->setBackTarget(
852 $ilCtrl->getLinkTarget($this,
"listUsers")
855 include_once
"Services/Badge/classes/class.ilBadge.php";
856 $badge =
new ilBadge($badge_id);
858 $ilCtrl->setParameter($this,
"bid", $badge->getId());
860 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
862 $confirmation_gui->setFormAction(
$ilCtrl->getFormAction($this));
863 $confirmation_gui->setHeaderText(sprintf(
$lng->txt(
"badge_assignment_deletion_confirmation"), $badge->getTitle()));
864 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listUsers");
865 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deassignBadge");
867 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
870 include_once
"Services/User/classes/class.ilUserUtil.php";
871 foreach ($user_ids as $user_id) {
872 if (in_array($user_id, $assigned_users)) {
873 $confirmation_gui->addItem(
881 $tpl->setContent($confirmation_gui->getHTML());
890 $badge_id = $_REQUEST[
"bid"];
894 $ilCtrl->redirect($this,
"listUsers");
897 include_once
"Services/Badge/classes/class.ilBadgeAssignment.php";
898 foreach ($user_ids as $user_id) {
904 $ilCtrl->redirect($this,
"listUsers");
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
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:
Create styles array
The data for the language used.
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.
if(!isset($_REQUEST['ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
Confirmation screen class.
static getInstance()
Constructor.
static getInstancesByType($a_type_unique_id)