belongsToUserBlog() || UOJResponse::page404(); UOJBlog::info('type') == 'S' || UOJResponse::page404(); $blog = UOJBlog::info(); $blog['content'] = UOJBlog::cur()->queryContent()['content']; $blog['content_md'] = UOJBlog::cur()->queryContent()['content_md']; } else { UOJUser::checkPermission(Auth::user(), 'blogs.create') || UOJResponse::page403(); isSuperUser(Auth::user()) || UOJUserBlog::userIsOwner(Auth::user()) || UOJResponse::page403(); } $blog_editor = new UOJBlogEditor(); $blog_editor->type = 'slide'; $blog_editor->name = 'blog'; if ($blog) { $blog_editor->cur_data = array( 'title' => $blog['title'], 'content_md' => $blog['content_md'], 'content' => $blog['content'], 'tags' => UOJBlog::cur()->queryTags(), 'is_hidden' => $blog['is_hidden'] ); } else { $blog_editor->cur_data = array( 'title' => '新幻灯片', 'content_md' => '', 'content' => '', 'tags' => [], 'is_hidden' => true ); } if ($blog) { $blog_editor->blog_url = HTML::blog_url(UOJUserBlog::id(), "/post/{$blog['id']}"); } else { $blog_editor->blog_url = null; } function insertBlog($data) { DB::insert([ "insert into blogs", "(title, content, content_md, poster, is_hidden, post_time, active_time)", "values", DB::tuple([ $data['title'], $data['content'], $data['content_md'], UOJUserBlog::id(), $data['is_hidden'], DB::now(), DB::now() ]) ]); } function insertSlide($data) { DB::insert("insert into blogs (type, title, content, content_md, poster, is_hidden, post_time) values ('S', '" . DB::escape($data['title']) . "', '" . DB::escape($data['content']) . "', '" . DB::escape($data['content_md']) . "', '" . Auth::id() . "', {$data['is_hidden']}, now())"); } $blog_editor->save = function ($data) { global $blog; $ret = []; if ($blog) { updateBlog($blog['id'], $data); } else { insertSlide($data); $blog_id = DB::insert_id(); UOJBlog::query(strval($blog_id))->setAsCur(); $ret['blog_id'] = $blog_id; $ret['blog_write_url'] = UOJBlog::cur()->getUriForWrite(); $ret['blog_url'] = UOJBlog::cur()->getBlogUri(); } UOJBlog::cur()->updateTags($data['tags']); return $ret; }; $blog_editor->runAtServer(); ?>