Module: Alchemy::Page::Definitions::ClassMethods
- Defined in:
- app/models/alchemy/page/definitions.rb
Instance Method Summary collapse
-
#human_layout_name(layout) ⇒ Object
Translates name for given layout.
-
#layouts_for_select(language_id, layoutpages: false) ⇒ Object
Returns page layouts ready for Rails’ select form helper.
-
#layouts_repository=(klass) ⇒ Object
Register a custom page layouts repository.
-
#selectable_layouts(language_id, layoutpages: false) ⇒ Object
Returns all layouts that can be used for creating a new page.
Instance Method Details
#human_layout_name(layout) ⇒ Object
Translates name for given layout
Translation example
en:
alchemy:
page_layout_names:
products_overview: Products Overview
60 61 62 |
# File 'app/models/alchemy/page/definitions.rb', line 60 def human_layout_name(layout) Alchemy.t(layout, scope: "page_layout_names", default: layout.to_s.humanize) end |
#layouts_for_select(language_id, layoutpages: false) ⇒ Object
Returns page layouts ready for Rails’ select form helper.
21 22 23 24 25 26 |
# File 'app/models/alchemy/page/definitions.rb', line 21 def layouts_for_select(language_id, layoutpages: false) layouts = selectable_layouts(language_id, layoutpages: layoutpages) layouts.map do |layout| [layout.human_name, layout.name] end end |
#layouts_repository=(klass) ⇒ Object
Register a custom page layouts repository
The default repository is Alchemy::PageDefinition
15 16 17 |
# File 'app/models/alchemy/page/definitions.rb', line 15 def layouts_repository=(klass) @_layouts_repository = klass end |
#selectable_layouts(language_id, layoutpages: false) ⇒ Object
Returns all layouts that can be used for creating a new page.
It removes all layouts from available layouts that are unique and already taken and that are marked as hide.
37 38 39 40 41 42 43 44 45 46 |
# File 'app/models/alchemy/page/definitions.rb', line 37 def selectable_layouts(language_id, layoutpages: false) @language_id = language_id layouts_repository.all.select do |layout| if layoutpages layout.layoutpage && layout_available?(layout) else !layout.layoutpage && layout_available?(layout) end end end |