Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram - Version 1.6

Version Description

Improvements in optin form embedding, bug fixes and more. Required update.

Download this release

Release Info

Developer niravmehta
Plugin Icon 128x128 Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram
Version 1.6
Comparing to
See all releases

Code changes from version 1.5 to 1.6

assets/css/admin.css CHANGED
@@ -614,8 +614,15 @@ CSS for landing page and Help and Support
614
  border: 1px solid #CCC;
615
  }
616
 
 
 
 
 
 
617
 
618
- #embed_form #popup_container {
619
- width: 500px;
620
- height: 560px;
621
- }
 
 
614
  border: 1px solid #CCC;
615
  }
616
 
617
+ #embed_form {
618
+ width: 600px !important;
619
+ height: 495px !important;
620
+ margin: 0em !important;
621
+ }
622
 
623
+ #embed_form input[value="ig_vertical"]{
624
+ margin-left: 3%;
625
+ }
626
+ #embed_form select{
627
+ width:30%;
628
+ }
assets/css/frontend.css CHANGED
@@ -178,7 +178,7 @@ div.icegram .ig_embed_form.ig_center .ig_embed_form_container{
178
  }
179
  div.icegram .ig_embed_form.ig_inline .ig_embed_form_container{
180
  display: inline-block;
181
- margin: 0 1%;
182
  padding: 0 1%;
183
  vertical-align: bottom;
184
  }
@@ -250,6 +250,7 @@ div.icegram .ig_embed_form input[type="button"]{
250
  line-height: 1em;
251
  font-size: 1em;
252
  margin: .2em .2em .2em .5em!important;
 
253
  }
254
 
255
  div.icegram .ig_embed_form .ig_detected_bot_fields{
178
  }
179
  div.icegram .ig_embed_form.ig_inline .ig_embed_form_container{
180
  display: inline-block;
181
+ margin: 1% 1% 0 1%;
182
  padding: 0 1%;
183
  vertical-align: bottom;
184
  }
250
  line-height: 1em;
251
  font-size: 1em;
252
  margin: .2em .2em .2em .5em!important;
253
+ width: auto;
254
  }
255
 
