Module: Skyline::PagesHelper
- Defined in:
- app/helpers/skyline/pages_helper.rb
Instance Method Summary collapse
-
#renderable_templates_select(object, form, options = {}) ⇒ Object
Renders a label and selectbox for the sectionable_type passed in, it doesn’t render anything if there is only one template.
- #templates_for_select(object) ⇒ Object
Instance Method Details
#renderable_templates_select(object, form, options = {}) ⇒ Object
Renders a label and selectbox for the sectionable_type passed in, it doesn’t render anything if there is only one template.
Parameters
- st<String,Symbol>
-
The sectionable type
- form<FormBuidler>
-
The formbuilder to place this select in.
- options<Hash>
-
See options
Options
- :label<String,false>
-
Use another label or false for no label
Returns
- String
-
The label and the selectbox
- nil
-
Nil if there is nothing to render
–
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/helpers/skyline/pages_helper.rb', line 18 def renderable_templates_select(object, form, = {}) raise "@renderable_scope not available" unless @renderable_scope return nil if @renderable_scope.templates_for(object).size <= 1 .reverse_merge! :label => Skyline::Section.human_attribute_name("template") out = [] if [:label] out << form.label(:template, [:label]) out << ": " end out << form.select(:template, templates_for_select(object) ) out.join.html_safe end |
#templates_for_select(object) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'app/helpers/skyline/pages_helper.rb', line 34 def templates_for_select(object) raise "@renderable_scope not available" unless @renderable_scope scope = [:templates] scope += object.class.name.sub(/^Skyline::/,"").underscore.split("/").map(&:to_sym) templates = @renderable_scope.templates_for(object).dup templates = (["default"] + templates) if templates.delete("default") templates.map {|tmpl| [t(tmpl,:scope => scope, :default => tmpl),tmpl] } end |