From 5f4d4d801c4d9dfc36a612adbaabfd2b05edc796 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Fri, 11 Sep 2009 01:45:16 +0000 Subject: [PATCH] MDL-19676 Removed blog assignment code --- backup/backuplib.php | 30 -- blog/edit.php | 7 +- blog/edit_form.php | 128 +------ blog/locallib.php | 64 ++-- blog/simpletest/testbloglib.php | 2 +- mod/assignment/type/blog/assignment.class.php | 326 ------------------ 6 files changed, 41 insertions(+), 516 deletions(-) delete mode 100644 mod/assignment/type/blog/assignment.class.php diff --git a/backup/backuplib.php b/backup/backuplib.php index 2adc6cdce6..253a9cb1f2 100644 --- a/backup/backuplib.php +++ b/backup/backuplib.php @@ -947,19 +947,6 @@ } - function backup_course_blogs($bf, $preferences) { - global $DB; - fwrite ($bf, start_tag("BLOGS",2,true)); - - $sql = 'SELECT as.data1 FROM {assignment} a, {assignment_submissions} as WHERE - as.assignment = a.id AND a.assignmenttype = \'blog\' AND a.course = ?'; - $records = $DB->get_records_sql($sql, array($preferences->backup_course)); - foreach ($records as $rec) { - backup_blog($bf, $rec->data1, 3); - } - fwrite($bf, end_tag("BLOGS",2,true)); - } - function backup_blog($bf, $blogid, $level) { global $DB; $blog = $DB->get_record('post', array('module'=>'blog', 'id'=>$blogid)); @@ -3372,23 +3359,6 @@ } } - //Backup course blog assignment data, if any. - if (!defined('BACKUP_SILENTLY')) { - echo '
  • '.get_string("courseblogdata").'
  • '; - } - if($status) { - if (!$status = backup_course_blogs($backup_file,$preferences)) { - if (!defined('BACKUP_SILENTLY')) { - notify("An error occurred while backing up the course blog assignment data"); - } - else { - $errorstr = "An error occurred while backing up the course blog assignment data"; - return false; - } - } - } - - //Prints course end if ($status) { if (!$status = backup_course_end($backup_file,$preferences)) { diff --git a/blog/edit.php b/blog/edit.php index 2d0214c642..5fac155a49 100755 --- a/blog/edit.php +++ b/blog/edit.php @@ -120,11 +120,6 @@ if ($action === 'delete'){ require_once('edit_form.php'); if (!empty($existing)) { - $assignmentdata = $DB->get_record_sql('SELECT a.timedue, a.preventlate, a.emailteachers, a.var2, asub.grade - FROM {assignment} a, {assignment_submissions} as asub WHERE - a.id = asub.assignment AND userid = '.$USER->id.' AND a.assignmenttype = \'blog\' - AND asub.data1 = \''.$existing->id.'\''); - if ($blogassociations = $DB->get_records('blog_association', array('blogid' => $existing->id))) { foreach ($blogassociations as $assocrec) { @@ -143,7 +138,7 @@ if (!empty($existing)) { } $textfieldoptions = array('trusttext'=>true, 'subdirs'=>true); -$blogeditform = new blog_edit_form(null, compact('existing', 'sitecontext', 'assignmentdata', 'textfieldoptions', 'id')); +$blogeditform = new blog_edit_form(null, compact('existing', 'sitecontext', 'textfieldoptions', 'id')); $existing = file_prepare_standard_editor($existing, 'summary', $textfieldoptions, $PAGE->get_context()); diff --git a/blog/edit_form.php b/blog/edit_form.php index ba0087b801..cbe982bf8f 100644 --- a/blog/edit_form.php +++ b/blog/edit_form.php @@ -29,35 +29,14 @@ class blog_edit_form extends moodleform { $entryid = $this->_customdata['id']; $summaryoptions = $this->_customdata['textfieldoptions']; - if (!empty($this->_customdata['assignmentdata'])) { - $assignmentdata = $this->_customdata['assignmentdata']; - } - $existing = $this->_customdata['existing']; $sitecontext = $this->_customdata['sitecontext']; - //determine if content elements should be deactivated for a past due blog assignment - $noedit = false; - if (!empty($assignmentdata)) { - if ((time() > $assignmentdata->timedue && $assignmentdata->preventlate) || $assignmentdata->grade != -1) { - $noedit = true; - } - } - $mform->addElement('header', 'general', get_string('general', 'form')); - if ($noedit) { //show disabled form elements, but provide hidden elements so that the data is transferred - $mform->addElement('text', 'fakesubject', get_string('entrytitle', 'blog'), array('size'=>60, 'disabled'=>'disabled')); - $mform->addElement('textarea', 'fakesummary', get_string('entrybody', 'blog'), array('rows'=>25, 'cols'=>40, 'disabled'=>'disabled')); - $mform->setHelpButton('fakesummary', array('writing', 'richtext'), false, 'editorhelpbutton'); - $mform->addElement('hidden', 'subject'); - $mform->addElement('hidden', 'summary'); - - } else { //insert normal form elements - $mform->addElement('text', 'subject', get_string('entrytitle', 'blog'), 'size="60"'); - $textfieldoptions = array('trusttext'=>true, 'subdirs'=>true); - $mform->addElement('editor', 'summary_editor', get_string('entrybody', 'blog'), null, $summaryoptions); - } + $mform->addElement('text', 'subject', get_string('entrytitle', 'blog'), 'size="60"'); + $textfieldoptions = array('trusttext'=>true, 'subdirs'=>true); + $mform->addElement('editor', 'summary_editor', get_string('entrybody', 'blog'), null, $summaryoptions); $mform->setType('subject', PARAM_TEXT); $mform->addRule('subject', get_string('emptytitle', 'blog'), 'required', null, 'client'); @@ -68,21 +47,14 @@ class blog_edit_form extends moodleform { $mform->addElement('format', 'format', get_string('format')); - $mform->addElement('filepicker', 'attachment', get_string('attachment', 'forum'), null, array('filetypes' => '*')); + $mform->addElement('file', 'attachment', get_string('attachment', 'forum')); //disable publishstate options that are not allowed $publishstates = array(); $i = 0; foreach (blog_entry::get_applicable_publish_states() as $state => $desc) { - if (!empty($assignmentdata)) { - if ($i <= $assignmentdata->var2) { //var2 is the maximum publish state allowed - $publishstates[$state] = $desc; - } - } else { - $publishstates[$state] = $desc; //no maximum was set - } - + $publishstates[$state] = $desc; //no maximum was set $i++; } @@ -106,31 +78,31 @@ class blog_edit_form extends moodleform { $courses = get_my_courses($USER->id, 'visible DESC, fullname ASC'); } - $course_names[0] = 'none'; + $coursenames[0] = 'none'; if (!empty($courses)) { foreach ($courses as $course) { - $course_names[$course->context->id] = $course->fullname; + $coursenames[$course->context->id] = $course->fullname; $modinfo = get_fast_modinfo($course, $USER->id); - $course_context_path = $DB->get_field('context', 'path', array('id' => $course->context->id)); + $coursecontextpath = $DB->get_field('context', 'path', array('id' => $course->context->id)); foreach ($modinfo->instances as $modname => $instances) { foreach ($instances as $modid => $mod) { - $mod_context_id = $DB->get_field_select('context', 'id', + $modcontextid = $DB->get_field_select('context', 'id', 'instanceid = '.$mod->id.' AND ' . 'contextlevel = ' . CONTEXT_MODULE . ' AND ' . - 'path LIKE \''.$course_context_path.'/%\''); + 'path LIKE \''.$coursecontextpath.'/%\''); - $mod_string = $mod->name . ' (' . get_plugin_name($modname) . ')'; - $this->modnames[$course->context->id][$mod_context_id] = $mod_string; - $allmodnames[$mod_context_id] = $course->shortname . " - " . $mod_string; + $modstring = $mod->name . ' (' . get_plugin_name($modname) . ')'; + $this->modnames[$course->context->id][$modcontextid] = $modstring; + $allmodnames[$modcontextid] = $course->shortname . " - " . $modstring; } } } } - $mform->addElement('select', 'courseassoc', get_string('course'), $course_names, 'onchange="addCourseAssociations()"'); + $mform->addElement('select', 'courseassoc', get_string('course'), $coursenames, 'onchange="addCourseAssociations()"'); $selectassoc = &$mform->addElement('select', 'modassoc', get_string('managemodules'), $allmodnames); $selectassoc->setMultiple(true); $PAGE->requires->data_for_js('blog_edit_form_modnames', $this->modnames); @@ -158,22 +130,6 @@ class blog_edit_form extends moodleform { $mform->setType('courseid', PARAM_INT); $mform->setDefault('courseid', 0); - if (!empty($assignmentdata)) { //dont allow associations for blog assignments - $courseassoc = $mform->getElement('courseassoc'); - $modassoc = $mform->getElement('modassoc'); - $courseassoc->updateAttributes(array('disabled' => 'disabled')); - $modassoc->updateAttributes(array('disabled' => 'disabled')); - } - - if ($noedit) { //disable some other fields when editing is not allowed - $subject = $mform->getElement('subject'); - $summary = $mform->getElement('summary'); - $attachment = $mform->getElement('attachment'); - $format = $mform->getElement('format'); - $attachment->updateAttributes(array('disabled' => 'disabled')); - $format->updateAttributes(array('disabled' => 'disabled')); - } - $this->set_data($existing); } @@ -182,60 +138,10 @@ class blog_edit_form extends moodleform { $errors = array(); - //check to see if it's part of a submitted blog assignment - if ($blogassignment = $DB->get_record_sql('SELECT a.timedue, a.preventlate, a.emailteachers, a.var2, asub.grade - FROM {assignment} a, {assignment_submissions} as asub WHERE - a.id = asub.assignment AND userid = '.$USER->id.' AND a.assignmenttype = \'blog\' - AND asub.data1 = \''.$data['entryid'].'\'')) { - - $original = $DB->get_record('post', array('id' => $data['entryid'])); - //don't allow updates of the summary, subject, or attachment - $changed = ($original->summary != $data['summary'] || - $original->subject != $data['subject'] || - !empty($files)); - - - //determine numeric value for publish state (for comparison purposes) - $postaccess = -1; - $i=0; - - foreach (blog_applicable_publish_states() as $state => $desc) { - if ($state == $data['publishstate']) { - $postaccess = $i; - } - $publishstates[$i++] = $state; - } - - //send an error if improper changes are being made - if (($changed and time() > $blogassignment->timedue and $blogassignment->preventlate = 1) or - ($changed and $blogassignment->grade != -1) or - (time() < $blogassignment->timedue and ($postaccess > $blogassignment->var2 || $postaccess == -1))) { - - //too late to edit this entry - if ($original->subject != $data['subject']) { - $errors['subject'] = get_string('canteditblogassignment', 'blog'); - } - if ($original->summary != $data['summary']) { - $errors['summary'] = get_string('canteditblogassignment', 'blog'); - } - if (!empty($files)) { - $errors['attachment'] = get_string('canteditblogassignment', 'blog'); - } - } - - //insure the publishto value is within proper constraints - - if (time() < $blogassignment->timedue and ($postaccess > $blogassignment->var2 || $postaccess == -1)) { - $errors['publishto'] = get_string('canteditblogassignment', 'blog'); - } - - } else { - if (empty($data['courseassoc']) && ($data['publishstate'] == 'course' || $data['publishstate'] == 'group') && !empty($CFG->useblogassociations)) { - return array('publishstate' => get_string('mustassociatecourse', 'blog')); - } + if (empty($data['courseassoc']) && ($data['publishstate'] == 'course' || $data['publishstate'] == 'group') && !empty($CFG->useblogassociations)) { + return array('publishstate' => get_string('mustassociatecourse', 'blog')); } - //validate course association if (!empty($data['courseassoc'])) { $coursecontext = $DB->get_record('context', array('id' => $data['courseassoc'], 'contextlevel' => CONTEXT_COURSE)); @@ -261,7 +167,7 @@ class blog_edit_form extends moodleform { if ($modcontext) { //insure associated mod has a valid context id //get context of the mod's course $path = split('/', $modcontext->path); - $coursecontext = $DB->get_record('context', array('id' => $path[3])); + $coursecontext = $DB->get_record('context', array('id' => $path[(count($path) - 2)])); //insure only one course is associated if (!empty($data['courseassoc'])) { diff --git a/blog/locallib.php b/blog/locallib.php index 6eccd979e3..db3dd17045 100644 --- a/blog/locallib.php +++ b/blog/locallib.php @@ -169,7 +169,7 @@ class blog_entry { } //retrieve associations in case they're needed early - $blog_associations = $DB->get_records('blog_association', array('blogid' => $this->id)); + $blogassociations = $DB->get_records('blog_association', array('blogid' => $this->id)); //determine text for publish state switch ($template['publishstate']) { case 'draft': @@ -211,25 +211,32 @@ class blog_entry { } //add associations - if (!empty($CFG->useblogassociations) && $blog_associations) { + if (!empty($CFG->useblogassociations) && $blogassociations) { $contentcell->text .= $OUTPUT->container_start('tags'); - $assoc_str = ''; + $assocstr = ''; + $hascourseassocs = false; - foreach ($blog_associations as $assoc_rec) { //first find and show the associated course - $context_rec = $DB->get_record('context', array('id' => $assoc_rec->contextid)); + foreach ($blogassociations as $assocrec) { //first find and show the associated course + $context_rec = $DB->get_record('context', array('id' => $assocrec->contextid)); if ($context_rec->contextlevel == CONTEXT_COURSE) { $associcon = new moodle_action_icon(); $associcon->link->url = new moodle_url($CFG->wwwroot.'/course/view.php', array('id' => $context_rec->instanceid)); $associcon->image->src = $OUTPUT->old_icon_url('i/course'); $associcon->linktext = $DB->get_field('course', 'shortname', array('id' => $context_rec->instanceid)); - $assoc_str .= $OUTPUT->action_icon($associcon); + $assocstr .= $OUTPUT->action_icon($associcon); + $hascourseassocs = true; } } - foreach ($blog_associations as $assoc_rec) { //now show each mod association - $context_rec = $DB->get_record('context', array('id' => $assoc_rec->contextid)); + foreach ($blogassociations as $assocrec) { //now show each mod association + $context_rec = $DB->get_record('context', array('id' => $assocrec->contextid)); if ($context_rec->contextlevel == CONTEXT_MODULE) { + if ($hascourseassocs) { + $assocstr .= ', '; + $hascourseassocs = false; + } + $modinfo = $DB->get_record('course_modules', array('id' => $context_rec->instanceid)); $modname = $DB->get_field('modules', 'name', array('id' => $modinfo->module)); @@ -237,13 +244,13 @@ class blog_entry { $associcon->link->url = new moodle_url($CFG->wwwroot.'/mod/'.$modname.'/view.php', array('id' => $modinfo->id)); $associcon->image->src = $OUTPUT->mod_icon_url('icon', $modname); $associcon->linktext = $DB->get_field($modname, 'name', array('id' => $modinfo->instance)); - $assoc_str .= $OUTPUT->action_icon($associcon); + $assocstr .= $OUTPUT->action_icon($associcon); + $assocstr .= ', '; - $assoc_str .= ', '; - $assoc_str .= $OUTPUT->action_icon($associcon); } } - $contentcell->text .= get_string('associations', 'blog') . ': '. $assoc_str; + $assocstr = substr($assocstr, 0, -2); + $contentcell->text .= get_string('associations', 'blog') . ': '. $assocstr; $contentcell->text .= $OUTPUT->container_end(); } @@ -258,13 +265,7 @@ class blog_entry { if (blog_user_can_edit_entry($this)) { $contentcell->text .= $OUTPUT->link(html_link::make(new moodle_url($CFG->wwwroot.'/blog/edit.php', array('action' => 'edit', 'entryid' => $this->id)), $stredit)) . ' | '; - if (!$DB->record_exists_sql('SELECT a.timedue, a.preventlate, a.emailteachers, a.var2, asub.grade - FROM {assignment} a, {assignment_submissions} as asub WHERE - a.id = asub.assignment AND userid = '.$USER->id.' AND a.assignmenttype = \'blog\' - AND asub.data1 = \''.$this->id.'\'')) { - - $contentcell->text .= $OUTPUT->link(html_link::make(new moodle_url($CFG->wwwroot.'/blog/edit.php', array('action' => 'delete', 'entryid' => $this->id)), $strdelete)) . ' | '; - } + $contentcell->text .= $OUTPUT->link(html_link::make(new moodle_url($CFG->wwwroot.'/blog/edit.php', array('action' => 'delete', 'entryid' => $this->id)), $strdelete)) . ' | '; } $contentcell->text .= $OUTPUT->link(html_link::make(new moodle_url($CFG->wwwroot.'/blog/index.php', array('entryid' => $this->id)), get_string('permalink', 'blog'))); @@ -348,21 +349,8 @@ class blog_entry { $this->$var = $val; } - //check to see if it's part of a submitted blog assignment - if ($blogassignment = $DB->get_record_sql("SELECT a.timedue, a.preventlate, a.emailteachers, a.var2, asi.grade, asi.id - FROM {assignment} a, {assignment_submissions} as asi WHERE - a.id = asi.assignment AND userid = ? AND a.assignmenttype = 'blog' - AND asi.data1 = ?", array($USER->id, $this->id))) { - //email teachers if necessary - if ($blogassignment->emailteachers) { - email_teachers($DB->get_record('assignment_submissions', array('id'=>$blogassignment['id']))); - } - - } else { - //only update the attachment and associations if it is not a submitted assignment - if (!empty($CFG->useblogassociations)) { - $this->add_associations(); - } + if (!empty($CFG->useblogassociations)) { + $this->add_associations(); } $this->lastmodified = time(); @@ -393,14 +381,6 @@ class blog_entry { $returnurl = ''; - //check to see if it's part of a submitted blog assignment - if ($blogassignment = $DB->get_record_sql("SELECT a.timedue, a.preventlate, a.emailteachers, asub.grade - FROM {assignment} a, {assignment_submissions} as asub WHERE - a.id = asub.assignment AND userid = ? AND a.assignmenttype = 'blog' - AND asub.data1 = ?", array($USER->id, $this->id))) { - print_error('cantdeleteblogassignment', 'blog', $returnurl); - } - $this->delete_attachments(); $DB->delete_records('post', array('id' => $this->id)); diff --git a/blog/simpletest/testbloglib.php b/blog/simpletest/testbloglib.php index 36a9823e30..f52dbb4484 100644 --- a/blog/simpletest/testbloglib.php +++ b/blog/simpletest/testbloglib.php @@ -91,7 +91,7 @@ class bloglib_test extends UnitTestCaseUsingDatabase { global $CFG, $PAGE, $OUTPUT; $this->create_test_tables('post', 'tag', 'course', 'user', 'role', 'role_assignments', 'group', 'blog_associations', - 'course_modules', 'role_capabilities', 'assignment', 'tag_correlation', 'tag_instance'); + 'course_modules', 'role_capabilities', 'tag_correlation', 'tag_instance'); $contexts = $this->load_test_data('context', array('contextlevel', 'instanceid', 'path', 'depth'), array( diff --git a/mod/assignment/type/blog/assignment.class.php b/mod/assignment/type/blog/assignment.class.php deleted file mode 100644 index 4a79003ecf..0000000000 --- a/mod/assignment/type/blog/assignment.class.php +++ /dev/null @@ -1,326 +0,0 @@ -dirroot .'/blog/lib.php'); -require_once($CFG->libdir.'/formslib.php'); - - -/** - * Extend the base assignment class for offline assignments - * - */ -class assignment_blog extends assignment_base { - - function assignment_blog($cmid='staticonly', $assignment=NULL, $cm=NULL, $course=NULL) { - parent::assignment_base($cmid, $assignment, $cm, $course); - $this->type = 'blog'; - } - - function display_lateness($timesubmitted) { - return ''; - } - - function print_student_answer($userid, $return=false){ - global $CFG, $DB; - if (!$submission = $this->get_submission($userid)) { - return ''; - } - $post = $DB->get_record('post', array('id' => $submission->data1)); - $ret = ''.$post->subject.':
    '.shorten_text(format_text($post->summary)); - $ret .= 'Full Entry
    '; - - return $ret; - } - - - function setup_elements(&$mform) { - $ynoptions = array( 0 => get_string('no'), 1 => get_string('yes')); - //$mform->addElement('select', 'var1', get_string('multiassoc', 'assignment'), $ynoptions); - //$mform->setHelpButton('var1', array('multiassoc', get_string('multiassoc', 'assignment'), 'assignment')); - //$mform->setDefault('var1', 0); - - $publishstates = array(); - $i = 0; - foreach(blog_applicable_publish_states() as $state) $publishstates[$i++] = $state; - $mform->addElement('select', 'var2', get_string('maxpublishstate', 'assignment'), $publishstates); - $mform->setDefault('var2', 0); - } - - function prepare_new_submission($userid) { - $submission = new Object; - $submission->assignment = $this->assignment->id; - $submission->userid = $userid; - $submission->timecreated = time(); // needed for offline assignments - $submission->timemodified = $submission->timecreated; - $submission->numfiles = 0; - $submission->data1 = ''; - $submission->data2 = ''; - $submission->grade = -1; - $submission->submissioncomment = ''; - $submission->format = 0; - $submission->teacher = 0; - $submission->timemarked = 0; - $submission->mailed = 0; - return $submission; - } - - // needed for the timemodified override - function process_feedback() { - global $CFG, $USER, $DB; - require_once($CFG->libdir.'/gradelib.php'); - - if (!$feedback = data_submitted()) { // No incoming data? - return false; - } - - ///For save and next, we need to know the userid to save, and the userid to go - ///We use a new hidden field in the form, and set it to -1. If it's set, we use this - ///as the userid to store - if ((int)$feedback->saveuserid !== -1){ - $feedback->userid = $feedback->saveuserid; - } - - if (!empty($feedback->cancel)) { // User hit cancel button - return false; - } - - $grading_info = grade_get_grades($this->course->id, 'mod', 'assignment', $this->assignment->id, $feedback->userid); - - // store outcomes if needed - $this->process_outcomes($feedback->userid); - - $submission = $this->get_submission($feedback->userid, true); // Get or make one - - if (!$grading_info->items[0]->grades[$feedback->userid]->locked and - !$grading_info->items[0]->grades[$feedback->userid]->overridden) { - - $submission->grade = $feedback->grade; - $submission->submissioncomment = $feedback->submissioncomment; - $submission->format = $feedback->format; - $submission->teacher = $USER->id; - $mailinfo = get_user_preferences('assignment_mailinfo', 0); - if (!$mailinfo) { - $submission->mailed = 1; // treat as already mailed - } else { - $submission->mailed = 0; // Make sure mail goes out (again, even) - } - $submission->timemarked = time(); - - unset($submission->data1); // Don't need to update this. - unset($submission->data2); // Don't need to update this. - - if (empty($submission->timemodified)) { // eg for offline assignments - $submission->timemodified = time(); - } - - if (! $DB->update_record('assignment_submissions', $submission)) { - return false; - } - - // triger grade event - $this->update_grade($submission); - - add_to_log($this->course->id, 'assignment', 'update grades', - 'submissions.php?id='.$this->assignment->id.'&user='.$feedback->userid, $feedback->userid, $this->cm->id); - } - - return $submission; - - } - - - function view() { - - global $USER, $DB, $CFG, $COURSE; - - $edit = optional_param('edit', 0, PARAM_BOOL); - $saved = optional_param('saved', 0, PARAM_BOOL); - - $context = get_context_instance(CONTEXT_MODULE, $this->cm->id); - require_capability('mod/assignment:view', $context); - - $submission = $this->get_submission(); - - //Guest can not submit nor edit an assignment (bug: 4604) - if (!has_capability('mod/assignment:submit', $context)) { - $editable = null; - } else { - $editable = $this->isopen(); - } - $editmode = ($editable and $edit); - - if ($editmode) { - //guest can not edit or submit assignment - if (!has_capability('mod/assignment:submit', $context)) { - print_error('guestnosubmit', 'assignment'); - } - } - - add_to_log($this->course->id, "assignment", "view", "view.php?id={$this->cm->id}", $this->assignment->id, $this->cm->id); - -/// prepare form and process submitted data - $mform = new mod_assignment_blog_edit_form(); - if($this->assignment->var1) { //allow multiple associations - $mform->set_multiple_assoc(); - } - - $defaults = new object(); - if($submission = $this->get_submission()) { - $defaults->selectblog = $submission->data1; - } - $defaults->id = $this->cm->id; - - $mform->set_data($defaults); - - if ($mform->is_cancelled()) { - redirect('view.php?id='.$this->cm->id); - } - - if ($data = $mform->get_data()) { // No incoming data? - if ($editable && $this->update_submission($data)) { - //TODO fix log actions - needs db upgrade - $submission = $this->get_submission(); - add_to_log($this->course->id, 'assignment', 'upload', - 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); - $this->email_teachers($submission); - //redirect to get updated submission date and word count - redirect('view.php?id='.$this->cm->id.'&saved=1'); - } else { - // TODO: add better error message - notify(get_string("error")); //submitting not allowed! - } - } - -/// print header, etc. and display form if needed - if ($editmode) { - $this->view_header(get_string('editmysubmission', 'assignment')); - } else { - $this->view_header(); - } - - $this->view_intro(); - - $this->view_dates(); - - if ($saved) { - notify(get_string('submissionsaved', 'assignment'), 'notifysuccess'); - } - - if (has_capability('mod/assignment:submit', $context)) { - print_simple_box_start('center', '70%', '', 0, 'generalbox', 'online'); - if ($editmode) { - if($DB->record_exists('post', array('module'=>'blog', 'userid'=>$USER->id))) { - $mform->display(); - } else { - echo '
    '.get_string('noblogs', 'assignment').'
    '; - echo '
    '.get_string('addnewentry', 'blog') .""; - } - } else { - if ($submission) { - blog_print_entry($DB->get_record('post', array('id' => $submission->data1))); - } else if (!has_capability('mod/assignment:submit', $context)) { //fix for #4604 - echo '
    '. get_string('guestnosubmit', 'assignment').'
    '; - } else if ($this->isopen()) { //fix for #4206 - echo '
    '.get_string('emptysubmission', 'assignment').'
    '; - } - } - print_simple_box_end(); - if (!$editmode && $editable) { - echo "
    "; - print_single_button('view.php', array('id'=>$this->cm->id,'edit'=>'1'), - get_string('editmysubmission', 'assignment')); - echo "
    "; - } - - } - - $this->view_feedback(); - - $this->view_footer(); - } - - - function update_submission($data) { - global $CFG, $USER, $DB, $COURSE; - - $submission = $this->get_submission($USER->id, true); - - $update = new object(); - $update->id = $submission->id; - $update->data1 = $data->selectblog; - $update->timemodified = time(); - - //enforce access restriction - $postaccess = -1; - $i=0; - $post = $DB->get_record('post', array('id' => $data->selectblog)); - if(!$post) { - print_error('blognotfound', 'blog'); - } - $publishstates = array(); - foreach(blog_applicable_publish_states() as $state => $desc) { - if($state == $post->publishstate) { - $postaccess = $i; - } - $publishstates[$i++] = $state; - } - - if($this->assignment->var2 < $postaccess) { - $post->publishstate = $publishstates[$this->assignment->var2]; - $DB->update_record('post', $post); - } - - //force the user to have strict associations with this post - blog_remove_associations_for_post($post->id); //remove all existing associations - //add assignment association - $assignmentmodid = $DB->get_field('modules', 'id', array('name' => 'assignment')); - $modcontext = get_context_instance(CONTEXT_MODULE, $DB->get_field('course_modules', 'id', - array('module' => $assignmentmodid, 'instance' => $this->assignment->id))); - blog_add_association($post->id, $modcontext->id); - //add course association - $coursecontext = get_context_instance(CONTEXT_COURSE, $DB->get_field('course_modules', 'course', - array('module' => $assignmentmodid, 'instance' => $this->assignment->id))); - blog_add_association($post->id, $coursecontext->id); - - if (!$DB->update_record('assignment_submissions', $update)) { - return false; - } - - $submission = $this->get_submission($USER->id); - $this->update_grade($submission); - return true; - } - - -} - -class mod_assignment_blog_edit_form extends moodleform { - function definition() { - global $USER, $DB; - $mform =& $this->_form; - - // visible elements - //$mform->addRule('text', get_string('required'), 'required', null, 'client'); - - $blogentries = array(); - foreach($DB->get_records('post', array('userid' => $USER->id)) as $rec) { - $blogentries[$rec->id] = userdate($rec->created) . ' - ' . $rec->summary; - } - - $mform->addElement('select', 'selectblog', get_string('selectblog', 'assignment'), $blogentries); - - // hidden params - $mform->addElement('hidden', 'id', 0); - $mform->setType('id', PARAM_INT); - - // buttons - $this->add_action_buttons(); - } - - function set_multiple_assoc() { - $mform =& $this->_form; - $selectblog = $mform->getElement('selectblog'); - $selectblog->setMultiple(true); - } -} - -?> -- 2.39.5