ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
ilObjExerciseGUI Class Reference

Class ilObjExerciseGUI. More...

+ Inheritance diagram for ilObjExerciseGUI:
+ Collaboration diagram for ilObjExerciseGUI:

Public Member Functions

 ilObjExerciseGUI ($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
 Constructor @access public. More...
 
 getFiles ()
 
 setFiles ($a_files)
 
 executeCommand ()
 execute command More...
 
 viewObject ()
 list childs of current object More...
 
 downloadObject ()
 User downloads (own) submitted files. More...
 
 confirmDeleteDeliveredObject ()
 Confirm deletion of delivered files. More...
 
 deleteDeliveredObject ()
 Delete file(s) submitted by user. More...
 
 submissionScreenObject ()
 Displays a form which allows members to deliver their solutions. More...
 
 uploadFormObject ()
 Display form for single file upload. More...
 
 uploadZipFormObject ()
 Display form for zip file upload. More...
 
 initUploadForm ()
 Init upload form form. More...
 
 initZipUploadForm ()
 Init upload form form. More...
 
 deliverFileObject ()
 Upload files. More...
 
 deliverUnzipObject ()
 Upload zip file. More...
 
 downloadFeedbackFileObject ()
 Download feedback file. More...
 
 downloadFileObject ()
 Download assignment file. More...
 
 cancelEditObject ()
 
 uploadZipObject ()
 
 uploadFileObject ()
 
 updateMembersObject ()
 update data of members table More...
 
 downloadReturnedObject ()
 Download submitted files of user. More...
 
 downloadNewReturnedObject ()
 Download newly submitted files of user. More...
 
 addUserFromAutoCompleteObject ()
 Add user as member. More...
 
 addMembersObject ($a_user_ids=array())
 Add new partipant. More...
 
 membersObject ()
 All participants and submission of one assignment. More...
 
 selectAssignmentObject ()
 Select assignment. More...
 
 showParticipantObject ()
 Show Participant. More...
 
 selectParticipantObject ()
 Select participant. More...
 
 showGradesOverviewObject ()
 Show grades overview. More...
 
 redirectFeedbackMailObject ()
 set feedback status for member and redirect to mail screen More...
 
 downloadAllObject ()
 Download all submitted files (of all members). More...
 
 __getMembersOfObject ($a_result, $a_type)
 
 __showObjectSelect ($a_result, $a_type)
 
 sendMembersObject ()
 Send assignment per mail to participants. More...
 
 confirmDeassignMembersObject ()
 Confirm deassigning members. More...
 
 deassignMembersObject ()
 Deassign members from exercise. More...
 
 saveCommentsObject ()
 
 saveStatusParticipantObject ()
 Save assignment status (participant view) More...
 
 saveStatusAllObject ()
 
 saveStatusObject ($a_part_view=false, $a_force_all=false)
 Save status of selecte members. More...
 
 __getDateSelect ($a_type, $a_selected)
 
 __filterAssignedUsers ($a_result)
 
 addSubmissionSubTabs ($a_activate)
 adds tabs to tab gui object More...
 
 addContentSubTabs ($a_activate)
 Add subtabs of content view. More...
 
 getTabs ($tabs_gui)
 adds tabs to tab gui object More...
 
 infoScreenObject ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed More...
 
 infoScreen ()
 show information screen More...
 
 editObject ()
 edit object More...
 
 addLocatorItems ()
 Add locator item. More...
 
 listAssignmentsObject ()
 List assignments. More...
 
 addAssignmentObject ()
 Create assignment. More...
 
 initAssignmentForm ($a_mode="create")
 Init assignment form. More...
 
 saveAssignmentObject ()
 Save assignment. More...
 
 editAssignmentObject ()
 Edit assignment. More...
 
 getAssignmentValues ()
 Get current values for assignment from. More...
 
 updateAssignmentObject ()
 Update assignment. More...
 
 confirmAssignmentsDeletionObject ()
 Confirm assignments deletion. More...
 
 deleteAssignmentsObject ()
 Delete assignments. More...
 
 saveAssignmentOrderObject ()
 Save assignments order. More...
 
 orderAssignmentsByDeadlineObject ()
 Order by deadline. More...
 
 setAssignmentHeader ()
 Set assignment header. More...
 
 showOverviewObject ()
 Show overview of assignments. More...
 
 listPublicSubmissionsObject ()
 List all submissions. More...
 
 exportExcelObject ()
 Export as excel. More...
 
 saveGradesObject ()
 Save grades. More...
 
 removeExistingSubmissions ()
 remove existing files/submissions for assignment More...
 
 submitBlog ($a_blog_id)
 Submit blog for assignment. More...
 
 submitPortfolio ($a_portfolio_id)
 Submit portfolio for assignment. More...
 
 certificateObject ()
 
 outCertificateObject ()
 
 submissionScreenTeamObject ()
 Displays a form which allows members to manage team uploads. More...
 
 addTeamMemberActionObject ($a_user_ids=array())
 
 confirmDeleteTeamObject ()
 
 confirmRemoveTeamMemberObject ($a_full_delete=false)
 
 removeTeamMemberObject ($a_full_delete=false)
 
 submissionScreenTeamLogObject ()
 
 createSingleMemberTeamObject ()
 
 showTeamLogObject ()
 
 editAssignmentTextObject (ilPropertyFormGUI $a_form=null)
 
 updateAssignmentTextAndReturnObject ()
 
 updateAssignmentTextObject ($a_return=false)
 
 showAssignmentTextObject ()
 
 listTextAssignmentWithPeerReviewObject ()
 
 listTextAssignmentObject ($a_show_peer_review=false)
 
 editPeerReviewObject ()
 
 updatePeerReviewObject ()
 
 updatePeerReviewCommentsObject ()
 
 updatePeerReviewTextObject ()
 
 downloadPeerReviewObject ()
 
 showPersonalPeerReviewObject ()
 
 showPeerReviewOverviewObject ()
 
 confirmResetPeerReviewObject ()
 
 resetPeerReviewObject ()
 
 downloadGlobalFeedbackFileObject ()
 
 initMultiFeedbackForm ($a_ass_id)
 
 showMultiFeedbackObject (ilPropertyFormGUI $a_form=null)
 Show multi-feedback screen. More...
 
 downloadMultiFeedbackZipObject ()
 Download multi-feedback structrue file. More...
 
 uploadMultiFeedbackObject ()
 Upload multi feedback file. More...
 
 showMultiFeedbackConfirmationTableObject ()
 Show multi feedback confirmation table. More...
 
 cancelMultiFeedbackObject ()
 Cancel Multi Feedback. More...
 
 saveMultiFeedbackObject ()
 Save multi feedback. More...
 
 saveCommentForLearnersObject ()
 Save comment for learner (asynch) More...
 
 createTeamObject ()
 
 createAdoptedTeamObject ()
 
 adoptTeamAssignmentsFormObject ()
 
 adoptTeamAssignmentsObject ()
 
- Public Member Functions inherited from ilObjectGUI
 ilObjectGUI ($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
 Constructor @access public. More...
 
executeCommand ()
 execute command More...
 
 withReferences ()
 determines wether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode ($a_mode=true)
 if true, a creation screen is displayed the current $_GET[ref_id] don't belong to the current class! the mode is determined in ilrepositorygui More...
 
 getCreationMode ()
 get creation mode More...
 
 getAdminTabs (&$tabs_gui)
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelDeleteObject ()
 cancel deletion of object More...
 
 cancelObject ($in_rep=false)
 cancel action and go back to previous page @access public More...
 
 createObject ()
 create new object form More...
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 save object More...
 
 editObject ()
 edit object More...
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction ($a_cmd, $a_formaction="")
 get form action for command (command is method name without "Object", e.g. More...
 
 isVisible ($a_ref_id, $a_type)
 
 viewObject ()
 list childs of current object More...
 
 deleteObject ($a_error=false)
 Display deletion confirmation screen. More...
 
 cloneAllObject ()
 Clone single (not container object) Method is overwritten in ilContainerGUI. More...
 

Static Public Member Functions

static _goto ($a_target, $a_raw)
 redirect script More...
 
- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot ($a_raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode ($a_ref_id, $a_cmd="frameset")
 Goto repository root. More...
 

Protected Member Functions

 afterSave (ilObject $a_new_object)
 Post (successful) object creation hook. More...
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Init properties form. More...
 
 getEditFormCustomValues (array &$a_values)
 Get values for properties form. More...
 
 updateCustom (ilPropertyFormGUI $a_form)
 Insert custom update form values into object. More...
 
 setSettingsSubTabs ()
 
 handleDisabledAssignmentFields (ilExAssignment $a_ass, ilPropertyFormGUI $a_form)
 
 sendNotifications ($assignment_id)
 Send submission notifications. More...
 
 createBlogObject ()
 
 selectBlogObject ()
 
 saveBlogObject ()
 
 setSelectedBlogObject ()
 
 askDirectionSubmissionObject ()
 
 directSubmitObject ()
 
 selectPortfolioObject ()
 
 initPortfolioTemplateForm (array $a_templates)
 
 createPortfolioTemplateObject (ilPropertyFormGUI $a_form=null)
 
 setSelectedPortfolioTemplateObject ()
 
 createPortfolioObject ()
 
 setSelectedPortfolioObject ()
 
 renderWorkspaceExplorer ($a_cmd)
 
 initTeamSubmission ($a_back_cmd, $a_mandatory_team=true)
 
 initAssignmentTextForm (ilExAssignment $a_ass, $a_read_only=false, $a_cancel_cmd="showOverview", $a_peer_review_cmd=null, $a_peer_rating_html=null)
 
 canPeerReviewBeEdited ()
 
- Protected Member Functions inherited from ilObjectGUI
 assignObject ()
 
 prepareOutput ()
 prepare output More...
 
 setTitleAndDescription ()
 called by prepare output More...
 
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction ($a_list_gui)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 showMountWebfolderIcon ()
 
 setTabs ()
 set admin tabs @access public More...
 
 setAdminTabs ()
 set admin tabs @access public More...
 
 setLocator ()
 set Locator More...
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator ($a_omit=true)
 
 addAdminLocatorItems ($a_do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 initCreationForms ($a_new_type)
 Init creation froms. More...
 
 getCreationFormsHTML (array $a_forms)
 Get HTML for creation forms (accordion) More...
 
 initCreateForm ($a_new_type)
 Init object creation form. More...
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 Show didactic template types. More...
 
 addDidacticTemplateOptions (array &$a_options)
 Add custom templates. More...
 
 getDidacticTemplateVar ($a_type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $a_obj, $a_parent_node_id=null)
 Add object to tree at given position. More...
 
 afterSave (ilObject $a_new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 Init object edit form. More...
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 Get values for edit form. More...
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $a_form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $a_form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 initImportForm ($a_new_type)
 Init object import form. More...
 
 importFileObject ($parent_id=null)
 Import. More...
 
 afterImport (ilObject $a_new_object)
 Post (successful) object import hook. More...
 
 setFormAction ($a_cmd, $a_formaction)
 set specific form action for command More...
 
 getReturnLocation ($a_cmd, $a_location="")
 get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation ($a_cmd, $a_location)
 set specific return location for command More...
 
 getTargetFrame ($a_cmd, $a_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame ($a_cmd, $a_target_frame)
 set specific target frame for command More...
 
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu) More...
 
 getTemplateFile ($a_cmd, $a_type="")
 get a template blockfile format: tpl. More...
 
 getTitlesByRefId ($a_ref_ids)
 get Titles of objects this method is used for error messages in methods cut/copy/paste More...
 
 getTabs (&$tabs_gui)
 get tabs abstract method. More...
 
 __showButton ($a_cmd, $a_text, $a_target='')
 
 hitsperpageObject ()
 
__initTableGUI ()
 
 __setTableGUIBasicData (&$tbl, &$result_set, $a_from="")
 standard implementation for tables use 'from' variable use different initial setting of table More...
 
 redirectToRefId ($a_ref_id, $a_cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current $_GET["ref_id"] value More...
 
 fillCloneTemplate ($a_tpl_varname, $a_type)
 Fill object clone template This method can be called from any object GUI class that wants to offer object cloning. More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 setColumnSettings ($column_gui)
 May be overwritten in subclasses. More...
 
 checkPermission ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission and redirect on error. More...
 
 checkPermissionBool ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission. More...
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 handleAutoRating (ilObject $a_new_obj)
 Activate rating automatically if parent container setting. More...
 

Additional Inherited Members

- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 
 $ilias
 
 $objDefinition
 
 $tpl
 
 $tree
 
 $lng
 
 $data
 
 $object
 
 $ref_id
 
 $obj_id
 
 $maxcount
 
 $formaction
 
 $return_location
 
 $target_frame
 
 $tab_target_script
 
 $actions
 
 $sub_objects
 
 $omit_locator = false
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 

Detailed Description

Member Function Documentation

◆ __filterAssignedUsers()

ilObjExerciseGUI::__filterAssignedUsers (   $a_result)

Definition at line 1780 of file class.ilObjExerciseGUI.php.

1781 {
1782 foreach($a_result as $user)
1783 {
1784 if(!$this->object->members_obj->isAssigned($user["id"]))
1785 {
1786 $filtered[] = $user;
1787 }
1788 }
1789
1790 return $filtered ? $filtered : array();
1791 }

◆ __getDateSelect()

ilObjExerciseGUI::__getDateSelect (   $a_type,
  $a_selected 
)

Definition at line 1739 of file class.ilObjExerciseGUI.php.

1740 {
1741 switch($a_type)
1742 {
1743 case "hour":
1744 for($i=0; $i<24; $i++)
1745 {
1746 $hours[$i] = $i < 10 ? "0".$i : $i;
1747 }
1748 return ilUtil::formSelect($a_selected,"d_hour",$hours,false,true);
1749
1750 case "minutes":
1751 for($i=0;$i<60;$i++)
1752 {
1753 $minutes[$i] = $i < 10 ? "0".$i : $i;
1754 }
1755 return ilUtil::formSelect($a_selected,"d_minutes",$minutes,false,true);
1756
1757 case "day":
1758 for($i=1; $i<32; $i++)
1759 {
1760 $days[$i] = $i < 10 ? "0".$i : $i;
1761 }
1762 return ilUtil::formSelect($a_selected,"d_day",$days,false,true);
1763
1764 case "month":
1765 for($i=1; $i<13; $i++)
1766 {
1767 $month[$i] = $i < 10 ? "0".$i : $i;
1768 }
1769 return ilUtil::formSelect($a_selected,"d_month",$month,false,true);
1770
1771 case "year":
1772 for($i = date("Y",time());$i < date("Y",time()) + 3;++$i)
1773 {
1774 $year[$i] = $i;
1775 }
1776 return ilUtil::formSelect($a_selected,"d_year",$year,false,true);
1777 }
1778 }
static formSelect($selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.

References ilUtil\formSelect().

+ Here is the call graph for this function:

◆ __getMembersOfObject()

ilObjExerciseGUI::__getMembersOfObject (   $a_result,
  $a_type 
)

Definition at line 1434 of file class.ilObjExerciseGUI.php.

1435 {
1436
1437 switch($a_type)
1438 {
1439 case "usr":
1440 return $a_result;
1441 case "grp":
1442 include_once "./Modules/Group/classes/class.ilObjGroup.php";
1443
1444 $all_members = array();
1445 foreach($a_result as $group)
1446 {
1447 $tmp_grp_obj = ilObjectFactory::getInstanceByRefId($group["id"]);
1448
1449 $members = $tmp_grp_obj->getGroupMemberIds();
1450 $all_members = array_merge($all_members,$members);
1451 }
1452 // FORMAT ARRAY
1453 $all_members = array_unique($all_members);
1454 foreach($all_members as $member)
1455 {
1456 $result[] = array("id" => $member);
1457 }
1458 return $result;
1459 }
1460 return true;
1461 }
$result
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id

References $result, and ilObjectFactory\getInstanceByRefId().

+ Here is the call graph for this function:

◆ __showObjectSelect()

ilObjExerciseGUI::__showObjectSelect (   $a_result,
  $a_type 
)

Definition at line 1463 of file class.ilObjExerciseGUI.php.

1464 {
1465 include_once "./Services/Object/classes/class.ilObjectFactory.php";
1466
1467 foreach($a_result as $obj)
1468 {
1469 $tmp_obj =& ilObjectFactory::getInstanceByRefId($obj["id"]);
1470 $this->tpl->setCurrentBlock("OBJ_SELECT_ROW");
1471 $this->tpl->setVariable("OBJ_ROW_TITLE",$tmp_obj->getTitle());
1472 $this->tpl->setVariable("OBJ_ROW_ID",$tmp_obj->getRefId());
1473 $this->tpl->setVariable("OBJ_ROW_DESCRIPTION",$tmp_obj->getDescription());
1474 $this->tpl->parseCurrentBlock();
1475
1476 unset($tmp_obj);
1477 }
1478 $this->tpl->setCurrentBlock("OBJ_SELECT");
1479 $this->tpl->setVariable("OBJ_SELECT_TITLE",$this->lng->txt("title"));
1480 $this->tpl->setVariable("OBJ_SELECT_DESCRIPTION",$this->lng->txt("description"));
1481
1482 $this->tpl->setVariable("OBJ_BTN1_VALUE",$this->lng->txt("select"));
1483 $this->tpl->setVariable("OBJ_BTN2_VALUE",$this->lng->txt("cancel"));
1484 $this->tpl->parseCurrentBlock();
1485 }

References ilObjectFactory\getInstanceByRefId().

+ Here is the call graph for this function:

◆ _goto()

static ilObjExerciseGUI::_goto (   $a_target,
  $a_raw 
)
static

redirect script

Parameters
string$a_target

Definition at line 2055 of file class.ilObjExerciseGUI.php.

2056 {
2057 global $ilErr, $lng, $ilAccess;
2058
2059 $ass_id = null;
2060 $parts = explode("_", $a_raw);
2061 if(sizeof($parts) == 2)
2062 {
2063 $ass_id = (int)$parts[1];
2064 }
2065
2066 if ($ilAccess->checkAccess("read", "", $a_target))
2067 {
2068 if($ass_id)
2069 {
2070 $_GET["ass_id_goto"] = $ass_id;
2071 }
2072 $_GET["ref_id"] = $a_target;
2073 $_GET["cmd"] = "showOverview";
2074 $_GET["baseClass"] = "ilExerciseHandlerGUI";
2075 include("ilias.php");
2076 exit;
2077 }
2078 else if ($ilAccess->checkAccess("visible", "", $a_target))
2079 {
2080 $_GET["ref_id"] = $a_target;
2081 $_GET["cmd"] = "infoScreen";
2082 $_GET["baseClass"] = "ilExerciseHandlerGUI";
2083 include("ilias.php");
2084 exit;
2085 }
2086 else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
2087 {
2088 ilUtil::sendFailure(sprintf($lng->txt("msg_no_perm_read_item"),
2091 }
2092
2093 $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
2094 }
$_GET["client_id"]
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
exit
Definition: login.php:54

References $_GET, $ilErr, ilObjectGUI\$lng, ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), exit, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ addAssignmentObject()

ilObjExerciseGUI::addAssignmentObject ( )

Create assignment.

Definition at line 2137 of file class.ilObjExerciseGUI.php.

2138 {
2139 global $tpl, $ilTabs;
2140
2141 $this->checkPermission("write");
2142
2143 $ilTabs->activateTab("content");
2144 $this->addContentSubTabs("list_assignments");
2145
2146 $this->initAssignmentForm("create");
2147 $tpl->setContent($this->form->getHTML());
2148 }
initAssignmentForm($a_mode="create")
Init assignment form.
addContentSubTabs($a_activate)
Add subtabs of content view.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.

References ilObjectGUI\$tpl, addContentSubTabs(), ilObjectGUI\checkPermission(), and initAssignmentForm().

+ Here is the call graph for this function:

◆ addContentSubTabs()

ilObjExerciseGUI::addContentSubTabs (   $a_activate)

Add subtabs of content view.

Parameters
object$tabs_guiilTabsGUI object

Definition at line 1816 of file class.ilObjExerciseGUI.php.

1817 {
1818 global $ilTabs, $lng, $ilCtrl, $ilAccess;
1819
1820 $ilTabs->addSubTab("content", $lng->txt("view"),
1821 $ilCtrl->getLinkTarget($this, "showOverview"));
1822 if ($ilAccess->checkAccess("write", "", $this->ref_id))
1823 {
1824 $ilTabs->addSubTab("list_assignments", $lng->txt("edit"),
1825 $ilCtrl->getLinkTarget($this, "listAssignments"));
1826 }
1827 $ilTabs->activateSubTab($a_activate);
1828 }
global $ilCtrl
Definition: ilias.php:18

References $ilCtrl, and ilObjectGUI\$lng.

Referenced by addAssignmentObject(), adoptTeamAssignmentsFormObject(), askDirectionSubmissionObject(), confirmAssignmentsDeletionObject(), createBlogObject(), createTeamObject(), listAssignmentsObject(), listPublicSubmissionsObject(), saveAssignmentObject(), showOverviewObject(), and updateAssignmentObject().

+ Here is the caller graph for this function:

◆ addLocatorItems()

ilObjExerciseGUI::addLocatorItems ( )

Add locator item.

Reimplemented from ilObjectGUI.

Definition at line 2099 of file class.ilObjExerciseGUI.php.

2100 {
2101 global $ilLocator;
2102
2103 if (is_object($this->object))
2104 {
2105 // #17955
2106 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "showOverview"), "", $_GET["ref_id"]);
2107 }
2108 }

References $_GET.

◆ addMembersObject()

ilObjExerciseGUI::addMembersObject (   $a_user_ids = array())

Add new partipant.

Definition at line 1084 of file class.ilObjExerciseGUI.php.

1085 {
1086 global $ilAccess,$ilErr;
1087
1088 $this->checkPermission("write");
1089 if(!count($a_user_ids))
1090 {
1091 ilUtil::sendFailure($this->lng->txt("no_checkbox"));
1092 return false;
1093 }
1094
1095 if(!$this->object->members_obj->assignMembers($a_user_ids))
1096 {
1097 ilUtil::sendFailure($this->lng->txt("exc_members_already_assigned"));
1098 return false;
1099 }
1100 else
1101 {
1102 /* #16921
1103 // #9946 - create team for new user(s) for each team upload assignment
1104 foreach(ilExAssignment::getAssignmentDataOfExercise($this->object->getId()) as $ass)
1105 {
1106 if($ass["type"] == ilExAssignment::TYPE_UPLOAD_TEAM)
1107 {
1108 $ass_obj = new ilExAssignment($ass["id"]);
1109 foreach($a_user_ids as $user_id)
1110 {
1111 $ass_obj->getTeamId($user_id, true);
1112 }
1113 }
1114 }
1115 */
1116
1117 ilUtil::sendSuccess($this->lng->txt("exc_members_assigned"),true);
1118 }
1119
1120 $this->ctrl->redirect($this, "members");
1121 return true;
1122 }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.

References $ilErr, ilObjectGUI\checkPermission(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

Referenced by addUserFromAutoCompleteObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addSubmissionSubTabs()

ilObjExerciseGUI::addSubmissionSubTabs (   $a_activate)

adds tabs to tab gui object

Parameters
object$tabs_guiilTabsGUI object

Definition at line 1798 of file class.ilObjExerciseGUI.php.

1799 {
1800 global $ilTabs, $lng, $ilCtrl;
1801
1802 $ilTabs->addSubTab("assignment", $lng->txt("exc_assignment_view"),
1803 $ilCtrl->getLinkTarget($this, "members"));
1804 $ilTabs->addSubTab("participant", $lng->txt("exc_participant_view"),
1805 $ilCtrl->getLinkTarget($this, "showParticipant"));
1806 $ilTabs->addSubTab("grades", $lng->txt("exc_grades_overview"),
1807 $ilCtrl->getLinkTarget($this, "showGradesOverview"));
1808 $ilTabs->activateSubTab($a_activate);
1809 }

References $ilCtrl, and ilObjectGUI\$lng.

Referenced by membersObject(), showGradesOverviewObject(), showMultiFeedbackConfirmationTableObject(), showMultiFeedbackObject(), showParticipantObject(), and showTeamLogObject().

+ Here is the caller graph for this function:

◆ addTeamMemberActionObject()

ilObjExerciseGUI::addTeamMemberActionObject (   $a_user_ids = array())

Definition at line 3702 of file class.ilObjExerciseGUI.php.

3703 {
3704 global $ilUser;
3705
3706 $this->checkPermission("read");
3707
3708 if(!count($a_user_ids))
3709 {
3710 ilUtil::sendFailure($this->lng->txt("no_checkbox"));
3711 return false;
3712 }
3713
3714 $team_id = $this->ass->getTeamId($ilUser->getId());
3715 $has_files = $this->ass->getDeliveredFiles($this->object->getId(),
3716 $this->ass->getId(),
3717 $ilUser->getId());
3718 $all_members = $this->ass->getMembersOfAllTeams();
3719 $members = $this->ass->getTeamMembers($team_id);
3720
3721 foreach($a_user_ids as $user_id)
3722 {
3723 if(!in_array($user_id, $all_members))
3724 {
3725 $this->ass->addTeamMember($team_id, $user_id, $this->ref_id);
3726
3727 // #14277
3728 if (!$this->object->members_obj->isAssigned($user_id))
3729 {
3730 $this->object->members_obj->assignMember($user_id);
3731 }
3732
3733 // see ilObjExercise::deliverFile()
3734 if($has_files)
3735 {
3736 ilExAssignment::updateStatusReturnedForUser($this->ass->getId(), $user_id, 1);
3737 ilExerciseMembers::_writeReturned($this->object->getId(), $user_id, 1);
3738 }
3739
3740 // :TODO: log, notification
3741 }
3742 else if(!in_array($user_id, $members))
3743 {
3744 ilUtil::sendFailure($this->lng->txt("exc_members_already_assigned"), true);
3745 }
3746 }
3747
3748 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
3749 $this->ctrl->redirect($this, "submissionScreenTeam");
3750 }
updateStatusReturnedForUser($a_ass_id, $a_user_id, $a_status)
was: setStatusReturnedForMember($a_member_id,$a_status)
_writeReturned($a_obj_id, $a_user_id, $a_status)
Write returned status.
global $ilUser
Definition: imgupload.php:15

References $ilUser, ilExerciseMembers\_writeReturned(), ilObjectGUI\checkPermission(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilExAssignment\updateStatusReturnedForUser().

Referenced by addUserFromAutoCompleteObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addUserFromAutoCompleteObject()

ilObjExerciseGUI::addUserFromAutoCompleteObject ( )

Add user as member.

Definition at line 1035 of file class.ilObjExerciseGUI.php.

1036 {
1037 if(!strlen(trim($_POST['user_login'])))
1038 {
1039 ilUtil::sendFailure($this->lng->txt('msg_no_search_string'));
1040 $this->membersObject();
1041 return false;
1042 }
1043 $users = explode(',', $_POST['user_login']);
1044
1045 $user_ids = array();
1046 foreach($users as $user)
1047 {
1048 $user_id = ilObjUser::_lookupId($user);
1049
1050 if(!$user_id)
1051 {
1052 ilUtil::sendFailure($this->lng->txt('user_not_known'));
1053
1054 // add team member
1055 if($_REQUEST['ctx'])
1056 {
1057 return $this->submissionScreenTeamObject();
1058 }
1059 else
1060 {
1061 return $this->membersObject();
1062 }
1063 }
1064
1065 $user_ids[] = $user_id;
1066 }
1067
1068 if($_REQUEST['ctx'])
1069 {
1070 return $this->addTeamMemberActionObject($user_ids);
1071 }
1072
1073 if(!$this->addMembersObject($user_ids));
1074 {
1075 $this->membersObject();
1076 return false;
1077 }
1078 return true;
1079 }
addTeamMemberActionObject($a_user_ids=array())
submissionScreenTeamObject()
Displays a form which allows members to manage team uploads.
membersObject()
All participants and submission of one assignment.
addMembersObject($a_user_ids=array())
Add new partipant.
static _lookupId($a_user_str)
lookup id by login
$_POST['username']
Definition: cron.php:12
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7

References $_POST, $_REQUEST, ilObjUser\_lookupId(), addMembersObject(), addTeamMemberActionObject(), membersObject(), ilUtil\sendFailure(), and submissionScreenTeamObject().

+ Here is the call graph for this function:

◆ adoptTeamAssignmentsFormObject()

ilObjExerciseGUI::adoptTeamAssignmentsFormObject ( )

Definition at line 4976 of file class.ilObjExerciseGUI.php.

4977 {
4978 global $ilCtrl, $ilTabs, $lng, $tpl;
4979
4980 $this->checkPermission("write");
4981
4982 if(!$this->ass)
4983 {
4984 $ilCtrl->redirect($this, "listAssignments");
4985 }
4986
4987 $ilTabs->activateTab("content");
4988 $this->addContentSubTabs("list_assignments");
4989
4990 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
4991 $form = new ilPropertyFormGUI();
4992 $form->setTitle($lng->txt("exc_team_assignment_adopt"));
4993 $form->setFormAction($ilCtrl->getFormAction($this, "adoptTeamAssignments"));
4994
4995 $options = ilExAssignment::getAdoptableTeamAssignments($this->ass->getExerciseId());
4996
4997 // we must not have existing teams in assignment
4998 if(array_key_exists($this->ass->getId(), $options))
4999 {
5000 $ilCtrl->redirect($this, "listAssignments");
5001 }
5002
5003 $teams = new ilRadioGroupInputGUI($lng->txt("exc_assignment"), "ass_adpt");
5004 $teams->setValue(-1);
5005
5006 $teams->addOption(new ilRadioOption($lng->txt("exc_team_assignment_adopt_none"), -1));
5007
5008 foreach($options as $id => $item)
5009 {
5010 $option = new ilRadioOption($item["title"], $id);
5011 $option->setInfo($lng->txt("exc_team_assignment_adopt_teams").": ".$item["teams"]);
5012 $teams->addOption($option);
5013 }
5014
5015 $form->addItem($teams);
5016
5017 $form->addCommandButton("adoptTeamAssignments", $lng->txt("save"));
5018 $form->addCommandButton("listAssignments", $lng->txt("cancel"));
5019
5020 $tpl->setContent($form->getHTML());
5021 }
static getAdoptableTeamAssignments($a_exercise_id, $a_exclude_ass_id=null, $a_user_id=null)
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
if(!is_array($argv)) $options

References $ilCtrl, ilObjectGUI\$lng, $options, ilObjectGUI\$tpl, addContentSubTabs(), ilObjectGUI\checkPermission(), and ilExAssignment\getAdoptableTeamAssignments().

+ Here is the call graph for this function:

◆ adoptTeamAssignmentsObject()

ilObjExerciseGUI::adoptTeamAssignmentsObject ( )

Definition at line 5023 of file class.ilObjExerciseGUI.php.

5024 {
5025 global $ilCtrl, $lng;
5026
5027 $this->checkPermission("write");
5028
5029 $src_ass_id = (int)$_POST["ass_adpt"];
5030
5031 if($this->ass && $src_ass_id > 0)
5032 {
5033 // no notifications, assignment is not ready
5034 $this->ass->adoptTeams($src_ass_id);
5035
5036 ilUtil::sendSuccess($lng->txt("settings_saved"), true);
5037 }
5038
5039 $ilCtrl->redirect($this, "listAssignments");
5040 }

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\checkPermission(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ afterSave()

ilObjExerciseGUI::afterSave ( ilObject  $a_new_object)
protected

Post (successful) object creation hook.

Parameters
ilObject$a_new_object

Reimplemented from ilObjectGUI.

Definition at line 771 of file class.ilObjExerciseGUI.php.

772 {
773 $a_new_object->saveData();
774
775 ilUtil::sendSuccess($this->lng->txt("exc_added"), true);
776 ilUtil::redirect("ilias.php?baseClass=ilExerciseHandlerGUI&ref_id=".$a_new_object->getRefId()."&cmd=addAssignment");
777 }
getRefId()
get reference id @access public
static redirect($a_script)
http redirect to other script

References ilObject\getRefId(), ilUtil\redirect(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ askDirectionSubmissionObject()

ilObjExerciseGUI::askDirectionSubmissionObject ( )
protected

Definition at line 3237 of file class.ilObjExerciseGUI.php.

3238 {
3239 global $tpl;
3240
3241 $this->tabs_gui->setTabActive("content");
3242 $this->addContentSubTabs("content");
3243
3244 include_once "Services/Utilities/classes/class.ilConfirmationGUI.php";
3245 $conf = new ilConfirmationGUI();
3246
3247
3248 if($_REQUEST["blog_id"])
3249 {
3250 $this->ctrl->setParameter($this, "blog_id", $_REQUEST["blog_id"]);
3251 $txt = $this->lng->txt("exc_direct_submit_blog");
3252 }
3253 else
3254 {
3255 $this->ctrl->setParameter($this, "prtf_id", $_REQUEST["prtf_id"]);
3256 $txt = $this->lng->txt("exc_direct_submit_portfolio");
3257 }
3258 $conf->setFormAction($this->ctrl->getFormAction($this, "directSubmit"));
3259
3260 $conf->setHeaderText($txt);
3261 $conf->setConfirm($this->lng->txt("exc_direct_submit"), "directSubmit");
3262 $conf->setCancel($this->lng->txt("cancel"), "showOverview");
3263
3264 $tpl->setContent($conf->getHTML());
3265 }
Confirmation screen class.
$txt
Definition: error.php:10

References $_REQUEST, ilObjectGUI\$tpl, $txt, and addContentSubTabs().

+ Here is the call graph for this function:

◆ cancelEditObject()

ilObjExerciseGUI::cancelEditObject ( )

Definition at line 887 of file class.ilObjExerciseGUI.php.

888 {
889 $this->ctrl->redirect($this, "view");
890 }

◆ cancelMultiFeedbackObject()

ilObjExerciseGUI::cancelMultiFeedbackObject ( )

Cancel Multi Feedback.

Definition at line 4786 of file class.ilObjExerciseGUI.php.

4787 {
4788 $this->checkPermission("write");
4789 $ass = new ilExAssignment((int) $_GET["ass_id"]);
4790 $ass->clearMultiFeedbackDirectory();
4791
4792 $this->ctrl->redirect($this, "members");
4793 }
Exercise assignment.

References $_GET, and ilObjectGUI\checkPermission().

+ Here is the call graph for this function:

◆ canPeerReviewBeEdited()

ilObjExerciseGUI::canPeerReviewBeEdited ( )
protected

Definition at line 4296 of file class.ilObjExerciseGUI.php.

4297 {
4298 // #16130
4299 return ($this->ass &&
4300 $this->ass->getPeerReview() &&
4301 $this->ass->getDeadline() &&
4302 $this->ass->getDeadline() < time() &&
4303 (!$this->ass->getPeerReviewDeadline() ||
4304 $this->ass->getPeerReviewDeadline() > time()));
4305 }

Referenced by editPeerReviewObject(), updatePeerReviewCommentsObject(), updatePeerReviewObject(), and updatePeerReviewTextObject().

+ Here is the caller graph for this function:

◆ certificateObject()

ilObjExerciseGUI::certificateObject ( )

Definition at line 3577 of file class.ilObjExerciseGUI.php.

3578 {
3579 $this->setSettingsSubTabs();
3580 $this->tabs_gui->activateTab("settings");
3581 $this->tabs_gui->activateSubTab("certificate");
3582
3583 include_once "./Services/Certificate/classes/class.ilCertificateGUI.php";
3584 include_once "./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
3585 $output_gui = new ilCertificateGUI(new ilExerciseCertificateAdapter($this->object));
3586 $output_gui->certificateEditor();
3587 }
GUI class to create PDF certificates.

References setSettingsSubTabs().

+ Here is the call graph for this function:

◆ confirmAssignmentsDeletionObject()

ilObjExerciseGUI::confirmAssignmentsDeletionObject ( )

Confirm assignments deletion.

Definition at line 2825 of file class.ilObjExerciseGUI.php.

2826 {
2827 global $ilCtrl, $tpl, $lng, $ilTabs;
2828
2829 $this->checkPermission("write");
2830
2831 $ilTabs->activateTab("content");
2832 $this->addContentSubTabs("list_assignments");
2833
2834 if (!is_array($_POST["id"]) || count($_POST["id"]) == 0)
2835 {
2836 ilUtil::sendInfo($lng->txt("no_checkbox"), true);
2837 $ilCtrl->redirect($this, "listAssignments");
2838 }
2839 else
2840 {
2841 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
2842 $cgui = new ilConfirmationGUI();
2843 $cgui->setFormAction($ilCtrl->getFormAction($this));
2844 $cgui->setHeaderText($lng->txt("exc_conf_del_assignments"));
2845 $cgui->setCancel($lng->txt("cancel"), "listAssignments");
2846 $cgui->setConfirm($lng->txt("delete"), "deleteAssignments");
2847
2848 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2849
2850 foreach ($_POST["id"] as $i)
2851 {
2852 $cgui->addItem("id[]", $i, ilExAssignment::lookupTitle($i));
2853 }
2854
2855 $tpl->setContent($cgui->getHTML());
2856 }
2857 }
static lookupTitle($a_id)
Lookup title.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, addContentSubTabs(), ilObjectGUI\checkPermission(), ilExAssignment\lookupTitle(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ confirmDeassignMembersObject()

ilObjExerciseGUI::confirmDeassignMembersObject ( )

Confirm deassigning members.

Definition at line 1531 of file class.ilObjExerciseGUI.php.

1532 {
1533 global $ilCtrl, $tpl, $lng, $ilTabs;
1534
1535 $this->checkPermission("write");
1536 $ilTabs->activateTab("grades");
1537
1538 if (!is_array($_POST["member"]) || count($_POST["member"]) == 0)
1539 {
1540 ilUtil::sendFailure($lng->txt("no_checkbox"), true);
1541 $ilCtrl->redirect($this, "members");
1542 }
1543 else
1544 {
1545 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1546 $cgui = new ilConfirmationGUI();
1547 $cgui->setFormAction($ilCtrl->getFormAction($this));
1548 $cgui->setHeaderText($lng->txt("exc_msg_sure_to_deassign_participant"));
1549 $cgui->setCancel($lng->txt("cancel"), "members");
1550 $cgui->setConfirm($lng->txt("remove"), "deassignMembers");
1551
1552 // team upload?
1553 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
1554 {
1555 $members = array();
1556 foreach(array_keys($_POST["member"]) as $user_id)
1557 {
1558 $tmembers = ilExAssignment::getTeamMembersByAssignmentId($this->ass->getId(), $user_id);
1559 foreach($tmembers as $tuser_id)
1560 {
1561 $members[$tuser_id] = 1;
1562 }
1563 }
1564 }
1565 else
1566 {
1567 $members = $_POST["member"];
1568 }
1569
1570 include_once("./Services/User/classes/class.ilUserUtil.php");
1571 foreach ($members as $k => $m)
1572 {
1573 $cgui->addItem("member[$k]", $m,
1574 ilUserUtil::getNamePresentation((int) $k, false, false, "", true));
1575 }
1576
1577 $tpl->setContent($cgui->getHTML());
1578 }
1579 }
static getTeamMembersByAssignmentId($a_ass_id, $a_user_id)
Find team members by assignment and team member.
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)
Default behaviour is:

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), ilUserUtil\getNamePresentation(), ilExAssignment\getTeamMembersByAssignmentId(), ilUtil\sendFailure(), and ilExAssignment\TYPE_UPLOAD_TEAM.

+ Here is the call graph for this function:

◆ confirmDeleteDeliveredObject()

ilObjExerciseGUI::confirmDeleteDeliveredObject ( )

Confirm deletion of delivered files.

Definition at line 362 of file class.ilObjExerciseGUI.php.

363 {
364 global $ilCtrl, $tpl, $lng, $ilUser;
365
366 $this->checkPermission("read");
367
368 $this->tabs_gui->clearTargets();
369 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
370 $this->ctrl->getLinkTarget($this, "submissionScreen"));
371
372 // $this->tabs_gui->setTabActive("content");
373 // $this->addContentSubTabs("content");
374
375 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
376 {
377 ilUtil::sendFailure($this->lng->txt("exercise_time_over"), true);
378 $ilCtrl->redirect($this, "submissionScreen");
379 }
380
381 if (!is_array($_POST["delivered"]) || count($_POST["delivered"]) == 0)
382 {
383 ilUtil::sendFailure($lng->txt("no_checkbox"), true);
384 $ilCtrl->redirect($this, "submissionScreen");
385 }
386 else
387 {
388 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
389 $cgui = new ilConfirmationGUI();
390 $cgui->setFormAction($ilCtrl->getFormAction($this));
391 $cgui->setHeaderText($lng->txt("info_delete_sure"));
392 $cgui->setCancel($lng->txt("cancel"), "submissionScreen");
393 $cgui->setConfirm($lng->txt("delete"), "deleteDelivered");
394
395 $files = ilExAssignment::getDeliveredFiles($this->object->getId(), (int) $_GET["ass_id"],
396 $ilUser->getId());
397//var_dump($files);
398 foreach ($_POST["delivered"] as $i)
399 {
400 reset ($files);
401 $title = "";
402 foreach ($files as $f)
403 {
404 if ($f["returned_id"] == $i)
405 {
406 $title = $f["filetitle"];
407 }
408 }
409 $cgui->addItem("delivered[]", $i, $title);
410 }
411
412 $tpl->setContent($cgui->getHTML());
413 }
414 }
getDeliveredFiles($a_exc_id, $a_ass_id, $a_user_id, $a_filter_empty_filename=false)
was: getDeliveredFiles($a_member_id)

References $_GET, $_POST, $ilCtrl, $ilUser, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), ilExAssignment\getDeliveredFiles(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ confirmDeleteTeamObject()

ilObjExerciseGUI::confirmDeleteTeamObject ( )

Definition at line 3752 of file class.ilObjExerciseGUI.php.

3753 {
3754 $this->confirmRemoveTeamMemberObject(true);
3755 }
confirmRemoveTeamMemberObject($a_full_delete=false)

References confirmRemoveTeamMemberObject().

+ Here is the call graph for this function:

◆ confirmRemoveTeamMemberObject()

ilObjExerciseGUI::confirmRemoveTeamMemberObject (   $a_full_delete = false)

Definition at line 3757 of file class.ilObjExerciseGUI.php.

3758 {
3759 global $ilUser, $tpl;
3760
3761 $team_id = $this->ass->getTeamId($ilUser->getId());
3762 $members = $this->ass->getTeamMembers($team_id);
3763
3764 $ids = (bool)$a_full_delete
3765 ? $members
3766 : $_POST["id"];
3767
3768 if(!sizeof($ids))
3769 {
3770 ilUtil::sendFailure($this->lng->txt("select_one"), true);
3771 $this->ctrl->redirect($this, "submissionScreenTeam");
3772 }
3773
3774 $team_deleted = false;
3775 if(sizeof($members) <= sizeof($ids))
3776 {
3777 if(sizeof($members) == 1 && $members[0] == $ilUser->getId())
3778 {
3779 // direct team deletion - no confirmation
3780 return $this->removeTeamMemberObject($a_full_delete);
3781 }
3782 else
3783 {
3784 ilUtil::sendFailure($this->lng->txt("exc_team_at_least_one"), true);
3785 $this->ctrl->redirect($this, "submissionScreenTeam");
3786 }
3787 }
3788
3789 // #11957
3790 $team_id = $this->initTeamSubmission("showOverview");
3791
3792 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
3793 $cgui = new ilConfirmationGUI();
3794 $cgui->setFormAction($this->ctrl->getFormAction($this));
3795 $cgui->setHeaderText($this->lng->txt("exc_team_member_remove_sure"));
3796 $cgui->setCancel($this->lng->txt("cancel"), "submissionScreenTeam");
3797 $cgui->setConfirm($this->lng->txt("remove"), "removeTeamMember");
3798
3799 $files = ilExAssignment::getDeliveredFiles($this->ass->getExerciseId(),
3800 $this->ass->getId(), $ilUser->getId());
3801
3802 include_once "Services/User/classes/class.ilUserUtil.php";
3803
3804 foreach($ids as $id)
3805 {
3806 $details = array();
3807 foreach ($files as $file)
3808 {
3809 if($file["owner_id"] == $id)
3810 {
3811 $details[] = $file["filetitle"];
3812 }
3813 }
3814 $uname = ilUserUtil::getNamePresentation($id);
3815 if(sizeof($details))
3816 {
3817 $uname .= ": ".implode(", ", $details);
3818 }
3819 $cgui->addItem("id[]", $id, $uname);
3820 }
3821
3822 $tpl->setContent($cgui->getHTML());
3823 }
print $file
removeTeamMemberObject($a_full_delete=false)
initTeamSubmission($a_back_cmd, $a_mandatory_team=true)

References $_POST, $file, $ilUser, ilObjectGUI\$tpl, ilExAssignment\getDeliveredFiles(), ilUserUtil\getNamePresentation(), initTeamSubmission(), removeTeamMemberObject(), and ilUtil\sendFailure().

Referenced by confirmDeleteTeamObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ confirmResetPeerReviewObject()

ilObjExerciseGUI::confirmResetPeerReviewObject ( )

Definition at line 4609 of file class.ilObjExerciseGUI.php.

4610 {
4611 global $ilCtrl, $tpl, $ilTabs;
4612
4613 if(!$this->ass ||
4614 !$this->ass->getPeerReview())
4615 {
4616 $ilCtrl->redirect($this, "showOverview");
4617 }
4618
4619 $this->checkPermission("write");
4620
4621 $ilTabs->clearTargets();
4622
4623 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
4624 $cgui = new ilConfirmationGUI();
4625 $cgui->setFormAction($ilCtrl->getFormAction($this));
4626 $cgui->setHeaderText(sprintf($this->lng->txt("exc_peer_review_reset_sure"), $this->ass->getTitle()));
4627 $cgui->setCancel($this->lng->txt("cancel"), "showPeerReviewOverview");
4628 $cgui->setConfirm($this->lng->txt("delete"), "resetPeerReview");
4629
4630 $tpl->setContent($cgui->getHTML());
4631 }

References $ilCtrl, ilObjectGUI\$tpl, and ilObjectGUI\checkPermission().

+ Here is the call graph for this function:

◆ createAdoptedTeamObject()

ilObjExerciseGUI::createAdoptedTeamObject ( )

Definition at line 4951 of file class.ilObjExerciseGUI.php.

4952 {
4953 global $ilCtrl, $ilUser, $lng;
4954
4955 $this->checkPermission("read");
4956
4957 if($this->ass->getDeadline() == 0 ||
4958 mktime() < $this->ass->getDeadline())
4959 {
4960 $src_ass_id = (int)$_POST["ass_adpt"];
4961 if($src_ass_id > 0)
4962 {
4963 $this->ass->adoptTeams($src_ass_id, $ilUser->getId(), $this->ref_id);
4964 }
4965 else
4966 {
4967 $this->ass->getTeamId($ilUser->getId(), true);
4968 }
4969
4970 ilUtil::sendSuccess($lng->txt("settings_saved"), true);
4971 }
4972
4973 $ilCtrl->redirect($this, "showOverview");
4974 }

References $_POST, $ilCtrl, $ilUser, ilObjectGUI\$lng, ilObjectGUI\$ref_id, ilObjectGUI\checkPermission(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ createBlogObject()

ilObjExerciseGUI::createBlogObject ( )
protected

Definition at line 3100 of file class.ilObjExerciseGUI.php.

3101 {
3102 global $ilUser;
3103
3104 $this->checkPermission("read");
3105
3106 // $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, "showOverview"));
3107
3108 $this->tabs_gui->setTabActive("content");
3109 $this->addContentSubTabs("content");
3110
3111 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
3112 {
3113 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
3114 }
3115
3116 $tpl = new ilTemplate("tpl.exc_select_resource.html", true, true, "Modules/Exercise");
3117 $tpl->setVariable("TXT_TITLE", $this->lng->txt("exc_create_blog").": ".$this->ass->getTitle());
3118 $tpl->setVariable("TREE", $this->renderWorkspaceExplorer("createBlog"));
3119 $tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
3120 $tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
3121 $tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
3122 $tpl->setVariable("CMD_SUBMIT", "saveBlog");
3123 $tpl->setVariable("CMD_CANCEL", "showOverview");
3124
3125 ilUtil::sendInfo($this->lng->txt("exc_create_blog_select_info"));
3126
3127 $this->tpl->setContent($tpl->get());
3128 }
special template class to simplify handling of ITX/PEAR

References $ilUser, ilObjectGUI\$tpl, addContentSubTabs(), ilObjectGUI\checkPermission(), renderWorkspaceExplorer(), and ilUtil\sendInfo().

Referenced by saveBlogObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createPortfolioObject()

ilObjExerciseGUI::createPortfolioObject ( )
protected

Definition at line 3503 of file class.ilObjExerciseGUI.php.

3504 {
3505 global $ilUser;
3506
3507 $this->checkPermission("read");
3508
3509 include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
3510 $portfolio = new ilObjPortfolio();
3511 $portfolio->setTitle($this->object->getTitle()." - ".$this->ass->getTitle());
3512 $portfolio->create();
3513
3514 $this->object->addResourceObject($portfolio->getId(), $this->ass->getId(), $ilUser->getId());
3515
3516 ilUtil::sendSuccess($this->lng->txt("exc_portfolio_created"), true);
3517 $this->ctrl->redirect($this, "showOverview");
3518 }

References $ilUser, ilObjectGUI\checkPermission(), and ilUtil\sendSuccess().

Referenced by setSelectedPortfolioTemplateObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createPortfolioTemplateObject()

ilObjExerciseGUI::createPortfolioTemplateObject ( ilPropertyFormGUI  $a_form = null)
protected

Definition at line 3446 of file class.ilObjExerciseGUI.php.

3447 {
3448 $this->checkPermission("read");
3449
3450 include_once "Modules/Portfolio/classes/class.ilObjPortfolioTemplate.php";
3452 if(!sizeof($templates))
3453 {
3454 $this->ctrl->redirect($this, "showOverview");
3455 }
3456
3457 $this->tabs_gui->clearTargets();
3458 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, "showOverview"));
3459
3460 if(!$a_form)
3461 {
3462 $a_form = $this->initPortfolioTemplateForm($templates);
3463 }
3464
3465 $this->tpl->setContent($a_form->getHTML());
3466 }
initPortfolioTemplateForm(array $a_templates)
static getAvailablePortfolioTemplates($a_permission="read")

References ilObjectGUI\checkPermission(), ilObjPortfolioTemplate\getAvailablePortfolioTemplates(), and initPortfolioTemplateForm().

Referenced by setSelectedPortfolioTemplateObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createSingleMemberTeamObject()

ilObjExerciseGUI::createSingleMemberTeamObject ( )

Definition at line 3892 of file class.ilObjExerciseGUI.php.

3893 {
3894 if(isset($_GET["lmem"]))
3895 {
3896 $user_id = $_GET["lmem"];
3897 $cmd = "members";
3898 }
3899 else
3900 {
3901 $user_id = $_GET["lpart"];
3902 $cmd = "showParticipant";
3903 }
3904 if($user_id)
3905 {
3906 $this->ass->getTeamId($user_id, true);
3907 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
3908 }
3909 $this->ctrl->redirect($this, $cmd);
3910 }
$cmd
Definition: sahs_server.php:35

References $_GET, $cmd, and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ createTeamObject()

ilObjExerciseGUI::createTeamObject ( )

Definition at line 4871 of file class.ilObjExerciseGUI.php.

4872 {
4873 global $ilCtrl, $ilUser, $ilTabs, $lng, $tpl;
4874
4875 $this->checkPermission("read");
4876
4877 if($this->ass->getDeadline() == 0 ||
4878 mktime() < $this->ass->getDeadline())
4879 {
4880 $options = ilExAssignment::getAdoptableTeamAssignments($this->ass->getExerciseId(), $this->ass->getId(), $ilUser->getId());
4881 if(sizeof($options))
4882 {
4883 $ilTabs->activateTab("content");
4884 $this->addContentSubTabs("content");
4885
4886 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
4887 $form = new ilPropertyFormGUI();
4888 $form->setTitle($lng->txt("exc_team_assignment_adopt_user"));
4889 $form->setFormAction($ilCtrl->getFormAction($this, "createAdoptedTeam"));
4890
4891
4892 $teams = new ilRadioGroupInputGUI($lng->txt("exc_assignment"), "ass_adpt");
4893 $teams->setValue(-1);
4894
4895 $teams->addOption(new ilRadioOption($lng->txt("exc_team_assignment_adopt_none_user"), -1));
4896
4897 $current_map = ilExAssignment::getAssignmentTeamMap($this->ass->getId());
4898
4899 include_once "Services/User/classes/class.ilUserUtil.php";
4900 foreach($options as $id => $item)
4901 {
4902 $members = array();
4903 $free = false;
4904 foreach($item["user_team"] as $user_id)
4905 {
4906 $members[$user_id] = ilUserUtil::getNamePresentation($user_id);
4907
4908 if(array_key_exists($user_id, $current_map))
4909 {
4910 $members[$user_id] .= " (".$lng->txt("exc_team_assignment_adopt_already_assigned").")";
4911 }
4912 else
4913 {
4914 $free = true;
4915 }
4916 }
4917 asort($members);
4918 $members = implode("<br />", $members);
4919 $option = new ilRadioOption($item["title"], $id);
4920 $option->setInfo($members);
4921 if(!$free)
4922 {
4923 $option->setDisabled(true);
4924 }
4925 $teams->addOption($option);
4926 }
4927
4928 $form->addItem($teams);
4929
4930 $form->addCommandButton("createAdoptedTeam", $lng->txt("save"));
4931 $form->addCommandButton("showOverview", $lng->txt("cancel"));
4932
4933 $tpl->setContent($form->getHTML());
4934 return;
4935 }
4936
4937 $this->ass->getTeamId($ilUser->getId(), true);
4938
4939 // #18046
4940 if (!$this->object->members_obj->isAssigned($ilUser->getId()))
4941 {
4942 $this->object->members_obj->assignMember($ilUser->getId());
4943 }
4944
4945 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
4946 }
4947
4948 $ilCtrl->redirect($this, "showOverview");
4949 }
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.

References $ilCtrl, $ilUser, ilObjectGUI\$lng, $options, ilObjectGUI\$tpl, addContentSubTabs(), ilObjectGUI\checkPermission(), ilExAssignment\getAdoptableTeamAssignments(), ilExAssignment\getAssignmentTeamMap(), ilUserUtil\getNamePresentation(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ deassignMembersObject()

ilObjExerciseGUI::deassignMembersObject ( )

Deassign members from exercise.

Definition at line 1584 of file class.ilObjExerciseGUI.php.

1585 {
1586 global $ilCtrl, $lng;
1587
1588 $this->checkPermission("write");
1589
1590 if(is_array($_POST["member"]))
1591 {
1592 foreach(array_keys($_POST["member"]) as $usr_id)
1593 {
1594 $this->object->members_obj->deassignMember((int) $usr_id);
1595 }
1596 ilUtil::sendSuccess($lng->txt("exc_msg_participants_removed"), true);
1597 $ilCtrl->redirect($this, "members");
1598 }
1599 else
1600 {
1601 ilUtil::sendFailure($this->lng->txt("no_checkbox"),true);
1602 $ilCtrl->redirect($this, "members");
1603 }
1604 }

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\checkPermission(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

Referenced by updateMembersObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteAssignmentsObject()

ilObjExerciseGUI::deleteAssignmentsObject ( )

Delete assignments.

Definition at line 2862 of file class.ilObjExerciseGUI.php.

2863 {
2864 global $ilDB, $ilCtrl, $lng;
2865
2866 $this->checkPermission("write");
2867
2868 $delete = false;
2869 if (is_array($_POST["id"]))
2870 {
2871 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2872 foreach($_POST["id"] as $id)
2873 {
2874 $ass = new ilExAssignment(ilUtil::stripSlashes($id));
2875 $ass->delete();
2876 $delete = true;
2877 }
2878 }
2879
2880 if ($delete)
2881 {
2882 ilUtil::sendSuccess($lng->txt("exc_assignments_deleted"), true);
2883 }
2884 $ilCtrl->redirect($this, "listAssignments");
2885 }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
global $ilDB

References $_POST, $ilCtrl, $ilDB, ilObjectGUI\$lng, ilObjectGUI\checkPermission(), ilUtil\sendSuccess(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ deleteDeliveredObject()

ilObjExerciseGUI::deleteDeliveredObject ( )

Delete file(s) submitted by user.

Parameters

return

Definition at line 422 of file class.ilObjExerciseGUI.php.

423 {
424 global $ilUser, $ilCtrl;
425
426 $this->checkPermission("read");
427
428 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
429 {
430 ilUtil::sendFailure($this->lng->txt("exercise_time_over"), true);
431 $ilCtrl->redirect($this, "submissionScreen");
432 }
433
434 if (count($_POST["delivered"]) && (mktime() < $this->ass->getDeadline() ||
435 $this->ass->getDeadline() == 0))
436 {
437 $this->object->deleteDeliveredFiles($this->object->getId(), (int) $_GET["ass_id"],
438 $_POST["delivered"], $ilUser->id);
439
440 $this->object->handleSubmission((int)$_GET['ass_id']);
441
442 ilUtil::sendSuccess($this->lng->txt("exc_submitted_files_deleted"), true);
443 }
444 else
445 {
446 ilUtil::sendFailure($this->lng->txt("please_select_a_delivered_file_to_delete"), true);
447 }
448 $ilCtrl->redirect($this, "submissionScreen");
449 }

References $_GET, $_POST, $ilCtrl, $ilUser, ilObjectGUI\checkPermission(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ deliverFileObject()

ilObjExerciseGUI::deliverFileObject ( )

Upload files.

Definition at line 578 of file class.ilObjExerciseGUI.php.

579 {
580 global $ilUser, $lng, $ilCtrl;
581
582 $this->checkPermission("read");
583
584 // #15322
585 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
586 {
587 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
588 return;
589 }
590
591 $success = false;
592 foreach ($_FILES["deliver"]["name"] as $k => $v)
593 {
594 $file = array(
595 "name" => $_FILES["deliver"]["name"][$k],
596 "type" => $_FILES["deliver"]["type"][$k],
597 "tmp_name" => $_FILES["deliver"]["tmp_name"][$k],
598 "error" => $_FILES["deliver"]["error"][$k],
599 "size" => $_FILES["deliver"]["size"][$k],
600 );
601 if(!$this->object->deliverFile($file, (int) $_GET["ass_id"], $ilUser->id))
602 {
603 ilUtil::sendFailure($this->lng->txt("exc_upload_error"), true);
604 }
605 else
606 {
607 $success = true;
608 }
609 }
610
611 if($success)
612 {
613 ilUtil::sendSuccess($this->lng->txt("file_added"), true);
614
615 $this->sendNotifications((int)$_GET["ass_id"]);
616 $this->object->handleSubmission((int)$_GET['ass_id']);
617 }
618 $ilCtrl->redirect($this, "submissionScreen");
619 }
$success
Definition: Utf8Test.php:87
sendNotifications($assignment_id)
Send submission notifications.

References $_GET, $file, $ilCtrl, $ilUser, ilObjectGUI\$lng, $success, ilObjectGUI\checkPermission(), ilUtil\sendFailure(), ilUtil\sendInfo(), sendNotifications(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ deliverUnzipObject()

ilObjExerciseGUI::deliverUnzipObject ( )

Upload zip file.

Definition at line 624 of file class.ilObjExerciseGUI.php.

625 {
626 global $ilCtrl;
627
628 $this->checkPermission("read");
629
630 // #15322
631 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
632 {
633 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
634 return;
635 }
636
637 if (preg_match("/zip/",$_FILES["deliver"]["type"]) == 1)
638 {
639 if($this->object->processUploadedFile($_FILES["deliver"]["tmp_name"], "deliverFile", false,
640 (int) $_GET["ass_id"]))
641 {
642 $this->sendNotifications((int)$_GET["ass_id"]);
643 $this->object->handleSubmission((int)$_GET['ass_id']);
644 }
645 }
646
647 $ilCtrl->redirect($this, "submissionScreen");
648 }

References $_GET, $ilCtrl, ilObjectGUI\checkPermission(), ilUtil\sendInfo(), and sendNotifications().

+ Here is the call graph for this function:

◆ directSubmitObject()

ilObjExerciseGUI::directSubmitObject ( )
protected

Definition at line 3267 of file class.ilObjExerciseGUI.php.

3268 {
3269 global $ilUser;
3270
3271 $success = false;
3272
3273 // submit current version of blog
3274 if($_REQUEST["blog_id"])
3275 {
3276 $success = $this->submitBlog($_REQUEST["blog_id"]);
3277 $this->ctrl->setParameter($this, "blog_id", "");
3278 }
3279 // submit current version of portfolio
3280 else if($_REQUEST["prtf_id"])
3281 {
3282 $success = $this->submitPortfolio($_REQUEST["prtf_id"]);
3283 $this->ctrl->setParameter($this, "prtf_id", "");
3284 }
3285
3286 if($success)
3287 {
3288 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
3289 }
3290 else
3291 {
3292 ilUtil::sendFailure($this->lng->txt("msg_failed"), true);
3293 }
3294 $this->ctrl->redirect($this, "showOverview");
3295 }
submitPortfolio($a_portfolio_id)
Submit portfolio for assignment.
submitBlog($a_blog_id)
Submit blog for assignment.

References $_REQUEST, $ilUser, $success, ilUtil\sendFailure(), ilUtil\sendSuccess(), submitBlog(), and submitPortfolio().

+ Here is the call graph for this function:

◆ downloadAllObject()

ilObjExerciseGUI::downloadAllObject ( )

Download all submitted files (of all members).

Definition at line 1407 of file class.ilObjExerciseGUI.php.

1408 {
1409 $this->checkPermission("write");
1410
1411 $members = array();
1412
1413 foreach($this->object->members_obj->getMembers() as $member_id)
1414 {
1415 // update download time
1416 ilExAssignment::updateTutorDownloadTime($this->object->getId(),
1417 (int) $_GET["ass_id"], $member_id);
1418
1419 // get member object (ilObjUser)
1420 if (ilObject::_exists($member_id))
1421 {
1422 $tmp_obj =& ilObjectFactory::getInstanceByObjId($member_id);
1423 $members[$member_id] = $tmp_obj->getFirstname() . " " . $tmp_obj->getLastname();
1424 unset($tmp_obj);
1425 }
1426 }
1427
1428 ilExAssignment::downloadAllDeliveredFiles($this->object->getId(),
1429 (int) $_GET["ass_id"], $members);
1430 exit;
1431 }
downloadAllDeliveredFiles($a_exc_id, $a_ass_id, $members)
Download all submitted files of an assignment (all user)
updateTutorDownloadTime($a_exc_id, $a_ass_id, $a_user_id)
was: updateTutorDownloadTime($member_id)
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public

References $_GET, ilObject\_exists(), ilObjectGUI\checkPermission(), ilExAssignment\downloadAllDeliveredFiles(), exit, ilObjectFactory\getInstanceByObjId(), and ilExAssignment\updateTutorDownloadTime().

+ Here is the call graph for this function:

◆ downloadFeedbackFileObject()

ilObjExerciseGUI::downloadFeedbackFileObject ( )

Download feedback file.

Definition at line 653 of file class.ilObjExerciseGUI.php.

654 {
655 global $rbacsystem, $ilUser;
656
657 $file = $_REQUEST["file"];
658
659 // check read permission
660 $this->checkPermission("read");
661
662 if (!isset($file))
663 {
664 ilUtil::sendFailure($this->lng->txt("exc_select_one_file"),true);
665 $this->ctrl->redirect($this, "view");
666 }
667
668 $ass = new ilExAssignment((int) $_GET["ass_id"]);
669
670 if($ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
671 {
672 $feedback_id = "t".$ass->getTeamId($ilUser->getId());
673 }
674 else
675 {
676 $feedback_id = $ilUser->getId();
677 }
678
679 // check, whether file belongs to assignment
680 include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
681 $storage = new ilFSStorageExercise($this->object->getId(), (int) $_GET["ass_id"]);
682 $files = $storage->getFeedbackFiles($feedback_id);
683 $file_exist = false;
684 foreach($files as $fb_file)
685 {
686 if($fb_file == $file)
687 {
688 $file_exist = true;
689 break;
690 }
691 }
692 if(!$file_exist)
693 {
694 echo "FILE DOES NOT EXIST";
695 exit;
696 }
697
698 // check whether assignment as already started
699 $not_started_yet = false;
700 if ($ass->getStartTime() > 0 && time() - $ass->getStartTime() <= 0)
701 {
702 $not_started_yet = true;
703 }
704
705 // deliver file
706 if (!$not_started_yet)
707 {
708 $p = $storage->getFeedbackFilePath($feedback_id, $file);
710 }
711
712 return true;
713 }
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.

References $_GET, $_REQUEST, $file, $ilUser, ilObjectGUI\checkPermission(), ilUtil\deliverFile(), exit, ilUtil\sendFailure(), and ilExAssignment\TYPE_UPLOAD_TEAM.

+ Here is the call graph for this function:

◆ downloadFileObject()

ilObjExerciseGUI::downloadFileObject ( )

Download assignment file.

Definition at line 718 of file class.ilObjExerciseGUI.php.

719 {
720 global $rbacsystem;
721
722 $file = $_REQUEST["file"];
723
724 // check read permission
725 $this->checkPermission("read");
726
727 if (!isset($file))
728 {
729 ilUtil::sendFailure($this->lng->txt("exc_select_one_file"),true);
730 $this->ctrl->redirect($this, "view");
731 }
732
733 // check, whether file belongs to assignment
734 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
735 $files = ilExAssignment::getFiles($this->object->getId(), (int) $_GET["ass_id"]);
736 $file_exist = false;
737 foreach($files as $lfile)
738 {
739 if($lfile["name"] == $file)
740 {
741 $file_exist = true;
742 break;
743 }
744 }
745 if(!$file_exist)
746 {
747 echo "FILE DOES NOT EXIST";
748 exit;
749 }
750
751 // check whether assignment as already started
752 $ass = new ilExAssignment((int) $_GET["ass_id"]);
753 $not_started_yet = false;
754 if ($ass->getStartTime() > 0 && time() - $ass->getStartTime() <= 0)
755 {
756 $not_started_yet = true;
757 }
758
759 // deliver file
760 if (!$not_started_yet)
761 {
762 include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
763 $storage = new ilFSStorageExercise($this->object->getId(), (int) $_GET["ass_id"]);
764 $p = $storage->getAssignmentFilePath($file);
766 }
767
768 return true;
769 }
static getFiles($a_exc_id, $a_ass_id)
Get files.

References $_GET, $_REQUEST, $file, ilObjectGUI\checkPermission(), ilUtil\deliverFile(), exit, ilExAssignment\getFiles(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ downloadGlobalFeedbackFileObject()

ilObjExerciseGUI::downloadGlobalFeedbackFileObject ( )

Definition at line 4649 of file class.ilObjExerciseGUI.php.

4650 {
4651 global $ilCtrl, $ilUser;
4652
4653 $needs_dl = ($this->ass->getFeedbackDate() == ilExAssignment::FEEDBACK_DATE_DEADLINE);
4654
4655 if(!$this->ass ||
4656 !$this->ass->getFeedbackFile() ||
4657 ($needs_dl && !$this->ass->getDeadline()) ||
4658 ($needs_dl && $this->ass->getDeadline() > time()) ||
4659 (!$needs_dl && !ilExAssignment::getLastSubmission($this->ass->getId(), $ilUser->getId())))
4660 {
4661 $ilCtrl->redirect($this, "showOverview");
4662 }
4663
4664 ilUtil::deliverFile($this->ass->getFeedbackFilePath(), $this->ass->getFeedbackFile());
4665 }
static getLastSubmission($a_ass_id, $a_user_id)
Get the date of the last submission of a user for the assignment.

References $ilCtrl, $ilUser, ilUtil\deliverFile(), ilExAssignment\FEEDBACK_DATE_DEADLINE, and ilExAssignment\getLastSubmission().

+ Here is the call graph for this function:

◆ downloadMultiFeedbackZipObject()

ilObjExerciseGUI::downloadMultiFeedbackZipObject ( )

Download multi-feedback structrue file.

Definition at line 4729 of file class.ilObjExerciseGUI.php.

4730 {
4731 $ass = new ilExAssignment((int) $_GET["ass_id"]);
4732 $ass->sendMultiFeedbackStructureFile($this->object);
4733 }

References $_GET.

◆ downloadNewReturnedObject()

ilObjExerciseGUI::downloadNewReturnedObject ( )

Download newly submitted files of user.

Definition at line 1002 of file class.ilObjExerciseGUI.php.

1003 {
1004 global $ilAccess;
1005
1006 $peer_review_mask_filename = false;
1007
1008 if (!$ilAccess->checkAccess("write", "", $this->object->getRefId()))
1009 {
1010 // ok: read access + peer review
1011 $ass = new ilExAssignment((int) $_GET["ass_id"]);
1012 if(!($ilAccess->checkAccess("read", "", $this->object->getRefId()) &&
1013 $ass->hasPeerReviewAccess((int) $_GET["member_id"])))
1014 {
1015 $this->checkPermission("write");
1016 }
1017 else
1018 {
1019 $peer_review_mask_filename = true;
1020 }
1021 }
1022
1024 $this->object->getId(), (int) $_GET["ass_id"], (int) $_GET["member_id"],
1025 true, $peer_review_mask_filename))
1026 {
1027 $this->ctrl->redirect($this, "members");
1028 }
1029 exit;
1030 }
deliverReturnedFiles($a_exc_id, $a_ass_id, $a_user_id, $a_only_new=false, $a_peer_review_mask_filename=false)
was: deliverReturnedFiles($a_member_id, $a_only_new = false)

References $_GET, ilObjectGUI\checkPermission(), ilExAssignment\deliverReturnedFiles(), and exit.

+ Here is the call graph for this function:

◆ downloadObject()

ilObjExerciseGUI::downloadObject ( )

User downloads (own) submitted files.

Parameters

return

Definition at line 337 of file class.ilObjExerciseGUI.php.

338 {
339 global $ilUser, $ilCtrl;
340
341 $this->checkPermission("read");
342 if (count($_REQUEST["delivered"]))
343 {
344 if(!is_array($_REQUEST["delivered"]))
345 {
346 $_REQUEST["delivered"] = array($_REQUEST["delivered"]);
347 }
348 ilExAssignment::downloadSelectedFiles($this->object->getId(), (int) $_GET["ass_id"],
349 $ilUser->getId(), $_REQUEST["delivered"]);
350 exit;
351 }
352 else
353 {
354 ilUtil::sendFailure($this->lng->txt("please_select_a_delivered_file_to_download"), true);
355 $ilCtrl->redirect($this, "submissionScreen");
356 }
357 }
downloadSelectedFiles($a_exc_id, $a_ass_id, $a_user_id, $array_file_id)
was: downloadSelectedFiles($array_file_id,$a_user_id)?

References $_GET, $_REQUEST, $ilCtrl, $ilUser, ilObjectGUI\checkPermission(), ilExAssignment\downloadSelectedFiles(), exit, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ downloadPeerReviewObject()

ilObjExerciseGUI::downloadPeerReviewObject ( )

Definition at line 4455 of file class.ilObjExerciseGUI.php.

4456 {
4457 global $ilCtrl, $ilUser;
4458
4459 if(!$this->ass ||
4460 !$this->ass->getPeerReview() ||
4461 !$this->ass->hasPeerReviewFileUpload() ||
4462 !$_GET["fu"] ||
4463 !$_GET["fuf"])
4464 {
4465 $ilCtrl->redirect($this, "showOverview");
4466 }
4467
4468 $parts = explode("__", $_GET["fu"]);
4469 $giver_id = $parts[0];
4470 $peer_id = $parts[1];
4471
4472 if($giver_id == $ilUser->getId() ||
4473 $peer_id == $ilUser->getId())
4474 {
4475 $this->checkPermission("read");
4476 }
4477 else
4478 {
4479 $this->checkPermission("write");
4480 }
4481
4482 $peer_items = $this->ass->getPeerReviewsByPeerId($peer_id, true);
4483 if(sizeof($peer_items))
4484 {
4485 foreach($peer_items as $item)
4486 {
4487 if($item["giver_id"] == $giver_id)
4488 {
4489 $files = $this->ass->getPeerUploadFiles($peer_id, $giver_id);
4490 foreach($files as $file)
4491 {
4492 if(md5($file) == trim($_GET["fuf"]))
4493 {
4494 ilUtil::deliverFile($file, basename($file));
4495 break(2);
4496 }
4497 }
4498 }
4499 }
4500 }
4501
4502 $ilCtrl->redirect($this, "showOverview");
4503 }

References $_GET, $file, $ilCtrl, $ilUser, ilObjectGUI\checkPermission(), and ilUtil\deliverFile().

+ Here is the call graph for this function:

◆ downloadReturnedObject()

ilObjExerciseGUI::downloadReturnedObject ( )

Download submitted files of user.

Definition at line 960 of file class.ilObjExerciseGUI.php.

961 {
962 global $ilAccess;
963
964 $peer_review_mask_filename = false;
965
966 if (!$ilAccess->checkAccess("write", "", $this->object->getRefId()))
967 {
968 if ($ilAccess->checkAccess("read", "", $this->object->getRefId()) &&
969 $this->object->getShowSubmissions() &&
970 $this->object->getTimestamp() - time() <= 0)
971 {
972 // ok: read access + public submissions
973 }
974 else
975 {
976 // ok: read access + peer review
977 $ass = new ilExAssignment((int) $_GET["ass_id"]);
978 if(!($ilAccess->checkAccess("read", "", $this->object->getRefId()) &&
979 $ass->hasPeerReviewAccess((int) $_GET["member_id"])))
980 {
981 $this->checkPermission("write");
982 }
983 else
984 {
985 $peer_review_mask_filename = true;
986 }
987 }
988 }
989
991 $this->object->getId(), (int) $_GET["ass_id"], (int) $_GET["member_id"],
992 false, $peer_review_mask_filename))
993 {
994 $this->ctrl->redirect($this, "members");
995 }
996 exit;
997 }

References $_GET, ilObjectGUI\checkPermission(), ilExAssignment\deliverReturnedFiles(), and exit.

+ Here is the call graph for this function:

◆ editAssignmentObject()

ilObjExerciseGUI::editAssignmentObject ( )

Edit assignment.

Definition at line 2509 of file class.ilObjExerciseGUI.php.

2510 {
2511 global $tpl, $ilTabs, $tpl;
2512
2513 $this->checkPermission("write");
2514
2515 $this->setAssignmentHeader();
2516 $ilTabs->activateTab("ass_settings");
2517
2518 $this->initAssignmentForm("edit");
2519 $this->getAssignmentValues();
2520 $tpl->setContent($this->form->getHTML());
2521 }
setAssignmentHeader()
Set assignment header.
getAssignmentValues()
Get current values for assignment from.

References ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), getAssignmentValues(), initAssignmentForm(), and setAssignmentHeader().

+ Here is the call graph for this function:

◆ editAssignmentTextObject()

ilObjExerciseGUI::editAssignmentTextObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 4017 of file class.ilObjExerciseGUI.php.

4018 {
4019 global $ilTabs, $ilCtrl, $ilUser;
4020
4021 if(!$this->ass ||
4022 $this->ass->getType() != ilExAssignment::TYPE_TEXT ||
4023 ($this->ass->getDeadline() && $this->ass->getDeadline() - time() < 0))
4024 {
4025 $ilCtrl->redirect($this, "showOverview");
4026 }
4027
4028 $this->checkPermission("read");
4029
4030 //$ilTabs->activateTab("content");
4031 //$this->addContentSubTabs("content");
4032
4033 $this->tabs_gui->clearTargets();
4034 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
4035 $this->ctrl->getLinkTarget($this, "showOverview"));
4036
4037 global $ilHelp;
4038 $ilHelp->setScreenIdComponent("exc");
4039 $ilHelp->setScreenId("text_submission");
4040
4041 if($this->ass->getDeadline())
4042 {
4043 ilUtil::sendInfo($this->lng->txt("exc_edit_until").": ".
4044 ilDatePresentation::formatDate(new ilDateTime($this->ass->getDeadline(),IL_CAL_UNIX)));
4045 }
4046
4047 if(!$a_form)
4048 {
4049 $a_form = $this->initAssignmentTextForm($this->ass);
4050
4051 $files = ilExAssignment::getDeliveredFiles($this->ass->getExerciseId(), $this->ass->getId(), $ilUser->getId());
4052 if($files)
4053 {
4054 $files = array_shift($files);
4055 if(trim($files["atext"]))
4056 {
4057 $text = $a_form->getItemByPostVar("atxt");
4058 // mob id to mob src
4059 $text->setValue(ilRTE::_replaceMediaObjectImageSrc($files["atext"], 1));
4060 }
4061 }
4062 }
4063
4064 $this->tpl->setContent($a_form->getHTML());
4065 }
const IL_CAL_UNIX
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
initAssignmentTextForm(ilExAssignment $a_ass, $a_read_only=false, $a_cancel_cmd="showOverview", $a_peer_review_cmd=null, $a_peer_rating_html=null)
getItemByPostVar($a_post_var)
Get Item by POST variable.
static _replaceMediaObjectImageSrc($a_text, $a_direction=0, $nic=IL_INST_ID)
replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...

References $ilCtrl, $ilUser, ilRTE\_replaceMediaObjectImageSrc(), ilObjectGUI\checkPermission(), ilDatePresentation\formatDate(), ilExAssignment\getDeliveredFiles(), IL_CAL_UNIX, initAssignmentTextForm(), ilUtil\sendInfo(), and ilExAssignment\TYPE_TEXT.

Referenced by updateAssignmentTextObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editObject()

ilObjExerciseGUI::editObject ( )

edit object

@access public

Reimplemented from ilObjectGUI.

Definition at line 2028 of file class.ilObjExerciseGUI.php.

2029 {
2030 $this->setSettingsSubTabs();
2031 $this->tabs_gui->activateSubTab("edit");
2032 return parent::editObject();
2033 }

References setSettingsSubTabs().

+ Here is the call graph for this function:

◆ editPeerReviewObject()

ilObjExerciseGUI::editPeerReviewObject ( )

Definition at line 4307 of file class.ilObjExerciseGUI.php.

4308 {
4309 global $ilCtrl, $ilUser, $tpl;
4310
4311 if(!$this->canPeerReviewBeEdited())
4312 {
4313 $ilCtrl->redirect($this, "showOverview");
4314 }
4315
4316 $this->checkPermission("read");
4317
4318 $this->tabs_gui->clearTargets();
4319 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, "showOverview"));
4320
4321 $peer_items = $this->ass->getPeerReviewsByGiver($ilUser->getId());
4322 if(!sizeof($peer_items))
4323 {
4324 ilUtil::sendFailure($this->lng->txt("exc_peer_review_no_peers"), true);
4325 $ilCtrl->redirect($this, "showOverview");
4326 }
4327
4328 $missing = ilExAssignment::getNumberOfMissingFeedbacks($this->ass->getId(), $this->ass->getPeerReviewMin());
4329 if($missing)
4330 {
4331 $dl = $this->ass->getPeerReviewDeadline();
4332 if(!$dl || $dl < time())
4333 {
4334 ilUtil::sendInfo(sprintf($this->lng->txt("exc_peer_review_missing_info"), $missing));
4335 }
4336 else
4337 {
4338 ilUtil::sendInfo(sprintf($this->lng->txt("exc_peer_review_missing_info_deadline"), $missing,
4340 }
4341 }
4342
4343 $tpl->addJavaScript("Modules/Exercise/js/ilExcPeerReview.js");
4344 $tpl->addOnLoadCode("il.ExcPeerReview.setAjax('".
4345 $ilCtrl->getLinkTarget($this, "updatePeerReviewComments", "", true, false).
4346 "')");
4347
4348 include_once "Modules/Exercise/classes/class.ilExAssignmentPeerReviewTableGUI.php";
4349 $tbl = new ilExAssignmentPeerReviewTableGUI($this, "editPeerReview", $this->ass, $ilUser->getId(), $peer_items, "exc_peer_review_give", "showOverview");
4350
4351 $tpl->setContent($tbl->getHTML());
4352 }
static getNumberOfMissingFeedbacks($a_ass_id, $a_min)

References $ilCtrl, $ilUser, ilObjectGUI\$tpl, canPeerReviewBeEdited(), ilObjectGUI\checkPermission(), ilDatePresentation\formatDate(), ilExAssignment\getNumberOfMissingFeedbacks(), IL_CAL_UNIX, ilUtil\sendFailure(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ executeCommand()

ilObjExerciseGUI::executeCommand ( )

execute command

Reimplemented from ilObjectGUI.

Definition at line 57 of file class.ilObjExerciseGUI.php.

58 {
59 global $ilUser,$ilCtrl, $ilTabs, $lng;
60
61 $next_class = $this->ctrl->getNextClass($this);
62 $cmd = $this->ctrl->getCmd();
63 $this->prepareOutput();
64
65//echo "-".$next_class."-".$cmd."-"; exit;
66 switch($next_class)
67 {
68 case "ilfilesystemgui":
69 if($_GET["fsmode"] == "peer")
70 {
71 $ilCtrl->saveParameter($this, array("fu"));
72
73 // see self::downloadPeerReview()
74 $parts = explode("__", $_GET["fu"]);
75 $giver_id = $parts[0];
76 $peer_id = $parts[1];
77
78 if($giver_id == $ilUser->getId() ||
79 $peer_id == $ilUser->getId())
80 {
81 $this->checkPermission("read");
82 }
83 else
84 {
85 $this->checkPermission("write");
86 }
87
88 /* could be 1st review and not saved yet
89 $valid = false;
90 $peer_items = $this->ass->getPeerReviewsByPeerId($peer_id, true);
91 if(sizeof($peer_items))
92 {
93 foreach($peer_items as $item)
94 {
95 if($item["giver_id"] == $giver_id)
96 {
97 $valid = true;
98 }
99 }
100 }
101 if(!$valid)
102 {
103 $ilCtrl->redirect($this, "editPeerReview");
104 }
105 */
106
107 $ilTabs->clearTargets();
108 $ilTabs->setBackTarget($lng->txt("back"),
109 $ilCtrl->getLinkTarget($this, "editPeerReview"));
110
111 include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
112 $fstorage = new ilFSStorageExercise($this->object->getId(), $this->ass->getId());
113 $fstorage->create();
114
115 include_once("./Services/FileSystem/classes/class.ilFileSystemGUI.php");
116 $fs_gui = new ilFileSystemGUI($fstorage->getPeerReviewUploadPath($peer_id, $giver_id));
117 $fs_gui->setTableId("excfbpeer");
118 $fs_gui->setAllowDirectories(false);
119 $fs_gui->setTitle($this->ass->getTitle().": ".
120 $lng->txt("exc_peer_review")." - ".
121 $lng->txt("exc_peer_review_give"));
122 $ret = $this->ctrl->forwardCommand($fs_gui);
123 }
124 else if ($_GET["fsmode"] == "feedback" ||
125 $_GET["fsmode"] == "feedbackpart") // feedback files
126 {
127 $this->checkPermission("write");
128 $ilCtrl->saveParameter($this, array("member_id"));
129 //$this->setAssignmentHeader();
130 //$ilTabs->activateTab("ass_files");
131 $ilTabs->clearTargets();
132
133 if ($_GET["fsmode"] != "feedbackpart")
134 {
135 $ilTabs->setBackTarget($lng->txt("back"),
136 $ilCtrl->getLinkTarget($this, "members"));
137 }
138 else
139 {
140 $ilTabs->setBackTarget($lng->txt("back"),
141 $ilCtrl->getLinkTarget($this, "showParticipant"));
142 }
143
144 ilUtil::sendInfo($lng->txt("exc_fb_tutor_info"));
145
146 include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
147 $fstorage = new ilFSStorageExercise($this->object->getId(), (int) $_GET["ass_id"]);
148 $fstorage->create();
149
150 include_once("./Services/User/classes/class.ilUserUtil.php");
151 $noti_rec_ids = array();
152 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
153 {
154 $team_id = $this->ass->getTeamId((int) $_GET["member_id"]);
155 $feedback_id = "t".$team_id;
156 $fs_title = array();
157 foreach($this->ass->getTeamMembers($team_id) as $team_user_id)
158 {
159 $fs_title[] = ilUserUtil::getNamePresentation($team_user_id, false, false, "", true);
160 $noti_rec_ids[] = $team_user_id;
161 }
162 $fs_title = implode(" / ", $fs_title);
163 }
164 else
165 {
166 $feedback_id = $noti_rec_ids = (int) $_GET["member_id"];
167 $fs_title = ilUserUtil::getNamePresentation((int) $_GET["member_id"], false, false, "", true);
168 }
169
170 include_once("./Services/FileSystem/classes/class.ilFileSystemGUI.php");
171 $fs_gui = new ilFileSystemGUI($fstorage->getFeedbackPath($feedback_id));
172 $fs_gui->setTableId("excfbfil".(int)$_GET["ass_id"]."_".$feedback_id);
173 $fs_gui->setAllowDirectories(false);
174 $fs_gui->setTitle($lng->txt("exc_fb_files")." - ".
175 ilExAssignment::lookupTitle((int) $_GET["ass_id"])." - ".
176 $fs_title);
177 $pcommand = $fs_gui->getLastPerformedCommand();
178 if (is_array($pcommand) && $pcommand["cmd"] == "create_file")
179 {
180 $this->object->sendFeedbackFileNotification($pcommand["name"],
181 $noti_rec_ids, (int) $_GET["ass_id"]);
182 }
183 $ret = $this->ctrl->forwardCommand($fs_gui);
184 }
185 else // assignment files
186 {
187 $this->setAssignmentHeader();
188 $ilTabs->activateTab("ass_files");
189 include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
190 $fstorage = new ilFSStorageExercise($this->object->getId(), (int) $_GET["ass_id"]);
191 $fstorage->create();
192 include_once("./Services/FileSystem/classes/class.ilFileSystemGUI.php");
193 $fs_gui = new ilFileSystemGUI($fstorage->getPath());
194 $fs_gui->setTitle($lng->txt("exc_instruction_files"));
195 $fs_gui->setTableId("excassfil".$_GET["ass_id"]);
196 $fs_gui->setAllowDirectories(false);
197 $ret = $this->ctrl->forwardCommand($fs_gui);
198 }
199 break;
200
201 case "ilinfoscreengui":
202 $ilTabs->activateTab("info");
203 $this->infoScreen(); // forwards command
204 break;
205
206 case 'ilpermissiongui':
207 $ilTabs->activateTab("permissions");
208 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
209 $perm_gui =& new ilPermissionGUI($this);
210 $ret =& $this->ctrl->forwardCommand($perm_gui);
211 break;
212
213 case "illearningprogressgui":
214 $ilTabs->activateTab("learning_progress");
215 include_once './Services/Tracking/classes/class.ilLearningProgressGUI.php';
216
218 $this->object->getRefId(),
219 $_GET['user_id'] ? $_GET['user_id'] : $ilUser->getId());
220 $this->ctrl->forwardCommand($new_gui);
221 $this->tabs_gui->setTabActive('learning_progress');
222 break;
223
224 case 'ilrepositorysearchgui':
225 $ilTabs->activateTab("grades");
226 include_once('./Services/Search/classes/class.ilRepositorySearchGUI.php');
227 $rep_search = new ilRepositorySearchGUI();
228 if(!$_REQUEST["ctx"])
229 {
230 $rep_search->setTitle($this->lng->txt("exc_add_participant"));
231 $rep_search->setCallback($this,'addMembersObject');
232
233 // Set tabs
234 $this->tabs_gui->setTabActive('members');
235 $this->ctrl->setReturn($this,'members');
236
237 #$this->__setSubTabs('members');
238 #$this->tabs_gui->setSubTabActive('members');
239 }
240 else
241 {
242 $this->ctrl->saveParameterByClass('ilRepositorySearchGUI', 'ctx', 1);
243
244 $rep_search->setTitle($this->lng->txt("exc_team_member_add"));
245 $rep_search->setCallback($this,'addTeamMemberActionObject');
246
247 // Set tabs
248 $this->initTeamSubmission("submissionScreenTeam");
249 $this->ctrl->setReturn($this,'submissionScreenTeam');
250 }
251 $ret =& $this->ctrl->forwardCommand($rep_search);
252 break;
253
254 case 'ilobjectcopygui':
255 $ilCtrl->saveParameter($this, 'new_type');
256 $ilCtrl->setReturnByClass(get_class($this),'create');
257
258 include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
259 $cp = new ilObjectCopyGUI($this);
260 $cp->setType('exc');
261 $this->ctrl->forwardCommand($cp);
262 break;
263
264 case "ilexportgui":
265 $ilTabs->activateTab("export");
266 include_once("./Services/Export/classes/class.ilExportGUI.php");
267 $exp_gui = new ilExportGUI($this);
268 $exp_gui->addFormat("xml");
269 $ret = $this->ctrl->forwardCommand($exp_gui);
270// $this->tpl->show();
271 break;
272 case 'ilshoppurchasegui':
273 include_once './Services/Payment/classes/class.ilShopPurchaseGUI.php';
274 $sp = new ilShopPurchaseGUI($_GET['ref_id']);
275
276 $this->ctrl->forwardCommand($sp);
277 break;
278
279 case "ilcommonactiondispatchergui":
280 include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
282 $this->ctrl->forwardCommand($gui);
283 break;
284
285 case "ilcertificategui":
286 $this->setSettingsSubTabs();
287 $this->tabs_gui->activateTab("settings");
288 $this->tabs_gui->activateSubTab("certificate");
289 include_once "./Services/Certificate/classes/class.ilCertificateGUI.php";
290 include_once "./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
291 $output_gui = new ilCertificateGUI(new ilExerciseCertificateAdapter($this->object));
292 $this->ctrl->forwardCommand($output_gui);
293 break;
294
295 case "ilratinggui":
296 $this->ass->updatePeerReviewTimestamp((int)$_REQUEST["peer_id"]);
297
298 include_once("./Services/Rating/classes/class.ilRatingGUI.php");
299 $rating_gui = new ilRatingGUI();
300 $rating_gui->setObject($this->ass->getId(), "ass",
301 (int)$_REQUEST["peer_id"], "peer");
302 $this->ctrl->forwardCommand($rating_gui);
303 $ilCtrl->redirect($this, "editPeerReview");
304 break;
305
306 default:
307 $this->ctrl->setParameter($this, "fsmode", ""); // #15115
308
309 if(!$cmd)
310 {
311 $cmd = "infoScreen";
312 }
313
314 $cmd .= "Object";
315
316 $this->$cmd();
317
318 break;
319 }
320
321 $this->addHeaderAction();
322
323 return true;
324 }
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Export User Interface Class.
File System Explorer GUI class.
Class ilObjUserTrackingGUI.
infoScreen()
show information screen
GUI class for the workflow of copying objects.
prepareOutput()
prepare output
addHeaderAction()
Add header action menu.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
Class ilRatingGUI.
Class ilShopPurchaseGUI.

References $_GET, $_REQUEST, $cmd, $ilCtrl, $ilUser, ilObjectGUI\$lng, $ret, ilObjectGUI\addHeaderAction(), ilObjectGUI\checkPermission(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), ilUserUtil\getNamePresentation(), infoScreen(), initTeamSubmission(), ilExAssignment\lookupTitle(), ilLearningProgressBaseGUI\LP_CONTEXT_REPOSITORY, ilObjectGUI\prepareOutput(), ilUtil\sendInfo(), setAssignmentHeader(), setSettingsSubTabs(), and ilExAssignment\TYPE_UPLOAD_TEAM.

+ Here is the call graph for this function:

◆ exportExcelObject()

ilObjExerciseGUI::exportExcelObject ( )

Export as excel.

Definition at line 3051 of file class.ilObjExerciseGUI.php.

3052 {
3053 $this->checkPermission("write");
3054 $this->object->exportGradesExcel();
3055 exit;
3056 }

References ilObjectGUI\checkPermission(), and exit.

+ Here is the call graph for this function:

◆ getAssignmentValues()

ilObjExerciseGUI::getAssignmentValues ( )

Get current values for assignment from.

Definition at line 2527 of file class.ilObjExerciseGUI.php.

2528 {
2529 $values = array();
2530
2531 $ass = new ilExAssignment($_GET["ass_id"]);
2532 $values["title"] = $ass->getTitle();
2533 if ($ass->getStartTime() > 0)
2534 {
2535 $values["start_time_cb"] = true;
2536 }
2537 $values["mandatory"] = $ass->getMandatory();
2538 $values["instruction"] = $ass->getInstruction();
2539 $values["type"] = $ass->getType();
2540 if ($ass->getDeadline() > 0)
2541 {
2542 $values["deadline_cb"] = true;
2543 }
2544 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
2545 {
2546 $this->form->removeItemByPostVar("peer");
2547 $this->form->removeItemByPostVar("peer_min");
2548 $this->form->removeItemByPostVar("peer_dl");
2549 }
2550 else
2551 {
2552 if ($ass->getPeerReviewDeadline() > 0)
2553 {
2554 $values["peer_dl_tgl"] = true;
2555 $peer_dl_date = new ilDateTime($ass->getPeerReviewDeadline(), IL_CAL_UNIX);
2556 $peer_dl = $this->form->getItemByPostVar("peer_dl");
2557 $peer_dl->setDate($peer_dl_date);
2558 }
2559 }
2560 $this->form->setValuesByArray($values);
2561
2562 if ($ass->getStartTime() > 0)
2563 {
2564 $edit_date = new ilDateTime($ass->getStartTime(), IL_CAL_UNIX);
2565 $ed_item = $this->form->getItemByPostVar("start_time");
2566 $ed_item->setDate($edit_date);
2567 }
2568
2569 if($ass->getFeedbackFile())
2570 {
2571 $this->form->getItemByPostVar("fb")->setChecked(true);
2572 $this->form->getItemByPostVar("fb_file")->setValue(basename($ass->getFeedbackFilePath()));
2573 }
2574 $this->form->getItemByPostVar("fb_cron")->setChecked($ass->hasFeedbackCron());
2575 $this->form->getItemByPostVar("fb_date")->setValue($ass->getFeedbackDate());
2576
2577 $this->handleDisabledAssignmentFields($ass, $this->form);
2578 }
handleDisabledAssignmentFields(ilExAssignment $a_ass, ilPropertyFormGUI $a_form)

References $_GET, handleDisabledAssignmentFields(), IL_CAL_UNIX, and ilExAssignment\TYPE_UPLOAD_TEAM.

Referenced by editAssignmentObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getEditFormCustomValues()

ilObjExerciseGUI::getEditFormCustomValues ( array &  $a_values)
protected

Get values for properties form.

Reimplemented from ilObjectGUI.

Definition at line 849 of file class.ilObjExerciseGUI.php.

850 {
851 global $ilUser;
852
853 $a_values["desc"] = $this->object->getLongDescription();
854 $a_values["show_submissions"] = $this->object->getShowSubmissions();
855 $a_values["pass_mode"] = $this->object->getPassMode();
856 if ($a_values["pass_mode"] == "nr")
857 {
858 $a_values["pass_nr"] = $this->object->getPassNr();
859 }
860
861 include_once "./Services/Notification/classes/class.ilNotification.php";
862 $a_values["notification"] = ilNotification::hasNotification(
864 $this->object->getId());
865
866 $a_values['completion_by_submission'] = (int) $this->object->isCompletionBySubmissionEnabled();
867 }
static hasNotification($type, $user_id, $id)
Check notification status for object and user.

References $ilUser, ilNotification\hasNotification(), and ilNotification\TYPE_EXERCISE_SUBMISSION.

+ Here is the call graph for this function:

◆ getFiles()

ilObjExerciseGUI::getFiles ( )

Definition at line 47 of file class.ilObjExerciseGUI.php.

48 {
49 return $this->files ? $this->files : array();
50 }

◆ getTabs()

ilObjExerciseGUI::getTabs (   $tabs_gui)

adds tabs to tab gui object

Parameters
object$tabs_guiilTabsGUI object

Definition at line 1836 of file class.ilObjExerciseGUI.php.

1837 {
1838 global $ilAccess, $ilUser, $lng, $ilHelp;
1839
1840 $ilHelp->setScreenIdComponent("exc");
1841
1842 if ($ilAccess->checkAccess("read", "", $this->object->getRefId()))
1843 {
1844 $tabs_gui->addTab("content",
1845 $lng->txt("exc_assignments"),
1846 $this->ctrl->getLinkTarget($this, "showOverview"));
1847 }
1848
1849 $next_class = strtolower($this->ctrl->getNextClass());
1850 if ($ilAccess->checkAccess("visible", "", $this->object->getRefId()))
1851 {
1852 $tabs_gui->addTab("info",
1853 $lng->txt("info_short"),
1854 $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"));
1855 }
1856
1857 // edit properties
1858 if ($ilAccess->checkAccess("write", "", $this->ref_id))
1859 {
1860 /*$tabs_gui->addTab("assignments",
1861 $lng->txt("exc_edit_assignments"),
1862 $this->ctrl->getLinkTarget($this, 'listAssignments'));*/
1863
1864 $tabs_gui->addTab("settings",
1865 $lng->txt("settings"),
1866 $this->ctrl->getLinkTarget($this, 'edit'));
1867
1868 $tabs_gui->addTab("grades",
1869 $lng->txt("exc_submissions_and_grades"),
1870 $this->ctrl->getLinkTarget($this, 'members'));
1871 }
1872
1873 // learning progress
1874 $save_sort_order = $_GET["sort_order"]; // hack, because exercise sort parameters
1875 $save_sort_by = $_GET["sort_by"]; // must not be forwarded to learning progress
1876 $save_offset = $_GET["offset"];
1877 $_GET["offset"] = $_GET["sort_by"] = $_GET["sort_order"] = "";
1878
1879 include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php';
1880 if(ilLearningProgressAccess::checkAccess($this->object->getRefId()))
1881 {
1882 $tabs_gui->addTab('learning_progress',
1883 $lng->txt('learning_progress'),
1884 $this->ctrl->getLinkTargetByClass(array('ilobjexercisegui','illearningprogressgui'),''));
1885 }
1886
1887 $_GET["sort_order"] = $save_sort_order; // hack, part ii
1888 $_GET["sort_by"] = $save_sort_by;
1889 $_GET["offset"] = $save_offset;
1890
1891 // export
1892 if ($ilAccess->checkAccess("write", "", $this->object->getRefId()))
1893 {
1894 $tabs_gui->addTab("export",
1895 $lng->txt("export"),
1896 $this->ctrl->getLinkTargetByClass("ilexportgui", ""));
1897 }
1898
1899
1900 // permissions
1901 if ($ilAccess->checkAccess("edit_permission", "", $this->ref_id))
1902 {
1903 $tabs_gui->addTab('permissions',
1904 $lng->txt("perm_settings"),
1905 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"));
1906 }
1907 }
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress

References $_GET, $ilUser, ilObjectGUI\$lng, and ilLearningProgressAccess\checkAccess().

+ Here is the call graph for this function:

◆ handleDisabledAssignmentFields()

ilObjExerciseGUI::handleDisabledAssignmentFields ( ilExAssignment  $a_ass,
ilPropertyFormGUI  $a_form 
)
protected

Definition at line 2580 of file class.ilObjExerciseGUI.php.

2581 {
2582 // potentially disabled elements are initialized here to re-use this
2583 // method after setValuesByPost() - see updateAssignmentObject()
2584
2585 // if there are any submissions we cannot change type anymore
2586 if(sizeof(ilExAssignment::getAllDeliveredFiles($this->object->getId(), $a_ass->getId())) ||
2588 {
2589 $a_form->getItemByPostVar("type")->setDisabled(true);
2590 }
2591
2592 if($a_ass->getDeadline() > 0)
2593 {
2594 $a_form->getItemByPostVar("deadline_cb")->setChecked(true);
2595 $edit_date = new ilDateTime($a_ass->getDeadline(), IL_CAL_UNIX);
2596 $ed_item = $a_form->getItemByPostVar("deadline");
2597 $ed_item->setDate($edit_date);
2598 }
2599
2600 // team assignments do not support peer review
2602 {
2603 return;
2604 }
2605
2606 $a_form->getItemByPostVar("peer")->setChecked($a_ass->getPeerReview());
2607 $a_form->getItemByPostVar("peer_min")->setValue($a_ass->getPeerReviewMin());
2608 $a_form->getItemByPostVar("peer_file")->setChecked($a_ass->hasPeerReviewFileUpload());
2609 $a_form->getItemByPostVar("peer_prsl")->setChecked($a_ass->hasPeerReviewPersonalized());
2610
2611 // with no active peer review there is nothing to protect
2612 if(!$a_ass->getPeerReview())
2613 {
2614 return;
2615 }
2616
2617 // #14450
2618 if($a_ass->hasPeerReviewGroups())
2619 {
2620 // deadline(s) are past and must not change
2621 $a_form->getItemByPostVar("deadline_cb")->setDisabled(true);
2622 $a_form->getItemByPostVar("deadline")->setDisabled(true);
2623
2624 // JourFixe, 2015-05-11 - editable again
2625 // $a_form->getItemByPostVar("peer_dl")->setDisabled(true);
2626
2627 $a_form->getItemByPostVar("peer")->setDisabled(true);
2628 $a_form->getItemByPostVar("peer_min")->setDisabled(true);
2629 $a_form->getItemByPostVar("peer_file")->setDisabled(true);
2630 $a_form->getItemByPostVar("peer_prsl")->setDisabled(true);
2631 }
2632
2633 }
hasPeerReviewPersonalized()
Get peer review personalized status.
getId()
Get assignment id.
getPeerReviewMin()
Get peer review minimum.
getPeerReview()
Get peer review status.
hasPeerReviewFileUpload()
Get peer review file upload status.
getAllDeliveredFiles($a_exc_id, $a_ass_id)
was: getAllDeliveredFiles()
getDeadline()
Get deadline (timestamp)

References ilExAssignment\getAllDeliveredFiles(), ilExAssignment\getDeadline(), ilExAssignment\getId(), ilPropertyFormGUI\getItemByPostVar(), ilExAssignment\getPeerReview(), ilExAssignment\getPeerReviewMin(), ilExAssignment\getType(), ilExAssignment\hasPeerReviewFileUpload(), ilExAssignment\hasPeerReviewGroups(), ilExAssignment\hasPeerReviewPersonalized(), IL_CAL_UNIX, and ilExAssignment\TYPE_UPLOAD_TEAM.

Referenced by getAssignmentValues(), and updateAssignmentObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ilObjExerciseGUI()

ilObjExerciseGUI::ilObjExerciseGUI (   $a_data,
  $a_id,
  $a_call_by_reference,
  $a_prepare_output = true 
)

Constructor @access public.

Definition at line 28 of file class.ilObjExerciseGUI.php.

29 {
30 global $lng;
31
32 $this->type = "exc";
33 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,false);
34
35 $lng->loadLanguageModule("exercise");
36 $lng->loadLanguageModule("exc");
37 $this->ctrl->saveParameter($this,
38 array("ass_id", "part_id", "fsmode"));
39
40 if ($_GET["ass_id"] > 0)
41 {
42 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
43 $this->ass = new ilExAssignment((int) $_GET["ass_id"]);
44 }
45 }
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.

References $_GET, ilObjectGUI\$lng, and ilObjectGUI\ilObjectGUI().

+ Here is the call graph for this function:

◆ infoScreen()

ilObjExerciseGUI::infoScreen ( )

show information screen

Definition at line 1924 of file class.ilObjExerciseGUI.php.

1925 {
1926 global $ilAccess, $ilUser, $ilTabs, $lng;
1927
1928 $ilTabs->activateTab("info");
1929
1930 $this->checkPermission("visible");
1931
1932 include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1933 $info = new ilInfoScreenGUI($this);
1934
1935 $info->enablePrivateNotes();
1936
1937 $info->enableNews();
1938 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
1939 {
1940 $info->enableNewsEditing();
1941 $info->setBlockProperty("news", "settings", true);
1942 }
1943
1944 // standard meta data
1945 //$info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
1946
1947 // instructions
1948 $info->addSection($this->lng->txt("exc_overview"));
1949 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
1950 $ass = ilExAssignment::getAssignmentDataOfExercise($this->object->getId());
1951 $cnt = 0;
1952 $mcnt = 0;
1953 foreach ($ass as $a)
1954 {
1955 $cnt++;
1956 if ($a["mandatory"])
1957 {
1958 $mcnt++;
1959 }
1960 }
1961 $info->addProperty($lng->txt("exc_assignments"), $cnt);
1962 $info->addProperty($lng->txt("exc_mandatory"), $mcnt);
1963 if ($this->object->getPassMode() != "nr")
1964 {
1965 $info->addProperty($lng->txt("exc_pass_mode"),
1966 $lng->txt("exc_msg_all_mandatory_ass"));
1967 }
1968 else
1969 {
1970 $info->addProperty($lng->txt("exc_pass_mode"),
1971 sprintf($lng->txt("exc_msg_min_number_ass"), $this->object->getPassNr()));
1972 }
1973
1974 // feedback from tutor
1975 include_once("Services/Tracking/classes/class.ilLPMarks.php");
1976 if ($ilAccess->checkAccess("read", "", $this->ref_id))
1977 {
1978 $lpcomment = ilLPMarks::_lookupComment($ilUser->getId(), $this->object->getId());
1979 $mark = ilLPMarks::_lookupMark($ilUser->getId(), $this->object->getId());
1980 //$status = ilExerciseMembers::_lookupStatus($this->object->getId(), $ilUser->getId());
1981 $st = $this->object->determinStatusOfUser($ilUser->getId());
1982 $status = $st["overall_status"];
1983 if ($lpcomment != "" || $mark != "" || $status != "notgraded")
1984 {
1985 $info->addSection($this->lng->txt("exc_feedback_from_tutor"));
1986 if ($lpcomment != "")
1987 {
1988 $info->addProperty($this->lng->txt("exc_comment"),
1989 $lpcomment);
1990 }
1991 if ($mark != "")
1992 {
1993 $info->addProperty($this->lng->txt("exc_mark"),
1994 $mark);
1995 }
1996
1997 //if ($status == "")
1998 //{
1999 // $info->addProperty($this->lng->txt("status"),
2000 // $this->lng->txt("message_no_delivered_files"));
2001 //}
2002 //else
2003 if ($status != "notgraded")
2004 {
2005 $img = '<img src="'.ilUtil::getImagePath("scorm/".$status.".svg").'" '.
2006 ' alt="'.$lng->txt("exc_".$status).'" title="'.$lng->txt("exc_".$status).
2007 '" />';
2008
2009 $add = "";
2010 if ($st["failed_a_mandatory"])
2011 {
2012 $add = " (".$lng->txt("exc_msg_failed_mandatory").")";
2013 }
2014 else if ($status == "failed")
2015 {
2016 $add = " (".$lng->txt("exc_msg_missed_minimum_number").")";
2017 }
2018 $info->addProperty($this->lng->txt("status"),
2019 $img." ".$this->lng->txt("exc_".$status).$add);
2020 }
2021 }
2022 }
2023
2024 // forward the command
2025 $this->ctrl->forwardCommand($info);
2026 }
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
Class ilInfoScreenGUI.
_lookupComment($a_usr_id, $a_obj_id)
_lookupMark($a_usr_id, $a_obj_id)

References $_GET, $ilUser, $img, ilObjectGUI\$lng, ilLPMarks\_lookupComment(), ilLPMarks\_lookupMark(), ilObjectGUI\checkPermission(), and ilExAssignment\getAssignmentDataOfExercise().

Referenced by executeCommand(), and infoScreenObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ infoScreenObject()

ilObjExerciseGUI::infoScreenObject ( )

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Definition at line 1914 of file class.ilObjExerciseGUI.php.

1915 {
1916 $this->ctrl->setCmd("showSummary");
1917 $this->ctrl->setCmdClass("ilinfoscreengui");
1918 $this->infoScreen();
1919 }

References infoScreen().

Referenced by viewObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initAssignmentForm()

ilObjExerciseGUI::initAssignmentForm (   $a_mode = "create")

Init assignment form.

Parameters
int$a_mode"create"/"edit"

Definition at line 2155 of file class.ilObjExerciseGUI.php.

2156 {
2157 global $lng, $ilCtrl, $ilSetting;
2158
2159 // init form
2160 $lng->loadLanguageModule("form");
2161 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
2162 $this->form = new ilPropertyFormGUI();
2163 $this->form->setTableWidth("600px");
2164 if ($a_mode == "edit")
2165 {
2166 $this->form->setTitle($lng->txt("exc_edit_assignment"));
2167 }
2168 else
2169 {
2170 $this->form->setTitle($lng->txt("exc_new_assignment"));
2171 }
2172 $this->form->setFormAction($ilCtrl->getFormAction($this));
2173
2174 // type
2175 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2176 $types = array(ilExAssignment::TYPE_UPLOAD => $this->lng->txt("exc_type_upload"),
2177 ilExAssignment::TYPE_UPLOAD_TEAM => $this->lng->txt("exc_type_upload_team"),
2178 ilExAssignment::TYPE_TEXT => $this->lng->txt("exc_type_text"));
2179 if(!$ilSetting->get('disable_wsp_blogs'))
2180 {
2181 $types[ilExAssignment::TYPE_BLOG] = $this->lng->txt("exc_type_blog");
2182 }
2183 if($ilSetting->get('user_portfolios'))
2184 {
2185 $types[ilExAssignment::TYPE_PORTFOLIO] = $this->lng->txt("exc_type_portfolio");
2186 }
2187 if(sizeof($types) > 1)
2188 {
2189 $ty = new ilSelectInputGUI($this->lng->txt("exc_assignment_type"), "type");
2190 $ty->setOptions($types);
2191 $ty->setRequired(true);
2192 }
2193 else
2194 {
2195 $ty = new ilHiddenInputGUI("type");
2196 $ty->setValue(ilExAssignment::TYPE_UPLOAD);
2197 }
2198 $this->form->addItem($ty);
2199
2200 // title
2201 $ti = new ilTextInputGUI($this->lng->txt("title"), "title");
2202 $ti->setMaxLength(200);
2203 $ti->setRequired(true);
2204 $this->form->addItem($ti);
2205
2206 // start time y/n
2207 $cb = new ilCheckboxInputGUI($this->lng->txt("exc_start_time"), "start_time_cb");
2208 $this->form->addItem($cb);
2209
2210 // start time
2211 $edit_date = new ilDateTimeInputGUI("", "start_time");
2212 $edit_date->setShowTime(true);
2213 $cb->addSubItem($edit_date);
2214
2215
2216 // deadline y/n
2217 $dcb = new ilCheckboxInputGUI($this->lng->txt("exc_deadline"), "deadline_cb");
2218 $dcb->setChecked(true);
2219 $this->form->addItem($dcb);
2220
2221 // Deadline
2222 $edit_date = new ilDateTimeInputGUI($lng->txt(""), "deadline");
2223 $edit_date->setShowTime(true);
2224 $dcb->addSubItem($edit_date);
2225
2226 // mandatory
2227 $cb = new ilCheckboxInputGUI($this->lng->txt("exc_mandatory"), "mandatory");
2228 $cb->setInfo($this->lng->txt("exc_mandatory_info"));
2229 $cb->setChecked(true);
2230 $this->form->addItem($cb);
2231
2232 // Work Instructions
2233 $desc_input = new ilTextAreaInputGUI($lng->txt("exc_instruction"), "instruction");
2234 $desc_input->setRows(20);
2235 $desc_input->setUseRte(true);
2236 $desc_input->setRteTagSet("mini");
2237 $this->form->addItem($desc_input);
2238
2239 // files
2240 if ($a_mode == "create")
2241 {
2242 $files = new ilFileWizardInputGUI($this->lng->txt('objs_file'),'files');
2243 $files->setFilenames(array(0 => ''));
2244 $this->form->addItem($files);
2245 }
2246
2247 // peer review
2248 $peer = new ilCheckboxInputGUI($lng->txt("exc_peer_review"), "peer");
2249 $peer->setInfo($this->lng->txt("exc_peer_review_ass_setting_info"));
2250 $this->form->addItem($peer);
2251
2252 if ($a_mode == "create")
2253 {
2254 $peer->setInfo($lng->txt("exc_peer_review_info"));
2255 }
2256
2257 $peer_min = new ilNumberInputGUI($lng->txt("exc_peer_review_min_number"), "peer_min");
2258 $peer_min->setInfo($lng->txt("exc_peer_review_min_number_info"));
2259 $peer_min->setRequired(true);
2260 $peer_min->setValue(5);
2261 $peer_min->setSize(3);
2262 $peer_min->setValue(2);
2263 $peer->addSubItem($peer_min);
2264
2265 $peer_dl = new ilDateTimeInputGUI($lng->txt("exc_peer_review_deadline"), "peer_dl");
2266 $peer_dl->setInfo($lng->txt("exc_peer_review_deadline_info"));
2267 $peer_dl->enableDateActivation("", "peer_dl_tgl");
2268 $peer_dl->setShowTime(true);
2269 $peer->addSubItem($peer_dl);
2270
2271 $peer_file = new ilCheckboxInputGUI($lng->txt("exc_peer_review_file"), "peer_file");
2272 $peer_file->setInfo($lng->txt("exc_peer_review_file_info"));
2273 $peer->addSubItem($peer_file);
2274
2275 $peer_prsl = new ilCheckboxInputGUI($lng->txt("exc_peer_review_personal"), "peer_prsl");
2276 $peer_prsl->setInfo($lng->txt("exc_peer_review_personal_info"));
2277 $peer->addSubItem($peer_prsl);
2278
2279 if($a_mode != "create" && // #13745
2280 $this->ass &&
2281 $this->ass->getDeadline() && $this->ass->getDeadline() < time())
2282 {
2283 $peer_prsl->setDisabled(true);
2284 }
2285
2286
2287 // global feedback
2288
2289 $fb = new ilCheckboxInputGUI($lng->txt("exc_global_feedback_file"), "fb");
2290 $this->form->addItem($fb);
2291
2292 $fb_file = new ilFileInputGUI($lng->txt("file"), "fb_file");
2293 $fb_file->setRequired(true); // will be disabled on update if file exists (see below)
2294 // $fb_file->setAllowDeletion(true); makes no sense if required (overwrite or keep)
2295 $fb->addSubItem($fb_file);
2296
2297 // #15467
2298 if($a_mode != "create" &&
2299 $this->ass &&
2300 $this->ass->getFeedbackFile())
2301 {
2302 $fb_file->setRequired(false);
2303 }
2304
2305 $fb_date = new ilRadioGroupInputGUI($lng->txt("exc_global_feedback_file_date"), "fb_date");
2306 $fb_date->setRequired(true);
2307 $fb_date->addOption(new ilRadioOption($lng->txt("exc_global_feedback_file_date_deadline"), ilExAssignment::FEEDBACK_DATE_DEADLINE));
2308 $fb_date->addOption(new ilRadioOption($lng->txt("exc_global_feedback_file_date_upload"), ilExAssignment::FEEDBACK_DATE_SUBMISSION));
2309 $fb->addSubItem($fb_date);
2310
2311 $fb_cron = new ilCheckboxInputGUI($lng->txt("exc_global_feedback_file_cron"), "fb_cron");
2312 $fb_cron->setInfo($lng->txt("exc_global_feedback_file_cron_info"));
2313 $fb->addSubItem($fb_cron);
2314
2315 // save and cancel commands
2316 if ($a_mode == "create")
2317 {
2318 $this->form->addCommandButton("saveAssignment", $lng->txt("save"));
2319 $this->form->addCommandButton("listAssignments", $lng->txt("cancel"));
2320 }
2321 else
2322 {
2323 $this->form->addCommandButton("updateAssignment", $lng->txt("save"));
2324 $this->form->addCommandButton("listAssignments", $lng->txt("cancel"));
2325 }
2326 }
This class represents a checkbox property in a property form.
This class represents a date/time property in a property form.
This class represents a file property in a property form.
This class represents a file wizard property in a property form.
This class represents a hidden form property in a property form.
This class represents a number property in a property form.
This class represents a selection list property in a property form.
This class represents a text area property in a property form.
This class represents a text property in a property form.
global $ilSetting
Definition: privfeed.php:40

References $ilCtrl, $ilSetting, ilObjectGUI\$lng, ilExAssignment\FEEDBACK_DATE_DEADLINE, ilExAssignment\FEEDBACK_DATE_SUBMISSION, ilExAssignment\TYPE_BLOG, ilExAssignment\TYPE_PORTFOLIO, ilExAssignment\TYPE_TEXT, ilExAssignment\TYPE_UPLOAD, and ilExAssignment\TYPE_UPLOAD_TEAM.

Referenced by addAssignmentObject(), editAssignmentObject(), saveAssignmentObject(), and updateAssignmentObject().

+ Here is the caller graph for this function:

◆ initAssignmentTextForm()

ilObjExerciseGUI::initAssignmentTextForm ( ilExAssignment  $a_ass,
  $a_read_only = false,
  $a_cancel_cmd = "showOverview",
  $a_peer_review_cmd = null,
  $a_peer_rating_html = null 
)
protected

Definition at line 3947 of file class.ilObjExerciseGUI.php.

3948 {
3949 global $ilCtrl, $ilUser;
3950
3951 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
3952 $form = new ilPropertyFormGUI();
3953 $form->setTitle($this->lng->txt("exc_assignment")." \"".$a_ass->getTitle()."\"");
3954
3955 if(!$a_read_only)
3956 {
3957 $text = new ilTextAreaInputGUI($this->lng->txt("exc_your_text"), "atxt");
3958 $text->setRequired((bool)$a_ass->getMandatory());
3959 $text->setRows(40);
3960 $form->addItem($text);
3961
3962 // custom rte tags
3963 $text->setUseRte(true);
3964 $text->setRTESupport($ilUser->getId(), "exca~", "exc_ass");
3965
3966 // see ilObjForumGUI
3967 $text->disableButtons(array(
3968 'charmap',
3969 'undo',
3970 'redo',
3971 'justifyleft',
3972 'justifycenter',
3973 'justifyright',
3974 'justifyfull',
3975 'anchor',
3976 'fullscreen',
3977 'cut',
3978 'copy',
3979 'paste',
3980 'pastetext',
3981 // 'formatselect' #13234
3982 ));
3983
3984 $form->setFormAction($ilCtrl->getFormAction($this, "updateAssignmentText"));
3985 $form->addCommandButton("updateAssignmentTextAndReturn", $this->lng->txt("save_return"));
3986 $form->addCommandButton("updateAssignmentText", $this->lng->txt("save"));
3987 }
3988 else
3989 {
3990 $text = new ilNonEditableValueGUI($this->lng->txt("exc_files_returned_text"), "atxt", true);
3991 $form->addItem($text);
3992
3993 if(!$a_peer_review_cmd)
3994 {
3995 $form->setFormAction($ilCtrl->getFormAction($this, "showOverview"));
3996 }
3997 else
3998 {
3999 $rating = new ilCustomInputGUI($this->lng->txt("exc_peer_review_rating"));
4000 $rating->setHtml($a_peer_rating_html);
4001 $form->addItem($rating);
4002
4003 $comm = new ilTextAreaInputGUI($this->lng->txt("exc_peer_review_comment"), "comm");
4004 $comm->setCols(75);
4005 $comm->setRows(15);
4006 $form->addItem($comm);
4007
4008 $form->setFormAction($ilCtrl->getFormAction($this, $a_peer_review_cmd));
4009 $form->addCommandButton($a_peer_review_cmd, $this->lng->txt("save"));
4010 }
4011 }
4012 $form->addCommandButton($a_cancel_cmd, $this->lng->txt("cancel"));
4013
4014 return $form;
4015 }
This class represents a custom property in a property form.
getMandatory()
Get mandatory.
This class represents a non editable value in a property form.

References $ilCtrl, $ilUser, ilExAssignment\getMandatory(), and ilExAssignment\getTitle().

Referenced by editAssignmentTextObject(), showAssignmentTextObject(), and updateAssignmentTextObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initEditCustomForm()

ilObjExerciseGUI::initEditCustomForm ( ilPropertyFormGUI  $a_form)
protected

Init properties form.

Reimplemented from ilObjectGUI.

Definition at line 782 of file class.ilObjExerciseGUI.php.

783 {
784 $a_form->setTitle($this->lng->txt("exc_edit_exercise"));
785
787 $section->setTitle($this->lng->txt('exc_passing_exc'));
788 $a_form->addItem($section);
789
790 // pass mode
791 $radg = new ilRadioGroupInputGUI($this->lng->txt("exc_pass_mode"), "pass_mode");
792
793 $op1 = new ilRadioOption($this->lng->txt("exc_pass_all"), "all",
794 $this->lng->txt("exc_pass_all_info"));
795 $radg->addOption($op1);
796 $op2 = new ilRadioOption($this->lng->txt("exc_pass_minimum_nr"), "nr",
797 $this->lng->txt("exc_pass_minimum_nr_info"));
798 $radg->addOption($op2);
799
800 // minimum number of assignments to pass
801 $ni = new ilNumberInputGUI($this->lng->txt("exc_min_nr"), "pass_nr");
802 $ni->setSize(4);
803 $ni->setMaxLength(4);
804 $ni->setRequired(true);
805 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
806 $mand = ilExAssignment::countMandatory($this->object->getId());
807 $min = max($mand, 1);
808 $ni->setMinValue($min, true);
809 $ni->setInfo($this->lng->txt("exc_min_nr_info"));
810 $op2->addSubItem($ni);
811
812 $a_form->addItem($radg);
813
814 // completion by submission
815 $subcompl = new ilRadioGroupInputGUI($this->lng->txt("exc_passed_status_determination"), "completion_by_submission");
816 $op1 = new ilRadioOption($this->lng->txt("exc_completion_by_tutor"), 0, "");
817 $subcompl->addOption($op1);
818 $op2 = new ilRadioOption($this->lng->txt("exc_completion_by_submission"), 1,$this->lng->txt("exc_completion_by_submission_info"));
819 $subcompl->addOption($op2);
820 $a_form->addItem($subcompl);
821
822 /*$subcompl = new ilCheckboxInputGUI($this->lng->txt('exc_completion_by_submission'), 'completion_by_submission');
823 $subcompl->setInfo($this->lng->txt('exc_completion_by_submission_info'));
824 $subcompl->setValue(1);
825 $a_form->addItem($subcompl);*/
826
828 $section->setTitle($this->lng->txt('exc_publishing'));
829 $a_form->addItem($section);
830
831 // show submissions
832 $cb = new ilCheckboxInputGUI($this->lng->txt("exc_show_submissions"), "show_submissions");
833 $cb->setInfo($this->lng->txt("exc_show_submissions_info"));
834 $a_form->addItem($cb);
835
837 $section->setTitle($this->lng->txt('exc_notification'));
838 $a_form->addItem($section);
839
840 // submission notifications
841 $cbox = new ilCheckboxInputGUI($this->lng->txt("exc_submission_notification"), "notification");
842 $cbox->setInfo($this->lng->txt("exc_submission_notification_info"));
843 $a_form->addItem($cbox);
844 }
$section
Definition: Utf8Test.php:84
countMandatory($a_ex_id)
Order assignments by deadline date.
This class represents a section header in a property form.
addItem($a_item)
Add Item (Property, SectionHeader).
setTitle($a_title)
Set Title.

References $section, ilPropertyFormGUI\addItem(), ilExAssignment\countMandatory(), and ilPropertyFormGUI\setTitle().

+ Here is the call graph for this function:

◆ initMultiFeedbackForm()

ilObjExerciseGUI::initMultiFeedbackForm (   $a_ass_id)

Definition at line 4671 of file class.ilObjExerciseGUI.php.

4672 {
4673 global $lng;
4674
4675 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
4676 $form = new ilPropertyFormGUI();
4677 $form->addCommandButton("uploadMultiFeedback", $lng->txt("upload"));
4678 $form->addCommandButton("members", $lng->txt("cancel"));
4679
4680 // multi feedback file
4681 $fi = new ilFileInputGUI($lng->txt("exc_multi_feedback_file"), "mfzip");
4682 $fi->setSuffixes(array("zip"));
4683 $fi->setRequired(true);
4684 $form->addItem($fi);
4685
4686 $form->setTitle(ilExAssignment::lookupTitle($a_ass_id));
4687 $form->setFormAction($this->ctrl->getFormAction($this, "uploadMultiFeedback"));
4688
4689 return $form;
4690 }

References ilObjectGUI\$lng, and ilExAssignment\lookupTitle().

Referenced by showMultiFeedbackObject(), and uploadMultiFeedbackObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initPortfolioTemplateForm()

ilObjExerciseGUI::initPortfolioTemplateForm ( array  $a_templates)
protected

Definition at line 3423 of file class.ilObjExerciseGUI.php.

3424 {
3425 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
3426 $form = new ilPropertyFormGUI();
3427 $form->setTitle($this->lng->txt("exc_create_portfolio").": ".$this->ass->getTitle());
3428 $form->setFormAction($this->ctrl->getFormAction($this, "setSelectedPortfolioTemplate"));
3429
3430 $prtt = new ilRadioGroupInputGUI($this->lng->txt("obj_prtt"), "prtt");
3431 $prtt->setRequired(true);
3432 $prtt->addOption(new ilRadioOption($this->lng->txt("exc_create_portfolio_no_template"), -1));
3433 foreach($a_templates as $id => $title)
3434 {
3435 $prtt->addOption(new ilRadioOption('"'.$title.'"', $id));
3436 }
3437 $prtt->setValue(-1);
3438 $form->addItem($prtt);
3439
3440 $form->addCommandButton("setSelectedPortfolioTemplate", $this->lng->txt("save"));
3441 $form->addCommandButton("showOverview", $this->lng->txt("cancel"));
3442
3443 return $form;
3444 }

Referenced by createPortfolioTemplateObject(), and setSelectedPortfolioTemplateObject().

+ Here is the caller graph for this function:

◆ initTeamSubmission()

ilObjExerciseGUI::initTeamSubmission (   $a_back_cmd,
  $a_mandatory_team = true 
)
protected

Definition at line 3605 of file class.ilObjExerciseGUI.php.

3606 {
3607 global $ilUser, $ilHelp;
3608
3609 $this->checkPermission("read");
3610
3611 if($a_mandatory_team && $this->ass->getType() != ilExAssignment::TYPE_UPLOAD_TEAM)
3612 {
3613 $this->ctrl->redirect($this, "submissionScreen");
3614 }
3615
3616 $this->tabs_gui->clearTargets();
3617 $ilHelp->setScreenIdComponent("exc");
3618 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
3619 $this->ctrl->getLinkTarget($this, $a_back_cmd));
3620
3621 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
3622 {
3623 $this->tabs_gui->addTab("submissions", $this->lng->txt("files"),
3624 $this->ctrl->getLinkTarget($this, "submissionScreen"));
3625
3626 $this->tabs_gui->addTab("team", $this->lng->txt("exc_team"),
3627 $this->ctrl->getLinkTarget($this, "submissionScreenTeam"));
3628
3629 $this->tabs_gui->addTab("log", $this->lng->txt("exc_team_log"),
3630 $this->ctrl->getLinkTarget($this, "submissionScreenTeamLog"));
3631
3632 $this->tabs_gui->activateTab("team");
3633
3634 $team_id = $this->ass->getTeamId($ilUser->getId());
3635
3636 if(!$team_id)
3637 {
3638 $team_id = $this->ass->getTeamId($ilUser->getId(), true);
3639
3640 // #12337
3641 if (!$this->object->members_obj->isAssigned($ilUser->getId()))
3642 {
3643 $this->object->members_obj->assignMember($ilUser->getId());
3644 }
3645 }
3646
3647 return $team_id;
3648 }
3649 else
3650 {
3651 $ilHelp->setScreenId("submissions");
3652 }
3653 }

References $ilUser, ilObjectGUI\checkPermission(), and ilExAssignment\TYPE_UPLOAD_TEAM.

Referenced by confirmRemoveTeamMemberObject(), executeCommand(), submissionScreenObject(), submissionScreenTeamLogObject(), and submissionScreenTeamObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initUploadForm()

ilObjExerciseGUI::initUploadForm ( )

Init upload form form.

Definition at line 531 of file class.ilObjExerciseGUI.php.

532 {
533 global $lng, $ilCtrl;
534
535 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
536 $this->form = new ilPropertyFormGUI();
537
538 // file input
539 include_once("./Services/Form/classes/class.ilFileWizardInputGUI.php");
540 $fi = new ilFileWizardInputGUI($lng->txt("file"), "deliver");
541 $fi->setFilenames(array(0 => ''));
542 //$fi->setInfo($lng->txt(""));
543 $this->form->addItem($fi);
544
545 $this->form->addCommandButton("deliverFile", $lng->txt("upload"));
546 $this->form->addCommandButton("submissionScreen", $lng->txt("cancel"));
547
548 $this->form->setTitle($lng->txt("file_add"));
549 $this->form->setFormAction($ilCtrl->getFormAction($this));
550 }

References $ilCtrl, and ilObjectGUI\$lng.

Referenced by uploadFormObject().

+ Here is the caller graph for this function:

◆ initZipUploadForm()

ilObjExerciseGUI::initZipUploadForm ( )

Init upload form form.

Definition at line 555 of file class.ilObjExerciseGUI.php.

556 {
557 global $lng, $ilCtrl;
558
559 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
560 $this->form = new ilPropertyFormGUI();
561
562 // desc
563 include_once("./Services/Form/classes/class.ilFileInputGUI.php");
564 $fi = new ilFileInputGUI($lng->txt("file"), "deliver");
565 $fi->setSuffixes(array("zip"));
566 $this->form->addItem($fi);
567
568 $this->form->addCommandButton("deliverUnzip", $lng->txt("upload"));
569 $this->form->addCommandButton("submissionScreen", $lng->txt("cancel"));
570
571 $this->form->setTitle($lng->txt("header_zip"));
572 $this->form->setFormAction($ilCtrl->getFormAction($this));
573 }

References $ilCtrl, and ilObjectGUI\$lng.

Referenced by uploadZipFormObject().

+ Here is the caller graph for this function:

◆ listAssignmentsObject()

ilObjExerciseGUI::listAssignmentsObject ( )

List assignments.

Definition at line 2117 of file class.ilObjExerciseGUI.php.

2118 {
2119 global $tpl, $ilTabs, $ilToolbar, $lng, $ilCtrl;
2120
2121 $this->checkPermission("write");
2122
2123 $ilTabs->activateTab("content");
2124 $this->addContentSubTabs("list_assignments");
2125
2126 $ilToolbar->addButton($lng->txt("exc_add_assignment"),
2127 $ilCtrl->getLinkTarget($this, "addAssignment"));
2128
2129 include_once("./Modules/Exercise/classes/class.ilAssignmentsTableGUI.php");
2130 $t = new ilAssignmentsTableGUI($this, "listAssignments", $this->object);
2131 $tpl->setContent($t->getHTML());
2132 }

References $ilCtrl, ilObjectGUI\$lng, $t, ilObjectGUI\$tpl, addContentSubTabs(), and ilObjectGUI\checkPermission().

+ Here is the call graph for this function:

◆ listPublicSubmissionsObject()

ilObjExerciseGUI::listPublicSubmissionsObject ( )

List all submissions.

Definition at line 3018 of file class.ilObjExerciseGUI.php.

3019 {
3020 global $tpl, $ilTabs;
3021
3022 $this->checkPermission("read");
3023
3024 if(!$this->object->getShowSubmissions())
3025 {
3026 $this->ctrl->redirect($this, "view");
3027 }
3028
3029 $ilTabs->activateTab("content");
3030 $this->addContentSubTabs("content");
3031
3032 if($this->ass->getType() != ilExAssignment::TYPE_TEXT)
3033 {
3034 include_once("./Modules/Exercise/classes/class.ilPublicSubmissionsTableGUI.php");
3035 $tab = new ilPublicSubmissionsTableGUI($this, "listPublicSubmissions",
3036 $this->object, (int) $_GET["ass_id"]);
3037 $tpl->setContent($tab->getHTML());
3038 }
3039 else
3040 {
3041 // #13271
3042 include_once "Modules/Exercise/classes/class.ilExAssignmentListTextTableGUI.php";
3043 $tbl = new ilExAssignmentListTextTableGUI($this, "listPublicSubmissions", $this->ass, false, true);
3044 $tpl->setContent($tbl->getHTML());
3045 }
3046 }

References $_GET, $tab, ilObjectGUI\$tpl, addContentSubTabs(), ilObjectGUI\checkPermission(), and ilExAssignment\TYPE_TEXT.

+ Here is the call graph for this function:

◆ listTextAssignmentObject()

ilObjExerciseGUI::listTextAssignmentObject (   $a_show_peer_review = false)

Definition at line 4268 of file class.ilObjExerciseGUI.php.

4269 {
4270 global $tpl, $ilToolbar, $ilCtrl, $ilTabs, $lng;
4271
4272 $this->checkPermission("write");
4273
4274 if(!$this->ass || $this->ass->getType() != ilExAssignment::TYPE_TEXT)
4275 {
4276 $ilCtrl->redirect($this, "member");
4277 }
4278
4279 $ilTabs->clearTargets();
4280 $ilTabs->setBackTarget($lng->txt("back"),
4281 $ilCtrl->getLinkTarget($this, "members"));
4282
4283 if($a_show_peer_review)
4284 {
4285 $cmd = "listTextAssignmentWithPeerReview";
4286 }
4287 else
4288 {
4289 $cmd = "listTextAssignment";
4290 }
4291 include_once "Modules/Exercise/classes/class.ilExAssignmentListTextTableGUI.php";
4292 $tbl = new ilExAssignmentListTextTableGUI($this, $cmd, $this->ass, $a_show_peer_review);
4293 $tpl->setContent($tbl->getHTML());
4294 }

References $cmd, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), and ilExAssignment\TYPE_TEXT.

Referenced by listTextAssignmentWithPeerReviewObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ listTextAssignmentWithPeerReviewObject()

ilObjExerciseGUI::listTextAssignmentWithPeerReviewObject ( )

Definition at line 4263 of file class.ilObjExerciseGUI.php.

4264 {
4265 $this->listTextAssignmentObject(true);
4266 }
listTextAssignmentObject($a_show_peer_review=false)

References listTextAssignmentObject().

+ Here is the call graph for this function:

◆ membersObject()

ilObjExerciseGUI::membersObject ( )

All participants and submission of one assignment.

Definition at line 1128 of file class.ilObjExerciseGUI.php.

1129 {
1130 global $rbacsystem, $tree, $tpl, $ilToolbar, $ilCtrl, $ilTabs, $lng;
1131
1132 $ilTabs->activateTab("grades");
1133
1134 include_once 'Services/Tracking/classes/class.ilLPMarks.php';
1135
1136 $this->checkPermission("write");
1137 $this->addSubmissionSubTabs("assignment");
1138
1139 // assignment selection
1140 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
1141 $ass = ilExAssignment::getAssignmentDataOfExercise($this->object->getId());
1142
1143 if ($_GET["ass_id"] == "")
1144 {
1145 $a = current($ass);
1146 $_GET["ass_id"] = $a["id"];
1147 }
1148
1149 reset($ass);
1150 if (count($ass) > 1)
1151 {
1152 $options = array();
1153 foreach ($ass as $a)
1154 {
1155 $options[$a["id"]] = $a["title"];
1156 }
1157 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
1158 $si = new ilSelectInputGUI($this->lng->txt(""), "ass_id");
1159 $si->setOptions($options);
1160 $si->setValue($_GET["ass_id"]);
1161 $ilToolbar->addInputItem($si);
1162
1163 $ilToolbar->addFormButton($this->lng->txt("exc_select_ass"),
1164 "selectAssignment");
1165 $ilToolbar->addSeparator();
1166 }
1167
1168 // add member
1169 include_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
1171 $this,
1172 $ilToolbar,
1173 array(
1174 'auto_complete_name' => $lng->txt('user'),
1175 'submit_name' => $lng->txt('add'),
1176 'add_search' => true,
1177 'add_from_container' => $_GET["ref_id"]
1178 )
1179 );
1180
1181 // we do not want the ilRepositorySearchGUI form action
1182 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1183
1184 $ilToolbar->addSeparator();
1185
1186 // multi-feebdack
1187 $ilToolbar->addButton($this->lng->txt("exc_multi_feedback"),
1188 $this->ctrl->getLinkTarget($this, "showMultiFeedback"));
1189
1190 if (count($ass) > 0)
1191 {
1192 $ctype = null;
1193 foreach($ass as $item)
1194 {
1195 if($item["id"] == $_GET["ass_id"])
1196 {
1197 $ctype = $item["type"];
1198 }
1199 }
1200 if($ctype == ilExAssignment::TYPE_TEXT)
1201 {
1202 $ilToolbar->addSeparator();
1203 $ilToolbar->addFormButton($lng->txt("exc_list_text_assignment"), "listTextAssignment");
1204 }
1205 else if(count(ilExAssignment::getAllDeliveredFiles($this->object->getId(), $_GET["ass_id"])))
1206 {
1207 $ilToolbar->addSeparator();
1208 $ilToolbar->addFormButton($lng->txt("download_all_returned_files"), "downloadAll");
1209 }
1210
1211 include_once("./Modules/Exercise/classes/class.ilExerciseMemberTableGUI.php");
1212 $exc_tab = new ilExerciseMemberTableGUI($this, "members", $this->object, $_GET["ass_id"]);
1213 $tpl->setContent($exc_tab->getHTML());
1214 }
1215 else
1216 {
1217 ilUtil::sendInfo($lng->txt("exc_no_assignments_available"));
1218 }
1219 return;
1220 }
addSubmissionSubTabs($a_activate)
adds tabs to tab gui object
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array())
fill toolbar with

References $_GET, $ilCtrl, ilObjectGUI\$lng, $options, $si, ilObjectGUI\$tpl, ilObjectGUI\$tree, addSubmissionSubTabs(), ilObjectGUI\checkPermission(), ilRepositorySearchGUI\fillAutoCompleteToolbar(), ilExAssignment\getAllDeliveredFiles(), ilExAssignment\getAssignmentDataOfExercise(), ilUtil\sendInfo(), and ilExAssignment\TYPE_TEXT.

Referenced by addUserFromAutoCompleteObject(), saveCommentsObject(), and selectAssignmentObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orderAssignmentsByDeadlineObject()

ilObjExerciseGUI::orderAssignmentsByDeadlineObject ( )

Order by deadline.

Definition at line 2906 of file class.ilObjExerciseGUI.php.

2907 {
2908 global $lng, $ilCtrl;
2909
2910 $this->checkPermission("write");
2911
2912 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2913 ilExAssignment::orderAssByDeadline($this->object->getId());
2914
2915 ilUtil::sendSuccess($lng->txt("exc_saved_order"), true);
2916 $ilCtrl->redirect($this, "listAssignments");
2917 }
orderAssByDeadline($a_ex_id)
Order assignments by deadline date.

References $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\checkPermission(), ilExAssignment\orderAssByDeadline(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ outCertificateObject()

ilObjExerciseGUI::outCertificateObject ( )

Definition at line 3589 of file class.ilObjExerciseGUI.php.

3590 {
3591 global $ilUser;
3592
3593 if($this->object->hasUserCertificate($ilUser->getId()))
3594 {
3595 ilUtil::sendFailure($this->lng->txt("msg_failed"));
3596 $this->showOverviewObject();
3597 }
3598
3599 include_once "./Services/Certificate/classes/class.ilCertificate.php";
3600 include_once "./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
3601 $certificate = new ilCertificate(new ilExerciseCertificateAdapter($this->object));
3602 $certificate->outCertificate(array("user_id" => $ilUser->getId()));
3603 }
Create PDF certificates.
showOverviewObject()
Show overview of assignments.

References $ilUser, ilUtil\sendFailure(), and showOverviewObject().

+ Here is the call graph for this function:

◆ redirectFeedbackMailObject()

ilObjExerciseGUI::redirectFeedbackMailObject ( )

set feedback status for member and redirect to mail screen

Definition at line 1353 of file class.ilObjExerciseGUI.php.

1354 {
1355 $this->checkPermission("write");
1356
1357 $members = array();
1358
1359 if ($_GET["member_id"] != "")
1360 {
1361 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
1362 {
1363 $members = ilExAssignment::getTeamMembersByAssignmentId($this->ass->getId(), $_GET["member_id"]);
1364 }
1365 else
1366 {
1367 $members = array($_GET["member_id"]);
1368 }
1369 }
1370 else if(count($_POST["member"]) > 0)
1371 {
1372 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
1373 {
1374 foreach(array_keys($_POST["member"]) as $user_id)
1375 {
1376 $members = array_merge($members, ilExAssignment::getTeamMembersByAssignmentId($this->ass->getId(), $user_id));
1377 }
1378 $members = array_unique($members);
1379 }
1380 else
1381 {
1382 $members = array_keys($_POST["member"]);
1383 }
1384 }
1385
1386 if($members)
1387 {
1388 $logins = array();
1389 foreach($members as $user_id)
1390 {
1391 ilExAssignment::updateStatusFeedbackForUser($this->ass->getId(), $user_id, 1);
1392 $logins[] = ilObjUser::_lookupLogin($user_id);
1393 }
1394 $logins = implode($logins, ",");
1395
1396 require_once 'Services/Mail/classes/class.ilMailFormCall.php';
1397 ilUtil::redirect(ilMailFormCall::getRedirectTarget($this, 'members', array(), array('type' => 'new', 'rcp_to' => $logins)));
1398 }
1399
1400 ilUtil::sendFailure($this->lng->txt("no_checkbox"),true);
1401 $this->ctrl->redirect($this, "members");
1402 }
updateStatusFeedbackForUser($a_ass_id, $a_user_id, $a_status)
was: setStatusFeedbackForMember($a_member_id,$a_status)
static getRedirectTarget($gui, $cmd, Array $gui_params=array(), Array $mail_params=array())
_lookupLogin($a_user_id)
lookup login

References $_GET, $_POST, ilObjUser\_lookupLogin(), ilObjectGUI\checkPermission(), ilMailFormCall\getRedirectTarget(), ilExAssignment\getTeamMembersByAssignmentId(), ilUtil\redirect(), ilUtil\sendFailure(), ilExAssignment\TYPE_UPLOAD_TEAM, and ilExAssignment\updateStatusFeedbackForUser().

Referenced by updateMembersObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeExistingSubmissions()

ilObjExerciseGUI::removeExistingSubmissions ( )

remove existing files/submissions for assignment

Definition at line 3221 of file class.ilObjExerciseGUI.php.

3222 {
3223 global $ilUser;
3224
3225 $submitted = ilExAssignment::getDeliveredFiles($this->ass->getExerciseId(), $this->ass->getId(), $ilUser->getId());
3226 if($submitted)
3227 {
3228 $files = array();
3229 foreach($submitted as $item)
3230 {
3231 $files[] = $item["returned_id"];
3232 }
3233 ilExAssignment::deleteDeliveredFiles($this->ass->getExerciseId(), $this->ass->getId(), $files, $ilUser->getId());
3234 }
3235 }
deleteDeliveredFiles($a_exc_id, $a_ass_id, $file_id_array, $a_user_id)
was: deleteDeliveredFiles($file_id_array, $a_member_id)

References $ilUser, ilExAssignment\deleteDeliveredFiles(), and ilExAssignment\getDeliveredFiles().

Referenced by setSelectedBlogObject(), setSelectedPortfolioObject(), submitBlog(), and submitPortfolio().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeTeamMemberObject()

ilObjExerciseGUI::removeTeamMemberObject (   $a_full_delete = false)

Definition at line 3824 of file class.ilObjExerciseGUI.php.

3825 {
3826 global $ilUser;
3827
3828 $team_id = $this->ass->getTeamId($ilUser->getId());
3829 $members = $this->ass->getTeamMembers($team_id);
3830
3831 $ids = (bool)$a_full_delete
3832 ? $members
3833 : $_POST["id"];
3834
3835 if(!sizeof($ids))
3836 {
3837 ilUtil::sendFailure($this->lng->txt("select_one"), true);
3838 $this->ctrl->redirect($this, "submissionScreenTeam");
3839 }
3840
3841 $team_deleted = (bool)$a_full_delete;
3842 if(!$team_deleted)
3843 {
3844 if(sizeof($members) <= sizeof($ids))
3845 {
3846 if(sizeof($members) == 1 && $members[0] == $ilUser->getId())
3847 {
3848 $team_deleted = true;
3849 }
3850 else
3851 {
3852 ilUtil::sendFailure($this->lng->txt("exc_team_at_least_one"), true);
3853 $this->ctrl->redirect($this, "submissionScreenTeam");
3854 }
3855 }
3856 }
3857
3858 foreach($ids as $user_id)
3859 {
3860 $this->ass->removeTeamMember($team_id, $user_id, $this->ref_id);
3861
3862 ilExAssignment::updateStatusReturnedForUser($this->ass->getId(), $user_id, 0);
3863 ilExerciseMembers::_writeReturned($this->object->getId(), $user_id, 0);
3864
3865 // :TODO: log, notification
3866 }
3867
3868 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
3869
3870 if(!$team_deleted)
3871 {
3872 $this->ctrl->redirect($this, "submissionScreenTeam");
3873 }
3874 else
3875 {
3876 $this->ctrl->redirect($this, "showOverview");
3877 }
3878 }

References $_POST, $ilUser, ilExerciseMembers\_writeReturned(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilExAssignment\updateStatusReturnedForUser().

Referenced by confirmRemoveTeamMemberObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderWorkspaceExplorer()

ilObjExerciseGUI::renderWorkspaceExplorer (   $a_cmd)
protected

Definition at line 3538 of file class.ilObjExerciseGUI.php.

3539 {
3540 global $ilUser;
3541
3542 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
3543 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
3544 require_once 'Services/PersonalWorkspace/classes/class.ilWorkspaceExplorer.php';
3545
3546 $tree = new ilWorkspaceTree($ilUser->getId());
3547 $access_handler = new ilWorkspaceAccessHandler($tree);
3549 'exc_wspexpand', $tree, $access_handler);
3550 $exp->setTargetGet('wsp_id');
3551
3552 if($a_cmd == "selectBlog")
3553 {
3554 $exp->removeAllFormItemTypes();
3555 $exp->addFilter('blog');
3556 $exp->addFormItemForType('blog');
3557 }
3558
3559 if($_GET['exc_wspexpand'] == '')
3560 {
3561 // not really used as session is already set [see above]
3562 $expanded = $tree->readRootId();
3563 }
3564 else
3565 {
3566 $expanded = $_GET['exc_wspexpand'];
3567 }
3568
3569 $exp->setExpandTarget($this->ctrl->getLinkTarget($this, $a_cmd));
3570 $exp->setPostVar('node');
3571 $exp->setExpand($expanded);
3572 $exp->setOutput(0);
3573
3574 return $exp->getOutput();
3575 }
Access handler for personal workspace.
Tree handler for personal workspace.

References $_GET, $ilUser, ilObjectGUI\$tree, and ilWorkspaceExplorer\SEL_TYPE_RADIO.

Referenced by createBlogObject(), and selectBlogObject().

+ Here is the caller graph for this function:

◆ resetPeerReviewObject()

ilObjExerciseGUI::resetPeerReviewObject ( )

Definition at line 4633 of file class.ilObjExerciseGUI.php.

4634 {
4635 global $ilCtrl;
4636
4637 if($this->ass &&
4638 $this->ass->getPeerReview())
4639 {
4640 $this->checkPermission("write");
4641 $this->ass->resetPeerReviews();
4642
4643 ilUtil::sendSuccess($this->lng->txt("exc_peer_review_reset_done"), true);
4644 }
4645
4646 $ilCtrl->redirect($this, "showPeerReviewOverview");
4647 }

References $ilCtrl, ilObjectGUI\checkPermission(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ saveAssignmentObject()

ilObjExerciseGUI::saveAssignmentObject ( )

Save assignment.

Definition at line 2332 of file class.ilObjExerciseGUI.php.

2333 {
2334 global $tpl, $lng, $ilCtrl, $ilTabs;
2335
2336 $this->checkPermission("write");
2337
2338 $ilTabs->activateTab("content");
2339 $this->addContentSubTabs("list_assignments");
2340
2341 $this->initAssignmentForm("create");
2342 if ($this->form->checkInput())
2343 {
2344 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2345
2346 // additional checks
2347
2348 $valid = true;
2349
2350 if ($_POST["start_time_cb"] && $_POST["deadline_cb"])
2351 {
2352 // check whether start date is before end date
2353 $start_date =
2354 $this->form->getItemByPostVar("start_time")->getDate();
2355 $end_date =
2356 $this->form->getItemByPostVar("deadline")->getDate();
2357 if ($start_date->get(IL_CAL_UNIX) >=
2358 $end_date->get(IL_CAL_UNIX))
2359 {
2360 $this->form->getItemByPostVar("start_time")
2361 ->setAlert($lng->txt("exc_start_date_should_be_before_end_date"));
2362 $this->form->getItemByPostVar("deadline")
2363 ->setAlert($lng->txt("exc_start_date_should_be_before_end_date"));
2364 $valid = false;
2365 }
2366 }
2367
2368 if($_POST["type"] == ilExAssignment::TYPE_UPLOAD_TEAM && $_POST["peer"])
2369 {
2370 $this->form->getItemByPostVar("peer")
2371 ->setAlert($lng->txt("exc_team_upload_not_supported"));
2372 $valid = false;
2373 }
2374
2375 if(!$_POST["deadline_cb"])
2376 {
2377 if($_POST["peer"])
2378 {
2379 $this->form->getItemByPostVar("peer")
2380 ->setAlert($lng->txt("exc_needs_deadline"));
2381 $valid = false;
2382 }
2383 // #18508
2384 if($_POST["fb"] && $_POST["fb_date"] == ilExAssignment::FEEDBACK_DATE_DEADLINE)
2385 {
2386 $this->form->getItemByPostVar("fb")
2387 ->setAlert($lng->txt("exc_needs_deadline"));
2388 $valid = false;
2389 }
2390 }
2391 else
2392 {
2394 $_POST["peer"] &&
2395 $_POST["peer_dl_tgl"])
2396 {
2397 $peer_dl = $this->form->getItemByPostVar("peer_dl")->getDate();
2398 $peer_dl = $peer_dl->get(IL_CAL_UNIX);
2399 $end_date = $this->form->getItemByPostVar("deadline")->getDate();
2400 $end_date = $end_date->get(IL_CAL_UNIX);
2401
2402 // #13877
2403 if ($peer_dl < $end_date)
2404 {
2405 $this->form->getItemByPostVar("peer_dl")
2406 ->setAlert($lng->txt("exc_peer_deadline_mismatch"));
2407 $valid = false;
2408 }
2409 }
2410 }
2411
2412 if(!$valid)
2413 {
2414 ilUtil::sendFailure($lng->txt("form_input_not_valid"));
2415 $this->form->setValuesByPost();
2416 $tpl->setContent($this->form->getHtml());
2417 return;
2418 }
2419
2420 $ass = new ilExAssignment();
2421 $ass->setTitle($_POST["title"]);
2422 $ass->setInstruction($_POST["instruction"]);
2423 $ass->setExerciseId($this->object->getId());
2424 $ass->setMandatory($_POST["mandatory"]);
2425 $ass->setType($_POST["type"]);
2426
2427 if ($_POST["start_time_cb"])
2428 {
2429 $date =
2430 $this->form->getItemByPostVar("start_time")->getDate();
2431 $ass->setStartTime($date->get(IL_CAL_UNIX));
2432 }
2433 else
2434 {
2435 $ass->setStartTime(null);
2436 }
2437
2438 // deadline
2439 if ($_POST["deadline_cb"])
2440 {
2441 $date =
2442 $this->form->getItemByPostVar("deadline")->getDate();
2443 $ass->setDeadline($date->get(IL_CAL_UNIX));
2444 }
2445 else
2446 {
2447 $ass->setDeadline(null);
2448 }
2449
2451 {
2452 $ass->setPeerReview($_POST["peer"]);
2453 $ass->setPeerReviewMin($_POST["peer_min"]);
2454 $ass->setPeerReviewFileUpload($_POST["peer_file"]);
2455
2456 if($ass->getDeadline() && $ass->getDeadline() > time())
2457 {
2458 $ass->setPeerReviewPersonalized($_POST["peer_prsl"]);
2459 }
2460
2461 if($_POST["peer_dl_tgl"])
2462 {
2463 $peer_dl = $this->form->getItemByPostVar("peer_dl")->getDate();
2464 $ass->setPeerReviewDeadline($peer_dl->get(IL_CAL_UNIX));
2465 }
2466 else
2467 {
2468 $ass->setPeerReviewDeadline(null);
2469 }
2470 }
2471
2472 $ass->setFeedbackCron($_POST["fb_cron"]); // #13380
2473 $ass->setFeedbackDate($_POST["fb_date"]);
2474
2475 $ass->save();
2476
2477 // save files
2478 $ass->uploadAssignmentFiles($_FILES["files"]);
2479
2480 if($_FILES["fb_file"]["tmp_name"])
2481 {
2482 $ass->handleFeedbackFileUpload($_FILES["fb_file"]);
2483 $ass->update();
2484 }
2485
2486 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
2487
2488 if($ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
2489 {
2490 if(sizeof(ilExAssignment::getAdoptableTeamAssignments($this->object->getId(), $ass->getId())))
2491 {
2492 $ilCtrl->setParameter($this, "ass_id", $ass->getId());
2493 $ilCtrl->redirect($this, "adoptTeamAssignmentsForm");
2494 }
2495 }
2496
2497 $ilCtrl->redirect($this, "listAssignments");
2498 }
2499 else
2500 {
2501 $this->form->setValuesByPost();
2502 $tpl->setContent($this->form->getHtml());
2503 }
2504 }
$valid

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, $valid, addContentSubTabs(), ilObjectGUI\checkPermission(), ilExAssignment\FEEDBACK_DATE_DEADLINE, ilExAssignment\getAdoptableTeamAssignments(), IL_CAL_UNIX, initAssignmentForm(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilExAssignment\TYPE_UPLOAD_TEAM.

+ Here is the call graph for this function:

◆ saveAssignmentOrderObject()

ilObjExerciseGUI::saveAssignmentOrderObject ( )

Save assignments order.

Definition at line 2890 of file class.ilObjExerciseGUI.php.

2891 {
2892 global $lng, $ilCtrl;
2893
2894 $this->checkPermission("write");
2895
2896 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2897 ilExAssignment::saveAssOrderOfExercise($this->object->getId(), $_POST["order"]);
2898
2899 ilUtil::sendSuccess($lng->txt("exc_saved_order"), true);
2900 $ilCtrl->redirect($this, "listAssignments");
2901 }
saveAssOrderOfExercise($a_ex_id, $a_order)
Save ordering of all assignments of an exercise.

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\checkPermission(), ilExAssignment\saveAssOrderOfExercise(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ saveBlogObject()

ilObjExerciseGUI::saveBlogObject ( )
protected

Definition at line 3161 of file class.ilObjExerciseGUI.php.

3162 {
3163 global $ilUser;
3164
3165 if(!$_POST["node"])
3166 {
3167 ilUtil::sendFailure($this->lng->txt("select_one"));
3168 return $this->createBlogObject();
3169 }
3170
3171 $parent_node = $_POST["node"];
3172
3173 include_once "Modules/Blog/classes/class.ilObjBlog.php";
3174 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
3175 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
3176
3177 $blog = new ilObjBlog();
3178 $blog->setTitle($this->object->getTitle()." - ".$this->ass->getTitle());
3179 $blog->create();
3180
3181 $tree = new ilWorkspaceTree($ilUser->getId());
3182
3183 $node_id = $tree->insertObject($parent_node, $blog->getId());
3184
3185 $access_handler = new ilWorkspaceAccessHandler($tree);
3186 $access_handler->setPermissions($parent_node, $node_id);
3187
3188 $this->object->addResourceObject($node_id, $this->ass->getId(), $ilUser->getId());
3189
3190 ilUtil::sendSuccess($this->lng->txt("exc_blog_created"), true);
3191 $this->ctrl->redirect($this, "showOverview");
3192 }
Class ilObjBlog.

References $_POST, $ilUser, ilObjectGUI\$tree, createBlogObject(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ saveCommentForLearnersObject()

ilObjExerciseGUI::saveCommentForLearnersObject ( )

Save comment for learner (asynch)

Definition at line 4811 of file class.ilObjExerciseGUI.php.

4812 {
4813 $this->checkPermission("write");
4814
4815 $res = array("result"=>false);
4816
4817 if($this->ctrl->isAsynch())
4818 {
4819 $ass_id = (int)$_POST["ass_id"];
4820 $user_id = (int)$_POST["mem_id"];
4821 $comment = trim($_POST["comm"]);
4822
4823 if($ass_id && $user_id)
4824 {
4825 include_once "Modules/Exercise/classes/class.ilExAssignment.php";
4826
4827 // team upload?
4828 if(is_object($this->ass) && $this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
4829 {
4830 $team_id = $this->ass->getTeamId($user_id);
4831 $user_ids = $this->ass->getTeamMembers($team_id);
4832 }
4833 else
4834 {
4835 $user_ids = array($user_id);
4836 }
4837
4838 $all_members = new ilExerciseMembers($this->object);
4839 $all_members = $all_members->getMembers();
4840
4841 $reci_ids = array();
4842 foreach($user_ids as $user_id)
4843 {
4844 if(in_array($user_id, $all_members))
4845 {
4846 ilExAssignment::updateCommentForUser($ass_id, $user_id,
4848
4849 if(trim($comment))
4850 {
4851 $reci_ids[] = $user_id;
4852 }
4853 }
4854 }
4855
4856 if(sizeof($reci_ids))
4857 {
4858 // send notification
4859 $this->object->sendFeedbackFileNotification(null, $reci_ids,
4860 $ass_id, true);
4861 }
4862
4863 $res = array("result"=>true, "snippet"=>ilUtil::shortenText($comment, 25, true));
4864 }
4865 }
4866
4867 echo(json_encode($res));
4868 exit();
4869 }
$comment
Definition: buildRTE.php:83
updateCommentForUser($a_ass_id, $a_user_id, $a_value)
Update comment.
Class ilExerciseMembers.
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.

References $_POST, $comment, $res, ilObjectGUI\checkPermission(), exit, ilUtil\shortenText(), ilUtil\stripSlashes(), ilExAssignment\TYPE_UPLOAD_TEAM, and ilExAssignment\updateCommentForUser().

+ Here is the call graph for this function:

◆ saveCommentsObject()

ilObjExerciseGUI::saveCommentsObject ( )

Definition at line 1606 of file class.ilObjExerciseGUI.php.

1607 {
1608 $this->checkPermission("write");
1609
1610 if(!isset($_POST['comments_value']))
1611 {
1612 return;
1613 }
1614
1615 $this->object->members_obj->setNoticeForMember($_GET["member_id"],
1616 ilUtil::stripSlashes($_POST["comments_value"]));
1617 ilUtil::sendSuccess($this->lng->txt("exc_members_comments_saved"));
1618 $this->membersObject();
1619 }

References $_GET, $_POST, ilObjectGUI\checkPermission(), membersObject(), ilUtil\sendSuccess(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveGradesObject()

ilObjExerciseGUI::saveGradesObject ( )

Save grades.

Definition at line 3061 of file class.ilObjExerciseGUI.php.

3062 {
3063 global $ilCtrl, $lng;
3064
3065 $this->checkPermission("write");
3066 include_once 'Services/Tracking/classes/class.ilLPMarks.php';
3067
3068 if (is_array($_POST["lcomment"]))
3069 {
3070 foreach ($_POST["lcomment"] as $k => $v)
3071 {
3072 $marks_obj = new ilLPMarks($this->object->getId(), (int) $k);
3073 $marks_obj->setComment(ilUtil::stripSlashes($v));
3074 $marks_obj->setMark(ilUtil::stripSlashes($_POST["mark"][$k]));
3075 $marks_obj->update();
3076 }
3077 }
3078 ilUtil::sendSuccess($lng->txt("exc_msg_saved_grades"), true);
3079 $ilCtrl->redirect($this, "showGradesOverview");
3080 }

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\checkPermission(), ilUtil\sendSuccess(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveMultiFeedbackObject()

ilObjExerciseGUI::saveMultiFeedbackObject ( )

Save multi feedback.

Definition at line 4798 of file class.ilObjExerciseGUI.php.

4799 {
4800 $this->checkPermission("write");
4801 $ass = new ilExAssignment((int) $_GET["ass_id"]);
4802 $ass->saveMultiFeedbackFiles($_POST["file"], $this->object);
4803
4804 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
4805 $this->ctrl->redirect($this, "members");
4806 }

References $_GET, $_POST, ilObjectGUI\checkPermission(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ saveStatusAllObject()

ilObjExerciseGUI::saveStatusAllObject ( )

Definition at line 1630 of file class.ilObjExerciseGUI.php.

1631 {
1632 $this->saveStatusObject(false, true);
1633 }
saveStatusObject($a_part_view=false, $a_force_all=false)
Save status of selecte members.

References saveStatusObject().

+ Here is the call graph for this function:

◆ saveStatusObject()

ilObjExerciseGUI::saveStatusObject (   $a_part_view = false,
  $a_force_all = false 
)

Save status of selecte members.

Definition at line 1638 of file class.ilObjExerciseGUI.php.

1639 {
1640 global $ilCtrl;
1641
1642 $this->checkPermission("write");
1643
1644 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
1645
1646// include_once 'Services/Tracking/classes/class.ilLPMarks.php';
1647
1648 $saved_for = array();
1649
1650 foreach($_POST["id"] as $key => $value)
1651 {
1652 if (!$a_part_view)
1653 {
1654 if (!$a_force_all && $_POST["member"][$key] != "1")
1655 {
1656 continue;
1657 }
1658 else
1659 {
1660 $uname = ilObjUser::_lookupName($key);
1661 $saved_for[] = $uname["lastname"].", ".$uname["firstname"];
1662 }
1663 }
1664 if (!$a_part_view)
1665 {
1666 $ass_id = (int) $_GET["ass_id"];
1667 $user_id = (int) $key;
1668 }
1669 else
1670 {
1671 $ass_id = (int) $key;
1672 $user_id = (int) $_GET["part_id"];
1673 }
1674
1675 // team upload?
1676 if(is_object($this->ass) and $this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
1677 {
1678 $team_id = $this->ass->getTeamId($user_id);
1679 $user_ids = $this->ass->getTeamMembers($team_id);
1680
1681 if (count($_POST["member"]) > 0)
1682 {
1683 foreach($user_ids as $user_id)
1684 {
1685 if($user_id != $key)
1686 {
1687 $uname = ilObjUser::_lookupName($user_id);
1688 $saved_for[] = $uname["lastname"].", ".$uname["firstname"];
1689 }
1690 }
1691 }
1692 }
1693 else
1694 {
1695 $user_ids = array($user_id);
1696 }
1697
1698 foreach($user_ids as $user_id)
1699 {
1700 ilExAssignment::updateStatusOfUser($ass_id, $user_id,
1701 ilUtil::stripSlashes($_POST["status"][$key]));
1702 ilExAssignment::updateNoticeForUser($ass_id, $user_id,
1703 ilUtil::stripSlashes($_POST["notice"][$key]));
1704
1705 if (ilUtil::stripSlashes($_POST['mark'][$key]) !=
1706 ilExAssignment::lookupMarkOfUser($ass_id, $user_id))
1707 {
1708 ilExAssignment::updateStatusTimeOfUser($ass_id, $user_id);
1709 }
1710
1711 ilExAssignment::updateMarkOfUser($ass_id, $user_id,
1712 ilUtil::stripSlashes($_POST['mark'][$key]));
1713
1714 /*
1715 ilExAssignment::updateCommentForUser($ass_id, $user_id,
1716 ilUtil::stripSlashes($_POST['lcomment'][$key]));
1717 */
1718 }
1719 }
1720
1721 if (count($saved_for) > 0)
1722 {
1723 $save_for_str = "(".implode($saved_for, " - ").")";
1724 }
1725 if($save_for_str || $a_part_view)
1726 {
1727 ilUtil::sendSuccess($this->lng->txt("exc_status_saved")." ".$save_for_str,true);
1728 }
1729 if (!$a_part_view)
1730 {
1731 $ilCtrl->redirect($this, "members");
1732 }
1733 else
1734 {
1735 $ilCtrl->redirect($this, "showParticipant");
1736 }
1737 }
lookupMarkOfUser($a_ass_id, $a_user_id)
Lookup user mark.
updateNoticeForUser($a_ass_id, $a_user_id, $a_notice)
was: setNoticeForMember($a_member_id,$a_notice)
updateStatusOfUser($a_ass_id, $a_user_id, $a_status)
was: setStatusForMember($a_member_id,$a_status)
updateMarkOfUser($a_ass_id, $a_user_id, $a_value)
Update mark.
updateStatusTimeOfUser($a_ass_id, $a_user_id)
was: updateStatusTimeForMember($a_user_id)
static _lookupName($a_user_id)
lookup user name

References $_GET, $_POST, $ilCtrl, ilObjUser\_lookupName(), ilObjectGUI\checkPermission(), ilExAssignment\lookupMarkOfUser(), ilUtil\sendSuccess(), ilUtil\stripSlashes(), ilExAssignment\TYPE_UPLOAD_TEAM, ilExAssignment\updateMarkOfUser(), ilExAssignment\updateNoticeForUser(), ilExAssignment\updateStatusOfUser(), and ilExAssignment\updateStatusTimeOfUser().

Referenced by saveStatusAllObject(), saveStatusParticipantObject(), and updateMembersObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveStatusParticipantObject()

ilObjExerciseGUI::saveStatusParticipantObject ( )

Save assignment status (participant view)

Definition at line 1625 of file class.ilObjExerciseGUI.php.

1626 {
1627 $this->saveStatusObject(true);
1628 }

References saveStatusObject().

+ Here is the call graph for this function:

◆ selectAssignmentObject()

ilObjExerciseGUI::selectAssignmentObject ( )

Select assignment.

Definition at line 1225 of file class.ilObjExerciseGUI.php.

1226 {
1227 global $ilTabs;
1228
1229 $ilTabs->activateTab("grades");
1230
1231 $_GET["ass_id"] = ilUtil::stripSlashes($_POST["ass_id"]);
1232 $this->membersObject();
1233 }

References $_GET, $_POST, membersObject(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ selectBlogObject()

ilObjExerciseGUI::selectBlogObject ( )
protected

Definition at line 3130 of file class.ilObjExerciseGUI.php.

3131 {
3132 global $ilUser;
3133
3134 $this->checkPermission("read");
3135
3136 $this->tabs_gui->clearTargets();
3137 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, "showOverview"));
3138
3139 // $this->tabs_gui->setTabActive("content");
3140 // $this->addContentSubTabs("content");
3141
3142 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
3143 {
3144 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
3145 }
3146
3147 $tpl = new ilTemplate("tpl.exc_select_resource.html", true, true, "Modules/Exercise");
3148 $tpl->setVariable("TXT_TITLE", $this->lng->txt("exc_select_blog").": ".$this->ass->getTitle());
3149 $tpl->setVariable("TREE", $this->renderWorkspaceExplorer("selectBlog"));
3150 $tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
3151 $tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
3152 $tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
3153 $tpl->setVariable("CMD_SUBMIT", "setSelectedBlog");
3154 $tpl->setVariable("CMD_CANCEL", "showOverview");
3155
3156 ilUtil::sendInfo($this->lng->txt("exc_select_blog_info"));
3157
3158 $this->tpl->setContent($tpl->get());
3159 }

References $ilUser, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), renderWorkspaceExplorer(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ selectParticipantObject()

ilObjExerciseGUI::selectParticipantObject ( )

Select participant.

Definition at line 1312 of file class.ilObjExerciseGUI.php.

1313 {
1314 global $ilTabs;
1315
1316 $ilTabs->activateTab("grades");
1317
1318 $_GET["part_id"] = ilUtil::stripSlashes($_POST["part_id"]);
1319 $this->showParticipantObject();
1320 }
showParticipantObject()
Show Participant.

References $_GET, $_POST, showParticipantObject(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ selectPortfolioObject()

ilObjExerciseGUI::selectPortfolioObject ( )
protected

Definition at line 3379 of file class.ilObjExerciseGUI.php.

3380 {
3381 global $ilUser;
3382
3383 $this->checkPermission("read");
3384
3385 $this->tabs_gui->clearTargets();
3386 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, "showOverview"));
3387
3388 // $this->tabs_gui->setTabActive("content");
3389 // $this->addContentSubTabs("content");
3390
3391 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
3392 {
3393 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
3394 }
3395
3396 $tpl = new ilTemplate("tpl.exc_select_resource.html", true, true, "Modules/Exercise");
3397
3398 include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
3399 $portfolios = ilObjPortfolio::getPortfoliosOfUser($ilUser->getId());
3400 if($portfolios)
3401 {
3402 $tpl->setCurrentBlock("item");
3403 foreach($portfolios as $portfolio)
3404 {
3405 $tpl->setVariable("ITEM_ID", $portfolio["id"]);
3406 $tpl->setVariable("ITEM_TITLE", $portfolio["title"]);
3407 $tpl->parseCurrentBlock();
3408 }
3409 }
3410
3411 $tpl->setVariable("TXT_TITLE", $this->lng->txt("exc_select_portfolio").": ".$this->ass->getTitle());
3412 $tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
3413 $tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
3414 $tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
3415 $tpl->setVariable("CMD_SUBMIT", "setSelectedPortfolio");
3416 $tpl->setVariable("CMD_CANCEL", "showOverview");
3417
3418 ilUtil::sendInfo($this->lng->txt("exc_select_portfolio_info"));
3419
3420 $this->tpl->setContent($tpl->get());
3421 }
static getPortfoliosOfUser($a_user_id)
Get views of user.

References $ilUser, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), ilObjPortfolio\getPortfoliosOfUser(), and ilUtil\sendInfo().

Referenced by setSelectedBlogObject(), and setSelectedPortfolioObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendMembersObject()

ilObjExerciseGUI::sendMembersObject ( )

Send assignment per mail to participants.

Definition at line 1490 of file class.ilObjExerciseGUI.php.

1491 {
1492 global $ilCtrl;
1493
1494 $this->checkPermission("write");
1495
1496 if(!count($_POST["member"]))
1497 {
1498 ilUtil::sendFailure($this->lng->txt("no_checkbox"),true);
1499 }
1500 else
1501 {
1502 // team upload?
1503 if($this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
1504 {
1505 $members = array();
1506 foreach(array_keys($_POST["member"]) as $user_id)
1507 {
1508 $tmembers = ilExAssignment::getTeamMembersByAssignmentId($this->ass->getId(), $user_id);
1509 foreach($tmembers as $tuser_id)
1510 {
1511 $members[$tuser_id] = 1;
1512 }
1513 }
1514 }
1515 else
1516 {
1517 $members = $_POST["member"];
1518 }
1519
1520 $this->object->sendAssignment($this->object->getId(),
1521 (int) $_GET["ass_id"], $members);
1522
1523 ilUtil::sendSuccess($this->lng->txt("exc_sent"),true);
1524 }
1525 $ilCtrl->redirect($this, "members");
1526 }

References $_GET, $_POST, $ilCtrl, ilObjectGUI\checkPermission(), ilExAssignment\getTeamMembersByAssignmentId(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilExAssignment\TYPE_UPLOAD_TEAM.

Referenced by updateMembersObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendNotifications()

ilObjExerciseGUI::sendNotifications (   $assignment_id)
protected

Send submission notifications.

Parameters
int$assignment_id

Definition at line 3086 of file class.ilObjExerciseGUI.php.

3087 {
3088 include_once "./Services/Notification/classes/class.ilNotification.php";
3090
3091 include_once "./Modules/Exercise/classes/class.ilExerciseMailNotification.php";
3092 $not = new ilExerciseMailNotification();
3094 $not->setAssignmentId($assignment_id);
3095 $not->setRefId($this->ref_id);
3096 $not->setRecipients($users);
3097 $not->send();
3098 }
static getNotificationsForObject($type, $id, $page_id=null, $ignore_threshold=false)
Get all users for given object.

References ilNotification\getNotificationsForObject(), ilNotification\TYPE_EXERCISE_SUBMISSION, and ilExerciseMailNotification\TYPE_SUBMISSION_UPLOAD.

Referenced by deliverFileObject(), deliverUnzipObject(), submitBlog(), submitPortfolio(), and updateAssignmentTextObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAssignmentHeader()

ilObjExerciseGUI::setAssignmentHeader ( )

Set assignment header.

Definition at line 2922 of file class.ilObjExerciseGUI.php.

2923 {
2924 global $ilTabs, $lng, $ilCtrl, $tpl, $ilHelp;
2925
2926 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2927 $tpl->setTitle(ilExAssignment::lookupTitle((int) $_GET["ass_id"]));
2928 $tpl->setDescription("");
2929
2930 $ilTabs->clearTargets();
2931 $ilHelp->setScreenIdComponent("exc");
2932
2933 $ilTabs->setBackTarget($lng->txt("back"),
2934 $ilCtrl->getLinkTarget($this, "listAssignments"));
2935
2936 $ilTabs->addTab("ass_settings",
2937 $lng->txt("settings"),
2938 $ilCtrl->getLinkTarget($this, "editAssignment"));
2939
2940 $ilTabs->addTab("ass_files",
2941 $lng->txt("exc_instruction_files"),
2942 $ilCtrl->getLinkTargetByClass("ilfilesystemgui", "listFiles"));
2943
2944 }

References $_GET, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, and ilExAssignment\lookupTitle().

Referenced by editAssignmentObject(), and executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setFiles()

ilObjExerciseGUI::setFiles (   $a_files)

Definition at line 52 of file class.ilObjExerciseGUI.php.

53 {
54 $this->files = $a_files;
55 }

◆ setSelectedBlogObject()

ilObjExerciseGUI::setSelectedBlogObject ( )
protected

Definition at line 3194 of file class.ilObjExerciseGUI.php.

3195 {
3196 global $ilUser;
3197
3198 if($_POST["node"])
3199 {
3200 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
3201 $tree = new ilWorkspaceTree($ilUser->getId());
3202 $node = $tree->getNodeData($_POST["node"]);
3203 if($node && $node["type"] == "blog")
3204 {
3206 $this->object->addResourceObject($node["wsp_id"], $this->ass->getId(), $ilUser->getId());
3207
3208 ilUtil::sendSuccess($this->lng->txt("exc_blog_selected"), true);
3209 $this->ctrl->setParameter($this, "blog_id", $node["wsp_id"]);
3210 $this->ctrl->redirect($this, "askDirectionSubmission");
3211 }
3212 }
3213
3214 ilUtil::sendFailure($this->lng->txt("select_one"));
3215 return $this->selectPortfolioObject();
3216 }
removeExistingSubmissions()
remove existing files/submissions for assignment

References $_POST, $ilUser, ilObjectGUI\$tree, removeExistingSubmissions(), selectPortfolioObject(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ setSelectedPortfolioObject()

ilObjExerciseGUI::setSelectedPortfolioObject ( )
protected

Definition at line 3520 of file class.ilObjExerciseGUI.php.

3521 {
3522 global $ilUser;
3523
3524 if($_POST["item"])
3525 {
3527 $this->object->addResourceObject($_POST["item"], $this->ass->getId(), $ilUser->getId());
3528
3529 ilUtil::sendSuccess($this->lng->txt("exc_portfolio_selected"), true);
3530 $this->ctrl->setParameter($this, "prtf_id", $_POST["item"]);
3531 $this->ctrl->redirect($this, "askDirectionSubmission");
3532 }
3533
3534 ilUtil::sendFailure($this->lng->txt("select_one"));
3535 return $this->selectPortfolioObject();
3536 }

References $_POST, $ilUser, removeExistingSubmissions(), selectPortfolioObject(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ setSelectedPortfolioTemplateObject()

ilObjExerciseGUI::setSelectedPortfolioTemplateObject ( )
protected

Definition at line 3468 of file class.ilObjExerciseGUI.php.

3469 {
3470 $this->checkPermission("read");
3471
3472 include_once "Modules/Portfolio/classes/class.ilObjPortfolioTemplate.php";
3474 if(!sizeof($templates))
3475 {
3476 $this->ctrl->redirect($this, "showOverview");
3477 }
3478
3479 $form = $this->initPortfolioTemplateForm($templates);
3480 if($form->checkInput())
3481 {
3482 $prtt = $form->getInput("prtt");
3483 if($prtt > 0 && array_key_exists($prtt, $templates))
3484 {
3485 $title = $this->object->getTitle()." - ".$this->ass->getTitle();
3486 $this->ctrl->setParameterByClass("ilObjPortfolioGUI", "exc_id", $this->object->getRefId());
3487 $this->ctrl->setParameterByClass("ilObjPortfolioGUI", "ass_id", $this->ass->getId());
3488 $this->ctrl->setParameterByClass("ilObjPortfolioGUI", "pt", $title);
3489 $this->ctrl->setParameterByClass("ilObjPortfolioGUI", "prtt", $prtt);
3490 $this->ctrl->redirectByClass(array("ilPersonalDesktopGUI", "ilPortfolioRepositoryGUI", "ilObjPortfolioGUI"), "createPortfolioFromTemplate");
3491 }
3492 else
3493 {
3494 // do not use template
3495 return $this->createPortfolioObject();
3496 }
3497 }
3498
3499 $form->setValuesByPost();
3500 $this->createPortfolioTemplateObject($form);
3501 }
createPortfolioTemplateObject(ilPropertyFormGUI $a_form=null)

References ilObjectGUI\checkPermission(), createPortfolioObject(), createPortfolioTemplateObject(), ilObjPortfolioTemplate\getAvailablePortfolioTemplates(), and initPortfolioTemplateForm().

+ Here is the call graph for this function:

◆ setSettingsSubTabs()

ilObjExerciseGUI::setSettingsSubTabs ( )
protected

Definition at line 2035 of file class.ilObjExerciseGUI.php.

2036 {
2037 $this->tabs_gui->addSubTab("edit",
2038 $this->lng->txt("general_settings"),
2039 $this->ctrl->getLinkTarget($this, "edit"));
2040
2041 include_once "Services/Certificate/classes/class.ilCertificate.php";
2043 {
2044 $this->tabs_gui->addSubTab("certificate",
2045 $this->lng->txt("certificate"),
2046 $this->ctrl->getLinkTarget($this, "certificate"));
2047 }
2048 }

References ilCertificate\isActive().

Referenced by certificateObject(), editObject(), and executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showAssignmentTextObject()

ilObjExerciseGUI::showAssignmentTextObject ( )

Definition at line 4151 of file class.ilObjExerciseGUI.php.

4152 {
4153 global $ilCtrl, $ilUser, $lng, $tpl;
4154
4155 if(!$this->ass ||
4156 $this->ass->getType() != ilExAssignment::TYPE_TEXT)
4157 {
4158 $ilCtrl->redirect($this, "showOverview");
4159 }
4160
4161 $add_rating = null;
4162
4163 // tutor
4164 if((int)$_GET["grd"])
4165 {
4166 $this->checkPermission("write");
4167
4168 if((int)$_GET["grd"] == 1)
4169 {
4170 $user_id = (int)$_GET["member_id"];
4171 $cancel_cmd = "members";
4172 }
4173 else
4174 {
4175 $user_id = (int)$_GET["part_id"];
4176 $cancel_cmd = "showParticipant";
4177 }
4178 }
4179 // peer review
4180 else if($this->ass->hasPeerReviewAccess((int)$_GET["member_id"]))
4181 {
4182 $this->checkPermission("read");
4183
4184 $user_id = (int)$_GET["member_id"];
4185 $cancel_cmd = "editPeerReview";
4186
4187 // rating
4188 $add_rating = "updatePeerReviewText";
4189 $ilCtrl->setParameter($this, "peer_id", $user_id);
4190 include_once './Services/Rating/classes/class.ilRatingGUI.php';
4191 $rating = new ilRatingGUI();
4192 $rating->setObject($this->ass->getId(), "ass", $user_id, "peer");
4193 $rating->setUserId($ilUser->getId());
4194 $rating = '<div id="rtr_widget">'.$rating->getHTML(false, true,
4195 "il.ExcPeerReview.saveSingleRating(".$user_id.", %rating%)").'</div>';
4196
4197 $ilCtrl->setParameter($this, "ssrtg", 1);
4198 $tpl->addJavaScript("Modules/Exercise/js/ilExcPeerReview.js");
4199 $tpl->addOnLoadCode("il.ExcPeerReview.setAjax('".
4200 $ilCtrl->getLinkTarget($this, "updatePeerReviewComments", "", true, false).
4201 "')");
4202 $ilCtrl->setParameter($this, "ssrtg", "");
4203 }
4204 // personal
4205 else
4206 {
4207 $this->checkPermission("read");
4208
4209 $user_id = $ilUser->getId();
4210 $cancel_cmd = "showOverview";
4211 }
4212
4213 $this->tabs_gui->clearTargets();
4214 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, $cancel_cmd));
4215
4216 $a_form = $this->initAssignmentTextForm($this->ass, true, $cancel_cmd, $add_rating, $rating);
4217
4218 if(($user_id != $ilUser->getId() || (bool)$_GET["grd"]))
4219 {
4220 if(!stristr($cancel_cmd, "peer"))
4221 {
4222 include_once "Services/User/classes/class.ilUserUtil.php";
4223 $a_form->setDescription(ilUserUtil::getNamePresentation($user_id));
4224 }
4225 else
4226 {
4227 if(!$this->ass->hasPeerReviewPersonalized())
4228 {
4229 $a_form->setDescription($lng->txt("id").": ".(int)$_GET["seq"]);
4230 }
4231 else
4232 {
4233 include_once "Services/User/classes/class.ilUserUtil.php";
4234 $a_form->setDescription(ilUserUtil::getNamePresentation($user_id));
4235 }
4236
4237 foreach($this->ass->getPeerReviewsByPeerId($user_id) as $item)
4238 {
4239 if($item["giver_id"] == $ilUser->getId())
4240 {
4241 $a_form->getItemByPostVar("comm")->setValue($item["pcomment"]);
4242 break;
4243 }
4244 }
4245 }
4246 }
4247
4248 $files = ilExAssignment::getDeliveredFiles($this->ass->getExerciseId(), $this->ass->getId(), $user_id);
4249 if($files)
4250 {
4251 $files = array_shift($files);
4252 if(trim($files["atext"]))
4253 {
4254 $text = $a_form->getItemByPostVar("atxt");
4255 // mob id to mob src
4256 $text->setValue(ilRTE::_replaceMediaObjectImageSrc($files["atext"], 1));
4257 }
4258 }
4259
4260 $this->tpl->setContent($a_form->getHTML());
4261 }

References $_GET, $ilCtrl, $ilUser, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilRTE\_replaceMediaObjectImageSrc(), ilObjectGUI\checkPermission(), ilExAssignment\getDeliveredFiles(), ilUserUtil\getNamePresentation(), initAssignmentTextForm(), and ilExAssignment\TYPE_TEXT.

+ Here is the call graph for this function:

◆ showGradesOverviewObject()

ilObjExerciseGUI::showGradesOverviewObject ( )

Show grades overview.

Definition at line 1325 of file class.ilObjExerciseGUI.php.

1326 {
1327 global $rbacsystem, $tree, $tpl, $ilToolbar, $ilCtrl, $ilTabs, $lng;
1328
1329 $this->checkPermission("write");
1330
1331 $ilTabs->activateTab("grades");
1332 $this->addSubmissionSubTabs("grades");
1333
1334 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
1335 $mem_obj = new ilExerciseMembers($this->object);
1336 $mems = $mem_obj->getMembers();
1337
1338 if (count($mems) > 0)
1339 {
1340 $ilToolbar->addButton($lng->txt("exc_export_excel"),
1341 $ilCtrl->getLinkTarget($this, "exportExcel"));
1342 }
1343
1344 include_once("./Modules/Exercise/classes/class.ilExGradesTableGUI.php");
1345 $grades_tab = new ilExGradesTableGUI($this, "showGradesOverview",
1346 $this->object, $mem_obj);
1347 $tpl->setContent($grades_tab->getHTML());
1348 }
Exercise participant table.

References $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilObjectGUI\$tree, addSubmissionSubTabs(), and ilObjectGUI\checkPermission().

+ Here is the call graph for this function:

◆ showMultiFeedbackConfirmationTableObject()

ilObjExerciseGUI::showMultiFeedbackConfirmationTableObject ( )

Show multi feedback confirmation table.

Parameters

return

Definition at line 4769 of file class.ilObjExerciseGUI.php.

4770 {
4771 global $ilTabs, $tpl;
4772
4773 $ilTabs->activateTab("grades");
4774 $this->checkPermission("write");
4775 $this->addSubmissionSubTabs("assignment");
4776
4777 $ass = new ilExAssignment((int) $_GET["ass_id"]);
4778 include_once("./Modules/Exercise/classes/class.ilFeedbackConfirmationTable2GUI.php");
4779 $tab = new ilFeedbackConfirmationTable2GUI($this, "showMultiFeedbackConfirmationTable", $ass);
4780 $tpl->setContent($tab->getHTML());
4781 }

References $_GET, $tab, ilObjectGUI\$tpl, addSubmissionSubTabs(), and ilObjectGUI\checkPermission().

+ Here is the call graph for this function:

◆ showMultiFeedbackObject()

ilObjExerciseGUI::showMultiFeedbackObject ( ilPropertyFormGUI  $a_form = null)

Show multi-feedback screen.

Parameters

return

Definition at line 4698 of file class.ilObjExerciseGUI.php.

4699 {
4700 global $ilTabs, $ilToolbar, $lng, $tpl;
4701
4702 $ass_id = (int)$_GET["ass_id"];
4703
4704 ilUtil::sendInfo($lng->txt("exc_multi_feedb_info"));
4705
4706 $ilTabs->activateTab("grades");
4707 $this->checkPermission("write");
4708 $this->addSubmissionSubTabs("assignment");
4709
4710 // #13719
4711 include_once("./Services/UIComponent/Button/classes/class.ilLinkButton.php");
4712 $button = ilLinkButton::getInstance();
4713 $button->setCaption("exc_download_zip_structure");
4714 $button->setUrl($this->ctrl->getLinkTarget($this, "downloadMultiFeedbackZip"));
4715 $button->setOmitPreventDoubleSubmission(true);
4716 $ilToolbar->addButtonInstance($button);
4717
4718 if(!$a_form)
4719 {
4720 $a_form = $this->initMultiFeedbackForm($ass_id);
4721 }
4722
4723 $tpl->setContent($a_form->getHTML());
4724 }
static getInstance()
Factory.

References $_GET, ilObjectGUI\$lng, ilObjectGUI\$tpl, addSubmissionSubTabs(), ilObjectGUI\checkPermission(), ilLinkButton\getInstance(), initMultiFeedbackForm(), and ilUtil\sendInfo().

Referenced by uploadMultiFeedbackObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showOverviewObject()

ilObjExerciseGUI::showOverviewObject ( )

Show overview of assignments.

Definition at line 2954 of file class.ilObjExerciseGUI.php.

2955 {
2956 global $tpl, $ilTabs, $ilUser, $ilToolbar;
2957
2958 $this->checkPermission("read");
2959
2960 include_once("./Services/Tracking/classes/class.ilLearningProgress.php");
2961 ilLearningProgress::_tracProgress($ilUser->getId(),$this->object->getId(),
2962 $this->object->getRefId(), 'exc');
2963
2964 $ilTabs->activateTab("content");
2965 $this->addContentSubTabs("content");
2966
2967 // show certificate?
2968 if($this->object->hasUserCertificate($ilUser->getId()))
2969 {
2970 include_once "./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
2971 include_once "./Services/Certificate/classes/class.ilCertificate.php";
2972 $adapter = new ilExerciseCertificateAdapter($this->object);
2973 if(ilCertificate::_isComplete($adapter))
2974 {
2975 $ilToolbar->addButton($this->lng->txt("certificate"),
2976 $this->ctrl->getLinkTarget($this, "outCertificate"));
2977 }
2978 }
2979
2980 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2981 include_once("./Services/Accordion/classes/class.ilAccordionGUI.php");
2982 $acc = new ilAccordionGUI();
2983 $acc->setId("exc_ow_".$this->object->getId());
2984 $ass_data = ilExAssignment::getAssignmentDataOfExercise($this->object->getId());
2985 include_once("./Modules/Exercise/classes/class.ilExAssignmentGUI.php");
2986 $ass_gui = new ilExAssignmentGUI($this->object);
2987
2988 foreach ($ass_data as $ass)
2989 {
2990 // incoming assignment deeplink
2991 $force_open = false;
2992 if(isset($_GET["ass_id_goto"]) &&
2993 (int)$_GET["ass_id_goto"] == $ass["id"])
2994 {
2995 $force_open = true;
2996 }
2997
2998 $acc->addItem($ass_gui->getOverviewHeader($ass),
2999 $ass_gui->getOverviewBody($ass),
3000 $force_open);
3001 }
3002
3003 if (count($ass_data) < 2)
3004 {
3005 $acc->setBehaviour("FirstOpen");
3006 }
3007 else
3008 {
3009 $acc->setUseSessionStorage(true);
3010 }
3011
3012 $tpl->setContent($acc->getHTML());
3013 }
Accordion user interface class.
_isComplete($adapter)
Checks the status of the certificate.
GUI clas for exercise assignments.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')

References $_GET, $ilUser, ilObjectGUI\$tpl, ilCertificate\_isComplete(), ilLearningProgress\_tracProgress(), addContentSubTabs(), ilObjectGUI\checkPermission(), and ilExAssignment\getAssignmentDataOfExercise().

Referenced by outCertificateObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showParticipantObject()

ilObjExerciseGUI::showParticipantObject ( )

Show Participant.

Definition at line 1238 of file class.ilObjExerciseGUI.php.

1239 {
1240 global $rbacsystem, $tree, $tpl, $ilToolbar, $ilCtrl, $ilTabs, $lng;
1241
1242 $this->checkPermission("write");
1243
1244 $ilTabs->activateTab("grades");
1245 $this->addSubmissionSubTabs("participant");
1246
1247 // participant selection
1248 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
1249 $ass = ilExAssignment::getAssignmentDataOfExercise($this->object->getId());
1250 $members = $this->object->members_obj->getMembers();
1251
1252 if (count($members) == 0)
1253 {
1254 ilUtil::sendInfo($lng->txt("exc_no_participants"));
1255 return;
1256 }
1257
1258 $mems = array();
1259 foreach ($members as $mem_id)
1260 {
1261 if (ilObject::_lookupType($mem_id) == "usr")
1262 {
1263 include_once("./Services/User/classes/class.ilObjUser.php");
1264 $name = ilObjUser::_lookupName($mem_id);
1265 $mems[$mem_id] = $name;
1266 }
1267 }
1268
1269 $mems = ilUtil::sortArray($mems, "lastname", "asc", false, true);
1270
1271 if ($_GET["part_id"] == "" && count($mems) > 0)
1272 {
1273 $_GET["part_id"] = key($mems);
1274 }
1275
1276 reset($mems);
1277 if (count($mems) > 1)
1278 {
1279 $options = array();
1280 foreach ($mems as $k => $m)
1281 {
1282 $options[$k] =
1283 $m["lastname"].", ".$m["firstname"]." [".$m["login"]."]";
1284 }
1285 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
1286 $si = new ilSelectInputGUI($this->lng->txt(""), "part_id");
1287 $si->setOptions($options);
1288 $si->setValue($_GET["part_id"]);
1289 $ilToolbar->addInputItem($si);
1290
1291 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1292 $ilToolbar->addFormButton($this->lng->txt("exc_select_part"),
1293 "selectParticipant");
1294 }
1295
1296 if (count($mems) > 0)
1297 {
1298 include_once("./Modules/Exercise/classes/class.ilExParticipantTableGUI.php");
1299 $part_tab = new ilExParticipantTableGUI($this, "showParticipant",
1300 $this->object, $_GET["part_id"]);
1301 $tpl->setContent($part_tab->getHTML());
1302 }
1303 else
1304 {
1305 ilUtil::sendInfo($this->lng->txt("exc_no_assignments_available"));
1306 }
1307 }
static _lookupType($a_id, $a_reference=false)
lookup object type
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray

References $_GET, $ilCtrl, ilObjectGUI\$lng, $options, $si, ilObjectGUI\$tpl, ilObjectGUI\$tree, ilObjUser\_lookupName(), ilObject\_lookupType(), addSubmissionSubTabs(), ilObjectGUI\checkPermission(), ilExAssignment\getAssignmentDataOfExercise(), ilUtil\sendInfo(), and ilUtil\sortArray().

Referenced by selectParticipantObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showPeerReviewOverviewObject()

ilObjExerciseGUI::showPeerReviewOverviewObject ( )

Definition at line 4560 of file class.ilObjExerciseGUI.php.

4561 {
4562 global $ilCtrl, $ilTabs, $tpl;
4563
4564 if(!$this->ass ||
4565 !$this->ass->getPeerReview())
4566 {
4567 $ilCtrl->redirect($this, "showOverview");
4568 }
4569
4570 $this->checkPermission("write");
4571
4572 $ilTabs->clearTargets();
4573 $ilTabs->setBackTarget($this->lng->txt("back"),
4574 $ilCtrl->getLinkTarget($this, "listAssignments"));
4575
4576 include_once "Modules/Exercise/classes/class.ilExAssignmentPeerReviewOverviewTableGUI.php";
4577 $tbl = new ilExAssignmentPeerReviewOverviewTableGUI($this, "showPeerReviewOverview",
4578 $this->ass);
4579
4580 $panel = "";
4581 $panel_data = $tbl->getPanelInfo();
4582 if(sizeof($panel_data))
4583 {
4584 $ptpl = new ilTemplate("tpl.exc_peer_review_overview_panel.html", true, true, "Modules/Exercise");
4585 foreach($panel_data as $item)
4586 {
4587 $ptpl->setCurrentBlock("user_bl");
4588 foreach($item["value"] as $user)
4589 {
4590 $ptpl->setVariable("USER", $user);
4591 $ptpl->parseCurrentBlock();
4592 }
4593
4594 $ptpl->setCurrentBlock("item_bl");
4595 $ptpl->setVariable("TITLE", $item["title"]);
4596 $ptpl->parseCurrentBlock();
4597 }
4598
4599 include_once "Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
4600 $panel = ilPanelGUI::getInstance();
4601 $panel->setHeading($this->lng->txt("exc_peer_review_overview_invalid_users"));
4602 $panel->setBody($ptpl->get());
4603 $panel = $panel->getHTML();
4604 }
4605
4606 $tpl->setContent($tbl->getHTML().$panel);
4607 }
static getInstance()
Get instance.

References $ilCtrl, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), and ilPanelGUI\getInstance().

+ Here is the call graph for this function:

◆ showPersonalPeerReviewObject()

ilObjExerciseGUI::showPersonalPeerReviewObject ( )

Definition at line 4505 of file class.ilObjExerciseGUI.php.

4506 {
4507 global $ilCtrl, $ilUser, $tpl;
4508
4509 if(!$this->ass ||
4510 !$this->ass->getPeerReview() ||
4511 !$this->ass->getDeadline() ||
4512 $this->ass->getDeadline()-time() > 0)
4513 {
4514 $ilCtrl->redirect($this, "showOverview");
4515 }
4516
4517 // tutor
4518 if((int)$_GET["grd"])
4519 {
4520 $this->checkPermission("write");
4521
4522 if((int)$_GET["grd"] == 1)
4523 {
4524 $user_id = (int)$_GET["member_id"];
4525 $cancel_cmd = "members";
4526 }
4527 else
4528 {
4529 $user_id = (int)$_GET["part_id"];
4530 $cancel_cmd = "showParticipant";
4531 }
4532 }
4533 // personal
4534 else
4535 {
4536 $this->checkPermission("read");
4537
4538 $user_id = $ilUser->getId();
4539 $cancel_cmd = "showOverview";
4540 }
4541
4542 $this->tabs_gui->clearTargets();
4543 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, $cancel_cmd));
4544
4545 $peer_items = $this->ass->getPeerReviewsByPeerId($user_id, true);
4546 if(!sizeof($peer_items))
4547 {
4548 // #11373
4549 ilUtil::sendFailure($this->lng->txt("exc_peer_review_no_peers_reviewed_yet"), true);
4550 $ilCtrl->redirect($this, "showOverview");
4551 }
4552
4553 include_once "Modules/Exercise/classes/class.ilExAssignmentPeerReviewTableGUI.php";
4554 $tbl = new ilExAssignmentPeerReviewTableGUI($this, "editPeerReview",
4555 $this->ass, $user_id, $peer_items, "exc_peer_review_show", $cancel_cmd, true);
4556
4557 $tpl->setContent($tbl->getHTML());
4558 }

References $_GET, $ilCtrl, $ilUser, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ showTeamLogObject()

ilObjExerciseGUI::showTeamLogObject ( )

Definition at line 3912 of file class.ilObjExerciseGUI.php.

3913 {
3914 $this->checkPermission("write");
3915 $this->tabs_gui->activateTab("grades");
3916
3917 if(isset($_GET["lmem"]))
3918 {
3919 $this->addSubmissionSubTabs("assignment");
3920
3921 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
3922 $this->ctrl->getLinkTarget($this, "members"));
3923
3924 $team_id = ilExAssignment::getTeamIdByAssignment($this->ass->getId(), (int)$_GET["lmem"]);
3925
3926 $this->ctrl->saveParameter($this, "lmem");
3927 }
3928 else
3929 {
3930 $this->addSubmissionSubTabs("participant");
3931
3932 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
3933 $this->ctrl->getLinkTarget($this, "showParticipant"));
3934
3935 $team_id = ilExAssignment::getTeamIdByAssignment($this->ass->getId(), (int)$_GET["lpart"]);
3936
3937 $this->ctrl->saveParameter($this, "lpart");
3938 }
3939
3940 include_once "Modules/Exercise/classes/class.ilExAssignmentTeamLogTableGUI.php";
3941 $tbl = new ilExAssignmentTeamLogTableGUI($this, "showTeamLog",
3942 $team_id);
3943
3944 $this->tpl->setContent($tbl->getHTML());
3945 }
static getTeamIdByAssignment($a_ass_id, $a_user_id)
Find team by assignment.

References $_GET, addSubmissionSubTabs(), ilObjectGUI\checkPermission(), and ilExAssignment\getTeamIdByAssignment().

+ Here is the call graph for this function:

◆ submissionScreenObject()

ilObjExerciseGUI::submissionScreenObject ( )

Displays a form which allows members to deliver their solutions.

@access public

Definition at line 456 of file class.ilObjExerciseGUI.php.

457 {
458 global $ilToolbar;
459
460 $this->initTeamSubmission("showOverview", false);
461 $this->tabs_gui->activateTab("submissions");
462
463 // $this->tabs_gui->setTabActive("content");
464 // $this->addContentSubTabs("content");
465
466 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
467 {
468 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
469 }
470 else
471 {
472 $ilToolbar->addButton($this->lng->txt("file_add"),
473 $this->ctrl->getLinkTarget($this, "uploadForm"));
474
475 $ilToolbar->addButton($this->lng->txt("header_zip"),
476 $this->ctrl->getLinkTarget($this, "uploadZipForm"));
477 }
478
479 include_once("./Modules/Exercise/classes/class.ilExcDeliveredFilesTableGUI.php");
480 $tab = new ilExcDeliveredFilesTableGUI($this, "submissionScreen", $this->object, $_GET["ass_id"]);
481 $this->tpl->setContent($tab->getHTML());
482 }

References $_GET, $tab, initTeamSubmission(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ submissionScreenTeamLogObject()

ilObjExerciseGUI::submissionScreenTeamLogObject ( )

Definition at line 3880 of file class.ilObjExerciseGUI.php.

3881 {
3882 $team_id = $this->initTeamSubmission("showOverview");
3883 $this->tabs_gui->activateTab("log");
3884
3885 include_once "Modules/Exercise/classes/class.ilExAssignmentTeamLogTableGUI.php";
3886 $tbl = new ilExAssignmentTeamLogTableGUI($this, "submissionScreenTeamLog",
3887 $team_id);
3888
3889 $this->tpl->setContent($tbl->getHTML());
3890 }

References initTeamSubmission().

+ Here is the call graph for this function:

◆ submissionScreenTeamObject()

ilObjExerciseGUI::submissionScreenTeamObject ( )

Displays a form which allows members to manage team uploads.

@access public

Definition at line 3660 of file class.ilObjExerciseGUI.php.

3661 {
3662 global $ilToolbar;
3663
3664 $team_id = $this->initTeamSubmission("showOverview");
3665
3666 // $this->tabs_gui->setTabActive("content");
3667 // $this->addContentSubTabs("content");
3668
3669 // #13414
3670 $read_only = (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0));
3671
3672 if ($read_only)
3673 {
3674 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
3675 }
3676 else
3677 {
3678 $this->ctrl->setParameterByClass('ilRepositorySearchGUI', 'ctx', 1);
3679 $this->ctrl->setParameter($this, 'ctx', 1);
3680
3681 // add member
3682 include_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
3684 $this,
3685 $ilToolbar,
3686 array(
3687 'auto_complete_name' => $this->lng->txt('user'),
3688 'submit_name' => $this->lng->txt('add'),
3689 'add_search' => true,
3690 'add_from_container' => $this->object->getRefId()
3691 )
3692 );
3693 }
3694
3695 include_once "Modules/Exercise/classes/class.ilExAssignmentTeamTableGUI.php";
3696 $tbl = new ilExAssignmentTeamTableGUI($this, "submissionScreenTeam",
3697 ilExAssignmentTeamTableGUI::MODE_EDIT, $team_id, $this->ass, null, $read_only);
3698
3699 $this->tpl->setContent($tbl->getHTML());
3700 }
List all team members of an assignment.

References ilRepositorySearchGUI\fillAutoCompleteToolbar(), initTeamSubmission(), ilExAssignmentTeamTableGUI\MODE_EDIT, and ilUtil\sendInfo().

Referenced by addUserFromAutoCompleteObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ submitBlog()

ilObjExerciseGUI::submitBlog (   $a_blog_id)

Submit blog for assignment.

Parameters
int$a_blog_id
Returns
bool

Definition at line 3303 of file class.ilObjExerciseGUI.php.

3304 {
3305 global $ilUser;
3306
3307 if($this->object && $this->ass)
3308 {
3309 $blog_id = $a_blog_id;
3310
3311 include_once "Modules/Blog/classes/class.ilObjBlogGUI.php";
3312 $blog_gui = new ilObjBlogGUI($blog_id, ilObjBlogGUI::WORKSPACE_NODE_ID);
3313 if($blog_gui->object)
3314 {
3315 $file = $blog_gui->buildExportFile();
3316 $size = filesize($file);
3317 if($size)
3318 {
3320
3321 $meta = array(
3322 "name" => $blog_id,
3323 "tmp_name" => $file,
3324 "size" => $size
3325 );
3326 $this->object->deliverFile($meta, $this->ass->getId(), $ilUser->getId(), true);
3327
3328 $this->sendNotifications($this->ass->getId());
3329 $this->object->handleSubmission($this->ass->getId());
3330 return true;
3331 }
3332 }
3333 }
3334 return false;
3335 }
$size
Definition: RandomTest.php:79
Class ilObjBlogGUI.

References $file, $ilUser, $size, removeExistingSubmissions(), sendNotifications(), and ilObject2GUI\WORKSPACE_NODE_ID.

Referenced by directSubmitObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ submitPortfolio()

ilObjExerciseGUI::submitPortfolio (   $a_portfolio_id)

Submit portfolio for assignment.

Parameters
int$a_portfolio_id
Returns
bool

Definition at line 3343 of file class.ilObjExerciseGUI.php.

3344 {
3345 global $ilUser;
3346
3347 if($this->object && $this->ass)
3348 {
3349 $prtf_id = $a_portfolio_id;
3350
3351 include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
3352 $prtf = new ilObjPortfolio($prtf_id, false);
3353 if($prtf->getTitle())
3354 {
3355 include_once "Modules/Portfolio/classes/class.ilPortfolioHTMLExport.php";
3356 $export = new ilPortfolioHTMLExport(null, $prtf);
3357 $file = $export->buildExportFile();
3358 $size = filesize($file);
3359 if($size)
3360 {
3362
3363 $meta = array(
3364 "name" => $prtf_id,
3365 "tmp_name" => $file,
3366 "size" => $size
3367 );
3368 $this->object->deliverFile($meta, $this->ass->getId(), $ilUser->getId(), true);
3369
3370 $this->sendNotifications($this->ass->getId());
3371 $this->object->handleSubmission($this->ass->getId());
3372 return true;
3373 }
3374 }
3375 }
3376 return false;
3377 }
Portfolio HTML exporter class.

References $file, $ilUser, $size, removeExistingSubmissions(), and sendNotifications().

Referenced by directSubmitObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateAssignmentObject()

ilObjExerciseGUI::updateAssignmentObject ( )

Update assignment.

Definition at line 2639 of file class.ilObjExerciseGUI.php.

2640 {
2641 global $tpl, $lng, $ilCtrl, $ilTabs;
2642
2643 $this->checkPermission("write");
2644
2645 $ilTabs->activateTab("content");
2646 $this->addContentSubTabs("list_assignments");
2647
2648 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
2649 $ass = new ilExAssignment($_GET["ass_id"]);
2650
2651 $this->initAssignmentForm("edit");
2652 if ($this->form->checkInput())
2653 {
2654 // #14450
2655 $protected_peer_review_groups = false;
2656 if($ass->getPeerReview() &&
2657 $ass->hasPeerReviewGroups())
2658 {
2659 $protected_peer_review_groups = true;
2660
2661 // checkInput() will add alert to disabled fields
2662 $this->form->getItemByPostVar("deadline")->setAlert(null);
2663 $this->form->getItemByPostVar("peer_min")->setAlert(null);
2664 }
2665
2666 // additional checks
2667
2668 $valid = true;
2669
2670 if(!$protected_peer_review_groups)
2671 {
2672 $peer = $_POST["peer"];
2673
2674 if ($_POST["deadline_cb"])
2675 {
2676 $end_date =
2677 $this->form->getItemByPostVar("deadline")->getDate()->get(IL_CAL_UNIX);
2678 }
2679
2680 if ($_POST["start_time_cb"] && $end_date)
2681 {
2682 // check whether start date is before end date
2683 $start_date =
2684 $this->form->getItemByPostVar("start_time")->getDate()->get(IL_CAL_UNIX);
2685 if ($start_date >= $end_date)
2686 {
2687 $this->form->getItemByPostVar("start_time")
2688 ->setAlert($lng->txt("exc_start_date_should_be_before_end_date"));
2689 $this->form->getItemByPostVar("deadline")
2690 ->setAlert($lng->txt("exc_start_date_should_be_before_end_date"));
2691 $valid = false;
2692 }
2693 }
2694
2695 if(!$end_date)
2696 {
2697 if($_POST["peer"])
2698 {
2699 $this->form->getItemByPostVar("peer")
2700 ->setAlert($lng->txt("exc_needs_deadline"));
2701 $valid = false;
2702 }
2703 if($_POST["fb"] && $_POST["fb_date"] == ilExAssignment::FEEDBACK_DATE_DEADLINE)
2704 {
2705 $this->form->getItemByPostVar("fb")
2706 ->setAlert($lng->txt("exc_needs_deadline"));
2707 $valid = false;
2708 }
2709 }
2710 }
2711 else
2712 {
2713 $peer = true;
2714 $end_date = $ass->getDeadline();
2715 }
2716
2718 $peer &&
2719 $_POST["peer_dl_tgl"])
2720 {
2721 $peer_dl = $this->form->getItemByPostVar("peer_dl")->getDate();
2722 $peer_dl = $peer_dl->get(IL_CAL_UNIX);
2723
2724 // #13877
2725 if ($peer_dl < $end_date)
2726 {
2727 $this->form->getItemByPostVar("peer_dl")
2728 ->setAlert($lng->txt("exc_peer_deadline_mismatch"));
2729 $valid = false;
2730 }
2731 }
2732
2733 if(!$valid)
2734 {
2735 ilUtil::sendFailure($lng->txt("form_input_not_valid"));
2736 $this->form->setValuesByPost();
2737 $this->handleDisabledAssignmentFields($ass, $this->form);
2738 $tpl->setContent($this->form->getHtml());
2739 return;
2740 }
2741
2742 $ass->setTitle($_POST["title"]);
2743 $ass->setInstruction($_POST["instruction"]);
2744 $ass->setExerciseId($this->object->getId());
2745 $ass->setMandatory($_POST["mandatory"]);
2746 $ass->setType($_POST["type"]);
2747
2748 if ($_POST["start_time_cb"])
2749 {
2750 $date =
2751 $this->form->getItemByPostVar("start_time")->getDate();
2752 $ass->setStartTime($date->get(IL_CAL_UNIX));
2753 }
2754 else
2755 {
2756 $ass->setStartTime(null);
2757 }
2758
2759 if(!$protected_peer_review_groups)
2760 {
2761 // deadline
2762 if ($_POST["deadline_cb"])
2763 {
2764 $date = $this->form->getItemByPostVar("deadline")->getDate();
2765 $ass->setDeadline($date->get(IL_CAL_UNIX));
2766 }
2767 else
2768 {
2769 $ass->setDeadline(null);
2770 }
2771
2773 {
2774 $ass->setPeerReview($_POST["peer"]);
2775 $ass->setPeerReviewMin($_POST["peer_min"]);
2776 $ass->setPeerReviewFileUpload($_POST["peer_file"]);
2777
2778 if($ass->getDeadline() && $ass->getDeadline() > time())
2779 {
2780 $ass->setPeerReviewPersonalized($_POST["peer_prsl"]);
2781 }
2782 }
2783 }
2784
2785 if($_POST["peer_dl_tgl"])
2786 {
2787 $peer_dl = $this->form->getItemByPostVar("peer_dl")->getDate();
2788 $ass->setPeerReviewDeadline($peer_dl->get(IL_CAL_UNIX));
2789 }
2790 else
2791 {
2792 $ass->setPeerReviewDeadline(null);
2793 }
2794
2795 if(!$_POST["fb"] ||
2796 $this->form->getItemByPostVar("fb_file")->getDeletionFlag())
2797 {
2798 $ass->deleteFeedbackFile();
2799 $ass->setFeedbackFile(null);
2800 }
2801 else if($_FILES["fb_file"]["tmp_name"]) // #15189
2802 {
2803 $ass->handleFeedbackFileUpload($_FILES["fb_file"]);
2804 }
2805
2806 $ass->setFeedbackCron($_POST["fb_cron"]); // #13380
2807 $ass->setFeedbackDate($_POST["fb_date"]);
2808
2809 $ass->update();
2810 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
2811 $ilCtrl->redirect($this, "editAssignment");
2812 }
2813 else
2814 {
2815 $this->form->setValuesByPost();
2816 $this->handleDisabledAssignmentFields($ass, $this->form);
2817 $tpl->setContent($this->form->getHtml());
2818 }
2819 }

References $_GET, $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, $valid, addContentSubTabs(), ilObjectGUI\checkPermission(), ilExAssignment\FEEDBACK_DATE_DEADLINE, handleDisabledAssignmentFields(), IL_CAL_UNIX, initAssignmentForm(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilExAssignment\TYPE_UPLOAD_TEAM.

+ Here is the call graph for this function:

◆ updateAssignmentTextAndReturnObject()

ilObjExerciseGUI::updateAssignmentTextAndReturnObject ( )

Definition at line 4067 of file class.ilObjExerciseGUI.php.

4068 {
4069 $this->updateAssignmentTextObject(true);
4070 }
updateAssignmentTextObject($a_return=false)

References updateAssignmentTextObject().

+ Here is the call graph for this function:

◆ updateAssignmentTextObject()

ilObjExerciseGUI::updateAssignmentTextObject (   $a_return = false)

Definition at line 4072 of file class.ilObjExerciseGUI.php.

4073 {
4074 global $ilCtrl, $ilUser;
4075
4076 $times_up = ($this->ass->getDeadline() && $this->ass->getDeadline() - time() < 0);
4077
4078 if(!$this->ass ||
4079 $this->ass->getType() != ilExAssignment::TYPE_TEXT ||
4080 $times_up)
4081 {
4082 if($times_up)
4083 {
4084 ilUtil::sendFailure($this->lng->txt("exercise_time_over"), true);
4085 }
4086 $ilCtrl->redirect($this, "showOverview");
4087 }
4088
4089 $this->checkPermission("read");
4090
4091 $form = $this->initAssignmentTextForm($this->ass);
4092
4093 // we are not using a purifier, so we have to set the valid RTE tags
4094 // :TODO:
4095 include_once("./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php");
4096 $rte = $form->getItemByPostVar("atxt");
4097 $rte->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("exc_ass"));
4098
4099 if($form->checkInput())
4100 {
4101 $text = trim($form->getInput("atxt"));
4102
4103 $existing = (bool)ilExAssignment::getDeliveredFiles($this->ass->getExerciseId(),
4104 $this->ass->getId(), $ilUser->getId());
4105
4106 $returned_id = $this->object->updateTextSubmission(
4107 $this->ass->getExerciseId(),
4108 $this->ass->getId(),
4109 $ilUser->getId(),
4110 // mob src to mob id
4112
4113 // no empty text
4114 if($returned_id)
4115 {
4116 if(!$existing)
4117 {
4118 // #14332 - new text
4119 $this->sendNotifications($this->ass->getId());
4120 $this->object->handleSubmission($this->ass->getId());
4121 }
4122
4123 // mob usage
4124 include_once "Services/MediaObjects/classes/class.ilObjMediaObject.php";
4125 $mobs = ilRTE::_getMediaObjects($text, 0);
4126 foreach($mobs as $mob)
4127 {
4129 {
4130 ilObjMediaObject::_removeUsage($mob, 'exca~:html', $ilUser->getId());
4131 ilObjMediaObject::_saveUsage($mob, 'exca:html', $returned_id);
4132 }
4133 }
4134 }
4135
4136 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
4137 if($a_return)
4138 {
4139 $ilCtrl->redirect($this, "showOverview");
4140 }
4141 else
4142 {
4143 $ilCtrl->redirect($this, "editAssignmentText");
4144 }
4145 }
4146
4147 $form->setValuesByPost();
4148 $this->editAssignmentTextObject($form);
4149 }
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
editAssignmentTextObject(ilPropertyFormGUI $a_form=null)
_saveUsage($a_mob_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
Save usage of mob within another container (e.g.
static _exists($a_id)
checks wether a lm content object with specified id exists or not
_removeUsage($a_mob_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
Remove usage of mob in another container.
static _getMediaObjects($a_text, $a_direction=0)
Returns all media objects found in the passed string.
$mobs

References $ilCtrl, $ilUser, $mobs, ilObjMediaObject\_exists(), ilRTE\_getMediaObjects(), ilObjAdvancedEditing\_getUsedHTMLTags(), ilObjMediaObject\_removeUsage(), ilRTE\_replaceMediaObjectImageSrc(), ilObjMediaObject\_saveUsage(), ilObjectGUI\checkPermission(), editAssignmentTextObject(), ilExAssignment\getDeliveredFiles(), initAssignmentTextForm(), ilUtil\sendFailure(), sendNotifications(), ilUtil\sendSuccess(), and ilExAssignment\TYPE_TEXT.

Referenced by updateAssignmentTextAndReturnObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateCustom()

ilObjExerciseGUI::updateCustom ( ilPropertyFormGUI  $a_form)
protected

Insert custom update form values into object.

Parameters
ilPropertyFormGUI$a_form

Reimplemented from ilObjectGUI.

Definition at line 869 of file class.ilObjExerciseGUI.php.

870 {
871 global $ilUser;
872 $this->object->setShowSubmissions($a_form->getInput("show_submissions"));
873 $this->object->setPassMode($a_form->getInput("pass_mode"));
874 if ($this->object->getPassMode() == "nr")
875 {
876 $this->object->setPassNr($a_form->getInput("pass_nr"));
877 }
878
879 $this->object->setCompletionBySubmission($a_form->getInput('completion_by_submission') == 1 ? true : false);
880
881 include_once "./Services/Notification/classes/class.ilNotification.php";
883 $ilUser->getId(), $this->object->getId(),
884 (bool)$a_form->getInput("notification"));
885 }
static setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.

References $ilUser, ilPropertyFormGUI\getInput(), ilNotification\setNotification(), and ilNotification\TYPE_EXERCISE_SUBMISSION.

+ Here is the call graph for this function:

◆ updateMembersObject()

ilObjExerciseGUI::updateMembersObject ( )

update data of members table

Definition at line 923 of file class.ilObjExerciseGUI.php.

924 {
925 global $rbacsystem;
926
927 $this->checkPermission("write");
928
929 if ($_POST["downloadReturned"])
930 {
931 $this->object->members_obj->deliverReturnedFiles(key($_POST["downloadReturned"]));
932 exit;
933 }
934 else
935 {
936 switch($_POST["action"])
937 {
938 case "save_status":
939 $this->saveStatusObject();
940 break;
941
942 case "send_member":
943 $this->sendMembersObject();
944 break;
945
946 case "redirectFeedbackMail":
948 break;
949
950 case "delete_member":
951 $this->deassignMembersObject();
952 break;
953 }
954 }
955 }
deassignMembersObject()
Deassign members from exercise.
sendMembersObject()
Send assignment per mail to participants.
redirectFeedbackMailObject()
set feedback status for member and redirect to mail screen

References $_POST, ilObjectGUI\checkPermission(), deassignMembersObject(), exit, redirectFeedbackMailObject(), saveStatusObject(), and sendMembersObject().

+ Here is the call graph for this function:

◆ updatePeerReviewCommentsObject()

ilObjExerciseGUI::updatePeerReviewCommentsObject ( )

Definition at line 4386 of file class.ilObjExerciseGUI.php.

4387 {
4388 global $ilCtrl, $ilUser, $tpl;
4389
4390 if(!$this->canPeerReviewBeEdited() ||
4391 !sizeof($_POST["pc"]) ||
4392 !$ilCtrl->isAsynch())
4393 {
4394 exit();
4395 }
4396
4397 $rating_peer_id = $_POST["rating_peer_id"];
4398 $giver_id = $ilUser->getId();
4399
4400 // save rating
4401 include_once './Services/Rating/classes/class.ilRating.php';
4402 ilRating::writeRatingForUserAndObject($this->ass->getId(), "ass",
4403 $rating_peer_id, "peer", $giver_id, $_POST["rating"]);
4404
4405 // save comments
4406 foreach($_POST["pc"] as $peer_id => $value)
4407 {
4408 if($peer_id)
4409 {
4410 $this->ass->updatePeerReviewComment($peer_id, ilUtil::stripSlashes($value)); // #16128
4411 }
4412 }
4413
4414
4415 // render current rating
4416
4417 $ilCtrl->setParameter($this->parent_obj, "peer_id", $rating_peer_id);
4418
4419 include_once './Services/Rating/classes/class.ilRatingGUI.php';
4420 $rating = new ilRatingGUI();
4421 $rating->setObject($this->ass->getId(), "ass", $rating_peer_id, "peer");
4422 $rating->setUserId($giver_id);
4423
4424 if(!$_REQUEST["ssrtg"])
4425 {
4426 echo $rating->getHTML(false, true,
4427 "il.ExcPeerReview.saveComments(".$rating_peer_id.", %rating%)");
4428 }
4429 else
4430 {
4431 echo '<div id="rtr_widget">'.$rating->getHTML(false, true,
4432 "il.ExcPeerReview.saveSingleRating(".$rating_peer_id.", %rating%)").'</div>';
4433 }
4434
4435 echo $tpl->getOnLoadCodeForAsynch();
4436 exit();
4437 }
static writeRatingForUserAndObject($a_obj_id, $a_obj_type, $a_sub_obj_id, $a_sub_obj_type, $a_user_id, $a_rating, $a_category_id=0)
Write rating for a user and an object.

References $_POST, $_REQUEST, $ilCtrl, $ilUser, ilObjectGUI\$tpl, canPeerReviewBeEdited(), exit, ilUtil\stripSlashes(), and ilRating\writeRatingForUserAndObject().

+ Here is the call graph for this function:

◆ updatePeerReviewObject()

ilObjExerciseGUI::updatePeerReviewObject ( )

Definition at line 4354 of file class.ilObjExerciseGUI.php.

4355 {
4356 global $ilUser, $ilCtrl;
4357
4358 if(!$this->canPeerReviewBeEdited() ||
4359 !sizeof($_POST["pc"]))
4360 {
4361 $ilCtrl->redirect($this, "showOverview");
4362 }
4363
4364 $this->checkPermission("read");
4365
4366 $peer_items = $this->ass->getPeerReviewsByGiver($ilUser->getId());
4367 if(!sizeof($peer_items))
4368 {
4369 ilUtil::sendFailure($this->lng->txt("exc_peer_review_no_peers"), true);
4370 $ilCtrl->redirect($this, "showOverview");
4371 }
4372
4373 foreach($_POST["pc"] as $idx => $value)
4374 {
4375 $parts = explode("__", $idx);
4376 if($parts[0] == $ilUser->getId())
4377 {
4378 $this->ass->updatePeerReviewComment($parts[1], ilUtil::stripSlashes($value)); // #16128
4379 }
4380 }
4381
4382 ilUtil::sendInfo($this->lng->txt("exc_peer_review_updated"), true);
4383 $ilCtrl->redirect($this, "editPeerReview");
4384 }

References $_POST, $ilCtrl, $ilUser, canPeerReviewBeEdited(), ilObjectGUI\checkPermission(), ilUtil\sendFailure(), ilUtil\sendInfo(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ updatePeerReviewTextObject()

ilObjExerciseGUI::updatePeerReviewTextObject ( )

Definition at line 4439 of file class.ilObjExerciseGUI.php.

4440 {
4441 global $ilCtrl;
4442
4443 if(!$this->canPeerReviewBeEdited() ||
4444 !(int)$_REQUEST["peer_id"])
4445 {
4446 $ilCtrl->redirect($this, "editPeerReview");
4447 }
4448
4449 $this->ass->updatePeerReviewComment((int)$_REQUEST["peer_id"], ilUtil::stripSlashes(trim($_POST["comm"]))); // #16128
4450
4451 ilUtil::sendInfo($this->lng->txt("exc_peer_review_updated"), true);
4452 $ilCtrl->redirect($this, "editPeerReview");
4453 }

References $_POST, $_REQUEST, $ilCtrl, canPeerReviewBeEdited(), ilUtil\sendInfo(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ uploadFileObject()

ilObjExerciseGUI::uploadFileObject ( )

Definition at line 906 of file class.ilObjExerciseGUI.php.

907 {
908 global $rbacsystem;
909
910 $this->checkPermission("write");
911
912 if(!$this->object->addUploadedFile($_FILES["file"]))
913 {
914 ilUtil::sendFailure($this->lng->txt("exc_upload_error"),true);
915 }
916 $this->ctrl->redirect($this, "edit");
917 }

References ilObjectGUI\checkPermission(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ uploadFormObject()

ilObjExerciseGUI::uploadFormObject ( )

Display form for single file upload.

Definition at line 487 of file class.ilObjExerciseGUI.php.

488 {
489 if (mktime() < $this->ass->getDeadline() || ($this->ass->getDeadline() == 0))
490 {
491 $this->tabs_gui->clearTargets();
492 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
493 $this->ctrl->getLinkTarget($this, "submissionScreen"));
494
495 global $ilHelp;
496 $ilHelp->setScreenIdComponent("exc");
497 $ilHelp->setScreenId("upload_submission");
498
499 $this->initUploadForm();
500 $this->tpl->setContent($this->form->getHTML());
501 }
502 else
503 {
504 $this->ctrl->redirect($this, "submissionScreen");
505 }
506 }
initUploadForm()
Init upload form form.

References initUploadForm().

+ Here is the call graph for this function:

◆ uploadMultiFeedbackObject()

ilObjExerciseGUI::uploadMultiFeedbackObject ( )

Upload multi feedback file.

Definition at line 4738 of file class.ilObjExerciseGUI.php.

4739 {
4740 $ass_id = (int)$_GET["ass_id"];
4741
4742 // #11983
4743 $form = $this->initMultiFeedbackForm($ass_id);
4744 if($form->checkInput())
4745 {
4746 try
4747 {
4748 $ass = new ilExAssignment($ass_id);
4749 $ass->uploadMultiFeedbackFile(ilUtil::stripSlashesArray($_FILES["mfzip"]));
4750 $this->ctrl->redirect($this, "showMultiFeedbackConfirmationTable");
4751 }
4752 catch (ilExerciseException $e)
4753 {
4754 ilUtil::sendFailure($e->getMessage(), true);
4755 $this->ctrl->redirect($this, "showMultiFeedback");
4756 }
4757 }
4758
4759 $form->setValuesByPost();
4760 $this->showMultiFeedbackObject($form);
4761 }
Class to report exception.
showMultiFeedbackObject(ilPropertyFormGUI $a_form=null)
Show multi-feedback screen.
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.

References $_GET, initMultiFeedbackForm(), ilUtil\sendFailure(), showMultiFeedbackObject(), and ilUtil\stripSlashesArray().

+ Here is the call graph for this function:

◆ uploadZipFormObject()

ilObjExerciseGUI::uploadZipFormObject ( )

Display form for zip file upload.

Definition at line 511 of file class.ilObjExerciseGUI.php.

512 {
513 if (mktime() < $this->ass->getDeadline() || ($this->ass->getDeadline() == 0))
514 {
515 $this->tabs_gui->clearTargets();
516 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
517 $this->ctrl->getLinkTarget($this, "submissionScreen"));
518
519 $this->initZipUploadForm();
520 $this->tpl->setContent($this->form->getHTML());
521 }
522 else
523 {
524 $this->ctrl->redirect($this, "submissionScreen");
525 }
526 }
initZipUploadForm()
Init upload form form.

References initZipUploadForm().

+ Here is the call graph for this function:

◆ uploadZipObject()

ilObjExerciseGUI::uploadZipObject ( )

Definition at line 892 of file class.ilObjExerciseGUI.php.

893 {
894 global $rbacsystem;
895
896 $this->checkPermission("write");
897
898 if(!$this->object->addUploadedFile($_FILES["zipfile"], true))
899 {
900 ilUtil::sendFailure($this->lng->txt("exc_upload_error"),true);
901 }
902 $this->ctrl->redirect($this, "edit");
903
904 }

References ilObjectGUI\checkPermission(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ viewObject()

ilObjExerciseGUI::viewObject ( )

list childs of current object

@access public

Reimplemented from ilObjectGUI.

Definition at line 326 of file class.ilObjExerciseGUI.php.

327 {
328 $this->infoScreenObject();
329 }
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...

References infoScreenObject().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: