module = 'notes'; $note->lastmodified = time(); $note->usermodified = $USER->id; if (empty($note->format)) { $note->format = FORMAT_PLAIN; } if (empty($note->publishstate)) { $note->publishstate = NOTES_STATE_PUBLIC; } // save data if (empty($note->id)) { // insert new note $note->created = $note->lastmodified; if ($id = insert_record('post', $note)) { $note = addslashes_recursive(get_record('post', 'id', $id)); $result = true; } else { $result = false; } } else { // update old note $result = update_record('post', $note); } unset($note->module); return $result; } /** * Deletes a note object based on its id. * * @param int $note_id id of the note to delete * @return boolean true if the object was deleted; false otherwise */ function note_delete($noteid) { return delete_records_select('post', "id=$noteid AND module='notes'"); } /** * Converts a state value to its corespondent name * * @param string $state state value to convert * @return string corespondent state name */ function note_get_state_name($state) { // cache state names static $states; if (empty($states)) { $states = note_get_state_names(); } if (isset($states[$state])) { return $states[$state]; } else { return null; } } /** * Returns an array of mappings from state values to state names * * @return array of mappings */ function note_get_state_names() { return array( NOTES_STATE_DRAFT => get_string('personal', 'notes'), NOTES_STATE_PUBLIC => get_string('course', 'notes'), NOTES_STATE_SITE => get_string('site', 'notes'), ); } /** * Prints a note object * * @param note $note the note object to print * @param int $detail OR-ed NOTES_SHOW_xyz flags that specify which note parts to print */ function note_print($note, $detail = NOTES_SHOW_FULL) { global $CFG, $USER; if (!$user = get_record('user','id',$note->userid)) { debugging("User $note->userid not found"); return; } if (!$author = get_record('user','id',$note->usermodified)) { debugging("User $note->usermodified not found"); return; } $context = get_context_instance(CONTEXT_COURSE, $note->courseid); $systemcontext = get_context_instance(CONTEXT_SYSTEM); $authoring = new object(); $authoring->name = ''.fullname($author).''; $authoring->date = userdate($note->lastmodified); echo '
'; // print note head (e.g. author, user refering to, etc) if ($detail & NOTES_SHOW_HEAD) { echo '
'; echo '
'; print_user_picture($user, $note->courseid, $user->picture); echo fullname($user) . '
'; echo '
' . get_string('bynameondate', 'notes', $authoring) . ' (' . get_string('created', 'notes') . ': ' . userdate($note->created) . ')
'; echo '
'; } // print note content 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', $systemcontext) && $note->publishstate == NOTES_STATE_SITE || has_capability('moodle/notes:manage', $context) && ($note->publishstate == NOTES_STATE_PUBLIC || $note->usermodified == $USER->id)) { echo ''; } } echo '
'; } /** * Prints a list of note objects * * @param array $notes array of note objects to print * @param int $detail OR-ed NOTES_SHOW_xyz flags that specify which note parts to print */ function note_print_list($notes, $detail = NOTES_SHOW_FULL) { /// Start printing of the note echo '
'; foreach ($notes as $note) { note_print($note, $detail); } echo '
'; } /** * Retrieves and prints a list of note objects with specific atributes. * * @param string $header HTML to print above the list * @param int $addcourseid id of the course for the add notes link (0 hide link) * @param boolean $viewnotes true if the notes should be printed; false otherwise (print notesnotvisible string) * @param int $courseid id of the course in which the notes were posted (0 means any) * @param int $userid id of the user to which the notes refer (0 means any) * @param string $state state of the notes (i.e. draft, public, site) ('' means any) * @param int $author id of the user who modified the note last time (0 means any) */ function note_print_notes($header, $addcourseid = 0, $viewnotes = true, $courseid = 0, $userid = 0, $state = '', $author = 0) { global $CFG; if ($header) { echo '

' . $header . '

'; echo '
'; } if ($addcourseid) { if ($userid) { echo '

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

'; } else { echo '

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

'; } } if ($viewnotes) { $notes = note_list($courseid, $userid, $state, $author); if ($notes) { note_print_list($notes); } } else { echo '

' . get_string('notesnotvisible', 'notes') . '

'; } if ($header) { echo '
'; // notesgroup } } /** * Delete all notes about users in course- * @param int $courseid * @return bool success */ function note_delete_all($courseid) { return delete_records('post', 'module', 'notes', 'courseid', $courseid); } ?>