203 lines
7.0 KiB
Ruby
203 lines
7.0 KiB
Ruby
class BlogCommentsController < ApplicationController
|
||
include ApplicationHelper
|
||
before_filter :find_user
|
||
def index
|
||
|
||
end
|
||
def create
|
||
if User.current.logged?
|
||
@article = BlogComment.new
|
||
@article.author = User.current
|
||
@article.blog_id = params[:blog_id]
|
||
@article.safe_attributes = params[:blog_comment]
|
||
if request.post?
|
||
@article.save_attachments(params[:attachments])
|
||
if @article.save
|
||
# 更新kindeditor上传的图片资源所有者
|
||
# if params[:asset_id]
|
||
# ids = params[:asset_id].split(',')
|
||
# update_kindeditor_assets_owner ids,@article.id,OwnerTypeHelper::BLOGCOMMENT
|
||
# end
|
||
render_attachment_warning_if_needed(@article)
|
||
else
|
||
end
|
||
redirect_to user_blogs_path(:user_id=>params[:user_id])
|
||
else
|
||
respond_to do |format|
|
||
format.html {
|
||
render :layout => 'new_base_user'
|
||
}
|
||
end
|
||
end
|
||
else
|
||
redirect_to signin_path
|
||
end
|
||
end
|
||
def new
|
||
respond_to do |format|
|
||
format.html {render :layout=>'new_base_user'}
|
||
end
|
||
end
|
||
def show
|
||
@article = BlogComment.find(params[:id])
|
||
@replies = BlogComment.where("root_id = #{@article.id}").reorder("created_on desc")
|
||
@reply_count = @replies.count
|
||
@replies = get_no_children_comments_all @replies
|
||
@limit_count = @replies.count
|
||
@page = params[:page] ? params[:page].to_i + 1 : 0
|
||
@limit = 10
|
||
@replies = @replies[@page * @limit..@page * @limit + 9]
|
||
respond_to do |format|
|
||
format.js
|
||
format.html {render :layout=>'new_base_user'}
|
||
end
|
||
end
|
||
def update
|
||
@article = BlogComment.find(params[:id])
|
||
@article.safe_attributes = params[:blog_comment]
|
||
@article.save_attachments(params[:attachments])
|
||
if @article.save
|
||
render_attachment_warning_if_needed(@article)
|
||
else
|
||
end
|
||
if params[:in_act]
|
||
redirect_to user_path(params[:user_id])
|
||
else
|
||
if @article.id.eql?(User.find(params[:user_id]).blog.homepage_id)
|
||
redirect_to user_path(params[:user_id])
|
||
else
|
||
redirect_to user_blog_blog_comment_path(:user_id=>params[:user_id],:blog_id=>params[:blog_id],:id=>params[:id])
|
||
end
|
||
end
|
||
end
|
||
def destroy
|
||
@article = BlogComment.find(params[:id])
|
||
if @article.parent_id.nil? #如果是文章被删,那么跳转到用户博客界面,如果带了course_id过来,那么就要跳转到课程首页
|
||
if params[:course_id] #如果带了课程id过来,说明这是课程大纲,不要删除,只需取消课程大纲就ok了
|
||
@course = Course.find(params[:course_id])
|
||
@course.outline = 0
|
||
@course.save
|
||
redirect_to course_path(:id=>params[:course_id])
|
||
elsif params[:user_activity_id]
|
||
@article.children.destroy
|
||
@article.destroy
|
||
redirect_to user_path(User.current.id)
|
||
else
|
||
@article.children.destroy
|
||
@article.destroy
|
||
redirect_to user_blogs_path(:user_id=>User.current)
|
||
end
|
||
|
||
else#如果是回复被删,
|
||
if params[:course_id] #如果带了course_id过来了,那么这是要跳到课程大纲去的
|
||
@article.destroy
|
||
redirect_to syllabus_course_path(:id=>params[:course_id])
|
||
elsif params[:user_activity_id]
|
||
if params[:homepage] && params[:homepage] == "1"
|
||
@in_user_homepage = true
|
||
end
|
||
@user_activity_id = params[:user_activity_id]
|
||
@blog_comment = @article.root
|
||
@article.destroy
|
||
respond_to do |format|
|
||
format.js
|
||
return
|
||
end
|
||
else
|
||
root = @article.root
|
||
@article.destroy
|
||
redirect_to user_blog_blog_comment_path(:user_id=>root.author_id,:blog_id=>root.blog_id,:id=>root.id)
|
||
end
|
||
|
||
end
|
||
end
|
||
|
||
def edit
|
||
@article = BlogComment.find(params[:id])
|
||
if User.current.admin? || User.current.id == @article.author_id
|
||
respond_to do |format|
|
||
format.html { render :layout => 'new_base_user' }
|
||
end
|
||
else
|
||
render_403
|
||
end
|
||
end
|
||
|
||
def quote
|
||
@blogComment = BlogComment.find(params[:id])
|
||
|
||
@temp = BlogComment.new
|
||
@course_id = params[:course_id]
|
||
respond_to do | format|
|
||
format.js
|
||
end
|
||
end
|
||
|
||
#回复
|
||
def reply
|
||
if params[:homepage] && params[:homepage] == "1"
|
||
@in_user_homepage = true
|
||
end
|
||
if params[:in_user_center]
|
||
@in_user_center = true
|
||
end
|
||
@article = BlogComment.find(params[:id]).root
|
||
@blogComment = BlogComment.new
|
||
@blogComment.author = User.current
|
||
@blogComment.blog = Blog.find(params[:blog_id])
|
||
params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0
|
||
params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0
|
||
@blogComment.safe_attributes = params[:blog_comment]
|
||
@blogComment.title = "RE: #{@article.title}" unless params[:blog_comment][:title]
|
||
if params[:parent_id]
|
||
@blogComment.content = params[:blog_comment][:content]
|
||
parent = BlogComment.find params[:parent_id]
|
||
@blogComment.reply_id = params[:id]
|
||
@blogComment.root_id = parent.root_id.nil? ? parent.id : parent.root_id
|
||
parent.children << @blogComment
|
||
else
|
||
@quote = params[:quote][:quote] || ""
|
||
@blogComment.content = @quote + @blogComment.content
|
||
@blogComment.root_id = @article.id
|
||
@article.children << @blogComment
|
||
end
|
||
@article.save
|
||
# @article.update_attribute(:updated_on, @blogComment.updated_on)
|
||
@user_activity_id = params[:user_activity_id]
|
||
user_activity = UserActivity.where("act_type='BlogComment' and act_id =#{@article.id}").first
|
||
if user_activity
|
||
user_activity.updated_at = Time.now
|
||
user_activity.save
|
||
end
|
||
attachments = Attachment.attach_files(@blogComment, params[:attachments])
|
||
render_attachment_warning_if_needed(@blogComment)
|
||
#@article.save
|
||
# redirect_to user_blogs_path(:user_id=>params[:user_id])
|
||
# 给回复的人发消息
|
||
reply_user_id = params[:reply_id].nil? ? @blogComment.blog.author_id: params[:reply_id].to_i
|
||
# 回复的作业与评论的作者不是同一人则发送消息
|
||
if ( params[:reply_id].nil? && @blogComment.author.id != @blogComment.blog.author_id )|| (!params[:reply_id].nil? && @blogComment.author.id != params[:reply_id].to_i)
|
||
BlogMessage.create(:user_id => reply_user_id, :blog_id => params[:blog_id].to_i, :content => params[:blog_comment][:content],
|
||
:blog_commont_id => @blogComment.id, :blog_message_type => "BlogComment", :user_operator_id => @blogComment.author.id)
|
||
end
|
||
respond_to do |format|
|
||
format.html {
|
||
if params[:course_id] #如果呆了course_id过来了,那么这是要跳到课程大纲去的
|
||
redirect_to syllabus_course_path(:id=>params[:course_id])
|
||
else
|
||
redirect_to user_blog_blog_comment_path(:user_id => @article.author_id, :blog_id => @article.blog_id, :id => @article)
|
||
end
|
||
|
||
}
|
||
format.js
|
||
end
|
||
rescue Exception => e #如果上面的代码执行发生异常就捕获
|
||
flash[:notice] = e.message
|
||
end
|
||
|
||
private
|
||
def find_user
|
||
@user = User.find(params[:user_id])
|
||
end
|
||
end
|