Module: Decidim::NewslettersHelper
- Defined in:
- app/helpers/decidim/newsletters_helper.rb
Overview
Helper that provides methods to render links with utm codes, and replaced name
Instance Method Summary collapse
-
#custom_url_for_mail_root(organization, newsletter_id = nil) ⇒ Object
this method is used to generate the root link on mail with the utm_codes If the newsletter_id is nil, it returns the root_url.
-
#parse_interpolations(content, user = nil, id = nil) ⇒ Object
If the newsletter body there are some links and the Decidim.track_newsletter_links = true it will be replaced with the utm_codes method described below.
-
#utm_codes(host, newsletter_id) ⇒ Object
Method to specify the utm_codes.
Instance Method Details
#custom_url_for_mail_root(organization, newsletter_id = nil) ⇒ Object
this method is used to generate the root link on mail with the utm_codes If the newsletter_id is nil, it returns the root_url
33 34 35 36 37 38 39 40 |
# File 'app/helpers/decidim/newsletters_helper.rb', line 33 def custom_url_for_mail_root(organization, = nil) decidim = EngineRouter.new("decidim", {}) if .present? decidim.root_url(host: organization.host) + utm_codes(organization.host, .to_s) else decidim.root_url(host: organization.host) end end |
#parse_interpolations(content, user = nil, id = nil) ⇒ Object
If the newsletter body there are some links and the Decidim.track_newsletter_links = true it will be replaced with the utm_codes method described below. for example transform “es.lipsum.com/” to “es.lipsum.com/?utm_source=localhost&utm_campaign=newsletter_11” And replace “%name” on the subject or content of newsletter to the user Name for example transform “%name” to “User Name”
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/helpers/decidim/newsletters_helper.rb', line 11 def parse_interpolations(content, user = nil, id = nil) if Decidim.config. && id.present? && user.present? host = user.organization.host.to_s campaign = "newsletter_#{id}" links = content.scan(/href\s*=\s*"([^"]*)"/) links.each do |link| link_replaced = link.first + utm_codes(host, campaign) content = content.gsub(/href\s*=\s*"([^"]*#{link.first})"/, %(href="#{link_replaced}")) end end if user.present? content.gsub("%{name}", user.name) else content.gsub("%{name}", "") end end |
#utm_codes(host, newsletter_id) ⇒ Object
Method to specify the utm_codes. You can change or add utm_codes for track
44 45 46 |
# File 'app/helpers/decidim/newsletters_helper.rb', line 44 def utm_codes(host, ) "?utm_source=#{host}&utm_campaign=#{}" end |