Module: Workarea::Storefront::ContentHelper
- Includes:
- AnalyticsHelper
- Defined in:
- app/helpers/workarea/storefront/content_helper.rb
Instance Method Summary
collapse
#add_to_cart_analytics_data, #add_to_cart_confirmation_analytics_data, #cart_view_analytics_data, #category_view_analytics_data, #checkout_addresses_view_analytics_data, #checkout_edit_analytics_data, #checkout_login_analytics_data, #checkout_order_placed_analytics_data, #checkout_payment_selected_analytics_data, #checkout_payment_view_analytics_data, #checkout_shipping_service_selected_analytics_data, #checkout_shipping_view_analytics_data, #checkout_signup_analytics_data, #content_block_analytics_data, #email_signup_analytics_data, #forgot_password_analytics_data, #login_analytics_data, #order_analytics_data, #order_item_analytics_data, #primary_navigation_analytics_data, #product_analytics_data, #product_click_analytics_data, #product_list_analytics_data, #product_view_analytics_data, #remove_from_cart_analytics_data, #search_results_view_analytics_data, #signup_analytics_data, #update_cart_item_analytics_data, #validation_error_analytics_data
Instance Method Details
#content_block_classes_for(block) ⇒ Object
37
38
39
40
41
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 37
def content_block_classes_for(block)
classes = []
classes << content_block_visibility_classes_for(block)
classes << content_block_type_class_for(block)
end
|
#content_block_type_class_for(block) ⇒ Object
51
52
53
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 51
def content_block_type_class_for(block)
"content-block--#{block.type_id.to_s.dasherize}"
end
|
#content_block_visibility_classes_for(block) ⇒ Object
43
44
45
46
47
48
49
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 43
def content_block_visibility_classes_for(block)
block
.hidden_breakpoints
.map { |n| "content-block--hidden-for-#{n.dasherize}" }
.push('content-block')
.join(' ')
end
|
#intrinsic_ratio_frame_styles(asset) ⇒ Object
65
66
67
68
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 65
def intrinsic_ratio_frame_styles(asset)
return if asset.inverse_aspect_ratio.blank?
"padding: 0 0 #{asset.inverse_aspect_ratio * 100}%; height: 0;"
end
|
#render_content_block(block) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 6
def render_content_block(block)
content_tag(
:div,
render(partial: block.partial, locals: block.locals),
class: content_block_classes_for(block),
id: dom_id(block),
data: {
analytics: content_block_analytics_data(block),
hidden_block_css_content: t('workarea.storefront.content_blocks.hidden_block_css_content')
}
)
end
|
#render_content_blocks(blocks) ⇒ Object
19
20
21
22
23
24
25
26
27
28
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 19
def render_content_blocks(blocks)
if current_user.try(:admin?)
render_content_blocks_without_cache(blocks)
else
Rails.cache.fetch(
blocks.map(&:cache_key).push(cache_varies).join('/'),
expires_in: Workarea.config.cache_expirations.render_content_blocks
) { render_content_blocks_without_cache(blocks) }
end
end
|
#render_content_blocks_without_cache(blocks) ⇒ Object
30
31
32
33
34
35
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 30
def render_content_blocks_without_cache(blocks)
blocks.inject('') do |result, block|
result << render_content_block(block)
result
end.html_safe
end
|
#render_image_with_link(src, alt, css_block, url) ⇒ Object
55
56
57
58
59
60
61
62
63
|
# File 'app/helpers/workarea/storefront/content_helper.rb', line 55
def render_image_with_link(src, alt, css_block, url)
image = image_tag(src, alt: alt, class: "#{css_block}__image")
if url.present?
link_to(image, url, class: "#{css_block}__image-link")
else
image
end
end
|