Class: CamaleonCms::PostTypeDecorator
- Inherits:
-
TermTaxonomyDecorator
- Object
- Draper::Decorator
- ApplicationDecorator
- TermTaxonomyDecorator
- CamaleonCms::PostTypeDecorator
- Defined in:
- app/decorators/camaleon_cms/post_type_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_admin_url(list_type = "post") ⇒ Object
return the admin list url for this post type.
-
#the_categories ⇒ Object
return main categories (first level) for the post_type (active_record) filtered by permissions in return object, you can add custom where’s or pagination like here: edgeguides.rubyonrails.org/active_record_querying.html.
-
#the_category(slug_or_id) ⇒ Object
return a category from this post_type with id (integer) or by slug (string).
-
#the_edit_url ⇒ Object
return edit url for this post type.
-
#the_full_categories ⇒ Object
return full categories (all levels) for the post_type (active_record) filtered by permissions in return object, you can add custom where’s or pagination like here: edgeguides.rubyonrails.org/active_record_querying.html.
-
#the_group_url(*args) ⇒ Object
return the public url with group structure Sample: localhost/group/10-my-group.html.
-
#the_post_tags ⇒ Object
return all post_tags for the post_type (active_record) filtered by permissions + hidden posts + roles + etc…
-
#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 post type Sample: localhost/my-group.html.
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_field, #the_field!, #the_fields
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)
58 59 60 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 58 def (add_post_type = true, is_parent = false) h.(self.the_title, is_parent ? self.the_url : nil) if add_post_type end |
#the_admin_url(list_type = "post") ⇒ Object
return the admin list url for this post type
46 47 48 49 50 51 52 53 54 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 46 def the_admin_url(list_type = "post") if list_type == "post" h.cama_admin_post_type_posts_path(object.id) elsif list_type == "tag" h.(object.id) else # categories h.cama_admin_post_type_categories_path(object.id) end end |
#the_categories ⇒ Object
return main categories (first level) for the post_type (active_record) filtered by permissions in return object, you can add custom where’s or pagination like here: edgeguides.rubyonrails.org/active_record_querying.html
65 66 67 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 65 def the_categories object.categories end |
#the_category(slug_or_id) ⇒ Object
return a category from this post_type with id (integer) or by slug (string)
77 78 79 80 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 77 def the_category(slug_or_id) return the_categories.where(id: slug_or_id).first if slug_or_id.is_a?(Integer) return the_categories.find_by_slug(slug_or_id) if slug_or_id.is_a?(String) end |
#the_edit_url ⇒ Object
return edit url for this post type
41 42 43 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 41 def the_edit_url h.edit_cama_admin_settings_post_type_url(object.id) end |
#the_full_categories ⇒ Object
return full categories (all levels) for the post_type (active_record) filtered by permissions in return object, you can add custom where’s or pagination like here: edgeguides.rubyonrails.org/active_record_querying.html
72 73 74 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 72 def the_full_categories object.full_categories end |
#the_group_url(*args) ⇒ Object
return the public url with group structure Sample: localhost/group/10-my-group.html
29 30 31 32 33 34 35 36 37 38 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 29 def the_group_url(*args) args = args. args[:post_type_id] = the_id args[:title] = the_title.parameterize args[:title] = the_slug unless args[:title].present? args[:locale] = get_locale unless args.include?(:locale) args[:format] = "html" as_path = args.delete(:as_path) h.cama_url_to_fixed("cama_post_type#{_calc_locale(args[:locale])}_#{as_path.present? ? "path" : "url"}", args) end |
#the_post_tags ⇒ Object
return all post_tags for the post_type (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
85 86 87 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 85 def object. end |
#the_thumb_url(default = nil) ⇒ Object
return thumbnail for this post type default: if thumbnail is not present, will render default
91 92 93 94 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 91 def the_thumb_url(default = nil) th = object.get_option("thumb", object.get_option("default_thumb")) th.present? ? th : (default || h.asset_url("camaleon_cms/image-not-found.png")) end |
#the_url(*args) ⇒ Object
return the public url for this post type Sample: localhost/my-group.html
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/decorators/camaleon_cms/post_type_decorator.rb', line 14 def the_url(*args) args = args. args[:post_type_id] = the_id args[:locale] = get_locale unless args.include?(:locale) args[:format] = "html" as_path = args.delete(:as_path) begin h.cama_url_to_fixed("cama_post_type_#{self.id}#{_calc_locale(args[:locale])}_#{as_path.present? ? "path" : "url"}", args) rescue the_group_url(args) end end |