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
-
#cama_cache_fetch(var_name) ⇒ Object
save value as cache instance and return value sample: cama_cache_fetch(“my_key”){ 10+20*12 }.
- #cama_draw_timer ⇒ Object
-
#cama_edit_link(url, title = nil, attrs = { }) ⇒ Object
create the html link with the url passed verify if current user is logged in, if not, then return nil return html link.
-
#cama_is_admin_request? ⇒ Boolean
check if current request was for admin panel.
-
#cama_requestAction(controller, action, params = {}) ⇒ Object
execute controller action and return response NON USED.
-
#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.
-
#ct(key, args = {}) ⇒ Object
theme common translation text key: key for translation args: hash of arguments for i18n.t() database customized translations.
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_timer ⇒ Object
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 |
#cama_edit_link(url, title = nil, attrs = { }) ⇒ Object
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
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 |