payrepmc_app/app/controllers/public/articles_controller.rb
2018-08-03 01:08:08 +02:00

170 lines
5.2 KiB
Ruby

# -*- encoding : utf-8 -*-
class Public::ArticlesController < ApplicationController
layout :get_public_layout
def archive
end
def index
if params[:lang]
@lang = LangSite.find_by_slug(params[:lang])
end
ids_exclude = [0]
@article_1_id = SpecificPreference.find_by_key("blog_article_1_id").value if SpecificPreference.find_by_key("blog_article_1_id") and Article.where(:id => SpecificPreference.find_by_key("blog_article_1_id").value).first
if @article_1_id and @article_1_id.to_i > 0
@article_1 = Article.where(:id => SpecificPreference.find_by_key("blog_article_1_id").value).first
ids_exclude << @article_1.id
end
@article_2_id = SpecificPreference.find_by_key("blog_article_2_id").value if SpecificPreference.find_by_key("blog_article_2_id") and Article.where(:id => SpecificPreference.find_by_key("blog_article_2_id").value).first
if @article_2_id and @article_2_id.to_i > 0
@article_2 = Article.where(:id => SpecificPreference.find_by_key("blog_article_2_id").value).first
ids_exclude << @article_2.id
end
if @new_site
params[:category_id] = nil if params[:category_id].to_i == 0
@category = Category.find(params[:category_id]) if params[:category_id]
if @category
@articles_ok = Article.joins(:category_categoryables).where(:category_categoryables => {:category_id => @category.id})
else
@articles_ok = Article
end
@articles_ok = @articles_ok.before(Time.now).recents.joins(:lang_articles).where("lang_articles.enabled = 1 and lang_articles.lang_site_id = ?", @lang.id)
@articles_ok = @articles_ok.uniq
@articles_slider = @articles_ok.where("articles.id not in(?)", ids_exclude).limit(3)
@articles_une = @articles_ok.where("articles.id not in(?)", ids_exclude)
@articles_une = @articles_une.offset(3).limit(2)
@articles_une[0] = @article_1 if @article_1
@articles_une[1] = @article_2 if @article_2
@articles = @articles_ok
@articles = @articles.page(params[:page]).per(4)
else
@articles = Article.before(Time.now).recents.joins(:lang_articles).where("lang_articles.enabled = 1 and lang_articles.lang_site_id = ?", @lang.id)
@articles = @articles.page(params[:page]).per(7)
end
@blog_index = true
@title = "Articles du blog"
end
def feed
# this will be the name of the feed displayed on the feed reader
@title = ""
# the news items
@articles = Article.before(Time.now).recents
# this will be our Feed's update timestamp
@updated = @articles.first.updated_at unless @articles.empty?
end
def tags
@tag = Tag.find_by_slug(params[:tag_id])
if @tag
@title = "tag : "+@tag.name.to_s
@articles = @tag.recents_articles
else
redirect_to "/", :notice => "La page que vous demandez n'a pas pu être trouvée.<br /><br />Vous avez donc été redirigé sur notre page d'accueil"
end
end
def category
@category_lang = CategoryLang.where(:lang_site_id => @lang.id).find_by_slug(params[:slug])
@category = @category_lang.category
@articles = @category.articles.before(Time.now).recents.joins(:lang_articles).where("lang_articles.enabled = 1 and lang_articles.lang_site_id = ?", @lang.id)
@articles = @articles.page(params[:page]).per(7)
@title = "Articles du blog"
@index_title = 'Articles de la catégorie "'+@category.name+'"'
redirect_to articles_path(:category_id => @category.id, :anchor => "categories") if @new_site
end
def archives
if params[:lang]
@lang = LangSite.find_by_slug(params[:lang])
end
@month = Time.parse("#{params[:year]}/#{params[:month]}/01 00:00").beginning_of_month
@articles = Article.recents.where("articles.published_at >= ? and articles.published_at < ?", @month, (@month + 1.month) ).before(Time.now).joins(:lang_articles).where("lang_articles.enabled = 1 and lang_articles.lang_site_id = ?", @lang.id)
@articles = @articles.page(params[:page]).per(7)
@title = "Articles du blog"
if [4,8].include?(@month.month)
@index_title = 'Articles du mois d\''+l(@month, :format => "%B %Y")+''
else
@index_title = 'Articles du mois de '+l(@month, :format => "%B %Y")+''
end
end
def show
if params[:lang]
@lang = LangSite.find_by_slug(params[:lang])
end
@lang_article = LangArticle.where(:lang_site_id => @lang.id).find_by_slug(params[:slug])
@article = @lang_article.article
@facebook_title = @lang_article.fb_title if @lang_article.fb_title?
if @article and ((@lang_article.enabled and ( !@article.published_at? or @article.published_at <= Time.now )) or current_admin)
@title = @lang_article.title
@description = @lang_article.description
@thumbnail_image = @article.image_file.file.large.medium.small.thumb.url if @article.image_file
@comments = @article.comments.where(:enabled => true, :parent_id => nil).order("created_at DESC").page(params[:page]).per(4)
else
redirect_to "/", :notice => "La page que vous demandez n'a pas pu être trouvée.<br /><br />Vous avez donc été redirigé sur notre page d'accueil"
end
end
end