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