Class: DcPageRenderer
- Inherits:
-
Object
- Object
- DcPageRenderer
- Includes:
- DcApplicationHelper
- Defined in:
- app/helpers/dc_page_renderer.rb
Overview
Page renderer renders data from dc_page collection documents. This renderer will almost certainly be replaced by your own renderer so example here shows just basic code which just checks if user is allowed to view data and if so returns document body content otherwise returns error message defined in site policy.
Example:
<div id="page">
<%= dc_render(:dc_page) %>
</div>
Instance Attribute Summary
Attributes included from DcApplicationHelper
#design, #form, #ids, #menu, #menu_item, #options, #page, #page_title, #part, #parts, #record_footer, #site, #tables
Instance Method Summary collapse
-
#default ⇒ Object
Default DcPage render method.
-
#iframe ⇒ Object
Render IFrame part if defined on page.
-
#initialize(parent, opts = {}) ⇒ DcPageRenderer
constructor
Object initialization.
-
#render_css ⇒ Object
Return CSS part of code.
-
#render_html ⇒ Object
Renderer dispatcher.
Methods included from DcApplicationHelper
#_origin, #dc_add2_record_cookie, #dc_big_table, #dc_choices4, #dc_choices4_all_collections, #dc_choices4_cmsmenu, #dc_choices4_field, #dc_choices4_folders_list, #dc_choices4_menu, #dc_choices4_site_policies, #dc_date_time, #dc_deprecate, #dc_dont?, #dc_edit_mode?, #dc_edit_title, #dc_error_messages_for, #dc_flash_messages, #dc_format_date_time, #dc_get_site, #dc_icon4_boolean, #dc_iframe_edit, #dc_internal_var, #dc_label_for, #dc_limit_string, #dc_link_for_create, #dc_link_for_edit, #dc_link_for_edit1, #dc_link_menu_tag, #dc_link_to, #dc_menu_class, #dc_name4_id, #dc_name4_value, #dc_new_title, #dc_page_bottom, #dc_page_class, #dc_page_edit_menu, #dc_page_top, #dc_render, #dc_render_design, #dc_render_design_part, #dc_render_from_site, #dc_render_partial, #dc_replace_in_design, #dc_submit_tag, #dc_table_title, #dc_user_can_view, #dc_user_has_role, #decamelize_type, #forms_merge, #t, #t_name, #t_tablename
Constructor Details
#initialize(parent, opts = {}) ⇒ DcPageRenderer
Object initialization.
43 44 45 46 47 48 |
# File 'app/helpers/dc_page_renderer.rb', line 43 def initialize( parent, opts={} ) #:nodoc: @parent = parent @opts = opts @page = @parent.page @css = '' end |
Instance Method Details
#default ⇒ Object
Default DcPage render method
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'app/helpers/dc_page_renderer.rb', line 78 def default can_view, msg = dc_user_can_view(@parent, @page) return msg unless can_view # html = '' html << () if @opts[:edit_mode] > 1 @parent.page_title = @page.title.blank? ? @page.subject : @page.title html << @page.body # render poll if defined if @page.dc_poll_id @opts.merge!(:poll_id => @page.dc_poll_id, :return_to => @parent.request.url, method: nil) comment = DcPollRenderer.new(@parent, @opts) html << "<div class='wrap row'>#{comment.render_html}</div>" @css << "\n#{comment.render_css}" end # also add iframe html << iframe() html end |
#iframe ⇒ Object
Render IFrame part if defined on page
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/helpers/dc_page_renderer.rb', line 53 def iframe return '' if @page.if_url.blank? html = "\n<iframe" html << " id=\"#{@page.if_id}\"" unless @page.if_id.blank? html << " class=\"#{@page.if_class}\"" unless @page.if_class.blank? html << " border=\"#{@page.if_border}\"" html << " height=\"#{@page.if_height}\"" unless @page.if_height.blank? html << " width=\"#{@page.if_width}\"" unless @page.if_width.blank? html << " scrolling=\"#{@page.if_scroll}\"" # Parameters parameters = @page.if_url.match(/\?/) ? '' : '?' params = YAML.load(@page.if_params) rescue {} params = {} unless params.class == Hash params.each do |key, value| val = @parent.dc_internal_var(value['object'], value['variable']) parameters << "&#{key}=#{val}" if val # only when not nil end url = @page.if_url + (parameters.size > 1 ? parameters : '') html << "src=\"#{url}\" ></iframe>\n" html end |
#render_css ⇒ Object
Return CSS part of code.
110 111 112 |
# File 'app/helpers/dc_page_renderer.rb', line 110 def render_css @css end |
#render_html ⇒ Object
Renderer dispatcher. Method returns HTML part of code.
102 103 104 105 |
# File 'app/helpers/dc_page_renderer.rb', line 102 def render_html method = @opts[:method] || 'default' respond_to?(method) ? send(method) : "Error DcPage: Method #{method} doesn't exist!" end |