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