Class: CamaleonCms::TermTaxonomyDecorator

Inherits:
ApplicationDecorator show all
Includes:
CustomFieldsConcern
Defined in:
app/decorators/camaleon_cms/term_taxonomy_decorator.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

Methods included from CustomFieldsConcern

#render_fields, #the_attribute_field, #the_attribute_fields, #the_field, #the_field!, #the_fields, #the_fields_grouped

Methods inherited from ApplicationDecorator

#_calc_locale, #get_locale, #set_decoration_locale, #the_breadcrumb, #the_created_at, #the_id, #the_keywords, #the_updated_at

Methods included from MetasDecoratorMethods

#the_meta, #the_option

Instance Method Details

#the_contentObject

return the content for current locale + shortcodes executed



26
27
28
29
30
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 26

def the_content
  r = {content: object.description.to_s.translate(get_locale), object: object}
  h.hooks_run("taxonomy_the_content", r)
  h.do_shortcode(r[:content], self)
end

create the html link with edit link return html link attrs: Hash of link tag attributes, sample: {id: “myid”, class: “sss” }



82
83
84
85
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 82

def the_edit_link(title = nil, attrs = { })
  attrs = {target: "_blank", style: "font-size:11px !important;cursor:pointer;"}.merge(attrs)
  h.link_to("→ #{title || h.ct("edit", default: 'Edit')}".html_safe, the_edit_url, attrs)
end

#the_edit_urlObject

return edit url for current taxonomy: PostType, PostTag, Category



64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 64

def the_edit_url
  link = ""
  case object.class.name
    when "CamaleonCms::PostType"
      link = h.edit_cama_admin_settings_post_type_url(object)
    when "CamaleonCms::Category"
      link = h.edit_cama_admin_post_type_category_url(object.post_type.id, object)
    when "CamaleonCms::PostTag"
      link = h.(object.post_type.id, object)
    when "CamaleonCms::Site"
      link = h.cama_admin_settings_site_url
  end
  link
end

#the_excerpt(qty_chars = 200) ⇒ Object

return excerpt for this post type qty_chars: total or characters maximum



42
43
44
45
46
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 42

def the_excerpt(qty_chars = 200)
  r = {content: object.description.to_s.translate(get_locale).strip_tags.gsub(/
|\n/, " ").truncate(qty_chars), object: object}
  h.hooks_run("taxonomy_the_excerpt", r)
  r[:content]
end

#the_ownerObject

return the user owner of this item sample: my_item.the_owner.the_url



89
90
91
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 89

def the_owner
  owner.decorate rescue nil
end

#the_parentObject

return the parent item of this item sample: my_item.the_parent.the_url



95
96
97
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 95

def the_parent
  parent.decorate rescue nil
end

#the_post(slug_or_id) ⇒ Object

search a post with id (integer) or slug (string)



57
58
59
60
61
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 57

def the_post(slug_or_id)
  return nil unless slug_or_id.present?
  return object.posts.where(id: slug_or_id).first.decorate rescue nil if slug_or_id.is_a?(Integer)
  return object.posts.find_by_slug(slug_or_id).decorate rescue nil if slug_or_id.is_a?(String)
end

#the_postsObject

———————- filters return all posts for this model (active_record) filtered by permissions + hidden posts + roles + etc… in return object, you can add custom where’s or pagination like here: edgeguides.rubyonrails.org/active_record_querying.html



52
53
54
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 52

def the_posts
  h.verify_front_visibility(object.posts)
end

#the_slugObject

return the slug for current locale



21
22
23
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 21

def the_slug
  object.slug.translate(get_locale)
end

#the_statusObject



32
33
34
35
36
37
38
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 32

def the_status
  if status.to_s.to_bool
    "<span class='label label-success'> #{I18n.t('camaleon_cms.admin.button.actived')} </span>"
  else
    "<span class='label label-default'> #{I18n.t('camaleon_cms.admin.button.not_actived')} </span>"
  end
end

#the_title(locale = nil) ⇒ Object

return the title for current locale



14
15
16
17
18
# File 'app/decorators/camaleon_cms/term_taxonomy_decorator.rb', line 14

def the_title(locale = nil)
  r = {title: object.name.translate(get_locale(locale)), object: object}
  h.hooks_run("taxonomy_the_title", r) rescue nil # avoid error for command the_url for categories
  r[:title]
end