caboose-cms 0.5.195 → 0.5.196

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTEwZDI1Njk1NzdlN2EzYmMzZGFhODVmYjZhNjI1ZTU4NTg5NGNhOA==
4
+ ZjM1ZjMxZmM0YzU4MjdmNDIyY2RhZWZkNjgyODIyMjRkZGI3ZmExYw==
5
5
  data.tar.gz: !binary |-
6
- Y2RhMGVjMDM1MGMyYjFkYzAyMWQ5ZmI2OGE0ZmY3NzYxNjYzN2U4MQ==
6
+ MDA3YjM5NDk0Y2E2ODlhZDM0YjQyMzMwMmZlMDJlNDA0NzgzYWIxYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWY3NTU3OGEyNDgyZjJiZjA4OWZjY2I2NWM4NTI1NzdkMjNiMjcyYzdkZjg5
10
- NDMxMzY5MzQ0ZDdlNDc2NzE2NDRhMTc5OTc2OTI2NjFmMGQxZGY3NGUxZTJm
11
- NmI2MWJiYzYwN2ZiOGRjNjQ0YmIwN2MwM2RjMDFjNWI2Mzk5NzQ=
9
+ OGEzN2I1Nzc0YWU4NWM4YWY0OTMwMTQ2NWZiMGY3ZDFkNmI4MWY5ZjdhYWNj
10
+ OWEzYThjMGM0OGZiYmE5MDEzOTAxMDg3N2QzYWI4Yjg3YjIxN2RkNTA5N2Yx
11
+ NGM0MmJkM2U4OTExN2QxM2M1YWJlNzMyN2EwMWQwNTU1NzkxMjY=
12
12
  data.tar.gz: !binary |-
13
- YjU0NWMyMDdmZDdkYzc5MTQ5MWFjMGJiYjgxNTljMmVhOTM4YzMwNDNkYTgw
14
- MTgzMGY0YmY3MDc5ZjA3YjlhMzFhZTU5NDIxMGMwODg1MGJkMGMyYjViZjE1
15
- YTAyNTZiNzA2ODcwZTc4NzczODc5MDIzMDZhNGI5ZWYzNTc3YjE=
13
+ NzE2Y2YyOWNiMTIwNDIzNmExNDhmMjNiNjE4NTBmOWJjZjFmZjU0NDcyMjlh
14
+ YTFkNDNjNmFhM2NlNjFkOWQ0MGNmZjZiM2YyNTYyODU1M2U0NTMyMmE4YjNi
15
+ MjM2MzFjNTg3MWE1MTc5ZTY2YWZhYWQ3ODNkYmQzNWNkY2JiYTg=
@@ -27,8 +27,9 @@ module Caboose
27
27
 
28
28
  params.each do |name,value|
29
29
  case name
30
- when 'conversion_id' then rc.conversion_id = value
31
- when 'labels_function' then rc.labels_function = value
30
+ when 'conversion_id' then rc.conversion_id = value
31
+ when 'labels_function' then rc.labels_function = value
32
+ when 'fb_pixels_function' then rc.fb_pixels_function = value
32
33
  end
33
34
  end
34
35
 
@@ -6,13 +6,25 @@ module Caboose
6
6
  attr_accessible :id,
7
7
  :site_id,
8
8
  :conversion_id,
9
- :labels_function
9
+ :labels_function,
10
+ :fb_pixels_function
10
11
 
11
- def labels(request, page)
12
- arr = eval(self.labels_function)
12
+ def labels(request, page)
13
+ return [] if self.labels_function.nil? || self.labels_function.strip.length == 0
14
+ return [self.labels_function] if self.labels_function.starts_with?('_')
15
+ arr = eval(self.labels_function)
16
+ return [] if arr.nil?
13
17
  return [arr] if arr is_a? String
14
18
  return arr
15
19
  end
16
20
 
21
+ def fb_pixels(request, page)
22
+ return [] if self.fb_pixels_function.nil? || self.fb_pixels_function.strip.length == 0
23
+ arr = eval(self.fb_pixels_function)
24
+ return [] if arr.nil?
25
+ return [arr] if arr.is_a?(String) || arr.is_a?(Integer)
26
+ return arr
27
+ end
28
+
17
29
  end
18
30
  end
@@ -505,7 +505,8 @@ class Caboose::Schema < Caboose::Utilities::Schema
505
505
  Caboose::RetargetingConfig => [
506
506
  [ :site_id , :integer ],
507
507
  [ :conversion_id , :string ],
508
- [ :labels_function , :text ]
508
+ [ :labels_function , :text ],
509
+ [ :fb_pixels_function , :text ]
509
510
  ],
