2 include_once
'./Services/Calendar/interfaces/interface.ilCalendarAppointmentPresentation.php';
3 include_once
'./Services/Calendar/classes/AppointmentPresentation/class.ilAppointmentPresentationGUI.php';
20 $user_id = $DIC->user()->getId();
22 $this->lng->loadLanguageModule(
"exc");
24 include_once
"./Modules/Exercise/classes/class.ilObjExercise.php";
25 include_once(
'./Services/Link/classes/class.ilLink.php');
26 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
28 $f = $DIC->ui()->factory();
29 $r = $DIC->ui()->renderer();
37 $exc_ref = current($refs);
46 $ass_id = $a_app[
"event"]->getContextId() / 10;
50 if (
$state->areInstructionsVisible()) {
51 $assignment_instructions = trim($assignment->getInstruction());
52 if ($assignment_instructions !=
"") {
54 $is_html = (strlen($assignment_instructions) != strlen(strip_tags($assignment_instructions)));
56 $assignment_instructions = nl2br($assignment_instructions);
58 $this->
addInfoProperty($this->lng->txt(
"exc_instruction"), $assignment_instructions);
60 $files = $assignment->getFiles();
61 if (count($files) > 0) {
62 $this->has_files =
true;
64 foreach ($files as $file) {
65 $ctrl->setParameterByClass(
"ilexsubmissiongui",
"ref_id", $exc_ref);
66 $ctrl->setParameterByClass(
"ilexsubmissiongui",
"file", urlencode($file[
"name"]));
67 $ctrl->setParameterByClass(
"ilexsubmissiongui",
"ass_id", $ass_id);
68 $url =
$ctrl->getLinkTargetByClass(array(
"ilExerciseHandlerGUI",
72 $ctrl->setParameterByClass(
"ilexsubmissiongui",
"ass_id",
"");
73 $ctrl->setParameterByClass(
"ilexsubmissiongui",
"file",
"");
74 $ctrl->setParameterByClass(
"ilexsubmissiongui",
"ref_if",
"");
75 $str_files[$file[
"name"]] =
$r->render(
$f->button()->shy($file[
"name"],
$url));
77 ksort($str_files, SORT_NATURAL|SORT_FLAG_CASE);
78 $str_files = implode(
"<br>", $str_files);
79 $this->
addInfoProperty($this->lng->txt(
"exc_instruction_files"), $str_files);
81 str_replace(
"<br>",
", ", $str_files));
86 if ($assignment->getMandatory()) {
87 $this->
addInfoProperty($this->lng->txt(
"exc_mandatory"), $this->lng->txt(
"yes"));
90 $this->
addInfoProperty($this->lng->txt(
"exc_mandatory"), $this->lng->txt(
"no"));
99 $this->lng->txt(
"cal_exc_open"),
100 "goto.php?target=exc_" . $exc_ref .
"_" . $ass_id .
"&client_id=" . CLIENT_ID
110 if (is_array($a_appointment)) {
111 $ass_id = $a_appointment[
"event"]->getContextId() / 10;
114 return parent::buildDirectLinkForAppointment($a_ref_id, $a_appointment);
addInfoProperty($a_txt, $a_val)
Add info property.
getReadableRefIds($a_obj_id)
Get readable ref ids.
static getInstanceByIds($a_ass_id, $a_user_id=0)
Get instance by IDs (recommended for consumer code)
if(!array_key_exists('stateid', $_REQUEST)) $state
Handle linkback() response from LinkedIn.
addCommonSection($a_app, $a_obj_id=0, $cat_info=null, $a_container_info=false)
Add common section.
buildDirectLinkForAppointment($a_ref_id, $a_appointment=null)
addLastUpdate($a_app)
Add last update.
collectPropertiesAndActions()
addListItemProperty($a_txt, $a_val)
Add list item property.
addAction($a_txt, $a_link)
Add action.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
addInfoSection($a_txt)
Add info section.