Module: CamaleonCms::CamaleonHelper

Included in:
CamaleonController
Defined in:
app/helpers/camaleon_cms/camaleon_helper.rb

Overview

Camaleon CMS is a content management system

Copyright (C) 2015 by Owen Peredo Diaz
Email: [email protected]
This program is free software: you can redistribute it and/or modify   it under the terms of the GNU Affero General Public License as  published by the Free Software Foundation, either version 3 of the  License, or (at your option) any later version.
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 (GPLv3) for more details.

Instance Method Summary collapse

Instance Method Details

#cama_cache_fetch(var_name) ⇒ Object

save value as cache instance and return value sample: cama_cache_fetch(“my_key”){ 10+20*12 }



71
72
73
74
75
76
77
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 71

def cama_cache_fetch(var_name)
  var_name = "@cama_cache_#{var_name}"
  return instance_variable_get(var_name) if instance_variable_defined?(var_name)
  cache = yield
  instance_variable_set(var_name, cache)
  cache
end

#cama_draw_timerObject



79
80
81
82
83
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 79

def cama_draw_timer
  @_cama_timer ||= Time.current
  puts "***************************************** timer: #{((Time.current - @_cama_timer) * 24 * 60 * 60).to_i}  (#{caller.first})"
  @_cama_timer = Time.current
end

create the html link with the url passed verify if current user is logged in, if not, then return nil return html link



13
14
15
16
17
18
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 13

def cama_edit_link(url, title = nil, attrs = { })
  return '' unless cama_current_user.present?
  return '' unless cama_current_user.admin?
  attrs = {target: "_blank", style: "font-size:11px !important;cursor:pointer;"}.merge(attrs)
  ActionController::Base.helpers.link_to("→ #{title || ct("edit", default: 'Edit')}".html_safe, url, attrs)
end

#cama_is_admin_request?Boolean

check if current request was for admin panel

Returns:

  • (Boolean)


48
49
50
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 48

def cama_is_admin_request?
  @cama_i18n_frontend.present?
end

#cama_requestAction(controller, action, params = {}) ⇒ Object

execute controller action and return response NON USED



22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 22

def cama_requestAction(controller,action,params={})
  controller.class_eval{
    def params=(params); @params = params end
    def params; @params end
  }
  c = controller.new
  c.request = @_request
  c.response = @_response
  c.params = params
  c.send(action)
  c.response.body
end

#cama_sitemap_cats_generator(cats) ⇒ Object

generate loop categories html sitemap links this is a helper for sitemap generator to print categories, sub categories and post contents in html list format



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 54

def cama_sitemap_cats_generator(cats)
  res = []
  cats.decorate.each do |cat|
    next if @r[:skip_cat_ids].include?(cat.id)
    res_posts = []
    cat.the_posts.decorate.each do |post|
      next if @r[:skip_post_ids].include?(post.id)
      res_posts << "<li><a href='#{post.the_url}'>#{post.the_title}</a></li>"
    end
    res << "<li><h4><a href='#{cat.the_url}'>#{cat.the_title}</a></h4><ul>#{res_posts.join("")}</ul></li>"
    res << cama_sitemap_cats_generator(cat.the_categories)
  end
  res.join("")
end

#ct(key, args = {}) ⇒ Object

theme common translation text key: key for translation args: hash of arguments for i18n.t() database customized translations



39
40
41
42
43
44
45
# File 'app/helpers/camaleon_cms/camaleon_helper.rb', line 39

def ct(key, args = {})
  language = I18n.locale
  r = {flag: false, key: key, translation: "", locale: language.to_sym}
  hooks_run("on_translation", r)
  return r[:translation] if r[:flag]
  I18n.translate("camaleon_cms.common.#{key}", args)
end