510
511
  Caboose::Review => [
511
512
  [ :product_id , :integer ],
@@ -1,6 +1,8 @@
1
- <% if site.use_retargeting %>
2
- <% rc = site.retargeting_config %>
3
- <% rc.labels(request, page).each do |label| %>
1
+ <% if site.use_retargeting %>
2
+ <% rc = site.retargeting_config %>
3
+ <%
4
+ # Google audiences
5
+ %><% rc.labels(request, page).each do |label| %>
4
6
  <script type='text/javascript'>
5
7
  /* <![CDATA[ */
6
8
  var google_conversion_id = <%= rc.conversion_id %>;
@@ -16,4 +18,24 @@
16
18
  </div>
17
19
  </noscript>
18
20
  <% end %>
21
+ <%
22
+ # Facebook audiences
23
+ %><% rc.fb_pixels(request, page).each do |pixel_id| %>
24
+ <script>(function() {
25
+ var _fbq = window._fbq || (window._fbq = []);
26
+ if (!_fbq.loaded) {
27
+ var fbds = document.createElement('script');
28
+ fbds.async = true;
29
+ fbds.src = '//connect.facebook.net/en_US/fbds.js';
30
+ var s = document.getElementsByTagName('script')[0];
31
+ s.parentNode.insertBefore(fbds, s);
32
+ _fbq.loaded = true;
33
+ }
34
+ _fbq.push(['addPixelId', '<%= raw pixel_id %>']);
35
+ })();
36
+ window._fbq = window._fbq || [];
37
+ window._fbq.push(['track', 'PixelInitialized', {}]);
38
+ </script>
39
+ <noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/tr?id=<%= raw pixel_id %>&amp;ev=PixelInitialized" /></noscript>
40
+ <% end %>
19
41
  <% end %>
@@ -5,11 +5,31 @@ rc = s.retargeting_config
5
5
  <%= render :partial => 'caboose/sites/admin_header' %>
6
6
 
7
7
  <p><div id='site_<%= s.id %>_use_retargeting' ></div></p>
8
+
9
+ <h2>Google Audiences</h2>
8
10
  <p><div id='retargetingconfig_<%= rc.id %>_conversion_id' ></div></p>
9
- <h2>Conversion Labels</h2>
11
+ <h3>Conversion Labels</h3>
10
12
  <p><code>def conversion_labels_function(request, page) {</code></p>
11
13
  <p><div id='retargetingconfig_<%= rc.id %>_labels_function' ></div></p>
12
- <p><code># This function returns an array of conversion labels<br />}</code></p>
14
+ <p><code>
15
+ &nbsp;&nbsp;# This function returns a conversion label string or an array of conversion label strings.<br />
16
+ &nbsp;&nbsp;# Example 1:<br />
17
+ &nbsp;&nbsp;# return "abc123"<br />
18
+ &nbsp;&nbsp;# Example 2: <br />
19
+ &nbsp;&nbsp;# return ["abc123", "xyz456"]<br />
20
+ }</code></p>
21
+
22
+ <h2>Facebook Pixel IDs</h2>
23
+ <p><code>def facebook_pixel_ids(request, page) {</code></p>
24
+ <p><div id='retargetingconfig_<%= rc.id %>_fb_pixels_function' ></div></p>
25
+ <p><code>
26
+ &nbsp;&nbsp;# This function returns a pixel ID string or an array of pixel ID strings.<br />
27
+ &nbsp;&nbsp;# Example 1:<br />
28
+ &nbsp;&nbsp;# return "abc123"<br />
29
+ &nbsp;&nbsp;# Example 2: <br />
30
+ &nbsp;&nbsp;# return ["abc123", "xyz456"]<br />
31
+ &nbsp;&nbsp;# This function returns an array of conversion labels<br />
32
+ }</code></p>
13
33
 
14
34
  <%= render :partial => 'caboose/sites/admin_footer' %>
15
35
 
@@ -32,8 +52,9 @@ $(document).ready(function() {
32
52
  update_url: "/admin/sites/<%= @site.id %>/retargeting",
33
53
  authenticity_token: '<%= form_authenticity_token %>',
34
54
  attributes: [
35
- { name: 'conversion_id' , nice_name: 'Conversion ID' , type: 'text' , value: <%= raw Caboose.json(rc.conversion_id ) %>, width: 600 },
36
- { name: 'labels_function' , nice_name: 'Conversion Labels Function' , type: 'textarea' , value: <%= raw Caboose.json(rc.labels_function) %>, width: 600, height: 75, fixed_placeholder: false }
55
+ { name: 'conversion_id' , nice_name: 'Conversion ID' , type: 'text' , value: <%= raw Caboose.json(rc.conversion_id ) %>, width: 600 },
56
+ { name: 'labels_function' , nice_name: 'Conversion Labels Function' , type: 'textarea' , value: <%= raw Caboose.json(rc.labels_function ) %>, width: 600, height: 75, fixed_placeholder: false },
57
+ { name: 'fb_pixels_function' , nice_name: 'Facebook Pixel IDs Function' , type: 'textarea' , value: <%= raw Caboose.json(rc.fb_pixels_function ) %>, width: 600, height: 75, fixed_placeholder: false }
37
58
  ]
38
59
  });
39
60
  });
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.5.195'
2
+ VERSION = '0.5.196'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.195
4
+ version: 0.5.196
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-08 00:00:00.000000000 Z
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg