/** * Add a new blog post * * @param mixed $post An object containing all required post fields * @param object $cm Course-module for blog * @return mixed PostID on success or false */ function oublog_add_post($post, $cm, $oublog, $course) { global $DB, $CFG; require_once $CFG->libdir . '/completionlib.php'; $post->itemid = $post->message['itemid']; $post->message = $post->message['text']; $modcontext = context_module::instance($cm->id); if (!isset($post->oubloginstancesid)) { if (!($post->oubloginstancesid = $DB->get_field('oublog_instances', 'id', array('oublogid' => $post->oublogid, 'userid' => $post->userid)))) { if (!($post->oubloginstancesid = oublog_add_bloginstance($post->oublogid, $post->userid))) { return false; } } } if (!isset($post->timeposted)) { $post->timeposted = time(); } // Begin transaction $tw = $DB->start_delegated_transaction(); if (!($postid = $DB->insert_record('oublog_posts', $post))) { return false; } // Now do filestuff. if ($post->attachments) { file_save_draft_area_files($post->attachments, $modcontext->id, 'mod_oublog', 'attachment', $postid, array('subdirs' => 0)); } $post->message = file_save_draft_area_files($post->itemid, $modcontext->id, 'mod_oublog', 'message', $postid, array('subdirs' => 0), $post->message); $DB->set_field('oublog_posts', 'message', $post->message, array('id' => $postid)); if (isset($post->tags)) { oublog_update_item_tags($post->oubloginstancesid, $postid, $post->tags, $post->visibility); } $post->id = $postid; // Needed by the below if (!oublog_search_update($post, $cm)) { return false; } // Inform completion system, if available $completion = new completion_info($course); if ($completion->is_enabled($cm) && $oublog->completionposts) { $completion->update_state($cm, COMPLETION_COMPLETE); } $tw->allow_commit(); return $postid; }
exit; } if ($remote) { $posts = oublog_import_remote_call('mod_oublog_get_blog_posts', array('username' => $USER->username, 'blogid' => $boublogid, 'selected' => implode(',', $selected), 'inccomments' => $oublog->allowcomments != OUBLOG_COMMENTS_PREVENT, 'bcontextid' => $bcontextid)); } else { $posts = oublog_import_getposts($boublogid, $bcontextid, $selected, $oublog->allowcomments != OUBLOG_COMMENTS_PREVENT, $USER->id); } if (empty($posts)) { print_error('import_step2_none', 'oublog'); } // Get/create user blog instance for this activity. if ($oublog->global) { list($notused, $oubloginstance) = oublog_get_personal_blog($USER->id); } else { if (!($oubloginstance = $DB->get_record('oublog_instances', array('oublogid' => $oublog->id, 'userid' => $USER->id)))) { if (!($oubloginstance = oublog_add_bloginstance($oublog->id, $USER->id))) { print_error('Failed to create blog instance'); } $oubloginstance = (object) array('id' => $oubloginstance); } } // Copy all posts (updating group), checking for conflicts first. $bar = new progress_bar('oublog_import_step2_prog', 500, true); $conflicts = array(); $ignoreconflicts = optional_param('ignoreconflicts', false, PARAM_BOOL); $cur = 0; $files = get_file_storage(); foreach ($posts as $post) { $cur++; // Is there a conflict, if so add to our list so we can re-do these later. if (!$ignoreconflicts && $DB->get_records('oublog_posts', array('title' => $post->title, 'timeposted' => $post->timeposted, 'oubloginstancesid' => $oubloginstance->id))) {
/** * Add a new blog post * * @param mixed $post An object containing all required post fields * @param object $cm Course-module for blog * @return mixed PostID on success or false */ function oublog_add_post($post, $cm, $oublog, $course) { global $CFG; if (!isset($post->oubloginstancesid)) { if (!($post->oubloginstancesid = get_field('oublog_instances', 'id', 'oublogid', $post->oublogid, 'userid', $post->userid))) { if (!($post->oubloginstancesid = oublog_add_bloginstance($post->oublogid, $post->userid))) { return false; } } } if (!isset($post->timeposted)) { $post->timeposted = time(); } // Begin transaction $tw = new transaction_wrapper(); if (!($postid = insert_record('oublog_posts', $post))) { $tw->rollback(); return false; } if (isset($post->tags)) { oublog_update_item_tags($post->oubloginstancesid, $postid, $post->tags, $post->visibility); } $post->id = $postid; // Needed by the below if (!oublog_search_update($post, $cm)) { $tw->rollback(); return false; } // Inform completion system, if available if (class_exists('ouflags')) { if (completion_is_enabled($course, $cm) && $oublog->completionposts) { completion_update_state($course, $cm, COMPLETION_COMPLETE); } } $tw->commit(); return $postid; }