105 lines
2.5 KiB
Ruby
105 lines
2.5 KiB
Ruby
class BlogsController < ApplicationController
|
||
before_filter :find_blog,:except => [:index,:create,:new,:set_homepage, :cancel_homepage]
|
||
before_filter :find_user
|
||
include PraiseTreadHelper
|
||
|
||
def index
|
||
@article = BlogComment.new
|
||
|
||
@order, @b_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1
|
||
|
||
#确定 sort_type 1升序 2 降序
|
||
if @order.to_i == @type.to_i
|
||
@b_sort = @b_sort.to_i == 1 ? 2 : 1
|
||
else
|
||
@b_sort = 2
|
||
end
|
||
|
||
sort_name = "updated_at"
|
||
|
||
sort_type = @b_sort == 1 ? "asc" : "desc"
|
||
|
||
@topics = @user.blog.articles.reorder("#{BlogComment.table_name}.sticky desc,#{BlogComment.table_name}.#{sort_name} #{sort_type}")
|
||
|
||
#根据 赞+回复数排序
|
||
if @order.to_i == 2
|
||
@type = 2
|
||
|
||
@topics.each do |topic|
|
||
topic[:infocount] = get_praise_num(topic) + BlogComment.where("root_id = #{topic.id}").count
|
||
if topic[:infocount] < 0
|
||
topic[:infocount] = 0
|
||
end
|
||
end
|
||
|
||
@b_sort == 1 ? @topics = @topics.sort{|x,y| x[:infocount] <=> y[:infocount] } : @topics = @topics.sort{|x,y| y[:infocount] <=> x[:infocount] }
|
||
|
||
@topics = sort_by_sticky @topics
|
||
@topics = sortby_time_countcommon_hassticky @topics,sort_name
|
||
else
|
||
@type = 1
|
||
end
|
||
|
||
#分页
|
||
@limit = 10
|
||
@is_remote = true
|
||
@atta_count = @topics.count
|
||
@atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1
|
||
@offset ||= @atta_pages.offset
|
||
@topics = paginateHelper @topics,@limit
|
||
|
||
respond_to do |format|
|
||
format.js
|
||
format.html {render :layout=>'new_base_user'}
|
||
end
|
||
end
|
||
def create
|
||
|
||
end
|
||
def new
|
||
|
||
end
|
||
def show
|
||
|
||
end
|
||
def update
|
||
|
||
end
|
||
def destory
|
||
|
||
end
|
||
def edit
|
||
|
||
end
|
||
|
||
def set_homepage
|
||
@blog = Blog.find(params[:id])
|
||
@blog.update_attribute(:homepage_id, params[:article_id])
|
||
redirect_to user_path(params[:user_id])
|
||
end
|
||
|
||
def cancel_homepage
|
||
@blog = Blog.find(params[:id])
|
||
@blog.update_attribute(:homepage_id, nil)
|
||
redirect_to user_blogs_path(params[:user_id])
|
||
end
|
||
private
|
||
def find_blog
|
||
if params[:blog_id]
|
||
@blog = Blog.find(params[:blog_id])
|
||
else
|
||
render_404
|
||
end
|
||
if @blog.nil?
|
||
#如果某个user的blog不存在,那么就创建一条
|
||
@blog = Blog.create(:name=>User.find(params[:id]).realname ,
|
||
:description=>'',
|
||
:author_id=>params[:id])
|
||
end
|
||
end
|
||
|
||
def find_user
|
||
@user = User.find(params[:user_id])
|
||
end
|
||
end
|