Class: CamaleonCms::CategoryDecorator
- Inherits:
-
TermTaxonomyDecorator
- Object
- Draper::Decorator
- ApplicationDecorator
- TermTaxonomyDecorator
- CamaleonCms::CategoryDecorator
- Defined in:
- app/decorators/camaleon_cms/category_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
-
#generate_breadcrumb(add_post_type = true, is_parent = false) ⇒ Object
——————— add_post_type: true/false to include post type link is_parent: true/false (internal control).
-
#the_categories ⇒ Object
return all children categories for the current category (active_record) filtered by permissions + hidden posts + roles + etc…
-
#the_category(slug_or_id) ⇒ Object
return a child category from this category with id (integer) or by slug (string).
-
#the_edit_url ⇒ Object
return edit url for this category.
-
#the_post_type ⇒ Object
return the post type of this post tag.
-
#the_thumb_url(default = nil) ⇒ Object
return thumbnail for this post type default: if thumbnail is not present, will render default.
-
#the_url(*args) ⇒ Object
return the public url for this category.
Methods inherited from TermTaxonomyDecorator
#the_content, #the_edit_link, #the_excerpt, #the_owner, #the_parent, #the_post, #the_posts, #the_slug, #the_status, #the_title
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_slug, #the_updated_at
Methods included from MetasDecoratorMethods
Instance Method Details
#generate_breadcrumb(add_post_type = true, is_parent = false) ⇒ Object
add_post_type: true/false to include post type link is_parent: true/false (internal control)
45 46 47 48 49 50 51 52 53 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 45 def (add_post_type = true, is_parent = false) _parent = object.parent if _parent.present? _parent.decorate.(add_post_type, true) else object.post_type_parent.decorate.(add_post_type, true) end h.(self.the_title, is_parent ? self.the_url : nil) end |
#the_categories ⇒ Object
return all children categories for the current category (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
32 33 34 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 32 def the_categories object.children end |
#the_category(slug_or_id) ⇒ Object
return a child category from this category with id (integer) or by slug (string)
37 38 39 40 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 37 def the_category(slug_or_id) return object.categories.where(id: slug_or_id).first if slug_or_id.is_a?(Integer) return object.categories.find_by_slug(slug_or_id) if slug_or_id.is_a?(String) end |
#the_edit_url ⇒ Object
return edit url for this category
25 26 27 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 25 def the_edit_url h.edit_cama_admin_post_type_category_url(object.post_type.id, object) end |
#the_post_type ⇒ Object
return the post type of this post tag
63 64 65 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 63 def the_post_type object.post_type.decorate end |
#the_thumb_url(default = nil) ⇒ Object
return thumbnail for this post type default: if thumbnail is not present, will render default
57 58 59 60 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 57 def the_thumb_url(default = nil) th = object.get_option("thumb") th.present? ? th : (default || h.asset_path("camaleon_cms/category-icon.png")) end |
#the_url(*args) ⇒ Object
return the public url for this category
13 14 15 16 17 18 19 20 21 22 |
# File 'app/decorators/camaleon_cms/category_decorator.rb', line 13 def the_url(*args) args = args. args[:category_id] = the_id args[:title] = the_title.parameterize || the_slug args[:title] = the_slug unless args[:title].present? args[:locale] = @_deco_locale unless args.include?(:locale) args[:format] = "html" as_path = args.delete(:as_path) h.cama_url_to_fixed("cama_category#{_calc_locale(args[:locale])}_#{as_path.present? ? "path" : "url"}", args) end |