256
  div.icegram .ig_embed_form .ig_detected_bot_fields{
assets/js/admin.js CHANGED
@@ -123,9 +123,15 @@ jQuery(function() {
123
  return terms;
124
  });
125
 
 
 
 
 
 
 
126
  jQuery('.parse_form').live('click', function(event) {
127
  var that = this;
128
- var parent_node = jQuery(that).parent().parent();
129
  var form_layout = jQuery(parent_node).find('.embed_form_layouts input[type=radio]:checked').val();
130
  var form_width = jQuery(parent_node).find('#embed_form_width option:selected').val();
131
  var form_position = jQuery(parent_node).find('#embed_form_positions option:selected').val();
@@ -150,7 +156,6 @@ jQuery(function() {
150
  .removeAttr('class')
151
  .addClass('ig_embed_form')
152
  .addClass(form_layout)
153
- .addClass(form_layout)
154
  .addClass(form_width)
155
  .addClass(form_position)
156
  .addClass('ig_clear')
@@ -160,16 +165,25 @@ jQuery(function() {
160
  jQuery.each(form_tags, function(i, form_el){
161
  var el_obj = jQuery(form_el);
162
  var el_group = jQuery('<li class="ig_form_el_group"></li>');
163
- el_obj.removeAttr('class');
 
164
  if(el_obj.attr('tabindex') == -1){
165
- // el_obj.css('display', 'none');
166
  el_obj.addClass('ig_detected_bot_fields');
167
  el_count--;
168
  }
169
  if(el_obj.is('label')){
170
- label_text = el_obj.not('input, select, textarea, button, br').text().trim();
171
  }else if((el_obj.is('input') || el_obj.is('button') || el_obj.is('textarea')) && !el_obj.is('input[type=radio]') ) {
172
  el_obj.removeAttr('id');
 
 
 
 
 
 
 
 
 
173
  if(has_label){
174
  el_obj.removeAttr('placeholder');
175
  if(label_text){
@@ -231,16 +245,9 @@ jQuery(function() {
231
  form_container.find('.ig_detected_bot_fields').parent().css('display', 'none');
232
  form_object.append(form_container);
233
  tb_remove();
234
- window.send_to_editor(jQuery('<div/>').append(form_object).html());
235
  // reset all fields of Embed form setting
236
- // jQuery(document).find('form#embed_form').get(0).reset();
237
- jQuery(parent_node).find('textarea#form_data').val('');
238
- jQuery(parent_node).find('.embed_form_layouts input[type=radio]:first').attr('checked', 'checked');
239
- jQuery(parent_node).find('.use_cta_check input[type=checkbox]').attr('checked', 'checked');
240
- jQuery(parent_node).find('.has_label_check input[type=checkbox]').attr('checked', 'checked');
241
- // jQuery(parent_node).find('#embed_form_width option:first').attr('selected', 'selected')
242
- // jQuery(parent_node).find('#embed_form_positions option:first').attr('selected', 'selected')
243
-
244
  return false;
245
  });
246
 
@@ -278,12 +285,12 @@ jQuery(function() {
278
  hide_empty_campaign_message();
279
  jQuery('.message-setting-fields').trigger('change');
280
  jQuery(".tips, .help_tip").tipTip({'attribute' : 'data-tip'});
281
-
282
- // quicktags({id : 'edit'+response.id});
283
  // tinyMCE.init({
284
  // skin : 'edit'+response.id
285
  // });
286
- // tinymce.init(tinyMCEPreInit.mceInit['edit'+response.id]);
287
 
288
  }
289
  });
123
  return terms;
124
  });
125
 
126
+ jQuery('.cancel_parse_form').live('click', function(event) {
127
+ tb_remove();
128
+ jQuery(this).closest('form').get(0).reset();
129
+ return false;
130
+ });
131
+
132
  jQuery('.parse_form').live('click', function(event) {
133
  var that = this;
134
+ var parent_node = jQuery(that).closest('form');
135
  var form_layout = jQuery(parent_node).find('.embed_form_layouts input[type=radio]:checked').val();
136
  var form_width = jQuery(parent_node).find('#embed_form_width option:selected').val();
137
  var form_position = jQuery(parent_node).find('#embed_form_positions option:selected').val();
156
  .removeAttr('class')
157
  .addClass('ig_embed_form')
158
  .addClass(form_layout)
 
159
  .addClass(form_width)
160
  .addClass(form_position)
161
  .addClass('ig_clear')
165
  jQuery.each(form_tags, function(i, form_el){
166
  var el_obj = jQuery(form_el);
167
  var el_group = jQuery('<li class="ig_form_el_group"></li>');
168
+ el_obj.removeAttr('class').removeAttr('style');
169
+ // For now : we are hiding fields with tabindex -1
170
  if(el_obj.attr('tabindex') == -1){
 
171
  el_obj.addClass('ig_detected_bot_fields');
172
  el_count--;
173
  }
174
  if(el_obj.is('label')){
175
+ label_text = el_obj.not('input, select, textarea, button, span, br').text().replace(/\s+/g, ' ');
176
  }else if((el_obj.is('input') || el_obj.is('button') || el_obj.is('textarea')) && !el_obj.is('input[type=radio]') ) {
177
  el_obj.removeAttr('id');
178
+ if(el_obj.is('button')){
179
+ var button_text = el_obj.not('br, span, div').text().trim() || '';
180
+ el_obj.remove();
181
+ el_obj = jQuery('<input type="submit">');
182
+ if(button_text){
183
+ el_obj.attr('value',button_text );
184
+ }
185
+ }
186
+
187
  if(has_label){
188
  el_obj.removeAttr('placeholder');
189
  if(label_text){
245
  form_container.find('.ig_detected_bot_fields').parent().css('display', 'none');
246
  form_object.append(form_container);
247
  tb_remove();
 
248
  // reset all fields of Embed form setting
249
+ jQuery(that).closest('form').get(0).reset();
250
+ window.send_to_editor(jQuery('<div/>').append(form_object).html());
 
 
 
 
 
 
251
  return false;
252
  });
253
 
285
  hide_empty_campaign_message();
286
  jQuery('.message-setting-fields').trigger('change');
287
  jQuery(".tips, .help_tip").tipTip({'attribute' : 'data-tip'});
288
+ QTags._buttonsInit();
289
+ //quicktags({id : 'edit'+response.id});
290
  // tinyMCE.init({
291
  // skin : 'edit'+response.id
292
  // });
293
+ //tinymce.init(tinyMCEPreInit.mceInit['edit'+response.id]);
294
 
295
  }
296
  });
assets/js/icegram.js CHANGED
@@ -36,17 +36,21 @@
36
  var self = this;
37
  if (this.message_data.length > 0) {
38
  jQuery.each( this.message_data, function ( i, v ) {
39
- var m = null;
40
- var classname_suffix = v['type'].split('-').join(' ').ucwords().split(' ').join('_');
41
- if (typeof (window['Icegram_Message_Type_' + classname_suffix]) === 'function') {
42
- m = new window['Icegram_Message_Type_' + classname_suffix]( v );
43
- } else {
44
- m = new Icegram_Message_Type( v );
 
 
 
 
 
 
 
 
45
  }
46
- self.messages.push( m );
47
- self.map_id_to_index['_'+v['id'] ] = i;
48
- self.map_type_to_index[ v['type'] ] = jQuery.isArray(self.map_type_to_index[ v['type'] ]) ? self.map_type_to_index[ v['type'] ] : new Array();
49
- self.map_type_to_index[ v['type'] ].push(i);
50
  });
51
  }
52
 
@@ -179,7 +183,10 @@
179
  var html = this.render_template();
180
 
181
  // Add html to DOM, Setup dom_id, el etc.
182
- jQuery(this.root_container).append(html);
 
 
 
183
  this.dom_id = 'icegram_message_'+this.data.id;
184
  this.el = jQuery('#'+this.dom_id);
185
  this.set_position();
@@ -194,7 +201,7 @@
194
  this.el.find('.ig_headline').hide();
195
  }
196
  if(this.data.icon == undefined || this.data.icon == '') {
197
- this.el.find('.ig_icon').hide();
198
  }
199
  if(this.data.message == undefined || this.data.message == '') {
200
  this.el.find('.ig_message').hide();
@@ -204,11 +211,7 @@
204
  var form_content = jQuery(form_el).html();
205
  form_el = jQuery(form_el).empty();
206
  jQuery(form_el).replaceWith(form_content);
207
- if(this.data.type == 'messenger'){
208
- this.el.find('.ig_message_body').html(form_el.append(this.el.find('.ig_message_body').html()));
209
- }else{
210
- this.el.find('.ig_message').html(form_el.append(this.el.find('.ig_message').html()));
211
- }
212
  var prev_tag = this.el.find('.ig_embed_form_container').prev();
213
  var next_tag = this.el.find('.ig_embed_form_container').next();
214
  // var allowed_tags = ['P', 'DIV', 'SPAN']; // dont need this, no working !
@@ -240,11 +243,10 @@
240
 
241
  if(this.data.label == undefined || this.data.label == '') {
242
  this.el.find('.ig_button').hide();
243
- }else if (this.data.bg_color != undefined && this.data.bg_color != '') {
 
244
  var hsl_color = window.icegram.get_complementary_color(this.data.bg_color);
245
- this.el.find('.ig_button').css('background-color', "hsl(" + hsl_color.h + "," + hsl_color.s + "%," + hsl_color.l + "%)" );
246
- this.el.find('.ig_embed_form input[type="submit"]').css('background', "hsl(" + hsl_color.h + "," + hsl_color.s + "%," + hsl_color.l + "%)" );
247
-
248
  }
249
  // Hint clickability for buttons / ctas
250
  if (typeof(this.data.link) === 'string' && this.data.link != '') {
36
  var self = this;
37
  if (this.message_data.length > 0) {
38
  jQuery.each( this.message_data, function ( i, v ) {
39
+ try {
40
+ var m = null;
41
+ var classname_suffix = v['type'].split('-').join(' ').ucwords().split(' ').join('_');
42
+ if (typeof (window['Icegram_Message_Type_' + classname_suffix]) === 'function') {
43
+ m = new window['Icegram_Message_Type_' + classname_suffix]( v );
44
+ } else {
45
+ m = new Icegram_Message_Type( v );
46
+ }
47
+ self.messages.push( m );
48
+ self.map_id_to_index['_'+v['id'] ] = i;
49
+ self.map_type_to_index[ v['type'] ] = jQuery.isArray(self.map_type_to_index[ v['type'] ]) ? self.map_type_to_index[ v['type'] ] : new Array();
50
+ self.map_type_to_index[ v['type'] ].push(i);
51
+ } catch( e ) {
52
+
53
  }
 
 
 
 
54
  });
55
  }
56
 
183
  var html = this.render_template();
184
 
185
  // Add html to DOM, Setup dom_id, el etc.
186
+ try {
187
+ jQuery(this.root_container).append(html);
188
+ } catch ( e ) {}
189
+
190
  this.dom_id = 'icegram_message_'+this.data.id;
191
  this.el = jQuery('#'+this.dom_id);
192
  this.set_position();
201
  this.el.find('.ig_headline').hide();
202
  }
203
  if(this.data.icon == undefined || this.data.icon == '') {
204
+ this.el.find('.ig_icon').remove();
205
  }
206
  if(this.data.message == undefined || this.data.message == '') {
207
  this.el.find('.ig_message').hide();
211
  var form_content = jQuery(form_el).html();
212
  form_el = jQuery(form_el).empty();
213
  jQuery(form_el).replaceWith(form_content);
214
+ this.el.find('.ig_message').html(form_el.append(this.el.find('.ig_message').html()));
 
 
 
 
215
  var prev_tag = this.el.find('.ig_embed_form_container').prev();
216
  var next_tag = this.el.find('.ig_embed_form_container').next();
217
  // var allowed_tags = ['P', 'DIV', 'SPAN']; // dont need this, no working !
243
 
244
  if(this.data.label == undefined || this.data.label == '') {
245
  this.el.find('.ig_button').hide();
246
+ }
247
+ if (this.data.bg_color != undefined && this.data.bg_color != '') {
248
  var hsl_color = window.icegram.get_complementary_color(this.data.bg_color);
249
+ this.el.find('.ig_button, form input[type="submit"]').css('background', "hsl(" + hsl_color.h + "," + hsl_color.s + "%," + hsl_color.l + "%)" ).css('background-color', "hsl(" + hsl_color.h + "," + hsl_color.s + "%," + hsl_color.l + "%)" );
 
 
250
  }
251
  // Hint clickability for buttons / ctas
252
  if (typeof(this.data.link) === 'string' && this.data.link != '') {
classes/class-icegram-message-admin.php CHANGED
@@ -43,17 +43,18 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
43
  $message_types[] = $type;
44
  }
45
  }
46
- echo $out = '<a href="#TB_inline?width=500&height=560&inlineId=popup_container" data-editor="'.$editor_id.'" class="'.implode( ' ', $message_types).' thickbox button" id="embed_form_but" title="'.__('Add an optin / subscription form' , 'icegram' ).'">'.__('Embed Form' , 'icegram' ).'</a>';
47
  }
48
  }
49
 
50
  function embed_form_popup_content(){
51
  ?>
52
- <form id="embed_form">
53
- <div id="popup_container" style="display:none;">
 
54
  <!-- <h3 ><?php _e('Add an optin / subscription form', 'icegram' ); ?></h3> -->
55
  <p>
56
- <textarea rows="10" autocomplete="off" cols="65" name="form_data" id="form_data" value="" placeholder="<?php _e('Paste HTML code of your form here...', 'icegram' ); ?>"></textarea>
57
  </p>
58
  <p class="use_cta_check">
59
  <label><input type="checkbox" name="use_cta_to_submit" value="" checked> <?php _e('Use message\'s Call to Action button to submit this form' , 'icegram' ); ?></label>
@@ -65,7 +66,7 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
65
  </p>
66
  <p>
67
  <label class="message_label"><strong><?php _e('Width', 'icegram' ); ?></strong></label>
68
- <select id="embed_form_width" name="embed_form_width" class="icegram_chosen_page">
69
  <option value="ig_full" selected="selected"><?php _e('Full', 'icegram' ); ?></option>
70
  <option value="ig_half"><?php _e('Half', 'icegram' ); ?></option>
71
  <option value="ig_quarter"><?php _e('Quarter', 'icegram' ); ?></option>
@@ -74,7 +75,7 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
74
  </p>
75
  <p>
76
  <label class="message_label"><strong><?php _e('Position', 'icegram' ); ?></strong></label>
77
- <select id="embed_form_positions" name="embed_form_positions" class="icegram_chosen_page">
78
  <option value="ig_left" selected="selected"><?php _e('Left', 'icegram' ); ?></option>
79
  <option value="ig_right"><?php _e('Right', 'icegram' ); ?></option>
80
  <option value="ig_center"><?php _e('Center', 'icegram' ); ?></option>
@@ -85,12 +86,12 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
85
  <label class="message_label"><strong><?php _e('Keep Labels' , 'icegram' ); ?> </strong></label>
86
  <label><input type="checkbox" name="has_label" value="" checked> <?php _e('Show them above the field.' , 'icegram' ); ?></label>
87
  </p>
88
- <div style="padding:15px;">
89
- <input type="button" name="submit" class="parse_form button-primary" value="Insert Form"/>&nbsp;&nbsp;&nbsp;
90
- <a class="button" style="color:#bbb;" class="cancel_parse_form" href="#" onclick="tb_remove(); return false;"><?php _e('Cancel', 'icegram' ); ?></a>
91
- </div>
92
- </div>
93
- </form>
94
  <?php
95
  }
96
 
@@ -145,7 +146,6 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
145
  $message_headlines = $icegram->available_headlines;
146
  $settings = $this->message_settings_to_show();
147
  $positions = $this->message_positions_to_show();
148
-
149
  if ( $pagenow == 'post-new.php' ) {
150
  $message_title_key = array_rand( $message_headlines );
151
  $default_message_title = $message_headlines[$message_title_key];
@@ -186,11 +186,13 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
186
  }
187
  ?>
188
  <p class="message_row <?php echo $message['type']; ?>">
 
189
  <label for="message_theme_<?php echo $message['type'] ?>" class="message_label"><strong><?php _e( 'Theme', 'icegram' ); ?></strong></label>
190
  <select id="message_theme_<?php echo $message['type'] ?>" name="message_data[<?php echo $message_id; ?>][theme][<?php echo $message['type'] ?>]" class="icegram_chosen_page message_theme message_theme_<?php echo $message['type']; ?>">
191
  <?php
192
  foreach ( $message['themes'] as $theme ) {
193
- $bg_img = "background-image: url(" . $message['baseurl'] . "themes/" . $theme['type'] . ".png)";
 
194
  ?>
195
  <option style="<?php echo $bg_img; ?>" value="<?php echo esc_attr( $theme['type'] ) ?>" class="<?php echo esc_attr( $theme['type'] ) ?>" <?php echo ( !empty( $message_data['theme'] ) && esc_attr( $theme['type'] ) == $message_data['theme'] ) ? 'selected' : ''; ?>><?php echo esc_html( $theme['name'] ) ?></option>
196
  <?php } ?>
@@ -259,15 +261,19 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
259
  $default_bg_color = ( !empty( $icegram->message_types[$message_data['type']]['settings']['bg_color']['default'] ) ) ? $icegram->message_types[$message_data['type']]['settings']['bg_color']['default'] : '';
260
  $text_color = ( !empty( $message_data['text_color'] ) ) ? $message_data['text_color'] : $default_text_color;
261
  $bg_color = ( !empty( $message_data['bg_color'] ) ) ? $message_data['bg_color'] : $default_bg_color;
 
 
 
 
 
 
 
 
 
 
 
 
262
  ?>
263
- <p class="message_row <?php echo implode( ' ', $settings['bg_color'] )?>">
264
- <label for="message_bg_color" class="message_label"><strong><?php _e( 'Backgound Color', 'icegram' ); ?></strong></label>
265
- <input type="text" class="message_field color-field" name="message_data[<?php echo $message_id; ?>][bg_color]" id="message_bg_color" value="<?php echo $bg_color; ?>" data-default-color="<?php echo $default_bg_color; ?>" />
266
- </p>
267
- <p class="message_row <?php echo implode( ' ', $settings['text_color'] )?>">
268
- <label for="message_text_color" class="message_label"><strong><?php _e( 'Text Color', 'icegram' ); ?></strong></label>
269
- <input type="text" class="message_field color-field" name="message_data[<?php echo $message_id; ?>][text_color]" id="message_text_color" value="<?php echo $text_color; ?>" data-default-color="<?php echo $default_text_color; ?>" />
270
- </p>
271
  <?php
272
  $editor_args = array(
273
  'textarea_name' => 'message_data[' . $message_id . '][message]',
43
  $message_types[] = $type;
44
  }
45
  }
46
+ echo $out = '<a href="#TB_inline?width=500&height=520&inlineId=popup_container" data-editor="'.$editor_id.'" class="'.implode( ' ', $message_types).' thickbox button" id="embed_form_but" title="'.__('Add an optin / subscription form' , 'icegram' ).'">'.__('Embed Form' , 'icegram' ).'</a>';
47
  }
48
  }
49
 
50
  function embed_form_popup_content(){
51
  ?>
52
+ <div id="popup_container" style="display:none;">
53
+
54
+ <form id="embed_form" action="#">
55
  <!-- <h3 ><?php _e('Add an optin / subscription form', 'icegram' ); ?></h3> -->
56
  <p>
57
+ <textarea rows="10" autocomplete="off" cols="65" name="form_data" style="width:90%" id="form_data" value="" placeholder="<?php _e('Paste HTML code of your form here...', 'icegram' ); ?>"></textarea>
58
  </p>
59
  <p class="use_cta_check">
60
  <label><input type="checkbox" name="use_cta_to_submit" value="" checked> <?php _e('Use message\'s Call to Action button to submit this form' , 'icegram' ); ?></label>
66
  </p>
67
  <p>
68
  <label class="message_label"><strong><?php _e('Width', 'icegram' ); ?></strong></label>
69
+ <select id="embed_form_width" name="embed_form_width">
70
  <option value="ig_full" selected="selected"><?php _e('Full', 'icegram' ); ?></option>
71
  <option value="ig_half"><?php _e('Half', 'icegram' ); ?></option>
72
  <option value="ig_quarter"><?php _e('Quarter', 'icegram' ); ?></option>
75
  </p>
76
  <p>
77
  <label class="message_label"><strong><?php _e('Position', 'icegram' ); ?></strong></label>
78
+ <select id="embed_form_positions" name="embed_form_positions">
79
  <option value="ig_left" selected="selected"><?php _e('Left', 'icegram' ); ?></option>
80
  <option value="ig_right"><?php _e('Right', 'icegram' ); ?></option>
81
  <option value="ig_center"><?php _e('Center', 'icegram' ); ?></option>
86
  <label class="message_label"><strong><?php _e('Keep Labels' , 'icegram' ); ?> </strong></label>
87
  <label><input type="checkbox" name="has_label" value="" checked> <?php _e('Show them above the field.' , 'icegram' ); ?></label>
88
  </p>
89
+ <p>
90
+ <input type="submit" name="submit" class="parse_form button-primary" value="Insert Form"/>&nbsp;&nbsp;&nbsp;
91
+ <a class="button cancel_parse_form" style="color:#bbb;" href="#" ><?php _e('Cancel', 'icegram' ); ?></a>
92
+ </p>
93
+ </form>
94
+ </div>
95
  <?php
96
  }
97
 
146
  $message_headlines = $icegram->available_headlines;
147
  $settings = $this->message_settings_to_show();
148
  $positions = $this->message_positions_to_show();
 
149
  if ( $pagenow == 'post-new.php' ) {
150
  $message_title_key = array_rand( $message_headlines );
151
  $default_message_title = $message_headlines[$message_title_key];
186
  }
187
  ?>
188
  <p class="message_row <?php echo $message['type']; ?>">
189
+
190
  <label for="message_theme_<?php echo $message['type'] ?>" class="message_label"><strong><?php _e( 'Theme', 'icegram' ); ?></strong></label>
191
  <select id="message_theme_<?php echo $message['type'] ?>" name="message_data[<?php echo $message_id; ?>][theme][<?php echo $message['type'] ?>]" class="icegram_chosen_page message_theme message_theme_<?php echo $message['type']; ?>">
192
  <?php
193
  foreach ( $message['themes'] as $theme ) {
194
+
195
+ $bg_img = "background-image: url(" . $theme['baseurl'] . $theme['type'] . ".png)";
196
  ?>
197
  <option style="<?php echo $bg_img; ?>" value="<?php echo esc_attr( $theme['type'] ) ?>" class="<?php echo esc_attr( $theme['type'] ) ?>" <?php echo ( !empty( $message_data['theme'] ) && esc_attr( $theme['type'] ) == $message_data['theme'] ) ? 'selected' : ''; ?>><?php echo esc_html( $theme['name'] ) ?></option>
198
  <?php } ?>
261
  $default_bg_color = ( !empty( $icegram->message_types[$message_data['type']]['settings']['bg_color']['default'] ) ) ? $icegram->message_types[$message_data['type']]['settings']['bg_color']['default'] : '';
262
  $text_color = ( !empty( $message_data['text_color'] ) ) ? $message_data['text_color'] : $default_text_color;
263
  $bg_color = ( !empty( $message_data['bg_color'] ) ) ? $message_data['bg_color'] : $default_bg_color;
264
+
265
+ $color_field_html = '<p class="message_row '.implode( ' ', $settings['bg_color']).'">
266
+ <label for="message_bg_color" class="message_label"><strong> '.__( 'Backgound Color', 'icegram' ).'</strong></label>
267
+ <input type="text" class="message_field color-field" name="message_data['.$message_id.'][bg_color]" id="message_bg_color" value="'.$bg_color.'" data-default-color="'.$default_bg_color.'" />
268
+ </p>
269
+ <p class="message_row '.implode( ' ', $settings['text_color'] ).'">
270
+ <label for="message_text_color" class="message_label"><strong>'.__( 'Text Color', 'icegram' ) .'</strong></label>
271
+ <input type="text" class="message_field color-field" name="message_data['.$message_id.'][text_color]" id="message_text_color" value="'.$text_color.'" data-default-color="'.$default_text_color.'" />
272
+ </p>';
273
+ $color_field = apply_filters('icegram_color_fields' , array( 'html' => $color_field_html ,'message_id' => $message_id ,'message_data' => $message_data) );
274
+ echo $color_field['html'];
275
+
276
  ?>
 
 
 
 
 
 
 
 
277
  <?php
278
  $editor_args = array(
279
  'textarea_name' => 'message_data[' . $message_id . '][message]',
classes/class-icegram-message-type.php CHANGED
@@ -12,6 +12,7 @@ abstract class Icegram_Message_Type {
12
  var $basedir;
13
  var $baseurl;
14
  var $settings;
 
15
 
16
  function __construct( $basedir = '', $baseurl = '' ) {
17
  $class_name = get_class($this);
@@ -45,13 +46,10 @@ abstract class Icegram_Message_Type {
45
 
46
  // Load themes
47
  $theme_files = (array) glob( $this->basedir . '/themes/*.css' );
48
- // Allow other plugins to add themes
49
- $theme_files = apply_filters( 'icegram_message_type_themes_' + $this->type, $theme_files );
50
-
51
  if( empty( $theme_files ) ) {
52
  $theme_files[] = $this->basedir . '/default.css';
53
  }
54
-
55
  $themes = array();
56
  if( !empty( $theme_files ) ) {
57
  foreach ( $theme_files as $file ) {
@@ -61,12 +59,13 @@ abstract class Icegram_Message_Type {
61
  'name' => ucwords( str_replace( "-", ' ', $theme ) ),
62
  'type' => $theme,
63
  'basedir' => $this->basedir . '/themes/',
64
- 'baseurl' => $this->baseurl . '/themes/'
65
  );
66
  }
67
  }
68
  }
69
-
 
70
  $this->define_settings();
71
 
72
  $params = array(
@@ -75,6 +74,7 @@ abstract class Icegram_Message_Type {
75
  'basedir' => $this->basedir,
76
  'baseurl' => $this->baseurl,
77
  'themes' => $themes,
 
78
  'settings' => $this->settings
79
  );
80
 
12
  var $basedir;
13
  var $baseurl;
14
  var $settings;
15
+ var $version;
16
 
17
  function __construct( $basedir = '', $baseurl = '' ) {
18
  $class_name = get_class($this);
46
 
47
  // Load themes
48
  $theme_files = (array) glob( $this->basedir . '/themes/*.css' );
49
+
 
 
50
  if( empty( $theme_files ) ) {
51
  $theme_files[] = $this->basedir . '/default.css';
52
  }
 
53
  $themes = array();
54
  if( !empty( $theme_files ) ) {
55
  foreach ( $theme_files as $file ) {
59
  'name' => ucwords( str_replace( "-", ' ', $theme ) ),
60
  'type' => $theme,
61
  'basedir' => $this->basedir . '/themes/',
62
+ 'baseurl' => $this->baseurl . '/themes/'
63
  );
64
  }
65
  }
66
  }
67
+ // Allow other plugins to add themes
68
+ $themes = apply_filters( 'icegram_message_type_themes', $themes ,$this->type);
69
  $this->define_settings();
70
 
71
  $params = array(
74
  'basedir' => $this->basedir,
75
  'baseurl' => $this->baseurl,
76
  'themes' => $themes,
77
+ 'version' => $this->version,
78
  'settings' => $this->settings
79
  );
80
 
icegram.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Icegram
4
  * Plugin URI: http://www.icegram.com/
5
  * Description: All in one solution to inspire, convert and engage your audiences. Action bars, Popup windows, Messengers, Toast notifications and more. Awesome themes and powerful rules.
6
- * Version: 1.5
7
  * Author: Icegram
8
  * Author URI: http://www.icegram.com/
9
  *
@@ -33,7 +33,7 @@ class Icegram {
33
 
34
  function __construct() {
35
 
36
- $this->version = "1.5";
37
  $this->shortcode_instances = array();
38
  $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
39
  $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
@@ -52,6 +52,7 @@ class Icegram {
52
  add_action( 'icegram_settings_after', array( &$this, 'klawoo_subscribe_form' ) );
53
  add_action( 'icegram_about_changelog', array( &$this, 'klawoo_subscribe_form' ) );
54
  add_action( 'icegram_settings_after', array( &$this, 'icegram_houskeeping' ) );
 
55
  } else {
56
  add_action( 'wp_footer', array( &$this, 'display_messages' ) );
57
  //add_action( 'wp_head', array( &$this, 'nofollow_noindex' ) );
@@ -75,7 +76,50 @@ class Icegram {
75
  }
76
 
77
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  public function klawoo_subscribe_form() {
80
  ?>
81
  <div class="wrap">
@@ -503,8 +547,8 @@ class Icegram {
503
  if( empty( $messages ) )
504
  return;
505
 
506
- wp_register_script( 'icegram_js', $this->plugin_url . '/assets/js/icegram.js', array ( 'jquery' ), '', true);
507
- wp_enqueue_style( 'icegram_css', $this->plugin_url . '/assets/css/frontend.css' );
508
  wp_enqueue_style( 'dashicons' );
509
 
510
  $icegram_default = apply_filters( 'icegram_branding_data',
@@ -539,9 +583,10 @@ class Icegram {
539
  }
540
 
541
  foreach ($types_shown as $message_type) {
542
- wp_register_script( 'icegram_message_type_'.$message_type, $this->message_types[$message_type]['baseurl'] . "main.js" , array ( 'icegram_js' ), '', true );
 
543
  wp_enqueue_script( 'icegram_message_type_'.$message_type );
544
- wp_enqueue_style( 'icegram_css_'.$message_type, $this->message_types[$message_type]['baseurl'] . 'default.css' );
545
  }
546
 
547
  // Load theme CSS
@@ -560,10 +605,10 @@ class Icegram {
560
  if ( !in_array( $screen->id, array( 'ig_campaign', 'ig_message' ), true ) ) return;
561
 
562
  // Register scripts
563
- wp_register_script( 'icegram_writepanel', $this->plugin_url . '/assets/js/admin.js' , array ( 'jquery', 'wp-color-picker' ) );
564
- wp_register_script( 'icegram_chosen', $this->plugin_url . '/assets/js/chosen.jquery.min.js' , array ( 'jquery' ), '1.0' );
565
- wp_register_script( 'icegram_ajax-chosen', $this->plugin_url . '/assets/js/ajax-chosen.jquery.min.js' , array ( 'icegram_chosen' ), '1.0' );
566
- wp_register_script( 'icegram_tiptip', $this->plugin_url . '/assets/js/jquery.tipTip.min.js' , array ( 'jquery' ), get_bloginfo( 'version' ) );
567
 
568
  wp_enqueue_script( 'icegram_writepanel' );
569
  wp_enqueue_script( 'icegram_ajax-chosen' );
@@ -579,9 +624,9 @@ class Icegram {
579
  wp_enqueue_style( 'thickbox' );
580
  wp_enqueue_style( 'dashicons' );
581
  wp_enqueue_style( 'wp-color-picker' );
582
- wp_enqueue_style( 'icegram_admin_styles', $this->plugin_url . '/assets/css/admin.css' );
583
- wp_enqueue_style( 'icegram_jquery-ui-style', $this->plugin_url . '/assets/css/jquery-ui.min.css' );
584
- wp_enqueue_style( 'icegram_chosen_styles', $this->plugin_url . '/assets/css/chosen.min.css' );
585
 
586
  if ( !wp_script_is( 'jquery-ui-datepicker' ) ) {
587
  wp_enqueue_script( 'jquery-ui-datepicker' );
3
  * Plugin Name: Icegram
4
  * Plugin URI: http://www.icegram.com/
5
  * Description: All in one solution to inspire, convert and engage your audiences. Action bars, Popup windows, Messengers, Toast notifications and more. Awesome themes and powerful rules.
6
+ * Version: 1.6
7
  * Author: Icegram
8
  * Author URI: http://www.icegram.com/
9
  *
33
 
34
  function __construct() {
35
 
36
+ $this->version = "1.6";
37
  $this->shortcode_instances = array();
38
  $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
39
  $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
52
  add_action( 'icegram_settings_after', array( &$this, 'klawoo_subscribe_form' ) );
53
  add_action( 'icegram_about_changelog', array( &$this, 'klawoo_subscribe_form' ) );
54
  add_action( 'icegram_settings_after', array( &$this, 'icegram_houskeeping' ) );
55
+ add_action('admin_notices', array( &$this,'add_admin_notices'));
56
  } else {
57
  add_action( 'wp_footer', array( &$this, 'display_messages' ) );
58
  //add_action( 'wp_head', array( &$this, 'nofollow_noindex' ) );
76
  }
77
 
78
  }
79
+ public function add_admin_notices(){
80
+ $active_plugins = get_option( 'active_plugins', array() );
81
+ ?>
82
+ <style>
83
+ p.icegram_notice {
84
+ border-left: 4px solid hsl(94, 61%, 52%);
85
+ padding: 10px 12px;
86
+ background-color: hsl(0, 100%, 100%);
87
+ -webkit-box-shadow: 0 1px 1px 0 hsla(0, 0%, 0%, 0.1);
88
+ box-shadow: 0 1px 1px 0 hsla(0, 0%, 0%, 0.1);
89
+
90
+ }
91
+ a.ig-admin-btn{
92
+ margin-left: 4px;
93
+ padding: 4px 8px;
94
+ position: relative;
95
+ text-decoration: none;
96
+ border: none;
97
+ -webkit-border-radius: 2px;
98
+ border-radius: 2px;
99
+ background: hsl(0, 0%, 88%);
100
+ text-shadow: none;
101
+ font-weight: 600;
102
+ font-size: 13px;
103
+ }
104
 
105
+ a.ig-admin-btn:hover{
106
+ color: hsl(0, 100%, 100%);
107
+ background-color: hsl(207, 8%, 23%);
108
+ }
109
+ </style>
110
+ <?php
111
+ // Admin notices for free bonuses!
112
+ if(in_array('ig-analytics/ig-analytics.php' ,$active_plugins) && !in_array('ig-themes-pack-1/ig-themes-pack-1.php' , $active_plugins)){
113
+ // themes
114
+ echo "<p class='icegram_notice'>Get <b>17 bonus themes</b> for Icegram. Free!! <a class='ig-admin-btn' href='http://www.icegram.com/addons/theme-pack-1/?utm_source=inapp&utm_campaign=freebonus&utm_medium=notices' target='_blank'>Yes, I want them!</a></p>";
115
+ }else if(in_array('ig-themes-pack-1/ig-themes-pack-1.php', $active_plugins) && !in_array('ig-analytics/ig-analytics.php', $active_plugins)){
116
+ //analytics
117
+ echo "<p class='icegram_notice'>Measure performance of your Icegram messages with the <b>free Analytics addon</b>. <a class='ig-admin-btn' href='http://www.icegram.com/addons/analytics/?utm_source=inapp&utm_campaign=freebonus&utm_medium=notices' target='_blank'>Cool, Let's begin</a></p>";
118
+ }else if(!in_array('ig-analytics/ig-analytics.php', $active_plugins) && !in_array('ig-themes-pack-1/ig-themes-pack-1.php', $active_plugins)){
119
+ // both
120
+ echo "<p class='icegram_notice'>Claim your Icegram bonuses today. <b>17 themes &amp; Analytics addon</b> for free! <a class='ig-admin-btn' href='http://www.icegram.com/product-category/addons/free/?utm_source=inapp&utm_campaign=freebonus&utm_medium=notices' target='_blank'>Yes, Let's begin</a></p>";
121
+ }
122
+ }
123
  public function klawoo_subscribe_form() {
124
  ?>
125
  <div class="wrap">
547
  if( empty( $messages ) )
548
  return;
549
 
550
+ wp_register_script( 'icegram_js', $this->plugin_url . '/assets/js/icegram.js', array ( 'jquery' ), $this->version, true);
551
+ wp_enqueue_style( 'icegram_css', $this->plugin_url . '/assets/css/frontend.css', array(), $this->version );
552
  wp_enqueue_style( 'dashicons' );
553
 
554
  $icegram_default = apply_filters( 'icegram_branding_data',
583
  }
584
 
585
  foreach ($types_shown as $message_type) {
586
+ $ver = ( !empty($this->message_types[$message_type]['version'])) ? $this->message_types[$message_type]['version'] : $this->version;
587
+ wp_register_script( 'icegram_message_type_'.$message_type, $this->message_types[$message_type]['baseurl'] . "main.js" , array ( 'icegram_js' ), $ver, true );
588
  wp_enqueue_script( 'icegram_message_type_'.$message_type );
589
+ wp_enqueue_style( 'icegram_css_'.$message_type, $this->message_types[$message_type]['baseurl'] . 'default.css', array(), $ver );
590
  }
591
 
592
  // Load theme CSS
605
  if ( !in_array( $screen->id, array( 'ig_campaign', 'ig_message' ), true ) ) return;
606
 
607
  // Register scripts
608
+ wp_register_script( 'icegram_writepanel', $this->plugin_url . '/assets/js/admin.js' , array ( 'jquery', 'wp-color-picker' ), $this->version );
609
+ wp_register_script( 'icegram_chosen', $this->plugin_url . '/assets/js/chosen.jquery.min.js' , array ( 'jquery' ), $this->version );
610
+ wp_register_script( 'icegram_ajax-chosen', $this->plugin_url . '/assets/js/ajax-chosen.jquery.min.js' , array ( 'icegram_chosen' ), $this->version );
611
+ wp_register_script( 'icegram_tiptip', $this->plugin_url . '/assets/js/jquery.tipTip.min.js' , array ( 'jquery' ), $this->version );
612
 
613
  wp_enqueue_script( 'icegram_writepanel' );
614
  wp_enqueue_script( 'icegram_ajax-chosen' );
624
  wp_enqueue_style( 'thickbox' );
625
  wp_enqueue_style( 'dashicons' );
626
  wp_enqueue_style( 'wp-color-picker' );
627
+ wp_enqueue_style( 'icegram_admin_styles', $this->plugin_url . '/assets/css/admin.css', array(), $this->version );
628
+ wp_enqueue_style( 'icegram_jquery-ui-style', $this->plugin_url . '/assets/css/jquery-ui.min.css', array(), $this->version );
629
+ wp_enqueue_style( 'icegram_chosen_styles', $this->plugin_url . '/assets/css/chosen.min.css', array(), $this->version );
630
 
631
  if ( !wp_script_is( 'jquery-ui-datepicker' ) ) {
632
  wp_enqueue_script( 'jquery-ui-datepicker' );
message-types/action-bar/default.css CHANGED
@@ -21,6 +21,7 @@
21
  }
22
 
23
  .action_bar .ig_message {
 
24
  }
25
 
26
  .action_bar img.icon {
21
  }
22
 
23
  .action_bar .ig_message {
24
+ line-height: 1.3em;
25
  }
26
 
27
  .action_bar img.icon {
message-types/messenger/default.css CHANGED
@@ -57,17 +57,17 @@
57
  border-bottom: none;
58
  }
59
 
60
- .messenger .ig_message_body {
61
  text-align: left;
62
  word-wrap: break-word;
63
  display: inline-block;
64
  }
65
 
66
- .messenger .ig_message_body p {
67
  margin-bottom: 0.25em;
68
  }
69
 
70
- .messenger .ig_no_icon.ig_message_body {
71
  width: 91%;
72
  }
73
 
@@ -133,5 +133,11 @@
133
  border-top : none;
134
  }
135
 
136
-
 
 
 
 
 
 
137
 
57
  border-bottom: none;
58
  }
59
 
60
+ .messenger .ig_message {
61
  text-align: left;
62
  word-wrap: break-word;
63
  display: inline-block;
64
  }
65
 
66
+ .messenger .ig_message p {
67
  margin-bottom: 0.25em;
68
  }
69
 
70
+ .messenger .ig_no_icon.ig_message {
71
  width: 91%;
72
  }
73
 
133
  border-top : none;
134
  }
135
 
136
+ .messenger .ig_close {
137
+ background: no-repeat url(../messenger/images/clear-header.png) 0 -195px;
138
+ right: 10px;
139
+ top: 20px;
140
+ width: 21px;
141
+ height: 13px;
142
+ }
143
 
message-types/messenger/main.js CHANGED
@@ -20,7 +20,7 @@
20
  '<div class="ig_header2_image"></div>' +
21
  '<div class="ig_body">' +
22
  '<img class="ig_icon" src="{{=icon}}"/>' +
23
- '<div class="ig_message_body">{{=message}}</div>' +
24
  '<div class="ig_separator"></div>' +
25
  '</div>' +
26
  '<div class="ig_footer">' +
@@ -36,7 +36,7 @@
36
  // No avatar...
37
  if (this.data.icon == '') {
38
  this.el.find('.ig_icon').remove();
39
- this.el.find('.ig_message_body').addClass('ig_no_icon');
40
  }
41
  };
42
 
@@ -44,10 +44,12 @@
44
  switch(this.data.position) {
45
  case "20":
46
  this.el.css( { 'left': 5, 'bottom': 0} );
 
47
  break;
48
  case "22":
49
  default:
50
  this.el.css( {'left': jQuery(window).width() - this.el.outerWidth() - 5, 'bottom': 0} );
 
51
  break;
52
  }
53
 
20
  '<div class="ig_header2_image"></div>' +
21
  '<div class="ig_body">' +
22
  '<img class="ig_icon" src="{{=icon}}"/>' +
23
+ '<div class="ig_message">{{=message}}</div>' +
24
  '<div class="ig_separator"></div>' +
25
  '</div>' +
26
  '<div class="ig_footer">' +
36
  // No avatar...
37
  if (this.data.icon == '') {
38
  this.el.find('.ig_icon').remove();
39
+ this.el.find('.ig_message').addClass('ig_no_icon');
40
  }
41
  };
42
 
44
  switch(this.data.position) {
45
  case "20":
46
  this.el.css( { 'left': 5, 'bottom': 0} );
47
+ this.el.addClass('left');
48
  break;
49
  case "22":
50
  default:
51
  this.el.css( {'left': jQuery(window).width() - this.el.outerWidth() - 5, 'bottom': 0} );
52
+ this.el.addClass('right');
53
  break;
54
  }
55
 
message-types/messenger/themes/canvas.css CHANGED
@@ -43,13 +43,13 @@
43
 
44
  }
45
 
46
- .messenger.canvas .ig_message_body {
47
  color: #444;
48
  line-height: 1.2em;
49
  display: inline;
50
  }
51
 
52
- .messenger.canvas .ig_no_icon.ig_message_body {
53
  width: 98%;
54
  }
55
 
43
 
44
  }
45
 
46
+ .messenger.canvas .ig_message {
47
  color: #444;
48
  line-height: 1.2em;
49
  display: inline;
50
  }
51
 
52
+ .messenger.canvas .ig_no_icon.ig_message {
53
  width: 98%;
54
  }
55
 
message-types/messenger/themes/clear.css CHANGED
@@ -77,14 +77,14 @@
77
  padding: 6px 6px 0;
78
  }
79
 
80
- .messenger.clear .ig_message_body {
81
  color: #3E454C;
82
  line-height: 1.28em;
83
  width: 180px;
84
  margin-left: .5em;
85
  }
86
 
87
- .messenger.clear .ig_no_icon.ig_message_body {
88
  width: 97%;
89
  }
90
 
77
  padding: 6px 6px 0;
78
  }
79
 
80
+ .messenger.clear .ig_message {
81
  color: #3E454C;
82
  line-height: 1.28em;
83
  width: 180px;
84
  margin-left: .5em;
85
  }
86
 
87
+ .messenger.clear .ig_no_icon.ig_message {
88
  width: 97%;
89
  }
90
 
message-types/messenger/themes/social.css CHANGED
@@ -55,6 +55,8 @@
55
  margin-left: 5px;
56
  margin-right: 40px;
57
  line-height: 20px;
 
 
58
  }
59
 
60
  .messenger.social .ig_header2_image {
@@ -83,7 +85,7 @@
83
  background-color: #edeff4;
84
  }
85
 
86
- .messenger.social .ig_message_body {
87
  background-color: #F7F7F7;
88
  background-image: -webkit-gradient(linear, center bottom, center top, from(#F2F2F2), to(#FFF));
89
  background-image: -webkit-linear-gradient(bottom, #F2F2F2, #FFF);
@@ -101,7 +103,7 @@
101
  width: 170px;
102
  }
103
 
104
- .messenger.social .ig_message_body:after {
105
  content: "";
106
  display: block;
107
  position: absolute;
@@ -112,7 +114,7 @@
112
  border-color: rgba(0, 0, 0, 0) #FAFAFA rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
113
  }
114
 
115
- .messenger.social .ig_message_body:before {
116
  content: "";
117
  display: block;
118
  position: absolute;
@@ -123,12 +125,12 @@
123
  border-color: rgba(0, 0, 0, 0) #DFDFDF rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
124
  }
125
 
126
- .messenger.social .ig_no_icon.ig_message_body {
127
  width: 91%;
128
  }
129
 
130
- .messenger.social .ig_no_icon.ig_message_body:after,
131
- .messenger.social .ig_no_icon.ig_message_body:before {
132
  content: none;
133
  }
134
 
55
  margin-left: 5px;
56
  margin-right: 40px;
57
  line-height: 20px;
58
+ width:195px;
59
+ text-overflow:ellipsis;
60
  }
61
 
62
  .messenger.social .ig_header2_image {
85
  background-color: #edeff4;
86
  }
87
 
88
+ .messenger.social .ig_message {
89
  background-color: #F7F7F7;
90
  background-image: -webkit-gradient(linear, center bottom, center top, from(#F2F2F2), to(#FFF));
91
  background-image: -webkit-linear-gradient(bottom, #F2F2F2, #FFF);
103
  width: 170px;
104
  }
105
 
106
+ .messenger.social .ig_message:after {
107
  content: "";
108
  display: block;
109
  position: absolute;
114
  border-color: rgba(0, 0, 0, 0) #FAFAFA rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
115
  }
116
 
117
+ .messenger.social .ig_message:before {
118
  content: "";
119
  display: block;
120
  position: absolute;
125
  border-color: rgba(0, 0, 0, 0) #DFDFDF rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
126
  }
127
 
128
+ .messenger.social .ig_no_icon.ig_message {
129
  width: 91%;
130
  }
131
 
132
+ .messenger.social .ig_no_icon.ig_message:after,
133
+ .messenger.social .ig_no_icon.ig_message:before {
134
  content: none;
135
  }
136
 
message-types/messenger/themes/talk.css CHANGED
@@ -81,13 +81,13 @@
81
  padding: 6px 6px 0;
82
  }
83
 
84
- .messenger.talk .ig_message_body {
85
  color: #3E454C;
86
  width: 142px;
87
  margin-left: 7px;
88
  }
89
 
90
- .messenger.talk .ig_no_icon.ig_message_body {
91
  width: 98%;
92
  }
93
 
81
  padding: 6px 6px 0;
82
  }
83
 
84
+ .messenger.talk .ig_message {
85
  color: #3E454C;
86
  width: 142px;
87
  margin-left: 7px;
88
  }
89
 
90
+ .messenger.talk .ig_no_icon.ig_message {
91
  width: 98%;
92
  }
93
 
message-types/popup/default.css CHANGED
@@ -50,6 +50,7 @@
50
  cursor: pointer;
51
  display: block;
52
  border-bottom : none;
 
53
  }
54
 
55
  .popup .ig_button:hover,
50
  cursor: pointer;
51
  display: block;
52
  border-bottom : none;
53
+ background-image: none;
54
  }
55
 
56
  .popup .ig_button:hover,
message-types/popup/main.js CHANGED
@@ -14,9 +14,6 @@
14
  '<div class="ig_data">'+
15
  '<div class="ig_headline">{{=headline}}</div>'+
16
  '<div class="ig_content">'+
17
- '<div class="ig_image">'+
18
- '<img class="ig_icon" src="{{=icon}}"/>'+
19
- '</div>'+
20
  '<div class="ig_message">{{=message}}</div>'+
21
  '</div>'+
22
  '</div>'+
14
  '<div class="ig_data">'+
15
  '<div class="ig_headline">{{=headline}}</div>'+
16
  '<div class="ig_content">'+
 
 
 
17
  '<div class="ig_message">{{=message}}</div>'+
18
  '</div>'+
19
  '</div>'+
message-types/popup/themes/air-mail.css CHANGED
@@ -42,7 +42,7 @@
42
  div.popup.air-mail input[type="submit"],
43
  div.popup.air-mail input[type="button"] {
44
  background: hsl(6, 78%, 57%) !important;
45
- width: 50%;
46
  -moz-border-radius: 5px;
47
  -webkit-border-radius: 5px;
48
  border-radius: 5px;
@@ -55,9 +55,6 @@
55
  margin: 0 auto;
56
  padding: 16px 0 13px;
57
  }
58
- div.popup.air-mail input[type="submit"]{
59
- width: auto;
60
- }
61
 
62
  .popup.air-mail .ig_button:hover,
63
  div.popup.air-mail input[type="submit"]:hover,
42
  div.popup.air-mail input[type="submit"],
43
  div.popup.air-mail input[type="button"] {
44
  background: hsl(6, 78%, 57%) !important;
45
+ width: 50% !important;
46
  -moz-border-radius: 5px;
47
  -webkit-border-radius: 5px;
48
  border-radius: 5px;
55
  margin: 0 auto;
56
  padding: 16px 0 13px;
57
  }
 
 
 
58
 
59
  .popup.air-mail .ig_button:hover,
60
  div.popup.air-mail input[type="submit"]:hover,
message-types/popup/themes/amaze.css CHANGED
@@ -66,7 +66,7 @@
66
 
67
  .popup.amaze #TB_ajaxContent {
68
  border: .3em solid #444444;
69
- background-image: url(../../images/popup-amaze-bg.jpg);
70
  }
71
 
72
  .popup.amaze#TB_window {
66
 
67
  .popup.amaze #TB_ajaxContent {
68
  border: .3em solid #444444;
69
+ background-image: url(../images/popup-amaze-bg.jpg);
70
  }
71
 
72
  .popup.amaze#TB_window {
message-types/popup/themes/compel.css CHANGED
@@ -44,7 +44,7 @@
44
  .popup.compel input[type="submit"],
45
  .popup.compel input[type="button"] {
46
  background: hsl(6, 78%, 57%) !important;
47
- width: 50%;
48
  -moz-border-radius: 5px;
49
  -webkit-border-radius: 5px;
50
  border-radius: 5px;
44
  .popup.compel input[type="submit"],
45
  .popup.compel input[type="button"] {
46
  background: hsl(6, 78%, 57%) !important;
47
+ width: 50% !important;
48
  -moz-border-radius: 5px;
49
  -webkit-border-radius: 5px;
50
  border-radius: 5px;
message-types/toast/main.js CHANGED
@@ -3,8 +3,10 @@
3
  * Icegram Message Type - Toast
4
  **/
5
  function Icegram_Message_Type_Toast( data ) {
6
- var width;
7
  this.width = 300;
 
 
8
  Icegram_Message_Type.apply(this, arguments);
9
  }
10
  Icegram_Message_Type_Toast.prototype = Object.create(Icegram_Message_Type.prototype);
@@ -33,19 +35,19 @@
33
  var ul = jQuery('<ul id="' + this.data.position + '"></ul>').addClass('ig_toast_block').appendTo(this.root_container).hide();
34
  ul.width(this.width);
35
  if (this.data.position == "00") {
36
- ul.css({top: '0', left: '0'});
37
  } else if (this.data.position == "01") {
38
- ul.css({top: '0', left: '50%', margin: '5px 0 0 -' + (this.width / 2) + 'px'});
39
  } else if (this.data.position == "02") {
40
- ul.css({top: '0', right: '0'});
41
  } else if (this.data.position == "20") {
42
- ul.css({bottom: '0', left: '0'});
43
  } else if (this.data.position == "21") {
44
- ul.css({bottom: '0', left: '50%', margin: '5px 0 0 -' + (this.width / 2) + 'px'});
45
  } else if (this.data.position == "22") {
46
- ul.css({bottom: '0', right: '0'});
47
  } else if (this.data.position == "11") {
48
- ul.css({top: '50%', left: '50%', margin: '-'+(this.width / 2) +'px 0 0 -' + (this.width / 2) + 'px'});
49
  }
50
  }else {
51
  var ul = jQuery('ul#' + this.data.position);
@@ -55,21 +57,18 @@
55
 
56
  Icegram_Message_Type_Toast.prototype.show = function ( options, silent ) {
57
  if ( this.is_visible() ) return;
58
- var sticky = false;
59
- var duration = 10000;
60
  !this.root_container.hasClass('active') && this.root_container.addClass('active').show();
61
  var self = this;
62
  setTimeout(function() {
63
  self.el.show();
64
  self.el.fadeIn('slow');
65
- silent !== true && self.track( 'shown' );
66
  }, this.data.delay_time);
67
-
68
- !sticky && duration > 0 && (setTimeout(function() {
69
  self.el.fadeOut('slow');
70
  self.hide();
71
  self.root_container.children().length || self.root_container.removeClass('active').hide();
72
- }, duration));
73
 
74
  };
75
 
3
  * Icegram Message Type - Toast
4
  **/
5
  function Icegram_Message_Type_Toast( data ) {
6
+ var width ,sticky ,duration;
7
  this.width = 300;
8
+ this.sticky = false;
9
+ this.duration = 10000;
10
  Icegram_Message_Type.apply(this, arguments);
11
  }
12
  Icegram_Message_Type_Toast.prototype = Object.create(Icegram_Message_Type.prototype);
35
  var ul = jQuery('<ul id="' + this.data.position + '"></ul>').addClass('ig_toast_block').appendTo(this.root_container).hide();
36
  ul.width(this.width);
37
  if (this.data.position == "00") {
38
+ ul.css({top: '0', left: '0'}).addClass('left');
39
  } else if (this.data.position == "01") {
40
+ ul.css({top: '0', left: '50%', margin: '5px 0 0 -' + (this.width / 2) + 'px'}).addClass('center');
41
  } else if (this.data.position == "02") {
42
+ ul.css({top: '0', right: '0'}).addClass('right');
43
  } else if (this.data.position == "20") {
44
+ ul.css({bottom: '0', left: '0'}).addClass('left');
45
  } else if (this.data.position == "21") {
46
+ ul.css({bottom: '0', left: '50%', margin: '5px 0 0 -' + (this.width / 2) + 'px'}).addClass('center');
47
  } else if (this.data.position == "22") {
48
+ ul.css({bottom: '0', right: '0'}).addClass('right');
49
  } else if (this.data.position == "11") {
50
+ ul.css({top: '50%', left: '50%', margin: '-'+(this.width / 2) +'px 0 0 -' + (this.width / 2) + 'px'}).addClass('center');
51
  }
52
  }else {
53
  var ul = jQuery('ul#' + this.data.position);
57
 
58
  Icegram_Message_Type_Toast.prototype.show = function ( options, silent ) {
59
  if ( this.is_visible() ) return;
 
 
60
  !this.root_container.hasClass('active') && this.root_container.addClass('active').show();
61
  var self = this;
62
  setTimeout(function() {
63
  self.el.show();
64
  self.el.fadeIn('slow');
 
65
  }, this.data.delay_time);
66
+ silent !== true && self.track( 'shown' );
67
+ !this.sticky && this.duration > 0 && (setTimeout(function() {
68
  self.el.fadeOut('slow');
69
  self.hide();
70
  self.root_container.children().length || self.root_container.removeClass('active').hide();
71
+ }, this.duration));
72
 
73
  };
74
 
message-types/toast/themes/announce.css CHANGED
@@ -7,7 +7,7 @@
7
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.15), 0 0 6px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(35, 47, 64, 0.2);
8
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.15), 0 0 6px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(35, 47, 64, 0.2);
9
  background-image: -webkit-linear-gradient(90deg, rgba(255, 255, 105, 0.95) 0%, rgba(255, 255, 105, 0) 100%);
10
- color: rgba(67, 76, 89, 0.9);
11
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
12
  }
13
 
@@ -27,6 +27,7 @@
27
 
28
  .toast.announce .ig_content {
29
  border: none;
 
30
  background-color: transparent !important;
31
  -moz-border-radius: 4px;
32
  -webkit-border-radius: 4px;
7
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.15), 0 0 6px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(35, 47, 64, 0.2);
8
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.15), 0 0 6px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(35, 47, 64, 0.2);
9
  background-image: -webkit-linear-gradient(90deg, rgba(255, 255, 105, 0.95) 0%, rgba(255, 255, 105, 0) 100%);
10
+ color: rgba(67, 76, 89, 0.9) !important;
11
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
12
  }
13
 
27
 
28
  .toast.announce .ig_content {
29
  border: none;
30
+ color: rgba(67, 76, 89, 0.9) !important;
31
  background-color: transparent !important;
32
  -moz-border-radius: 4px;
33
  -webkit-border-radius: 4px;
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.icegram.com/
4
  Tags: popup, window, hellobar, optin, lead capture, marketing, form, notification, messenger, targeting, monster, ninja
5
  Requires at least: 3.9
6
  Tested up to: 4.0
7
- Stable tag: 1.5
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -63,8 +63,10 @@ Icegram campaigns and messages can be shown anywhere in WordPress using shortcod
63
  Icegram is an open platform. The core is already powerful, but you can do even more with free and premium addons.
64
 
65
  * Analytics - track impressions, click throughs and conversions with a free addon
 
66
  * Exit Intent, Scroll Position, Time Delay, JavaScript, Another Message... Show and Hide messages based on user behavior
67
  * Geo Targeting - based on visitor's location - continent, country, city, region or IP address
 
68
  * Additional message types - Overlay, Inline, Sidebars, Ribbons, Stickies, Badges...
69
 
70
  = Ok, there is even more =
@@ -143,6 +145,9 @@ Contact Us, provide as much detail of the problem as you can. We will try to sol
143
  3. Editing an Icegram campaign - add multiple messages, edit them, targeting rules, full HTML editor, themes and more
144
 
145
  == Upgrade Notice ==
 
 
 
146
  = 1.5 =
147
  Easy optin / subscription form parser and many other enhancements. Required update.
148
 
@@ -166,6 +171,14 @@ Initial Release
166
 
167
 
168
  == Changelog ==
 
 
 
 
 
 
 
 
169
  = 1.5 =
170
  * NEW: "Embed Form" option for easy integration with optin / mailing list / subscription form / CRM services
171
  * NEW: Retargeting Rule: Do not show again for X number of days
@@ -222,4 +235,3 @@ Initial Release
222
 
223
  = 1.0 =
224
  * Initial Release
225
-
4
  Tags: popup, window, hellobar, optin, lead capture, marketing, form, notification, messenger, targeting, monster, ninja
5
  Requires at least: 3.9
6
  Tested up to: 4.0
7
+ Stable tag: 1.6
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
63
  Icegram is an open platform. The core is already powerful, but you can do even more with free and premium addons.
64
 
65
  * Analytics - track impressions, click throughs and conversions with a free addon
66
+ * Themes Pack 1 - additional 17 themes as a free bonus
67
  * Exit Intent, Scroll Position, Time Delay, JavaScript, Another Message... Show and Hide messages based on user behavior
68
  * Geo Targeting - based on visitor's location - continent, country, city, region or IP address
69
+ * CTA Actions - Open link, in new window, submit form, AJAX submission, show another message, hide this message... New actions for CTA buttons
70
  * Additional message types - Overlay, Inline, Sidebars, Ribbons, Stickies, Badges...
71
 
72
  = Ok, there is even more =
145
  3. Editing an Icegram campaign - add multiple messages, edit them, targeting rules, full HTML editor, themes and more
146
 
147
  == Upgrade Notice ==
148
+ = 1.6 =
149
+ Improvements in optin form embedding, bug fixes and more. Required update.
150
+
151
  = 1.5 =
152
  Easy optin / subscription form parser and many other enhancements. Required update.
153
 
171
 
172
 
173
  == Changelog ==
174
+ = 1.6 =
175
+ * Fix: Empty image tag causing display issues in Opera / IE
176
+ * Update: Form embed functionality improvements
177
+ * NEW: "Themes Pack 1" addon - 17 free themes as a bonus - available from Icegram.com
178
+ * Fix: Toast message compatibility with Behavior Triggers
179
+ * Update: JS and CSS URLs include version numbers now - better for caching
180
+ * Fix: Other minor fixes
181
+
182
  = 1.5 =
183
  * NEW: "Embed Form" option for easy integration with optin / mailing list / subscription form / CRM services
184
  * NEW: Retargeting Rule: Do not show again for X number of days
235
 
236
  = 1.0 =
237
  * Initial Release