From 241bcec5fa06d4ffc1d16e4a2b7a6c24bb6dcfdf Mon Sep 17 00:00:00 2001 From: skodak Date: Thu, 21 Aug 2008 21:40:29 +0000 Subject: [PATCH] MDL-16164 improved use of forms in notes code and some other minor cleanup --- notes/add.php | 85 --------------------------------------------- notes/delete.php | 9 ++--- notes/edit.php | 56 ++++++++++++++--------------- notes/edit_form.php | 8 ++--- notes/index.php | 4 +-- notes/lib.php | 24 ++++++------- 6 files changed, 50 insertions(+), 136 deletions(-) delete mode 100644 notes/add.php diff --git a/notes/add.php b/notes/add.php deleted file mode 100644 index 5e94d4689e..0000000000 --- a/notes/add.php +++ /dev/null @@ -1,85 +0,0 @@ -get_record('course', array('id'=>$courseid)))) { - print_error('invalidcourseid'); - } - -/// require login to access notes - require_login($course->id); - -/// locate context information - $context = get_context_instance(CONTEXT_COURSE, $course->id); - -/// check capability - require_capability('moodle/notes:manage', $context); - - -/// locate user information - if (!($user = $DB->get_record('user', array('id'=>$userid)))) { - print_error('invaliduserid'); - } - -/// build-up form - require_once('edit_form.php'); - -/// create form - $noteform = new note_edit_form(); - -/// if form was cancelled then return to the previous notes list - if ($noteform->is_cancelled()) { - redirect($CFG->wwwroot . '/notes/index.php?course=' . $courseid . '&user=' . $userid); - } - -/// if data was submitted and validated, then save it to database - if ($formdata = $noteform->get_data()) { - $note = new object(); - $note->courseid = $formdata->course; - $note->content = $formdata->content; - $note->format = FORMAT_PLAIN; - $note->userid = $formdata->user; - $note->publishstate = $formdata->publishstate; - if (note_save($note)) { - add_to_log($note->courseid, 'notes', 'add', 'index.php?course='.$note->courseid.'&user='.$note->userid . '#note-' . $note->id , 'add note'); - } - // redirect to notes list that contains this note - redirect($CFG->wwwroot . '/notes/index.php?course=' . $note->courseid . '&user=' . $note->userid); - } - - if ($noteform->is_submitted()) { - // if data was submitted with errors, then use it as default for new form - $note = $noteform->get_submitted_data(); - } else { - // if data was not submitted yet, then use default values - $note = new object(); - $note->id = 0; - $note->course = $courseid; - $note->user = $userid; - $note->publishstate = optional_param('state', NOTES_STATE_PUBLIC, PARAM_ALPHA); - } - $noteform->set_data($note); - $strnotes = get_string('addnewnote', 'notes'); - -/// output HTML - $nav = array(); - if (has_capability('moodle/course:viewparticipants', $context) || has_capability('moodle/site:viewparticipants', get_context_instance(CONTEXT_SYSTEM))) { - $nav[] = array('name' => get_string('participants'), 'link' => $CFG->wwwroot . '/user/index.php?id=' . $course->id, 'type' => 'misc'); - } - $nav[] = array('name' => fullname($user), 'link' => $CFG->wwwroot . '/user/view.php?id=' . $user->id. '&course=' . $course->id, 'type' => 'misc'); - $nav[] = array('name' => get_string('notes', 'notes'), 'link' => $CFG->wwwroot . '/notes/index.php?course=' . $course->id . '&user=' . $user->id, 'type' => 'misc'); - $nav[] = array('name' => $strnotes, 'link' => '', 'type' => 'activity'); - - print_header($course->shortname . ': ' . $strnotes, $course->fullname, build_navigation($nav)); - - print_heading(fullname($user)); - - $noteform->display(); - print_footer(); -?> diff --git a/notes/delete.php b/notes/delete.php index 94269c0cde..777e87d231 100644 --- a/notes/delete.php +++ b/notes/delete.php @@ -4,7 +4,7 @@ require_once('../config.php'); require_once('lib.php'); // retrieve parameters -$noteid = required_param('note', PARAM_INT); +$noteid = required_param('id', PARAM_INT); // locate note information if (!$note = note_load($noteid)) { @@ -22,7 +22,7 @@ if (!$course = $DB->get_record('course', array('id'=>$note->courseid))) { } // require login to access notes -require_login($course->id); +require_login($course); // locate context information $context = get_context_instance(CONTEXT_COURSE, $course->id); @@ -41,11 +41,12 @@ if (data_submitted() && confirm_sesskey()) { print_error('cannotdeletepost', 'notes', $returnurl); } redirect($returnurl); + } else { // if data was not submitted yet, then show note data with a delete confirmation form $strnotes = get_string('notes', 'notes'); - $optionsyes = array('note'=>$noteid, 'sesskey'=>sesskey()); - $optionsno = array('course'=>$course->id, 'user'=>$note->userid); + $optionsyes = array('id'=>$noteid, 'sesskey'=>sesskey()); + $optionsno = array('course'=>$course->id, 'user'=>$note->userid); // output HTML if (has_capability('moodle/course:viewparticipants', $context) || has_capability('moodle/site:viewparticipants', get_context_instance(CONTEXT_SYSTEM))) { diff --git a/notes/edit.php b/notes/edit.php index dbc8ac3fd8..72be122eec 100644 --- a/notes/edit.php +++ b/notes/edit.php @@ -2,14 +2,28 @@ require_once('../config.php'); require_once('lib.php'); + require_once('edit_form.php'); /// retrieve parameters - $noteid = required_param('note', PARAM_INT); + $noteid = optional_param('id', 0, PARAM_INT); -/// locate note information - if (!$note = note_load($noteid)) { - print_error('invalidid', 'notes'); - } + if ($noteid) { + //existing note + if (!$note = note_load($noteid)) { + print_error('invalidid', 'notes'); + } + + } else { + // adding new note + $courseid = required_param('courseid', PARAM_INT); + $userid = required_param('userid', PARAM_INT); + $state = optional_param('publishstate', NOTES_STATE_PUBLIC, PARAM_ALPHA); + + $note = new object(); + $note->courseid = $courseid; + $note->userid = $userid; + $note->publishstate = $state; + } /// locate course information if (!$course = $DB->get_record('course', array('id'=>$note->courseid))) { @@ -22,34 +36,25 @@ } /// require login to access notes - require_login($course->id); + require_login($course); /// locate context information $context = get_context_instance(CONTEXT_COURSE, $course->id); - -/// check capability require_capability('moodle/notes:manage', $context); -/// build-up form - require_once('edit_form.php'); - -/// get option values for the user select - /// create form $noteform = new note_edit_form(); +/// set defaults + $noteform->set_data($note); + /// if form was cancelled then return to the notes list of the note if ($noteform->is_cancelled()) { redirect($CFG->wwwroot . '/notes/index.php?course=' . $note->courseid . '&user=' . $note->userid); } /// if data was submitted and validated, then save it to database - if ($formdata = $noteform->get_data()){ - $note->courseid = $formdata->course; - $note->userid = $formdata->user; - $note->content = $formdata->content; - $note->format = FORMAT_PLAIN; - $note->publishstate = $formdata->publishstate; + if ($note = $noteform->get_data()){ if (note_save($note)) { add_to_log($note->courseid, 'notes', 'update', 'index.php?course='.$note->courseid.'&user='.$note->userid . '#note-' . $note->id, 'update note'); } @@ -57,18 +62,11 @@ redirect($CFG->wwwroot . '/notes/index.php?course=' . $note->courseid . '&user=' . $note->userid); } - - if ($noteform->is_submitted()) { - // if data was submitted with errors, then use it as default for new form - $note = $noteform->get_submitted_data(); + if ($noteid) { + $strnotes = get_string('editnote', 'notes'); } else { - // if data was not submitted yet, then used values retrieved from the database - $note->user = $note->userid; - $note->course = $note->courseid; - $note->note = $note->id; + $strnotes = get_string('addnewnote', 'notes'); } - $noteform->set_data($note); - $strnotes = get_string('editnote', 'notes'); /// output HTML $nav = array(); diff --git a/notes/edit_form.php b/notes/edit_form.php index 0eddb1366b..7a94d5bd48 100644 --- a/notes/edit_form.php +++ b/notes/edit_form.php @@ -21,14 +21,14 @@ class note_edit_form extends moodleform { $this->add_action_buttons(); - $mform->addElement('hidden', 'course'); + $mform->addElement('hidden', 'courseid'); $mform->setType('course', PARAM_INT); - $mform->addElement('hidden', 'user'); + $mform->addElement('hidden', 'userid'); $mform->setType('user', PARAM_INT); - $mform->addElement('hidden', 'note'); - $mform->setType('note', PARAM_INT); + $mform->addElement('hidden', 'id'); + $mform->setType('id', PARAM_INT); } } ?> \ No newline at end of file diff --git a/notes/index.php b/notes/index.php index 2ebb673423..d120e359ef 100644 --- a/notes/index.php +++ b/notes/index.php @@ -51,7 +51,7 @@ } /// require login to access notes - require_login($course->id); + require_login($course); add_to_log($courseid, 'notes', 'view', 'index.php?course='.$courseid.'&user='.$userid, 'view notes'); @@ -77,7 +77,7 @@ $showroles = 1; $currenttab = 'notes'; - require_once($CFG->dirroot .'/user/tabs.php'); + require($CFG->dirroot .'/user/tabs.php'); $strsitenotes = get_string('sitenotes', 'notes'); $strcoursenotes = get_string('coursenotes', 'notes'); diff --git a/notes/lib.php b/notes/lib.php index 94162606a0..d098142439 100644 --- a/notes/lib.php +++ b/notes/lib.php @@ -89,18 +89,18 @@ function note_save(&$note) { $note->module = 'notes'; $note->lastmodified = time(); $note->usermodified = $USER->id; - if(empty($note->format)) { + if (empty($note->format)) { $note->format = FORMAT_PLAIN; } - if(empty($note->publishstate)) { + if (empty($note->publishstate)) { $note->publishstate = NOTES_STATE_PUBLIC; } // save data - if(empty($note->id)) { + if (empty($note->id)) { // insert new note $note->created = $note->lastmodified; if ($id = $DB->insert_record('post', $note)) { - $note->id = $id; + $note = $DB->get_record('post', array('id'=>$id)); $result = true; } else { $result = false; @@ -175,7 +175,7 @@ function note_print($note, $detail = NOTES_SHOW_FULL) { return; } $context = get_context_instance(CONTEXT_COURSE, $note->courseid); - $sitecontext = get_context_instance(CONTEXT_SYSTEM); + $systemcontext = get_context_instance(CONTEXT_SYSTEM); $authoring = new object(); $authoring->name = ''.fullname($author).''; @@ -186,7 +186,7 @@ function note_print($note, $detail = NOTES_SHOW_FULL) { '" id="note-'. $note->id .'">'; // print note head (e.g. author, user refering to, etc) - if($detail & NOTES_SHOW_HEAD) { + if ($detail & NOTES_SHOW_HEAD) { echo '
'; echo '
'; print_user_picture($user, $note->courseid, $user->picture); @@ -198,19 +198,19 @@ function note_print($note, $detail = NOTES_SHOW_FULL) { } // print note content - if($detail & NOTES_SHOW_BODY) { + if ($detail & NOTES_SHOW_BODY) { echo '
'; echo format_text($note->content, $note->format); echo '
'; } // print note options (e.g. delete, edit) - if($detail & NOTES_SHOW_FOOT) { - if (has_capability('moodle/notes:manage', $sitecontext) && $note->publishstate == NOTES_STATE_SITE || + if ($detail & NOTES_SHOW_FOOT) { + if (has_capability('moodle/notes:manage', $systemcontext) && $note->publishstate == NOTES_STATE_SITE || has_capability('moodle/notes:manage', $context) && ($note->publishstate == NOTES_STATE_PUBLIC || $note->usermodified == $USER->id)) { echo ''; } } @@ -253,7 +253,7 @@ function note_print_notes($header, $addcourseid = 0, $viewnotes = true, $coursei } if ($addcourseid) { if ($userid) { - echo '

' . get_string('addnewnote', 'notes') . '

'; + echo '

' . get_string('addnewnote', 'notes') . '

'; } else { echo '

' . get_string('addnewnoteselect', 'notes') . '

'; } -- 2.39.5