123 : string|array {
125
127
128 $links = [];
129 $buttons = [];
130 $elements = [];
131
133 $ilCtrl =
$DIC->ctrl();
134 $rel = false;
135
137 $exercise_id = $ass->getExerciseId();
138 if (!$exercise_id) {
139 return "";
140 }
141
142
143 $times_up = $ass->afterDeadlineStrict();
144
145
147 $exc_ref_id = array_shift($ref_ids);
149
150 $info_arr["ass_title"] = $ass->getTitle();
152 $lng->
txt(
"prtf_exercise_info"),
153 $ass->getTitle(),
155 );
158
159
160 if ($a_add_submit && !$times_up && !$as_array) {
161 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $a_assignment_id);
162 $submit_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "finalize");
163 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
164
165 $buttons[] =
$ui->factory()->button()->primary(
$lng->
txt(
"prtf_finalize_portfolio"), $submit_link);
166 }
167
168
170 $info_arr["submitted"] = false;
171 if ($submission->hasSubmitted()) {
172
173 $submitted = $submission->getSelectedObject();
174
175 if (!$as_array) {
176 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $a_assignment_id);
177 $dl_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "downloadExcSubFile");
178 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
179
182
183 $text .=
"<p>" . sprintf(
184 $lng->
txt(
"prtf_exercise_submitted_info"),
186 ""
187 ) . "</p>";
188 $buttons[] =
$ui->factory()->button()->standard(
$lng->
txt(
"prtf_download_submission"), $dl_link);
189 }
190
193 $info_arr["submitted"] = true;
194 if ($submitted?->getTimestamp() == "") {
195 $info_arr["submitted"] = false;
196 }
197 }
198
199
200
201 $tooltip = "";
202
203 $inst = $ass->getInstruction();
204 if ($inst) {
205 $tooltip .= nl2br($inst);
206 }
207
208 $ass_files = $ass->getFiles();
209 if (!$as_array && count($ass_files) > 0) {
210 if ($tooltip) {
211 $tooltip .= "<br /><br />";
212 }
213
214 $items = [];
215
216 foreach ($ass_files as
$file) {
217 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $a_assignment_id);
218 $ilCtrl->setParameterByClass(
"ilportfolioexercisegui",
"file", urlencode(
$file[
"name"]));
219 $dl_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "downloadExcAssFile");
220 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "file", "");
221 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
222
223 $items[] =
$ui->renderer()->render(
$ui->factory()->button()->shy(
$file[
"name"], $dl_link));
224 }
225 $list =
$ui->factory()->listing()->unordered($items);
226 $tooltip .=
$ui->renderer()->render($list);
227 }
228
229 if ($tooltip) {
230 $modal =
$ui->factory()->modal()->roundtrip(
$lng->
txt(
"exc_instruction"),
$ui->factory()->legacy()->content($tooltip))
231 ->withCancelButtonLabel(
$lng->
txt(
"close"));
232 $elements[] = $modal;
233 $buttons[] =
$ui->factory()->button()->standard(
$lng->
txt(
"exc_instruction"),
'#')
234 ->withOnClick($modal->getShowSignal());
235 }
236
237 if ($as_array) {
238 return $info_arr;
239 }
240
241 $elements[] =
$ui->factory()->messageBox()->info(
$text)
242 ->withLinks($links)
243 ->withButtons($buttons);
244
245 return $ui->renderer()->render($elements);
246 }
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, ?ilObjUser $user=null,)
@classDescription Date and time handling
static _getStaticLink(?int $a_ref_id, string $a_type='', bool $a_fallback_goto=true, string $append="")
static _getAllReferences(int $id)
get all reference ids for object ID