app/controllers/blog/posts_controller.rb in comfy_blog-0.1.8 vs app/controllers/blog/posts_controller.rb in comfy_blog-1.0.0

- old
+ new

@@ -1,46 +1,53 @@ -class Blog::PostsController < ApplicationController +class Blog::PostsController < Blog::BaseController - layout ComfyBlog.config.public_layout + skip_before_action :load_blog, :only => [:serve] + # due to fancy routing it's hard to say if we need show or index + # action. let's figure it out here. + def serve + # if there are more than one blog, blog_path is expected + if @cms_site.blogs.count >= 2 + params[:blog_path] = params.delete(:slug) if params[:blog_path].blank? + end + + load_blog + + if params[:slug].present? + show && render(:show) + else + index && render(:index) + end + end + def index - scope = if params[:tag] - Blog::Post.published.tagged_with(params[:tag]) - elsif params[:category] - Blog::Post.published.categorized_as(params[:category]) - elsif params[:year] - scope = Blog::Post.published.for_year(params[:year]) + scope = if params[:year] + scope = @blog.posts.published.for_year(params[:year]) params[:month] ? scope.for_month(params[:month]) : scope else - Blog::Post.published + @blog.posts.published end - - respond_to do |f| - f.html do - @posts = if defined? WillPaginate - scope.paginate :per_page => ComfyBlog.config.posts_per_page, :page => params[:page] - elsif defined? Kaminari - scope.page(params[:page]).per(ComfyBlog.config.posts_per_page) - else - scope - end + + limit = ComfyBlog.config.posts_per_page + respond_to do |format| + format.html do + @posts = scope.page(params[:page]).per(limit) end - f.rss do - @posts = scope.limit(ComfyBlog.config.posts_per_page) + format.rss do + @posts = scope.limit(limit) end end end def show @post = if params[:slug] && params[:year] && params[:month] - Blog::Post.published.find_by_year_and_month_and_slug!(params[:year], params[:month], params[:slug]) + @blog.posts.published.where(:year => params[:year], :month => params[:month], :slug => params[:slug]).first! else - Blog::Post.published.find(params[:id]) + @blog.posts.published.where(:slug => params[:slug]).first! end + @comment = @post.comments.new + rescue ActiveRecord::RecordNotFound - if defined? ComfortableMexicanSofa - render :cms_page => '/404', :status => 404 - else - render :text => 'Post not found', :status => 404 - end + render :cms_page => '/404', :status => 404 end -end + +end \ No newline at end of file