42 $this->ctrl = $DIC->ctrl();
43 $this->
user = $DIC->user();
44 $this->lng = $DIC->language();
45 $this->node_id = $a_node_id;
46 $this->ass_id = (int)
$_GET[
"ass"];
48 $this->
ui = $DIC->ui();
56 $this->ctrl->returnToParent($this);
59 $next_class =
$ilCtrl->getNextClass($this);
62 switch ($next_class) {
75 foreach ($be->getAssignmentsOfBlog() as $ass) {
76 $part = self::getExerciseInfo($ass[
"ass_id"]);
82 return implode(
"<br />", $info);
97 $lng = $DIC->language();
102 $exercise_id = $ass->getExerciseId();
108 $times_up = $ass->afterDeadlineStrict();
115 $lng->txt(
"blog_exercise_info"),
123 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass", $a_assignment_id);
124 $submit_link =
$ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"finalize");
125 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
127 $buttons[] =
$ui->factory()->button()->primary(
$lng->txt(
"blog_finalize_blog"), $submit_link);
132 if ($submission->hasSubmitted()) {
136 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass", $a_assignment_id);
137 $dl_link =
$ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"downloadExcSubFile");
138 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
143 $text .=
"<br />" . sprintf(
144 $lng->txt(
"blog_exercise_submitted_info"),
150 $buttons[] =
$ui->factory()->button()->standard(
$lng->txt(
"blog_download_submission"), $dl_link);
158 $inst = $ass->getInstruction();
160 $tooltip .= nl2br($inst);
163 $ass_files = $ass->getFiles();
164 if (count($ass_files) > 0) {
165 $tooltip .=
"<br /><br />";
167 foreach ($ass_files as
$file) {
168 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass", $a_assignment_id);
169 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"file", urlencode($file[
"name"]));
170 $dl_link =
$ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"downloadExcAssFile");
171 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"file",
"");
172 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
174 $items[] =
$ui->renderer()->render(
$ui->factory()->button()->shy($file[
"name"], $dl_link));
176 $list =
$ui->factory()->listing()->unordered($items);
177 $tooltip .=
$ui->renderer()->render($list);
181 $modal =
$ui->factory()->modal()->roundtrip(
$lng->txt(
"exc_instruction"),
$ui->factory()->legacy($tooltip))
182 ->withCancelButtonLabel(
"close");
183 $elements[] = $modal;
184 $buttons[] =
$ui->factory()->button()->standard(
$lng->txt(
"exc_instruction"),
'#')
185 ->withOnClick($modal->getShowSignal());
188 $elements[] =
$ui->factory()->messageBox()->info($text)
190 ->withButtons($buttons);
192 return $ui->renderer()->render($elements);
199 $ass_files = $ass->getFiles();
200 if (count($ass_files) > 0) {
201 foreach ($ass_files as
$file) {
202 if ($file[
"name"] == $this->file) {
216 $submitted = $submission->
getFiles();
217 if (count($submitted) > 0) {
218 $submitted = array_pop($submitted);
222 $ass->getTitle() .
" - " .
223 $user_data[
"firstname"] .
" " .
224 $user_data[
"lastname"] .
" (" .
225 $user_data[
"login"] .
").zip";
240 $exc_gui->submitBlog($this->node_id);
242 ilUtil::sendSuccess(
$lng->txt(
"blog_finalized"),
true);
243 $ilCtrl->returnToParent($this);
260 if ($state->isSubmissionAllowed()) {
261 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass", $ass_id);
262 $submit_link =
$ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"finalize");
263 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
264 $button =
$ui->factory()->button()->primary(
$lng->txt(
"blog_finalize_blog"), $submit_link);
284 if ($submission->hasSubmitted()) {
287 if ($submitted[
"ts"] !=
"") {
288 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass", $ass_id);
289 $dl_link =
$ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"downloadExcSubFile");
290 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
291 $button =
$ui->factory()->button()->standard(
$lng->txt(
"blog_download_submission"), $dl_link);
309 foreach ($be->getAssignmentsOfBlog() as
$exercise) {
313 if ($submit_button != null) {
314 $buttons[
$ass_id][] = $submit_button;
317 if ($download_button != null) {
318 $buttons[
$ass_id][] = $download_button;
static _lookupName($a_user_id)
lookup user name
getActionButtons()
Get action buttons.
static _getStaticLink( $a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
static setUseRelativeDates($a_status)
set use relative dates
static _lookupTitle($a_id)
lookup object title
static getExerciseInfo($a_assignment_id)
finalize()
Finalize and submit blog to exercise.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
static _getAllReferences($a_id)
get all reference ids of object
static getInstanceByIds($a_ass_id, $a_user_id=0)
Get instance by IDs (recommended for consumer code)
static useRelativeDates()
check if relative dates are used
static initGUIForSubmit($a_ass_id, $a_user_id=null)
getDownloadSubmissionButton(int $ass_id)
Get download button.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
Exercise submission //TODO: This class has to much static methods related to delivered "files"...
getSubmitButton(int $ass_id)
Get submit link.
static checkExercise($a_node_id)
getFiles(array $a_file_ids=null, $a_only_valid=false, $a_min_timestamp=null)
Get submission items (not only files)
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.