Module: Alchemy::EssencesHelper

Included in:
Admin::EssencesHelper, ElementsHelper
Defined in:
app/helpers/alchemy/essences_helper.rb

Overview

This helper contains methods to render the essence from an Element Content.

Essences have two kinds of partials. An editor and a view partial.

They both resist in 'app/views/alchemy/essences'

The partials are suffixed with the type of part.

Example:

For an EssenceText

The view partial is:

_essence_text_view.html.erb

The editor partial is:

_essence_text_editor.html.erb

Usage:

For front end web development you should mostly use the render_essence_view_by_name helper.

And the render_essence_editor_by_name helper for Alchemy backend views.

Instance Method Summary collapse

Instance Method Details

#render_essence(content, part = :view, options = {}, html_options = {}) ⇒ Object

Renders the Esssence partial for given Content.

The helper renders the view partial as default.

Pass :editor as second argument to render the editor partial

Options:

You can pass a options Hash to each type of essence partial as third argument.

This Hash is available as options local variable.

for_view: {}
for_editor: {}


63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'app/helpers/alchemy/essences_helper.rb', line 63

def render_essence(content, part = :view, options = {}, html_options = {})
  options = {for_view: {}, for_editor: {}}.update(options)
  if content.nil?
    return part == :view ? "" : warning('Content is nil', Alchemy.t(:content_not_found))
  elsif content.essence.nil?
    return part == :view ? "" : warning('Essence is nil', Alchemy.t(:content_essence_not_found))
  end
  render partial: "alchemy/essences/#{content.essence_partial_name}_#{part}", locals: {
    content: content,
    options: options["for_#{part}".to_sym],
    html_options: html_options
  }
end

#render_essence_view(content, options = {}, html_options = {}) ⇒ Object

Renders the Esssence view partial for given Content.

Options:

:image_size => "111x93"                        # Used by EssencePicture to render the image via RMagick to that size. [Default nil]
:date_format => "Am %d. %m. %Y, um %H:%Mh"     # Especially for EssenceDate. See Rubys Date.strftime for date formatting options. [Default nil]
:show_caption => false                         # Pass Boolean to show/hide the caption of an EssencePicture. [Default true]
:disable_link => true                          # You can surpress the link of an EssencePicture. Default false


86
87
88
# File 'app/helpers/alchemy/essences_helper.rb', line 86

def render_essence_view(content, options = {}, html_options = {})
  render_essence(content, :view, {for_view: options}, html_options)
end

#render_essence_view_by_name(element, name, options = {}, html_options = {}) ⇒ Object

Renders the Essence view partial from Element by name.

Pass the name of the Content from Element as second argument.

Example:

This renders the Content named “intro” from element.

<%= render_essence_view_by_name(element, "intro") %>


39
40
41
42
43
44
45
46
# File 'app/helpers/alchemy/essences_helper.rb', line 39

def render_essence_view_by_name(element, name, options = {}, html_options = {})
  if element.blank?
    warning('Element is nil')
    return ""
  end
  content = element.content_by_name(name)
  render_essence_view(content, options, html_options)
end