]> git.mjollnir.org Git - moodle.git/commitdiff
readded file uploads to forum post form, file processing was not updated because...
authorskodak <skodak>
Sun, 12 Nov 2006 18:36:00 +0000 (18:36 +0000)
committerskodak <skodak>
Sun, 12 Nov 2006 18:36:00 +0000 (18:36 +0000)
mod/forum/post.php
mod/forum/post_form.php

index 84b77ea2f288a3a7d78b43dc4a052718349fd4d7..1fea81f8148a14c9d2a2bb5a4346bd8efae70d73 100644 (file)
         $coursecontext = get_context_instance(CONTEXT_COURSE, $forum->course);
     }
 
-    $mform_post = new forum_post_form('post.php', array('coursecontext'=>$coursecontext, 'forum'=>$forum, 'post'=>$post));
+    if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) { // For the logs
+        error('Could not get the course module for the forum instance.');
+    }
+    $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
+
+    $mform_post = new forum_post_form('post.php', array('course'=>$course, 'coursecontext'=>$coursecontext, 'modcontext'=>$modcontext, 'forum'=>$forum, 'post'=>$post));
 
     if ($fromform = $mform_post->data_submitted()) {
 
         // TODO add attachment processing
         //$fromform->attachment = isset($_FILES['attachment']) ? $_FILES['attachment'] : NULL;
 
-        if (!$cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) { // For the logs
-            error('Could not get the course module for the forum instance.');
-        }
-        $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
         trusttext_after_edit($fromform->message, $modcontext);
 
         if ($fromform->edit) {           // Updating a post
index 25fd78ea9b1a0465b03ada23b484f2cc97555c65..46b59ccda40cd1fef3461a146078d993f33d8b8a 100644 (file)
@@ -10,11 +10,20 @@ class forum_post_form extends moodleform {
                $mform    =& $this->_form;
                $renderer =& $mform->defaultRenderer();
 
+        $course        = $this->_customdata['course'];
                $coursecontext = $this->_customdata['coursecontext'];
+        $modcontext    = $this->_customdata['modcontext'];
         $forum         = $this->_customdata['forum'];
         $post          = $this->_customdata['post'];
 
 
+        // the upload manager is used directly in post precessing, moodleform::save_files() is not used yet
+        $this->_upload_manager = new upload_manager('attachment', true, false, $course, false, $forum->maxbytes, true, true);
+
+        // set file max size to enable proper server side validation
+        $maxbytes = get_max_upload_file_size($CFG->maxbytes, $course->maxbytes, $forum->maxbytes);
+        $mform->setMaxFileSize($maxbytes);
+
         $mform->addElement('header', 'general', '');//fill in the data depending on page params
                                                     //later using set_defaults
                $mform->addElement('text', 'subject', get_string('subject', 'forum'), 'size="60"');
@@ -49,9 +58,15 @@ class forum_post_form extends moodleform {
             $mform->setHelpButton('subscribemessage', array('subscription', get_string('subscription', 'forum'), 'forum'));
                }
 
-               if (empty($post->id) && has_capability('moodle/course:manageactivities', $coursecontext)) {
+        if ($forum->maxbytes != 1 && has_capability('mod/forum:createattachment', $modcontext))  {  //  1 = No attachments at all
+            $mform->addElement('file', 'attachment', get_string('attachment', 'forum'));
+            $mform->setHelpButton('attachment', array('attachment', get_string('attachemnt', 'forum'), 'forum'));
+        
+        }
+
+        if (empty($post->id) && has_capability('moodle/course:manageactivities', $coursecontext)) {
             $mform->addElement('checkbox', 'mailnow', get_string('mailnow', 'forum'));
-               }
+        }
 
                if (!isset($discussion->timestart)) {
                        $discussion->timestart = 0;