96 : string {
98
100
101 $links = [];
102 $buttons = [];
103 $elements = [];
104 $items = [];
105
107 $ilCtrl =
$DIC->ctrl();
109
111 $exercise_id = $ass->getExerciseId();
112 if (!$exercise_id) {
113 return "";
114 }
115
116
117 $times_up = $ass->afterDeadlineStrict();
118
119
122
123 $text = sprintf(
124 $lng->
txt(
"blog_exercise_info"),
125 $ass->getTitle(),
127 );
129
130
131 if (!$times_up) {
132 $ilCtrl->setParameterByClass("ilblogexercisegui", "ass", $a_assignment_id);
133 $submit_link = $ilCtrl->getLinkTargetByClass("ilblogexercisegui", "finalize");
134 $ilCtrl->setParameterByClass("ilblogexercisegui", "ass", "");
135
136 $buttons[] =
$ui->factory()->button()->primary(
$lng->
txt(
"blog_finalize_blog"), $submit_link);
137 }
138
139
141 if ($submission->hasSubmitted()) {
142
143 $submitted = $submission->getSelectedObject();
144
145 $ilCtrl->setParameterByClass("ilblogexercisegui", "ass", $a_assignment_id);
146 $dl_link = $ilCtrl->getLinkTargetByClass("ilblogexercisegui", "downloadExcSubFile");
147 $ilCtrl->setParameterByClass("ilblogexercisegui", "ass", "");
148
151
152 $text .= "<br />" . sprintf(
153 $lng->
txt(
"blog_exercise_submitted_info"),
155 ""
156 );
157
159 $buttons[] =
$ui->factory()->button()->standard(
$lng->
txt(
"blog_download_submission"), $dl_link);
160 }
161
162
163
164
165 $tooltip = "";
166
167 $inst = $ass->getInstruction();
168 if ($inst) {
169 $tooltip .= nl2br($inst);
170 }
171
172 $ass_files = $ass->getFiles();
173 if (count($ass_files) > 0) {
174 $tooltip .= "<br /><br />";
175
176 foreach ($ass_files as
$file) {
177 $ilCtrl->setParameterByClass("ilblogexercisegui", "ass", $a_assignment_id);
178 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"file", urlencode(
$file[
"name"]));
179 $dl_link = $ilCtrl->getLinkTargetByClass("ilblogexercisegui", "downloadExcAssFile");
180 $ilCtrl->setParameterByClass("ilblogexercisegui", "file", "");
181 $ilCtrl->setParameterByClass("ilblogexercisegui", "ass", "");
182
183 $items[] =
$ui->renderer()->render(
$ui->factory()->button()->shy(
$file[
"name"], $dl_link));
184 }
185 $list =
$ui->factory()->listing()->unordered($items);
186 $tooltip .=
$ui->renderer()->render($list);
187 }
188
189 if ($tooltip) {
190 $modal =
$ui->factory()->modal()->roundtrip(
$lng->
txt(
"exc_instruction"),
$ui->factory()->legacy($tooltip))
191 ->withCancelButtonLabel("close");
192 $elements[] = $modal;
193 $buttons[] =
$ui->factory()->button()->standard(
$lng->
txt(
"exc_instruction"),
'#')
194 ->withOnClick($modal->getShowSignal());
195 }
196
197 $elements[] =
$ui->factory()->messageBox()->info($text)
198 ->withLinks($links)
199 ->withButtons($buttons);
200
201 return $ui->renderer()->render($elements);
202 }
static useRelativeDates()
static setUseRelativeDates(bool $a_status)
set use relative dates
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
@classDescription Date and time handling
static _getStaticLink(?int $a_ref_id, string $a_type='', bool $a_fallback_goto=true, string $append="")
Get static link.
static _getAllReferences(int $id)
get all reference ids for object ID