# This file is part of hmnoweb, a RefineryCMS based Webapp for heavymetal.no # Copyright (C) 2018 Harald Eilertsen # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License version 3 # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . ApplicationController.class_eval do include Refinery::Blog::ControllerHelper before_filter :populate_sidebars before_filter :populate_home_page, :only => [:home] protected def populate_sidebars @sidebar_modules = [] Refinery::Blog::Category.all.each do |c| @sidebar_modules << SidebarBlogCategory.new(c) end # # The blog categories and tags are listed in the right sidebar # on every page. # find_all_blog_categories find_tags end def populate_home_page @posts = Refinery::Blog::Post .live .includes(:comments, :categories) .where(:refinery_blog_categories => { :sidebar_position => 0 }) .page(params[:page]) end # Override Refinery::Blog::ControllerHelper.find_tags # # Limit the number of tags to show: # This should show the 50 most popular tags from the past 30 days. # I think this is a fair compromise between most popular and recent. def find_tags opts = { :order => 'count DESC', :start_at => 30.days.ago, :limit => 50 } @tags = Refinery::Blog::Post.tag_counts_on(:tags, opts) if @tags.empty? opts.delete(:start_at) @tags = Refinery::Blog::Post.tag_counts_on(:tags, opts) end end end