Sha256: 4deb6b1a80aefac8c3a261a829406ef09dcc8675af99aafa7cbe7b361c6f6bb8
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true module Sunrise module WidgetsHelper def render_content_widget(widget, content, params = {}) content.gsub(widget.regexp) do |sub| if widget.cells? render_cell :widgets, widget.code, matcher: widget.regexp.match(sub), params: params else render file: widget.file, locals: { matcher: widget.regexp.match(sub), params: params } end end.html_safe end def render_widgets(content, params = {}) return if content.blank? ContentWidget.all.each do |widget| content = render_content_widget(widget, content, params[widget.code]) end content = render_accordion_widget(content, params) content end def render_accordion_widget(content, _args = {}) return content unless content.include?('[WIDGET:ACCORDION:START]') content.gsub(/\[WIDGET:ACCORDION:START\](.+)\[WIDGET:ACCORDION:END\]/m) do |text| items = [] text.gsub(/\[WIDGET:ACCORDION:ITEM:START\](.+?)\[WIDGET:ACCORDION:ITEM:END\]/m) do |item_text| items << { title: item_text.gsub(/.*\[WIDGET:ACCORDION:TITLE:START\](.+)\[WIDGET:ACCORDION:TITLE:END\].*/m, '\1'), content: item_text.gsub(/.*\[WIDGET:ACCORDION:CONTENT:START\](.+)\[WIDGET:ACCORDION:CONTENT:END\].*/m, '\1') } '' end render_cell(:widgets, :accordion, text: text, items: items) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/helpers/sunrise/widgets_helper.rb |