|
- 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
- # 更新博客消息为已读
- update_messsages_to_viewed("BlogMessage", params[:blog_id])
-
- @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_message_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( @article.author, :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
|