Class: ArCommonRenderer

Inherits:
AgileRenderer show all
Includes:
AgileApplicationHelper
Defined in:
app/renderers/ar_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, #render_html

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. You may also disable sending

If eu_cookies_allowed function is defined in javascript libraries it will be called and if false is returned GA code will not be executed. This is in order with European cookie law.

Example:

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


71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'app/renderers/ar_common_renderer.rb', line 71

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/ar_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