Class: AgileCommonRenderer

Inherits:
AgileRenderer show all
Includes:
AgileApplicationHelper
Defined in:
app/renderers/agile_common_renderer.rb

Overview

Renderer methods which may be useful on any site.

Instance Attribute Summary

Attributes included from AgileApplicationHelper

#design, #footer_record, #form, #ids, #json_ld, #menu, #menu_item, #options, #page, #page_title, #part, #parts, #record, #site, #tables

Instance Method Summary collapse

Methods included from AgileApplicationHelper

#_agile_link_to, #_origin, #agile_add2_record_cookie, #agile_add_json_ld, #agile_add_meta_tag, #agile_ajax_link_to, #agile_application_menu, #agile_big_table_choices, #agile_big_table_name_for_value, #agile_choices_for, #agile_choices_for_all_tables, #agile_choices_for_folders, #agile_choices_for_menu, #agile_choices_for_site_policies, #agile_deprecate, #agile_dialog_title, #agile_dont?, #agile_edit_frame, #agile_edit_mode?, #agile_edit_title, #agile_error_messages_for, #agile_flash_messages, #agile_get_json_ld, #agile_get_seo_meta_tags, #agile_get_site, #agile_icon_for_link, #agile_img_alt, #agile_img_alt_tag, #agile_internal_var, #agile_limit_string, #agile_link_for_create, #agile_link_for_edit, #agile_link_for_edit1, #agile_link_menu_tag, #agile_link_to, #agile_menu_class, #agile_new_title, #agile_page_bottom, #agile_page_class, #agile_page_edit_menu, #agile_page_top, #agile_render, #agile_render_part, #agile_submit_tag, #agile_user_can_view, #agile_user_has_role?, #agile_warning_messages_for, #decamelize_type

Methods inherited from AgileRenderer

#initialize, #render_css

Constructor Details

This class inherits a constructor from AgileRenderer

Instance Method Details

#google_analyticsObject

Renderer for Google analytics code.

Parameters: Are passed through @opts hash and can therefore be set on site

or page document parameters field as ga_acc key.

Example:

agile_render(:agile_common, method: 'google_analytics', code4: 'UA-12345678-9')


66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'app/renderers/agile_common_renderer.rb', line 66

def google_analytics
  html = ''
  ga4_acc = @opts[:code4] || @opts[:ga4_acc]
  if ga4_acc && ga4_acc != '/'
    html << %(
  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=#{ga4_acc}"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', '#{ga4_acc}');
</script>)
  end

  html.html_safe
end

#layout_4printObject

Renderer for printer friendly layout. Will call another renderer which should provide html code for printer friendly output.

Parameters are passed through link. There are currently two parameters, which define renderer and method to be used for creating output.

renderer

Defines renderer’s class

method

Defines renderer’s class method



43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/renderers/agile_common_renderer.rb', line 43

def layout_4print
  return '' if @env.params[:renderer].blank?

  opts = @opts.dup
  opts[:method] = @env.params[:method]
  klass = (@env.params[:renderer] + '_renderer').classify
  obj   = Kernel.const_get(klass, Class.new).new(@env, opts)

  html = obj.render_html
  @css += obj.render_css.to_s
  html
end

#render_htmlObject

Return HTML part of code.



88
89
90
91
# File 'app/renderers/agile_common_renderer.rb', line 88

def render_html
  method = @opts[:method] || 'default'
  respond_to?(method) ? send(method) : "Error ArCommonRenderer: Method #{method} doesn't exist!"
end