19declare(strict_types=1);
40 protected \ILIAS\DI\UIServices
$ui;
49 \
ILIAS\Blog\InternalGUIService $gui
53 $this->main_tpl = $gui->ui()->mainTemplate();
54 $this->
ctrl = $gui->ctrl();
57 $this->node_id = $a_node_id;
58 $this->blog_request = $gui->standardRequest();
60 $this->ass_id = $this->blog_request->getAssId();
61 $this->file = $this->blog_request->getAssFile();
62 $this->
ui = $gui->ui();
64 $this->submission =
$DIC->exercise()->internal()->domain()->submission(
74 $this->
ctrl->returnToParent($this);
78 $next_class = $ilCtrl->getNextClass($this);
79 $cmd = $this->cmd_perm->getPermittedCommand();
81 switch ($next_class) {
94 $ass_files = $ass->getFiles();
95 if (count($ass_files) > 0) {
96 foreach ($ass_files as
$file) {
97 if (
$file[
"name"] == $this->file) {
105 protected function downloadExcSubFile(): void
108 $submissions = $this->submission->getSubmissionsOfUser(
112 if ($submitted = $submissions->current()) {
115 $ass->getTitle() .
" - " .
116 $user_data[
"firstname"] .
" " .
117 $user_data[
"lastname"] .
" (" .
118 $user_data[
"login"] .
").zip";
119 $this->submission->deliverFile(
120 $submitted->getUserId(),
121 $submitted->getRid(),
133 $exc_gui->submitBlog($this->node_id, $this->
user->getId());
135 $this->main_tpl->setOnScreenMessage(
'success',
$lng->
txt(
"blog_finalized"),
true);
136 $ilCtrl->redirectByClass(
138 ilDashboardGUI::class,
139 ilPersonalWorkspaceGUI::class,
141 \
ILIAS\Blog\Editing\EditingGUI::class,
154 $ilCtrl = $this->
ctrl;
160 if ($state->isSubmissionAllowed()) {
161 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
$ass_id);
162 $submit_link = $ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"finalize");
163 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
164 return $ui->factory()->button()->primary(
$lng->
txt(
"blog_finalize_blog"), $submit_link);
176 $ilCtrl = $this->
ctrl;
182 if ($submission->hasSubmitted()) {
184 $submitted = $submission->getSelectedObject();
185 if ($submitted?->getTimestamp() !==
"") {
186 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
$ass_id);
187 $dl_link = $ilCtrl->getLinkTargetByClass(
"ilblogexercisegui",
"downloadExcSubFile");
188 $ilCtrl->setParameterByClass(
"ilblogexercisegui",
"ass",
"");
189 return $ui->factory()->button()->standard(
$lng->txt(
"blog_download_submission"), $dl_link);
198 $be = $this->blog_exercise;
201 foreach ($be->getAssignmentsOfBlog() as
$exercise) {
204 $submit_button = $this->getSubmitButton(
$ass_id);
205 if ($submit_button) {
206 $buttons[
$ass_id][] = $submit_button;
208 $download_button = $this->getDownloadSubmissionButton(
$ass_id);
209 if ($download_button) {
210 $buttons[
$ass_id][] = $download_button;
@ilCtrl_Calls ilBlogExerciseGUI:
getDownloadSubmissionButton(int $ass_id)
SubmissionManager $submission
__construct(int $a_node_id, \ILIAS\Blog\Exercise\BlogExercise $blog_exercise, protected BlogCmdPermission $cmd_perm, ilLanguage $lng, ilObjUser $user, \ILIAS\Blog\InternalGUIService $gui)
ilGlobalTemplateInterface $main_tpl
ILIAS Blog Exercise BlogExercise $blog_exercise
StandardGUIRequest $blog_request
getSubmitButton(int $ass_id)
Get submit link.
Class ilCtrl provides processing control methods.
static initGUIForSubmit(int $a_ass_id, ?int $a_user_id=null)
Exercise submission //TODO: This class has many static methods related to delivered "files".
static getInstanceByIds(int $a_ass_id, int $a_user_id=0)
static deliverFileLegacy(string $a_file, ?string $a_filename=null, ?string $a_mime=null, ?bool $isInline=false, ?bool $removeAfterDelivery=false, ?bool $a_exit_after=true)
txt(string|LanguageIdentifier $a_topic, ?int $n=null)
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
static _lookupName(int $a_user_id)
static _lookupTitle(int $obj_id)
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.