MailPoet Newsletters (Previous) - Version 2.5.4

Version Description

  • 2013-07-13 =
  • fixed broken sending process when DKIM is activated but the openSSL php library goes missing
  • fixed missing update procedure of 2.5.2 for bulk confirm
  • fixed daily post notification sending sometimes one day old posts
  • fixed SQL error on user to subscriber synch
  • fixed frontend notice on subscriptions modifications
  • fixed delete automatic newsletters
  • fixed remove one user from all mailing lists at a time from the admin interface
  • added reply-to address in advanced settings
Download this release

Release Info

Developer wysija
Plugin Icon 128x128 MailPoet Newsletters (Previous)
Version 2.5.4
Comparing to
See all releases

Code changes from version 2.5.2 to 2.5.4

Files changed (94) hide show
  1. controllers/back/campaigns.php +80 -75
  2. controllers/back/subscribers.php +4 -0
  3. controllers/front/confirm.php +1 -1
  4. core/base.php +62 -53
  5. core/model.php +7 -2
  6. css/admin-campaigns.css +1 -1
  7. helpers/back.php +1 -1
  8. helpers/file.php +2 -1
  9. helpers/import.php +2 -2
  10. helpers/mailer.php +6 -2
  11. helpers/update.php +1 -1
  12. helpers/user.php +10 -9
  13. helpers/wj_engine.php +7 -11
  14. index.php +1 -1
  15. js/tinymce/themes/advanced/skins/highcontrast/content.css +0 -24
  16. js/tinymce/themes/advanced/skins/highcontrast/dialog.css +0 -106
  17. js/tinymce/themes/advanced/skins/highcontrast/ui.css +0 -106
  18. js/tinymce/themes/advanced/skins/o2k7/content.css +0 -48
  19. js/tinymce/themes/advanced/skins/o2k7/dialog.css +0 -118
  20. js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  21. js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  22. js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  23. js/tinymce/themes/advanced/skins/o2k7/ui.css +0 -222
  24. js/tinymce/themes/advanced/skins/o2k7/ui_black.css +0 -8
  25. js/tinymce/themes/advanced/skins/o2k7/ui_silver.css +0 -5
  26. js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png +0 -0
  27. js/tinymce/themes/advanced/skins/wp_theme/img/button_bg.png +0 -0
  28. js/tinymce/themes/advanced/skins/wp_theme/img/down_arrow.gif +0 -0
  29. js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png +0 -0
  30. js/tinymce/themes/advanced/skins/wp_theme/img/separator.gif +0 -0
  31. languages/wysija-newsletters-af.mo +0 -0
  32. languages/wysija-newsletters-ar.mo +0 -0
  33. languages/wysija-newsletters-bg_BG.mo +0 -0
  34. languages/wysija-newsletters-bs_BA.mo +0 -0
  35. languages/wysija-newsletters-ca.mo +0 -0
  36. languages/wysija-newsletters-ca_ES.mo +0 -0
  37. languages/wysija-newsletters-cs_CZ.mo +0 -0
  38. languages/wysija-newsletters-da_DK.mo +0 -0
  39. languages/wysija-newsletters-de_DE.mo +0 -0
  40. languages/wysija-newsletters-el.mo +0 -0
  41. languages/wysija-newsletters-es_ES.mo +0 -0
  42. languages/wysija-newsletters-eu.mo +0 -0
  43. languages/wysija-newsletters-fa.mo +0 -0
  44. languages/wysija-newsletters-fa_IR.mo +0 -0
  45. languages/wysija-newsletters-fi.mo +0 -0
  46. languages/wysija-newsletters-fr_FR.mo +0 -0
  47. languages/wysija-newsletters-gl_ES.mo +0 -0
  48. languages/wysija-newsletters-he_IL.mo +0 -0
  49. languages/wysija-newsletters-hi_IN.mo +0 -0
  50. languages/wysija-newsletters-hr_HR.mo +0 -0
  51. languages/wysija-newsletters-hu_HU.mo +0 -0
  52. languages/wysija-newsletters-hy_AM.mo +0 -0
  53. languages/wysija-newsletters-id.mo +0 -0
  54. languages/wysija-newsletters-it_IT.mo +0 -0
  55. languages/wysija-newsletters-ja.mo +0 -0
  56. languages/wysija-newsletters-ko_KR.mo +0 -0
  57. languages/wysija-newsletters-lv.mo +0 -0
  58. languages/wysija-newsletters-mk_MK.mo +0 -0
  59. languages/wysija-newsletters-my_MM.mo +0 -0
  60. languages/wysija-newsletters-nb_NO.mo +0 -0
  61. languages/wysija-newsletters-nl_NL.mo +0 -0
  62. languages/wysija-newsletters-pl_PL.mo +0 -0
  63. languages/wysija-newsletters-pt_BR.mo +0 -0
  64. languages/wysija-newsletters-pt_PT.mo +0 -0
  65. languages/wysija-newsletters-ro_RO.mo +0 -0
  66. languages/wysija-newsletters-ru_RU.mo +0 -0
  67. languages/wysija-newsletters-sk_SK.mo +0 -0
  68. languages/wysija-newsletters-sl_SI.mo +0 -0
  69. languages/wysija-newsletters-sr_RS.mo +0 -0
  70. languages/wysija-newsletters-sr_RS@latin.mo +0 -0
  71. languages/wysija-newsletters-sv_SE.mo +0 -0
  72. languages/wysija-newsletters-tr_TR.mo +0 -0
  73. languages/wysija-newsletters-uk.mo +0 -0
  74. languages/wysija-newsletters-ur_PK.mo +0 -0
  75. languages/wysija-newsletters-vi.mo +0 -0
  76. languages/wysija-newsletters-zh_HK.mo +0 -0
  77. languages/wysija-newsletters-zh_TW.mo +0 -0
  78. models/email.php +3 -3
  79. readme.txt +17 -1
  80. tools/templates/email_v2/block_content.html +0 -37
  81. tools/templates/email_v2/block_divider.html +0 -13
  82. tools/templates/email_v2/block_gallery.html +0 -8
  83. tools/templates/email_v2/block_gallery_item.html +0 -8
  84. tools/templates/email_v2/block_raw.html +0 -2
  85. tools/templates/email_v2/block_template.html +0 -2
  86. tools/templates/email_v2/email_template.html +0 -26
  87. tools/templates/email_v2/footer_template.html +0 -17
  88. tools/templates/email_v2/header_template.html +0 -17
  89. tools/templates/email_v2/index.html +0 -0
  90. tools/templates/email_v2/unsubscribe_template.html +0 -1
  91. tools/templates/email_v2/viewbrowser_template.html +0 -1
  92. tools/templates/email_v3/block_content_BACKUP.html +0 -37
  93. views/back/campaigns.php +25 -8
  94. views/back/config.php +18 -12
controllers/back/campaigns.php CHANGED
@@ -23,18 +23,18 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
23
  function welcome_new(){
24
  $this->title=$this->viewObj->title=__('Welcome Page!',WYSIJA);
25
  $this->jsTrans['instalwjp']=__('Installing Wysija Newsletter Premium plugin',WYSIJA);
26
- $hReadme=WYSIJA::get('readme','helper');
27
- $hReadme->scan();
28
  $this->data=array();
29
  $this->data['abouttext']=__('A Brand New Wysija. Let the Fun Begin.',WYSIJA);
30
 
31
- $mConfig=WYSIJA::get('config','model');
32
  $is_multisite=is_multisite();
33
  $is_network_admin=WYSIJA::current_user_can('manage_network');
34
  if($is_multisite && $is_network_admin){
35
- $mConfig->save(array('ms_wysija_whats_new'=>WYSIJA::get_version()));
36
  }else{
37
- $mConfig->save(array('wysija_whats_new'=>WYSIJA::get_version()));
38
  }
39
 
40
  //add a new language code with a new video
@@ -45,9 +45,9 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
45
  $video_language['ar']='http://www.youtube.com/embed/cyDHlX_qgOo';
46
 
47
  if(defined('WPLANG') && WPLANG!='' && isset($video_language[WPLANG])){
48
- $welcome_video_link=$video_language[WPLANG];
49
  }else{
50
- $welcome_video_link=$video_language['en_EN'];
51
  }
52
 
53
  $this->data['sections'][]=array(
@@ -65,22 +65,22 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
65
  array(
66
  'title'=>__('5 minute newbie guide',WYSIJA),
67
  'content'=>__('Your Wysija comes with an example newsletter. You\'ll see it when you close this welcome page. Edit it to start playing with it.',WYSIJA)
68
- ),
69
  array(
70
  'title'=>__('Share your data',WYSIJA),
71
  'content'=> str_replace(
72
  array('[link]', '[/link]', '[ajaxlink]', '[/ajaxlink]'),
73
  array('<a title="Anonymous Data" target="_blank" href="http://support.wysija.com/knowledgebase/share-your-data/?utm_source=wpadmin&utm_campaign=welcome_page">', '</a>', '<a id="share_analytics" href="javascript:;">', '</a>'),
74
  __("We know too little about our users. We're looking for [link]anonymous data[/link] to build a better plugin. [ajaxlink]Yes, count me in![/ajaxlink]",WYSIJA))
75
- ),
76
  array(
77
  'title'=>__('Help yourself. Or let us help you.',WYSIJA),
78
  'content'=> str_replace(
79
  array('[link]','[/link]'),
80
  array('<a href="http://support.wysija.com/" target="_blank" title="On our blog!">','</a>'),
81
  __('We got documentation and a ticket system on [link]support.wysija.com[/link]. We answer within 24h.',WYSIJA))
82
- )
83
- ),
84
  'format'=>'three-col',
85
  );
86
 
@@ -100,16 +100,6 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
100
  return true;
101
  }
102
 
103
- /**
104
- * Sometimes our users have a bug where not all of the users from their list are showing up when sending, this is the action to call to fix it
105
- * this is very rare.
106
- */
107
- function fix_lists(){
108
- $hUpdate=WYSIJA::get('update','helper');
109
- $hUpdate->customerRequestMissingSubscriber();
110
- exit;
111
- }
112
-
113
 
114
  /**
115
  * Welcome page for updaters
@@ -123,6 +113,8 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
123
  $helper_readme->scan();
124
  $this->data=array();
125
  $this->data['abouttext']=__('You updated! It\'s like having the next gadget, but better.',WYSIJA);
 
 
126
 
127
  $is_multisite=is_multisite();
128
  $is_network_admin=WYSIJA::current_user_can('manage_network');
@@ -138,6 +130,8 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
138
 
139
 
140
  $major_release=true;
 
 
141
  $except_version=array('2.4.1', '2.4.2');
142
  $wysija_version=WYSIJA::get_version();
143
  if(!in_array($wysija_version,$except_version) && count(explode('.', $wysija_version))>2) $major_release=false;
@@ -190,65 +184,74 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
190
  'format'=>'three-col',
191
  );
192
  }else{
193
- // list of polls from poll daddy
194
- $polls=array();
195
- $polls[7177099]=__('Where do you send your newsletters?', WYSIJA);
196
- $polls[7199642]=__('How many users on this site create and send newsletters?', WYSIJA);
197
- $polls[7199625]=__('You\'re installing this plugin for...', WYSIJA);
198
- $polls[7196766]=__('How would you feel if you could no longer use us?', WYSIJA);
199
- $polls[7196752]=__('Pick one improvement which is an absolute must', WYSIJA);
200
- $polls[7196784]=__('If our Premium was sold as a monthly payment, instead of a yearly payment, would you consider purchasing it?', WYSIJA);
201
- $polls[7196911]=__('On how many sites have you installed our plugin in the last year?', WYSIJA);
202
- $polls[7196646]=__('How many WordPress sites do you create every year?', WYSIJA);
203
- $polls[7196742]=__('When you installed our plugin, it was to...', WYSIJA);
204
- $polls[7196756]=__('How did you find out about Wysija?', WYSIJA);
205
- $polls[7196770]=__('How much money did you spend on Premium themes or plugins in the past year?', WYSIJA);
206
- $polls[7196783]=__('What other emailing solutions do you use?', WYSIJA);
207
- $polls[7196798]=__('What\'s the most annoying thing with our current version?', WYSIJA);
208
- $polls[7196805]=__('Have you had problems with your newsletters being marked as spam?', WYSIJA);
209
-
210
- // get the list of polls with the number of views for each
211
- $polls_views=get_option('wysija_polls_views');
212
- if(empty($polls_views)){
213
- $polls_views=array();
214
- // this one has been the first poll we've used so we consider that everyone viewed it already once
215
- $polls_views[7177099]=1;
216
- }
217
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
 
219
- // make sure that we record each poll
220
- foreach($polls as $poll_id => $poll_title){
221
- if(!isset($polls_views[$poll_id])) $polls_views[$poll_id]=0;
222
- }
223
 
224
- // group polls by total view
225
- $polls_grouped_by_total_view = array();
226
- foreach($polls_views as $pollid =>$views){
227
- $polls_grouped_by_total_view[$views][]=$pollid;
228
- }
229
- // order them
230
- ksort($polls_grouped_by_total_view);
231
 
232
- // get the series of polls that has been viewed the least
233
- $polls_with_least_views = array_shift($polls_grouped_by_total_view);
 
 
 
 
 
234
 
235
- // pull one poll out of that array
236
- $random_key = array_rand($polls_with_least_views);
237
- $poll_id_selected = $polls_with_least_views[$random_key];
238
- $polls_views[$poll_id_selected]++;
239
 
240
- WYSIJA::update_option('wysija_polls_views', $polls_views);
 
 
 
241
 
242
- $this->data['polls'][$poll_id_selected]= $polls[$poll_id_selected];
243
- // poll
244
- $this->data['sections'][] = array(
245
- 'title' => __('A new poll to get to know you better', WYSIJA),
246
- 'type' => 'poll'
247
- );
 
 
 
248
  }
249
 
250
  $msg=$model_config->getValue('ignore_msgs');
251
- if(!isset($msg['ctaupdate'])){
252
  $this->data['sections'][]=array(
253
  'title'=>__('Keep this plugin essentially free',WYSIJA),
254
  'review'=>array(
@@ -1390,9 +1393,9 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
1390
  $config=WYSIJA::get('config','model');
1391
  //get the filters
1392
  if(isset($_REQUEST['search']) && $_REQUEST['search']){
1393
- $this->filters["like"]=array();
1394
  foreach($this->searchable as $field)
1395
- $this->filters["like"][$field]=$_REQUEST['search'];
1396
  }
1397
 
1398
  if(isset($_REQUEST['filter-list']) && $_REQUEST['filter-list']){
@@ -1400,10 +1403,13 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
1400
  }
1401
 
1402
  if(isset($_REQUEST['filter-date']) && $_REQUEST['filter-date']){
1403
- $this->filters["greater_eq"]=array('created_at'=>$_REQUEST['filter-date']);
1404
- $this->filters["less_eq"]=array('created_at'=>strtotime("+1 month",$_REQUEST['filter-date']));
1405
  }
1406
 
 
 
 
1407
  if(isset($_REQUEST['link_filter']) && $_REQUEST['link_filter']){
1408
  $linkfilters=explode('-',$_REQUEST['link_filter']);
1409
 
@@ -1412,7 +1418,6 @@ class WYSIJA_control_back_campaigns extends WYSIJA_control_back{
1412
  }else{
1413
  $this->_addLinkFilter($_REQUEST['link_filter']);
1414
  }
1415
-
1416
  }
1417
 
1418
  $this->modelObj->noCheck=true;
23
  function welcome_new(){
24
  $this->title=$this->viewObj->title=__('Welcome Page!',WYSIJA);
25
  $this->jsTrans['instalwjp']=__('Installing Wysija Newsletter Premium plugin',WYSIJA);
26
+ $helper_readme=WYSIJA::get('readme','helper');
27
+ $helper_readme->scan();
28
  $this->data=array();
29
  $this->data['abouttext']=__('A Brand New Wysija. Let the Fun Begin.',WYSIJA);
30
 
31
+ $model_config=WYSIJA::get('config','model');
32
  $is_multisite=is_multisite();
33
  $is_network_admin=WYSIJA::current_user_can('manage_network');
34
  if($is_multisite && $is_network_admin){
35
+ $model_config->save(array('ms_wysija_whats_new'=>WYSIJA::get_version()));
36
  }else{
37
+ $model_config->save(array('wysija_whats_new'=>WYSIJA::get_version()));
38
  }
39
 
40
  //add a new language code with a new video
45
  $video_language['ar']='http://www.youtube.com/embed/cyDHlX_qgOo';
46
 
47
  if(defined('WPLANG') && WPLANG!='' && isset($video_language[WPLANG])){
48
+ $welcome_video_link = $video_language[WPLANG];
49
  }else{
50
+ $welcome_video_link = $video_language['en_EN'];
51
  }
52
 
53
  $this->data['sections'][]=array(
65
  array(
66
  'title'=>__('5 minute newbie guide',WYSIJA),
67
  'content'=>__('Your Wysija comes with an example newsletter. You\'ll see it when you close this welcome page. Edit it to start playing with it.',WYSIJA)
68
+ ),
69
  array(
70
  'title'=>__('Share your data',WYSIJA),
71
  'content'=> str_replace(
72
  array('[link]', '[/link]', '[ajaxlink]', '[/ajaxlink]'),
73
  array('<a title="Anonymous Data" target="_blank" href="http://support.wysija.com/knowledgebase/share-your-data/?utm_source=wpadmin&utm_campaign=welcome_page">', '</a>', '<a id="share_analytics" href="javascript:;">', '</a>'),
74
  __("We know too little about our users. We're looking for [link]anonymous data[/link] to build a better plugin. [ajaxlink]Yes, count me in![/ajaxlink]",WYSIJA))
75
+ ),
76
  array(
77
  'title'=>__('Help yourself. Or let us help you.',WYSIJA),
78
  'content'=> str_replace(
79
  array('[link]','[/link]'),
80
  array('<a href="http://support.wysija.com/" target="_blank" title="On our blog!">','</a>'),
81
  __('We got documentation and a ticket system on [link]support.wysija.com[/link]. We answer within 24h.',WYSIJA))
82
+ )
83
+ ),
84
  'format'=>'three-col',
85
  );
86
 
100
  return true;
101
  }
102
 
 
 
 
 
 
 
 
 
 
 
103
 
104
  /**
105
  * Welcome page for updaters
113
  $helper_readme->scan();
114
  $this->data=array();
115
  $this->data['abouttext']=__('You updated! It\'s like having the next gadget, but better.',WYSIJA);
116
+ // this is a flag to have a pretty clean update page where teh only call to action is our survey
117
+ $show_survey=false;
118
 
119
  $is_multisite=is_multisite();
120
  $is_network_admin=WYSIJA::current_user_can('manage_network');
130
 
131
 
132
  $major_release=true;
133
+
134
+ // those are point release exceptions for which we were advertising the features. we probably can remove that now
135
  $except_version=array('2.4.1', '2.4.2');
136
  $wysija_version=WYSIJA::get_version();
137
  if(!in_array($wysija_version,$except_version) && count(explode('.', $wysija_version))>2) $major_release=false;
184
  'format'=>'three-col',
185
  );
186
  }else{
187
+ $show_survey=true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
+ if($show_survey){
190
+ $this->data['sections'][] = array(
191
+ 'title' => __('4 min survey to better understand what you need',WYSIJA),
192
+ 'type' => 'survey'
193
+ );
194
+ }else{ // this is the part about the survey
195
+ // list of polls from poll daddy
196
+ $polls=array();
197
+ $polls[7177099]=__('Where do you send your newsletters?', WYSIJA);
198
+ $polls[7199642]=__('How many users on this site create and send newsletters?', WYSIJA);
199
+ $polls[7199625]=__('You\'re installing this plugin for...', WYSIJA);
200
+ $polls[7196766]=__('How would you feel if you could no longer use us?', WYSIJA);
201
+ $polls[7196752]=__('Pick one improvement which is an absolute must', WYSIJA);
202
+ $polls[7196784]=__('If our Premium was sold as a monthly payment, instead of a yearly payment, would you consider purchasing it?', WYSIJA);
203
+ $polls[7196911]=__('On how many sites have you installed our plugin in the last year?', WYSIJA);
204
+ $polls[7196646]=__('How many WordPress sites do you create every year?', WYSIJA);
205
+ $polls[7196742]=__('When you installed our plugin, it was to...', WYSIJA);
206
+ $polls[7196756]=__('How did you find out about Wysija?', WYSIJA);
207
+ $polls[7196770]=__('How much money did you spend on Premium themes or plugins in the past year?', WYSIJA);
208
+ $polls[7196783]=__('What other emailing solutions do you use?', WYSIJA);
209
+ $polls[7196798]=__('What\'s the most annoying thing with our current version?', WYSIJA);
210
+ $polls[7196805]=__('Have you had problems with your newsletters being marked as spam?', WYSIJA);
211
+
212
+ // get the list of polls with the number of views for each
213
+ $polls_views=get_option('wysija_polls_views');
214
+ if(empty($polls_views)){
215
+ $polls_views=array();
216
+ // this one has been the first poll we've used so we consider that everyone viewed it already once
217
+ $polls_views[7177099]=1;
218
+ }
219
 
 
 
 
 
220
 
221
+ // make sure that we record each poll
222
+ foreach($polls as $poll_id => $poll_title){
223
+ if(!isset($polls_views[$poll_id])) $polls_views[$poll_id]=0;
224
+ }
 
 
 
225
 
226
+ // group polls by total view
227
+ $polls_grouped_by_total_view = array();
228
+ foreach($polls_views as $pollid =>$views){
229
+ $polls_grouped_by_total_view[$views][]=$pollid;
230
+ }
231
+ // order them
232
+ ksort($polls_grouped_by_total_view);
233
 
234
+ // get the series of polls that has been viewed the least
235
+ $polls_with_least_views = array_shift($polls_grouped_by_total_view);
 
 
236
 
237
+ // pull one poll out of that array
238
+ $random_key = array_rand($polls_with_least_views);
239
+ $poll_id_selected = $polls_with_least_views[$random_key];
240
+ $polls_views[$poll_id_selected]++;
241
 
242
+ WYSIJA::update_option('wysija_polls_views', $polls_views);
243
+
244
+ $this->data['polls'][$poll_id_selected]= $polls[$poll_id_selected];
245
+ // poll
246
+ $this->data['sections'][] = array(
247
+ 'title' => __('A new poll to get to know you better', WYSIJA),
248
+ 'type' => 'poll'
249
+ );
250
+ }
251
  }
252
 
253
  $msg=$model_config->getValue('ignore_msgs');
254
+ if(!isset($msg['ctaupdate']) && !$show_survey){
255
  $this->data['sections'][]=array(
256
  'title'=>__('Keep this plugin essentially free',WYSIJA),
257
  'review'=>array(
1393
  $config=WYSIJA::get('config','model');
1394
  //get the filters
1395
  if(isset($_REQUEST['search']) && $_REQUEST['search']){
1396
+ $this->filters['like']=array();
1397
  foreach($this->searchable as $field)
1398
+ $this->filters['like'][$field]=$_REQUEST['search'];
1399
  }
1400
 
1401
  if(isset($_REQUEST['filter-list']) && $_REQUEST['filter-list']){
1403
  }
1404
 
1405
  if(isset($_REQUEST['filter-date']) && $_REQUEST['filter-date']){
1406
+ $this->filters['greater_eq']=array('created_at'=>$_REQUEST['filter-date']);
1407
+ $this->filters['less_eq']=array('created_at'=>strtotime('+1 month',$_REQUEST['filter-date']));
1408
  }
1409
 
1410
+ $this->filters['is'] = array('type'=>'IS NOT NULL');
1411
+
1412
+
1413
  if(isset($_REQUEST['link_filter']) && $_REQUEST['link_filter']){
1414
  $linkfilters=explode('-',$_REQUEST['link_filter']);
1415
 
1418
  }else{
1419
  $this->_addLinkFilter($_REQUEST['link_filter']);
1420
  }
 
1421
  }
1422
 
1423
  $this->modelObj->noCheck=true;
controllers/back/subscribers.php CHANGED
@@ -68,6 +68,10 @@ class WYSIJA_control_back_subscribers extends WYSIJA_control_back{
68
  }
69
  }
70
 
 
 
 
 
71
  }
72
 
73
  //if a confirmation email needs to be sent then we send it
68
  }
69
  }
70
 
71
+ }else{
72
+ // if no list is selected we unsubscribe them all
73
+ $modelUL->reset();
74
+ $modelUL->update(array('unsub_date'=>time(),'sub_date'=>0),array('user_id'=>$id));
75
  }
76
 
77
  //if a confirmation email needs to be sent then we send it
controllers/front/confirm.php CHANGED
@@ -269,7 +269,7 @@ class WYSIJA_control_front_confirm extends WYSIJA_control_front{
269
  $config=WYSIJA::get('config','model');
270
  $dbloptin=$config->getValue('confirm_dbleoptin');
271
  //1 - insert new user_list
272
- if(isset($_POST['wysija']['user_list']) && $_POST['wysija']['user_list']){
273
  $modelUL->reset();
274
  $modelUL->update(array('sub_date'=>time()),array('user_id'=>$id));
275
  foreach($_POST['wysija']['user_list']['list_id'] as $list_id){
269
  $config=WYSIJA::get('config','model');
270
  $dbloptin=$config->getValue('confirm_dbleoptin');
271
  //1 - insert new user_list
272
+ if(isset($_POST['wysija']['user_list']['list_id']) && $_POST['wysija']['user_list']['list_id']){
273
  $modelUL->reset();
274
  $modelUL->update(array('sub_date'=>time()),array('user_id'=>$id));
275
  foreach($_POST['wysija']['user_list']['list_id'] as $list_id){
core/base.php CHANGED
@@ -740,30 +740,30 @@ class WYSIJA extends WYSIJA_object{
740
 
741
 
742
  //check first if a subscribers exists if it doesn't then let's insert it
743
- $modelC=WYSIJA::get('config','model');
744
- $modelUser=WYSIJA::get('user','model');
745
- $modelUser->getFormat=ARRAY_A; // there is one case where we were getting an object instead of an array
746
- $subscriber_exists=$modelUser->getOne(array('user_id'),array('email'=>$data->user_email));
747
- $modelUser->reset();
748
- if($subscriber_exists){
749
- $uid=$subscriber_exists['user_id'];
750
-
751
- }else{
752
- $modelUser->noCheck=true;
753
-
754
- $firstname=$data->first_name;
755
- $lastname=$data->last_name;
756
- if(!$data->first_name && !$data->last_name) $firstname=$data->display_name;
757
 
758
- $uid=$modelUser->insert(array('email'=>$data->user_email,'wpuser_id'=>$data->ID,'firstname'=>$firstname,'lastname'=>$lastname,'status'=>$modelC->getValue('confirm_dbleoptin')));
 
 
759
 
 
 
 
 
 
 
 
 
760
  }
761
 
762
- $modelUL=WYSIJA::get('user_list','model');
763
- $modelUL->insert(array('user_id'=>$uid,'list_id'=>$modelC->getValue('importwp_list_id'),'sub_date'=>time()),true);
764
 
765
- $helperUser=WYSIJA::get('user','helper');
766
- $helperUser->sendAutoNl($uid,$data,'new-user');
767
  return true;
768
  }
769
 
@@ -776,44 +776,44 @@ class WYSIJA extends WYSIJA_object{
776
  $data=get_userdata($user_id);
777
 
778
  //check first if a subscribers exists if it doesn't then let's insert it
779
- $modelUser=WYSIJA::get('user','model');
780
- $modelC=WYSIJA::get('config','model');
781
- $modelUL=WYSIJA::get('user_list','model');
782
 
783
- $subscriber_exists=$modelUser->getOne(array('user_id'),array('email'=>$data->user_email));
784
 
785
- $modelUser->reset();
786
 
787
- $firstname=$data->first_name;
788
- $lastname=$data->last_name;
789
- if(!$data->first_name && !$data->last_name) $firstname=$data->display_name;
790
 
791
  if($subscriber_exists){
792
- $uid=$subscriber_exists['user_id'];
793
 
794
- $modelUser->update(array('email'=>$data->user_email,'firstname'=>$firstname,'lastname'=>$lastname),array('wpuser_id'=>$data->ID));
795
 
796
- $result=$modelUL->getOne(false,array('user_id'=>$uid,'list_id'=>$modelC->getValue('importwp_list_id')));
797
- $modelUL->reset();
798
  if(!$result)
799
- $modelUL->insert(array('user_id'=>$uid,'list_id'=>$modelC->getValue('importwp_list_id'),'sub_date'=>time()));
800
  }else{
801
  //chck that we didnt update the email
802
- $subscriber_exists=$modelUser->getOne(false,array('wpuser_id'=>$data->ID));
803
 
804
  if($subscriber_exists){
805
- $uid=$subscriber_exists['user_id'];
806
 
807
- $modelUser->update(array('email'=>$data->user_email,'firstname'=>$firstname,'lastname'=>$lastname),array('wpuser_id'=>$data->ID));
808
 
809
- $result=$modelUL->getOne(false,array('user_id'=>$uid,'list_id'=>$modelC->getValue('importwp_list_id')));
810
- $modelUL->reset();
811
  if(!$result)
812
- $modelUL->insert(array('user_id'=>$uid,'list_id'=>$modelC->getValue('importwp_list_id'),'sub_date'=>time()));
813
  }else{
814
- $modelUser->noCheck=true;
815
- $uid=$modelUser->insert(array('email'=>$data->user_email,'wpuser_id'=>$data->ID,'firstname'=>$firstname,'lastname'=>$lastname,'status'=>$modelC->getValue('confirm_dbleoptin')));
816
- $modelUL->insert(array('user_id'=>$uid,'list_id'=>$modelC->getValue('importwp_list_id'),'sub_date'=>time()));
817
  }
818
  }
819
  return true;
@@ -824,12 +824,12 @@ class WYSIJA extends WYSIJA_object{
824
  * @param type $user_id
825
  */
826
  public static function hook_del_WP_subscriber($user_id) {
827
- $modelConf=WYSIJA::get('config','model');
828
- $modelUser=WYSIJA::get('user','model');
829
- $data=$modelUser->getOne(array('email','user_id'),array('wpuser_id'=>$user_id));
830
- $modelUser->delete(array('email'=>$data['email']));
831
- $modelUser=WYSIJA::get('user_list','model');
832
- $modelUser->delete(array('user_id'=>$data['user_id'],'list_id'=>$modelConf->getValue('importwp_list_id')));
833
  }
834
 
835
  /**
@@ -842,16 +842,16 @@ class WYSIJA extends WYSIJA_object{
842
  public static function hook_postNotification_transition($new_status, $old_status, $post) {
843
  //we run some process only if the status of the post changes from something to publish
844
  if( $new_status=='publish' && $old_status!=$new_status){
845
- $modelEmail = WYSIJA::get('email', 'model');
846
- $emails = $modelEmail->get(false, array('type' => 2, 'status' => array(1, 3, 99)));
847
  if(!empty($emails)){
848
  //we loop through all of the automatic emails
849
  foreach($emails as $key => $email) {
850
  //we will try to give birth to a child email only if the automatic newsletter is a post notification email and in immediate mode
851
  if(is_array($email) && $email['params']['autonl']['event'] === 'new-articles' && $email['params']['autonl']['when-article'] === 'immediate') {
852
  WYSIJA::log('post_transition_hook_give_birth',array('postID'=>$post->ID,'postID'=>$post->post_title,'old_status'=>$old_status,'new_status'=>$new_status),'post_notif');
853
- $modelEmail->reset();
854
- $modelEmail->give_birth($email, $post->ID);
855
  }
856
  }
857
  }
@@ -1097,10 +1097,15 @@ class WYSIJA extends WYSIJA_object{
1097
  //call the cron url
1098
 
1099
  $cron_url=site_url( 'wp-cron.php').'?'.WYSIJA_CRON.'&action=wysija_cron&process='.implode(',',$processesToRun).'&silent=1';
 
 
 
 
1100
 
 
1101
  //TODO we should use the http class there
1102
- $hHTTP=WYSIJA::get('http','helper');
1103
- $hHTTP->request_timeout($cron_url);
1104
 
1105
  }
1106
  }
@@ -1142,7 +1147,11 @@ class WYSIJA extends WYSIJA_object{
1142
  add_action('user_register', array('WYSIJA', 'hook_add_WP_subscriber'), 1);
1143
  add_action('added_existing_user', array('WYSIJA', 'hook_add_WP_subscriber'), 1);
1144
  add_action('profile_update', array('WYSIJA', 'hook_edit_WP_subscriber'), 1);
 
1145
  add_action('delete_user', array('WYSIJA', 'hook_del_WP_subscriber'), 1);
 
 
 
1146
 
1147
  // post notif trigger
1148
  add_action('transition_post_status', array('WYSIJA', 'hook_postNotification_transition'), 1, 3);
740
 
741
 
742
  //check first if a subscribers exists if it doesn't then let's insert it
743
+ $model_config=WYSIJA::get('config','model');
744
+ $model_user=WYSIJA::get('user','model');
745
+ $model_user->getFormat=ARRAY_A; // there is one case where we were getting an object instead of an array
746
+ $subscriber_exists=$model_user->getOne(array('user_id'),array('email'=>$data->user_email));
 
 
 
 
 
 
 
 
 
 
747
 
748
+ $first_name=$data->first_name;
749
+ $last_name=$data->last_name;
750
+ if(!$data->first_name && !$data->last_name) $first_name=$data->display_name;
751
 
752
+ $model_user->reset();
753
+ if($subscriber_exists){
754
+ $user_id=$subscriber_exists['user_id'];
755
+ // we need to update the current subscriber using it's id
756
+ $model_user->update(array('wpuser_id'=>$data->ID,'firstname'=>$first_name,'lastname'=>$last_name),array('user_id'=>$user_id));
757
+ }else{
758
+ $model_user->noCheck=true;
759
+ $user_id=$model_user->insert(array('email'=>$data->user_email,'wpuser_id'=>$data->ID,'firstname'=>$first_name,'lastname'=>$last_name,'status'=>$model_config->getValue('confirm_dbleoptin')));
760
  }
761
 
762
+ $model_user_list=WYSIJA::get('user_list','model');
763
+ $model_user_list->insert(array('user_id'=>$user_id,'list_id'=>$model_config->getValue('importwp_list_id'),'sub_date'=>time()),true);
764
 
765
+ $helper_user=WYSIJA::get('user','helper');
766
+ $helper_user->sendAutoNl($user_id,$data,'new-user');
767
  return true;
768
  }
769
 
776
  $data=get_userdata($user_id);
777
 
778
  //check first if a subscribers exists if it doesn't then let's insert it
779
+ $model_user=WYSIJA::get('user','model');
780
+ $model_config=WYSIJA::get('config','model');
781
+ $model_user_list=WYSIJA::get('user_list','model');
782
 
783
+ $subscriber_exists=$model_user->getOne(array('user_id'),array('email'=>$data->user_email));
784
 
785
+ $model_user->reset();
786
 
787
+ $first_name=$data->first_name;
788
+ $last_name=$data->last_name;
789
+ if(!$data->first_name && !$data->last_name) $first_name=$data->display_name;
790
 
791
  if($subscriber_exists){
792
+ $user_id=$subscriber_exists['user_id'];
793
 
794
+ $model_user->update(array('wpuser_id'=>$data->ID, 'email'=>$data->user_email,'firstname'=>$first_name,'lastname'=>$last_name),array('user_id'=>$user_id));
795
 
796
+ $result=$model_user_list->getOne(false,array('user_id'=>$user_id,'list_id'=>$model_config->getValue('importwp_list_id')));
797
+ $model_user_list->reset();
798
  if(!$result)
799
+ $model_user_list->insert(array('user_id'=>$user_id,'list_id'=>$model_config->getValue('importwp_list_id'),'sub_date'=>time()));
800
  }else{
801
  //chck that we didnt update the email
802
+ $subscriber_exists=$model_user->getOne(false,array('wpuser_id'=>$data->ID));
803
 
804
  if($subscriber_exists){
805
+ $user_id=$subscriber_exists['user_id'];
806
 
807
+ $model_user->update(array('email'=>$data->user_email,'firstname'=>$first_name,'lastname'=>$last_name),array('wpuser_id'=>$data->ID));
808
 
809
+ $result=$model_user_list->getOne(false,array('user_id'=>$user_id,'list_id'=>$model_config->getValue('importwp_list_id')));
810
+ $model_user_list->reset();
811
  if(!$result)
812
+ $model_user_list->insert(array('user_id'=>$user_id,'list_id'=>$model_config->getValue('importwp_list_id'),'sub_date'=>time()));
813
  }else{
814
+ $model_user->noCheck=true;
815
+ $user_id=$model_user->insert(array('email'=>$data->user_email,'wpuser_id'=>$data->ID,'firstname'=>$first_name,'lastname'=>$last_name,'status'=>$model_config->getValue('confirm_dbleoptin')));
816
+ $model_user_list->insert(array('user_id'=>$user_id,'list_id'=>$model_config->getValue('importwp_list_id'),'sub_date'=>time()));
817
  }
818
  }
819
  return true;
824
  * @param type $user_id
825
  */
826
  public static function hook_del_WP_subscriber($user_id) {
827
+ $model_config=WYSIJA::get('config','model');
828
+ $model_user=WYSIJA::get('user','model');
829
+ $data = $model_user->getOne(array('email','user_id'),array('wpuser_id'=>$user_id));
830
+ $model_user->delete(array('email'=>$data['email']));
831
+ $model_user=WYSIJA::get('user_list','model');
832
+ $model_user->delete(array('user_id'=>$data['user_id'],'list_id'=>$model_config->getValue('importwp_list_id')));
833
  }
834
 
835
  /**
842
  public static function hook_postNotification_transition($new_status, $old_status, $post) {
843
  //we run some process only if the status of the post changes from something to publish
844
  if( $new_status=='publish' && $old_status!=$new_status){
845
+ $model_email = WYSIJA::get('email', 'model');
846
+ $emails = $model_email->get(false, array('type' => 2, 'status' => array(1, 3, 99)));
847
  if(!empty($emails)){
848
  //we loop through all of the automatic emails
849
  foreach($emails as $key => $email) {
850
  //we will try to give birth to a child email only if the automatic newsletter is a post notification email and in immediate mode
851
  if(is_array($email) && $email['params']['autonl']['event'] === 'new-articles' && $email['params']['autonl']['when-article'] === 'immediate') {
852
  WYSIJA::log('post_transition_hook_give_birth',array('postID'=>$post->ID,'postID'=>$post->post_title,'old_status'=>$old_status,'new_status'=>$new_status),'post_notif');
853
+ $model_email->reset();
854
+ $model_email->give_birth($email, $post->ID);
855
  }
856
  }
857
  }
1097
  //call the cron url
1098
 
1099
  $cron_url=site_url( 'wp-cron.php').'?'.WYSIJA_CRON.'&action=wysija_cron&process='.implode(',',$processesToRun).'&silent=1';
1100
+ $cron_request = apply_filters( 'cron_request', array(
1101
+ 'url' => $cron_url,
1102
+ 'args' => array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) )
1103
+ ) );
1104
 
1105
+ wp_remote_post( $cron_url, $cron_request['args'] );
1106
  //TODO we should use the http class there
1107
+ //$hHTTP=WYSIJA::get('http','helper');
1108
+ //$hHTTP->request_timeout($cron_url);
1109
 
1110
  }
1111
  }
1147
  add_action('user_register', array('WYSIJA', 'hook_add_WP_subscriber'), 1);
1148
  add_action('added_existing_user', array('WYSIJA', 'hook_add_WP_subscriber'), 1);
1149
  add_action('profile_update', array('WYSIJA', 'hook_edit_WP_subscriber'), 1);
1150
+ // for standard blog
1151
  add_action('delete_user', array('WYSIJA', 'hook_del_WP_subscriber'), 1);
1152
+ // for multisite
1153
+ add_action('deleted_user', array('WYSIJA', 'hook_del_WP_subscriber'), 1);
1154
+
1155
 
1156
  // post notif trigger
1157
  add_action('transition_post_status', array('WYSIJA', 'hook_postNotification_transition'), 1, 3);
core/model.php CHANGED
@@ -25,7 +25,7 @@ class WYSIJA_model extends WYSIJA_object{
25
  var $joins=array();
26
  var $ignore = false;
27
  var $sql_error=false;
28
- var $comparisonKeys = array('equal', 'notequal', 'like', 'greater', 'less', 'greater_eq', 'less_eq');
29
 
30
  function WYSIJA_model($extensions=''){
31
  if(defined('WYSIJA_DBG') && WYSIJA_DBG>0) $this->dbg=true;
@@ -305,10 +305,15 @@ class WYSIJA_model extends WYSIJA_object{
305
  if(is_numeric($condVal) === false) $condVal = '"'.$condVal.'"';
306
  $conditions[]=$condK.' <= '.$condVal;
307
  break;
 
 
 
 
308
  }
309
  }
310
 
311
  }
 
312
  $query.=' WHERE '.implode(' AND ',$conditions);
313
  }
314
 
@@ -809,7 +814,7 @@ class WYSIJA_model extends WYSIJA_object{
809
  }
810
  } else {
811
  foreach($conditions as $key => $cond) {
812
- if(!in_array($key, array('like','equal','notequal','greater','less','greater_eq','less_eq'))){
813
  if($this->colCheck && !$this->checkAreColumns($conditions)) return false;
814
  if(array_key_exists('equal', $this->conditions) === false) $this->conditions['equal'] = array();
815
  $this->conditions['equal'][$key] = $cond;
25
  var $joins=array();
26
  var $ignore = false;
27
  var $sql_error=false;
28
+ var $comparisonKeys = array('equal', 'notequal', 'like', 'greater', 'less', 'greater_eq', 'less_eq', 'is');
29
 
30
  function WYSIJA_model($extensions=''){
31
  if(defined('WYSIJA_DBG') && WYSIJA_DBG>0) $this->dbg=true;
305
  if(is_numeric($condVal) === false) $condVal = '"'.$condVal.'"';
306
  $conditions[]=$condK.' <= '.$condVal;
307
  break;
308
+ case 'is':
309
+
310
+ $conditions[]=$condK.' '.$condVal;
311
+ break;
312
  }
313
  }
314
 
315
  }
316
+
317
  $query.=' WHERE '.implode(' AND ',$conditions);
318
  }
319
 
814
  }
815
  } else {
816
  foreach($conditions as $key => $cond) {
817
+ if(!in_array($key, $this->comparisonKeys /*array('like','equal','notequal','greater','less','greater_eq','less_eq')*/)){
818
  if($this->colCheck && !$this->checkAreColumns($conditions)) return false;
819
  if(array_key_exists('equal', $this->conditions) === false) $this->conditions['equal'] = array();
820
  $this->conditions['equal'][$key] = $cond;
css/admin-campaigns.css CHANGED
@@ -1 +1 @@
1
- #icon-edit-news{background:url(../img/mail-big.png) no-repeat scroll 0 8px transparent}#TB_window{display:block}.moredetails{display:none}.sending,.scheduled{background-color:#d5f0e6}.autonl.sending{background-color:#D7E6F2}#wysija-campaign .listmissing{background-color:#EFD5D5}#preview-receiver{width:230px;vertical-align:middle;margin:0 5px 0 0}.ml-submit{margin:15px 15px 0 15px}.automatic-nl{display:none}#titlediv .titlebox{font-size:1.7em;background-color:#FFFFFF;border-color:#CCCCCC;line-height:100%;outline:medium none;padding:3px 8px;width:100%}label .description{cursor:auto}.about-wrap .feature-section.three-col div{float:left;margin-right:5%;width:28%}#socials-block div{float:none;margin:5px 5px 2px 0;width:100%}.progress_bar{padding-bottom:10px}.progress_bar .bar{display:block;width:200px;height:22px;float:left;margin-right:10px;background:#eef6fc;border:1px solid #bbbbbb;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;line-height:22px;position:relative}.progress_bar .progress{display:block;background:#69b1e9;height:100%}.progress_bar .percent{height:100%;position:absolute;top:0px;left:10px}#wysija-badge{position:absolute;top:0;right:0;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.3);padding-top:91px;height:50px;width:173px;font-weight:bold;font-size:14px;text-align:center;margin:0 -5px;background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/wysija-badge.png") no-repeat}#review-follow{position:relative;height:177px}#review-follow div{float:left;top:0}#review-follow .review-left{background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/update_page/save-the-kitten.jpg") no-repeat;height:175px;background-color:#f8f8f8;border-top:1px solid #efefef;border-bottom:1px solid #efefef;padding-right:10px}#review-follow h4{margin:0 !important}#review-follow .review-left.small{width:450px}#review-follow .review-left.medium{width:490px}#review-follow .review-left.large{width:540px}#review-follow .small .description{margin-top:24px}#review-follow .medium .description{margin-top:20px}#review-follow .large .description{margin-top:18px}#review-follow .review-left p{margin-left:20px}#review-follow .review-right{background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/update_page/arrow_middle.jpg") no-repeat;width:62px;height:175px;background-color:#f8f8f8;border-top:1px solid #efefef;border-bottom:1px solid #efefef}#review-follow .socials{margin-left:30px}#review-follow .follow-left{width:300px;height:175px;background-color:#f8f8f8;border-top:1px solid #efefef;border-bottom:1px solid #efefef}#review-follow .follow-right{background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/update_page/arrow_right.jpg") no-repeat;width:100px;height:175px}#review-follow .review-left .description{margin-left:146px}#review-follow .link-cat-review{height:140px;left:20px;position:absolute;top:21px;width:120px;outline:medium none}a.ctaupdate,span.ctaupdate{font-size:12px}.pds-links,.pds-totalvotes-outer{display:none !important}
1
+ #icon-edit-news{background:url(../img/mail-big.png) no-repeat scroll 0 8px transparent}#TB_window{display:block}.moredetails{display:none}.sending,.scheduled{background-color:#d5f0e6}.autonl.sending{background-color:#D7E6F2}#wysija-campaign .listmissing{background-color:#EFD5D5}#preview-receiver{width:230px;vertical-align:middle;margin:0 5px 0 0}.ml-submit{margin:15px 15px 0 15px}.automatic-nl{display:none}#titlediv .titlebox{font-size:1.7em;background-color:#FFFFFF;border-color:#CCCCCC;line-height:100%;outline:medium none;padding:3px 8px;width:100%}label .description{cursor:auto}.about-wrap .feature-section.three-col div{float:left;margin-right:5%;width:28%}#socials-block div{float:none;margin:5px 5px 2px 0;width:100%}.progress_bar{padding-bottom:10px}.progress_bar .bar{display:block;width:200px;height:22px;float:left;margin-right:10px;background:#eef6fc;border:1px solid #bbbbbb;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;line-height:22px;position:relative}.progress_bar .progress{display:block;background:#69b1e9;height:100%}.progress_bar .percent{height:100%;position:absolute;top:0px;left:10px}#wysija-badge{position:absolute;top:0;right:0;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.3);padding-top:91px;height:50px;width:173px;font-weight:bold;font-size:14px;text-align:center;margin:0 -5px;background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/wysija-badge.png") no-repeat}#review-follow{position:relative;height:177px}#review-follow div{float:left;top:0}#review-follow .review-left{background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/update_page/save-the-kitten.jpg") no-repeat;height:175px;background-color:#f8f8f8;border-top:1px solid #efefef;border-bottom:1px solid #efefef;padding-right:10px}#review-follow h4{margin:0 !important}#review-follow .review-left.small{width:450px}#review-follow .review-left.medium{width:490px}#review-follow .review-left.large{width:540px}#review-follow .small .description{margin-top:24px}#review-follow .medium .description{margin-top:20px}#review-follow .large .description{margin-top:18px}#review-follow .review-left p{margin-left:20px}#review-follow .review-right{background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/update_page/arrow_middle.jpg") no-repeat;width:62px;height:175px;background-color:#f8f8f8;border-top:1px solid #efefef;border-bottom:1px solid #efefef}#review-follow .socials{margin-left:30px}#review-follow .follow-left{width:300px;height:175px;background-color:#f8f8f8;border-top:1px solid #efefef;border-bottom:1px solid #efefef}#review-follow .follow-right{background:url("http://s-plugins.wordpress.org/wysija-newsletters/assets/update_page/arrow_right.jpg") no-repeat;width:100px;height:175px}#review-follow .review-left .description{margin-left:146px}#review-follow .link-cat-review{height:140px;left:20px;position:absolute;top:21px;width:120px;outline:medium none}a.ctaupdate,span.ctaupdate{font-size:12px}.pds-links,.pds-totalvotes-outer{display:none !important}#polldaddy_embed_0{width:680px;margin-left:-30px}
helpers/back.php CHANGED
@@ -102,7 +102,7 @@ class WYSIJA_help_back extends WYSIJA_help{
102
 
103
  }
104
 
105
- /**
106
  * this function will check the role of the user executing the action, if it's called from another
107
  * WordPress admin page than page.php for instance admin-post.php
108
  * @return boolean
102
 
103
  }
104
 
105
+ /**
106
  * this function will check the role of the user executing the action, if it's called from another
107
  * WordPress admin page than page.php for instance admin-post.php
108
  * @return boolean
helpers/file.php CHANGED
@@ -54,7 +54,8 @@ class WYSIJA_help_file extends WYSIJA_object{
54
  }
55
  if(!file_exists($dirname)){
56
  if(!mkdir($dirname, $mode,true)){
57
- $dirname=false;
 
58
  }
59
  chmod($dirname,$mode);
60
  }
54
  }
55
  if(!file_exists($dirname)){
56
  if(!mkdir($dirname, $mode,true)){
57
+ $this->error('Cannot create folder '.$dirname.' try to create the folder manually');
58
+ return false;
59
  }
60
  chmod($dirname,$mode);
61
  }
helpers/import.php CHANGED
@@ -290,13 +290,13 @@ class WYSIJA_help_import extends WYSIJA_object{
290
 
291
  // in case of a multisite by default we want to import the wp users from the site on which we are running that script
292
  if(!$is_main_site){
293
- $query_select.=' INNER JOIN '.$wpdb->base_prefix.'usermeta ON ( '.$wpdb->base_prefix.$table_name.'.ID = '.$wpdb->base_prefix.'usermeta.user_id )';
294
- $query_select.=' WHERE '.$wpdb->base_prefix."usermeta.meta_key = '".$model->wpprefix."capabilities'";
295
  }
296
 
297
 
298
 
299
  $query="INSERT IGNORE INTO `[wysija]user` $fields ".$query_select;
 
300
  }else {
301
  /* query to save the external plugins subscribers into wysija subsribers*/
302
  $where=$this->generateWhere($connection_info['where']);
290
 
291
  // in case of a multisite by default we want to import the wp users from the site on which we are running that script
292
  if(!$is_main_site){
293
+ $query_select.=' JOIN '.$wpdb->base_prefix.'usermeta as m3 ON ( u1.ID = m3.user_id AND m3.meta_key = \''.$model->wpprefix.'capabilities\' )';
 
294
  }
295
 
296
 
297
 
298
  $query="INSERT IGNORE INTO `[wysija]user` $fields ".$query_select;
299
+
300
  }else {
301
  /* query to save the external plugins subscribers into wysija subsribers*/
302
  $where=$this->generateWhere($connection_info['where']);
helpers/mailer.php CHANGED
@@ -155,8 +155,12 @@ class WYSIJA_help_mailer extends acymailingPHPMailer {
155
  $this->WordWrap = 150;
156
 
157
  if($this->config->getValue('dkim_active') && $this->config->getValue('dkim_pubk') && !$this->isElasticRest && !$this->isSendGridRest){
158
- $this->DKIM_domain = $this->config->getValue('dkim_domain');
159
- $this->DKIM_private = trim($this->config->getValue('dkim_privk'));
 
 
 
 
160
  }
161
 
162
  $this->DKIM_selector = 'wys';
155
  $this->WordWrap = 150;
156
 
157
  if($this->config->getValue('dkim_active') && $this->config->getValue('dkim_pubk') && !$this->isElasticRest && !$this->isSendGridRest){
158
+ if(!function_exists('openssl_sign')){
159
+ $this->error(__('You cannot use the DKIM signature option...',WYSIJA).' '.__('The PHP Extension openssl is not enabled on your server. Ask your host to enable it if you want to use an SSL connection.',WYSIJA));
160
+ }else{
161
+ $this->DKIM_domain = $this->config->getValue('dkim_domain');
162
+ $this->DKIM_private = trim($this->config->getValue('dkim_privk'));
163
+ }
164
  }
165
 
166
  $this->DKIM_selector = 'wys';
helpers/update.php CHANGED
@@ -5,7 +5,7 @@ class WYSIJA_help_update extends WYSIJA_object{
5
  function WYSIJA_help_update(){
6
  $this->modelWysija=new WYSIJA_model();
7
  //IMPORTANT when making db updated or running update processes, add the version and in the big switch below in the runUpdate() method
8
- $this->updates=array('1.1','2.0','2.1','2.1.6','2.1.7','2.1.8','2.2','2.2.1','2.3.3','2.3.4', '2.4', '2.4.1', '2.4.3','2.4.4','2.5');
9
  }
10
 
11
 
5
  function WYSIJA_help_update(){
6
  $this->modelWysija=new WYSIJA_model();
7
  //IMPORTANT when making db updated or running update processes, add the version and in the big switch below in the runUpdate() method
8
+ $this->updates=array('1.1','2.0','2.1','2.1.6','2.1.7','2.1.8','2.2','2.2.1','2.3.3','2.3.4', '2.4', '2.4.1', '2.4.3','2.4.4','2.5','2.5.2');
9
  }
10
 
11
 
helpers/user.php CHANGED
@@ -794,14 +794,14 @@ class WYSIJA_help_user extends WYSIJA_object{
794
 
795
  /**
796
  * function used to update the synchronisation with a plugin list or WP's one table
797
- * @global type $wpdb
798
- * @param type $listid
799
- * @param type $total means total synch of the whole user base, it's used for multisite and the WordPress users list
800
  * @return type
801
  */
802
- function synchList($listid,$total=false){
803
  $model=WYSIJA::get('list','model');
804
- $data=$model->getOne(false,array('list_id'=>(int)$listid,'is_enabled'=>'0'));
805
 
806
  if($data){
807
 
@@ -833,17 +833,18 @@ class WYSIJA_help_user extends WYSIJA_object{
833
  $ismainsite=false;
834
  }
835
  }
 
836
  $connection_info=array('name'=>'WordPress',
837
- 'pk'=>'ID',
838
- 'matches'=>array('ID'=>'wpuser_id','user_email'=>'email','display_name'=>'firstname'),
839
- 'matchesvar'=>array('status'=>1));
840
 
841
  $importHelper=WYSIJA::get('import','helper');
842
  $lists_ids=array(
843
  'wysija_list_main_id'=>$data['list_id']
844
  );
845
 
846
- $importHelper->import($data['namekey'],$connection_info,false,$total,$lists_ids);
847
 
848
  $this->cleanWordpressUsersList();
849
 
794
 
795
  /**
796
  * function used to update the synchronisation with a plugin list or WP's one table
797
+ * @global object $wpdb
798
+ * @param int $list_id
799
+ * @param boolean $synch_all_wp_user_base means complete synch of the whole user base, it's used for multisite and the WordPress users list
800
  * @return type
801
  */
802
+ function synchList($list_id, $synch_all_wp_user_base = false){
803
  $model=WYSIJA::get('list','model');
804
+ $data=$model->getOne(false,array('list_id'=>(int)$list_id,'is_enabled'=>'0'));
805
 
806
  if($data){
807
 
833
  $ismainsite=false;
834
  }
835
  }
836
+
837
  $connection_info=array('name'=>'WordPress',
838
+ 'pk'=>'ID',
839
+ 'matches'=>array('ID'=>'wpuser_id', 'user_email'=>'email' , 'first_name'=>'firstname' , 'last_name'=>'lastname'),
840
+ 'matchesvar'=>array('status'=>1));
841
 
842
  $importHelper=WYSIJA::get('import','helper');
843
  $lists_ids=array(
844
  'wysija_list_main_id'=>$data['list_id']
845
  );
846
 
847
+ $importHelper->import($data['namekey'],$connection_info,false,$synch_all_wp_user_base,$lists_ids);
848
 
849
  $this->cleanWordpressUsersList();
850
 
helpers/wj_engine.php CHANGED
@@ -877,17 +877,13 @@ class WYSIJA_help_wj_engine extends WYSIJA_object {
877
  $params['post_limit'] = 1;
878
  }else{
879
  //we set the post_date to filter articles only older than the last time we sent articles
880
- if(isset($email['params']['autonl']['lastSend'])){
881
- $params['post_date'] = $email['params']['autonl']['lastSend'];
882
- }else{
883
- //get the latest child newsletter sent_at value
884
- $mEmail=WYSIJA::get('email','model');
885
- $mEmail->reset();
886
- $mEmail->orderBy('email_id','DESC');
887
- $lastEmailSent=$mEmail->getOne(false,array('campaign_id'=>$email['campaign_id'],'type'=>'1'));
888
-
889
- if(isset($data['sent_at'])) $params['post_date'] = $lastEmailSent['sent_at'];
890
- }
891
  }
892
 
893
 
877
  $params['post_limit'] = 1;
878
  }else{
879
  //we set the post_date to filter articles only older than the last time we sent articles
880
+ //get the latest child newsletter sent_at value
881
+ $mEmail=WYSIJA::get('email','model');
882
+ $mEmail->reset();
883
+ $mEmail->orderBy('email_id','DESC');
884
+ $lastEmailSent=$mEmail->getOne(false,array('campaign_id'=>$email['campaign_id'],'type'=>'1'));
885
+
886
+ if(!empty($lastEmailSent)) $params['post_date'] = $lastEmailSent['sent_at'];
 
 
 
 
887
  }
888
 
889
 
index.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Wysija Newsletters
4
  Plugin URI: http://www.wysija.com/
5
  Description: Create and send newsletters. Import and manage your lists. Add subscription forms in widgets, articles and pages. Wysija is a freemium plugin updated regularly with new features.
6
- Version: 2.5.2
7
  Author: Wysija
8
  Author URI: http://www.wysija.com/
9
  License: GPLv2 or later
3
  Plugin Name: Wysija Newsletters
4
  Plugin URI: http://www.wysija.com/
5
  Description: Create and send newsletters. Import and manage your lists. Add subscription forms in widgets, articles and pages. Wysija is a freemium plugin updated regularly with new features.
6
+ Version: 2.5.4
7
  Author: Wysija
8
  Author URI: http://www.wysija.com/
9
  License: GPLv2 or later
js/tinymce/themes/advanced/skins/highcontrast/content.css DELETED
@@ -1,24 +0,0 @@
1
- body, td, pre { margin:8px;}
2
- body.mceForceColors {background:#FFF; color:#000;}
3
- h1 {font-size: 2em}
4
- h2 {font-size: 1.5em}
5
- h3 {font-size: 1.17em}
6
- h4 {font-size: 1em}
7
- h5 {font-size: .83em}
8
- h6 {font-size: .75em}
9
- .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
10
- a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;}
11
- span.mceItemNbsp {background: #DDD}
12
- td.mceSelected, th.mceSelected {background-color:#3399ff !important}
13
- img {border:0;}
14
- table, img, hr, .mceItemAnchor {cursor:default}
15
- table td, table th {cursor:text}
16
- ins {border-bottom:1px solid green; text-decoration: none; color:green}
17
- del {color:red; text-decoration:line-through}
18
- cite {border-bottom:1px dashed blue}
19
- acronym {border-bottom:1px dotted #CCC; cursor:help}
20
- abbr {border-bottom:1px dashed #CCC; cursor:help}
21
-
22
- img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
23
- font[face=mceinline] {font-family:inherit !important}
24
- *[contentEditable]:focus {outline:0}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/highcontrast/dialog.css DELETED
@@ -1,106 +0,0 @@
1
- /* Generic */
2
- body {
3
- font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
4
- background:#F0F0EE;
5
- color: black;
6
- padding:0;
7
- margin:8px 8px 0 8px;
8
- }
9
-
10
- html {background:#F0F0EE; color:#000;}
11
- td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
12
- textarea {resize:none;outline:none;}
13
- a:link, a:visited {color:black;background-color:transparent;}
14
- a:hover {color:#2B6FB6;background-color:transparent;}
15
- .nowrap {white-space: nowrap}
16
-
17
- /* Forms */
18
- fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
19
- legend {color:#2B6FB6; font-weight:bold;}
20
- label.msg {display:none;}
21
- label.invalid {color:#EE0000; display:inline;background-color:transparent;}
22
- input.invalid {border:1px solid #EE0000;background-color:transparent;}
23
- input {background:#FFF; border:1px solid #CCC;color:black;}
24
- input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
25
- input, select, textarea {border:1px solid #808080;}
26
- input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
27
- input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
28
- .input_noborder {border:0;}
29
-
30
- /* Buttons */
31
- #insert, #cancel, input.button, .updateButton {
32
- font-weight:bold;
33
- width:94px; height:23px;
34
- cursor:pointer;
35
- padding-bottom:2px;
36
- float:left;
37
- }
38
-
39
- #cancel {float:right}
40
-
41
- /* Browse */
42
- a.pickcolor, a.browse {text-decoration:none}
43
- a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
44
- .mceOldBoxModel a.browse span {width:22px; height:20px;}
45
- a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
46
- a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
47
- a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
48
- a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
49
- .mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
50
- a.pickcolor:hover span {background-color:#B2BBD0;}
51
- a.pickcolor:hover span.disabled {}
52
-
53
- /* Charmap */
54
- table.charmap {border:1px solid #AAA; text-align:center}
55
- td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
56
- #charmap a {display:block; color:#000; text-decoration:none; border:0}
57
- #charmap a:hover {background:#CCC;color:#2B6FB6}
58
- #charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}
59
- #charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
60
-
61
- /* Source */
62
- .wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
63
- .mceActionPanel {margin-top:5px;}
64
-
65
- /* Tabs classes */
66
- .tabs {width:100%; height:18px; line-height:normal;}
67
- .tabs ul {margin:0; padding:0; list-style:none;}
68
- .tabs li {float:left; border: 1px solid black; border-bottom:0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block; cursor:pointer;}
69
- .tabs li.current {font-weight: bold; margin-right:2px;}
70
- .tabs span {float:left; display:block; padding:0px 10px 0 0;}
71
- .tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}
72
- .tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
73
-
74
- /* Panels */
75
- .panel_wrapper div.panel {display:none;}
76
- .panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
77
- .panel_wrapper {border:1px solid #919B9C; padding:10px; padding-top:5px; clear:both; background:white;}
78
-
79
- /* Columns */
80
- .column {float:left;}
81
- .properties {width:100%;}
82
- .properties .column1 {}
83
- .properties .column2 {text-align:left;}
84
-
85
- /* Titles */
86
- h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
87
- h3 {font-size:14px;}
88
- .title {font-size:12px; font-weight:bold; color:#2B6FB6;}
89
-
90
- /* Dialog specific */
91
- #link .panel_wrapper, #link div.current {height:125px;}
92
- #image .panel_wrapper, #image div.current {height:200px;}
93
- #plugintable thead {font-weight:bold; background:#DDD;}
94
- #plugintable, #about #plugintable td {border:1px solid #919B9C;}
95
- #plugintable {width:96%; margin-top:10px;}
96
- #pluginscontainer {height:290px; overflow:auto;}
97
- #colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
98
- #colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
99
- #colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
100
- #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
101
- #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
102
- #colorpicker #light div {overflow:hidden;}
103
- #colorpicker .panel_wrapper div.current {height:175px;}
104
- #colorpicker #namedcolors {width:150px;}
105
- #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
106
- #colorpicker #colornamecontainer {margin-top:5px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/highcontrast/ui.css DELETED
@@ -1,106 +0,0 @@
1
- /* Reset */
2
- .highcontrastSkin table, .highcontrastSkin tbody, .highcontrastSkin a, .highcontrastSkin img, .highcontrastSkin tr, .highcontrastSkin div, .highcontrastSkin td, .highcontrastSkin iframe, .highcontrastSkin span, .highcontrastSkin *, .highcontrastSkin .mceText {border:0; margin:0; padding:0; vertical-align:baseline; border-collapse:separate;}
3
- .highcontrastSkin a:hover, .highcontrastSkin a:link, .highcontrastSkin a:visited, .highcontrastSkin a:active {text-decoration:none; font-weight:normal; cursor:default;}
4
- .highcontrastSkin table td {vertical-align:middle}
5
-
6
- .highcontrastSkin .mceIconOnly {display: block !important;}
7
-
8
- /* External */
9
- .highcontrastSkin .mceExternalToolbar {position:absolute; border:1px solid; border-bottom:0; display:none; background-color: white;}
10
- .highcontrastSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
11
- .highcontrastSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px;}
12
-
13
- /* Layout */
14
- .highcontrastSkin table.mceLayout {border: 1px solid;}
15
- .highcontrastSkin .mceIframeContainer {border-top:1px solid; border-bottom:1px solid}
16
- .highcontrastSkin .mceStatusbar a:hover {text-decoration:underline}
17
- .highcontrastSkin .mceStatusbar {display:block; line-height:1.5em; overflow:visible;}
18
- .highcontrastSkin .mceStatusbar div {float:left}
19
- .highcontrastSkin .mceStatusbar a.mceResize {display:block; float:right; width:20px; height:20px; cursor:se-resize; outline:0}
20
-
21
- .highcontrastSkin .mceToolbar td { display: inline-block; float: left;}
22
- .highcontrastSkin .mceToolbar tr { display: block;}
23
- .highcontrastSkin .mceToolbar table { display: block; }
24
-
25
- /* Button */
26
-
27
- .highcontrastSkin .mceButton { display:block; margin: 2px; padding: 5px 10px;border: 1px solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -ms-border-radius: 3px; height: 2em;}
28
- .highcontrastSkin .mceButton .mceVoiceLabel { height: 100%; vertical-align: center; line-height: 2em}
29
- .highcontrastSkin .mceButtonDisabled .mceVoiceLabel { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);}
30
- .highcontrastSkin .mceButtonActive, .highcontrastSkin .mceButton:focus, .highcontrastSkin .mceButton:active { border: 5px solid; padding: 1px 6px;-webkit-focus-ring-color:none;outline:none;}
31
-
32
- /* Separator */
33
- .highcontrastSkin .mceSeparator {display:block; width:16px; height:26px;}
34
-
35
- /* ListBox */
36
- .highcontrastSkin .mceListBox { display: block; margin:2px;-webkit-focus-ring-color:none;outline:none;}
37
- .highcontrastSkin .mceListBox .mceText {padding: 5px 6px; line-height: 2em; width: 15ex; overflow: hidden;}
38
- .highcontrastSkin .mceListBoxDisabled .mceText { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);}
39
- .highcontrastSkin .mceListBox a.mceText { padding: 5px 10px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;}
40
- .highcontrastSkin .mceListBox a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-left: 0; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;}
41
- .highcontrastSkin .mceListBox:focus a.mceText, .highcontrastSkin .mceListBox:active a.mceText { border-width: 5px; padding: 1px 10px 1px 6px;}
42
- .highcontrastSkin .mceListBox:focus a.mceOpen, .highcontrastSkin .mceListBox:active a.mceOpen { border-width: 5px; padding: 1px 0px 1px 4px;}
43
-
44
- .highcontrastSkin .mceListBoxMenu {overflow-y:auto}
45
-
46
- /* SplitButton */
47
- .highcontrastSkin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
48
-
49
- .highcontrastSkin .mceSplitButton { border-collapse: collapse; margin: 2px; height: 2em; line-height: 2em;-webkit-focus-ring-color:none;outline:none;}
50
- .highcontrastSkin .mceSplitButton td { display: table-cell; float: none; margin: 0; padding: 0; height: 2em;}
51
- .highcontrastSkin .mceSplitButton tr { display: table-row; }
52
- .highcontrastSkin table.mceSplitButton { display: table; }
53
- .highcontrastSkin .mceSplitButton a.mceAction { padding: 5px 10px; display: block; height: 2em; line-height: 2em; overflow: hidden; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;}
54
- .highcontrastSkin .mceSplitButton a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;}
55
- .highcontrastSkin .mceSplitButton .mceVoiceLabel { height: 2em; vertical-align: center; line-height: 2em; }
56
- .highcontrastSkin .mceSplitButton:focus a.mceAction, .highcontrastSkin .mceSplitButton:active a.mceAction { border-width: 5px; border-right-width: 1px; padding: 1px 10px 1px 6px;-webkit-focus-ring-color:none;outline:none;}
57
- .highcontrastSkin .mceSplitButton:focus a.mceOpen, .highcontrastSkin .mceSplitButton:active a.mceOpen { border-width: 5px; border-left-width: 1px; padding: 1px 0px 1px 4px;-webkit-focus-ring-color:none;outline:none;}
58
-
59
- /* Menu */
60
- .highcontrastSkin .mceNoIcons span.mceIcon {width:0;}
61
- .highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; direction:ltr}
62
- .highcontrastSkin .mceMenu table {background:white; color: black}
63
- .highcontrastSkin .mceNoIcons a .mceText {padding-left:10px}
64
- .highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black}
65
- .highcontrastSkin .mceMenu td {height:2em}
66
- .highcontrastSkin .mceMenu a {position:relative;padding:3px 0 4px 0; display: block;}
67
- .highcontrastSkin .mceMenu .mceText {position:relative; display:block; cursor:default; margin:0; padding:0 25px 0 25px;}
68
- .highcontrastSkin .mceMenu pre.mceText {font-family:Monospace}
69
- .highcontrastSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:26px;}
70
- .highcontrastSkin td.mceMenuItemSeparator {border-top:1px solid; height:1px}
71
- .highcontrastSkin .mceMenuItemTitle a {border:0; border-bottom:1px solid}
72
- .highcontrastSkin .mceMenuItemTitle span.mceText {font-weight:bold; padding-left:4px}
73
- .highcontrastSkin .mceNoIcons .mceMenuItemSelected span.mceText:before {content: "\2713\A0";}
74
- .highcontrastSkin .mceMenu span.mceMenuLine {display:none}
75
- .highcontrastSkin .mceMenuItemSub a .mceText:after {content: "\A0\25B8"}
76
- .highcontrastSkin .mceMenuItem td, .highcontrastSkin .mceMenuItem th {line-height: normal}
77
-
78
- /* ColorSplitButton */
79
- .highcontrastSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid; color: #000}
80
- .highcontrastSkin .mceColorSplitMenu td {padding:2px}
81
- .highcontrastSkin .mceColorSplitMenu a {display:block; width:16px; height:16px; overflow:hidden; color:#000; margin: 0; padding: 0;}
82
- .highcontrastSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
83
- .highcontrastSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}
84
- .highcontrastSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid; background-color:#B6BDD2}
85
- .highcontrastSkin a.mceMoreColors:hover {border:1px solid #0A246A; color: #000;}
86
- .highcontrastSkin .mceColorPreview {display:none;}
87
- .highcontrastSkin .mce_forecolor span.mceAction, .highcontrastSkin .mce_backcolor span.mceAction {height:17px;overflow:hidden}
88
-
89
- /* Progress,Resize */
90
- .highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
91
- .highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
92
-
93
- /* Rtl */
94
- .mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
95
- .mceRtl .mceMenuItem .mceText {text-align: right}
96
-
97
- /* Formats */
98
- .highcontrastSkin .mce_p span.mceText {}
99
- .highcontrastSkin .mce_address span.mceText {font-style:italic}
100
- .highcontrastSkin .mce_pre span.mceText {font-family:monospace}
101
- .highcontrastSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
102
- .highcontrastSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
103
- .highcontrastSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
104
- .highcontrastSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
105
- .highcontrastSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
106
- .highcontrastSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/o2k7/content.css DELETED
@@ -1,48 +0,0 @@
1
- body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}
2
- body {background:#FFF;}
3
- body.mceForceColors {background:#FFF; color:#000;}
4
- h1 {font-size: 2em}
5
- h2 {font-size: 1.5em}
6
- h3 {font-size: 1.17em}
7
- h4 {font-size: 1em}
8
- h5 {font-size: .83em}
9
- h6 {font-size: .75em}
10
- .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
11
- a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;}
12
- span.mceItemNbsp {background: #DDD}
13
- td.mceSelected, th.mceSelected {background-color:#3399ff !important}
14
- img {border:0;}
15
- table, img, hr, .mceItemAnchor {cursor:default}
16
- table td, table th {cursor:text}
17
- ins {border-bottom:1px solid green; text-decoration: none; color:green}
18
- del {color:red; text-decoration:line-through}
19
- cite {border-bottom:1px dashed blue}
20
- acronym {border-bottom:1px dotted #CCC; cursor:help}
21
- abbr {border-bottom:1px dashed #CCC; cursor:help}
22
-
23
- /* IE */
24
- * html body {
25
- scrollbar-3dlight-color:#F0F0EE;
26
- scrollbar-arrow-color:#676662;
27
- scrollbar-base-color:#F0F0EE;
28
- scrollbar-darkshadow-color:#DDD;
29
- scrollbar-face-color:#E0E0DD;
30
- scrollbar-highlight-color:#F0F0EE;
31
- scrollbar-shadow-color:#F0F0EE;
32
- scrollbar-track-color:#F5F5F5;
33
- }
34
-
35
- img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
36
- font[face=mceinline] {font-family:inherit !important}
37
- *[contentEditable]:focus {outline:0}
38
-
39
- .mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc}
40
- .mceItemShockWave {background-image:url(../../img/shockwave.gif)}
41
- .mceItemFlash {background-image:url(../../img/flash.gif)}
42
- .mceItemQuickTime {background-image:url(../../img/quicktime.gif)}
43
- .mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)}
44
- .mceItemRealMedia {background-image:url(../../img/realmedia.gif)}
45
- .mceItemVideo {background-image:url(../../img/video.gif)}
46
- .mceItemAudio {background-image:url(../../img/video.gif)}
47
- .mceItemIframe {background-image:url(../../img/iframe.gif)}
48
- .mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/o2k7/dialog.css DELETED
@@ -1,118 +0,0 @@
1
- /* Generic */
2
- body {
3
- font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
4
- scrollbar-3dlight-color:#F0F0EE;
5
- scrollbar-arrow-color:#676662;
6
- scrollbar-base-color:#F0F0EE;
7
- scrollbar-darkshadow-color:#DDDDDD;
8
- scrollbar-face-color:#E0E0DD;
9
- scrollbar-highlight-color:#F0F0EE;
10
- scrollbar-shadow-color:#F0F0EE;
11
- scrollbar-track-color:#F5F5F5;
12
- background:#F0F0EE;
13
- padding:0;
14
- margin:8px 8px 0 8px;
15
- }
16
-
17
- html {background:#F0F0EE;}
18
- td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
19
- textarea {resize:none;outline:none;}
20
- a:link, a:visited {color:black;}
21
- a:hover {color:#2B6FB6;}
22
- .nowrap {white-space: nowrap}
23
-
24
- /* Forms */
25
- fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
26
- legend {color:#2B6FB6; font-weight:bold;}
27
- label.msg {display:none;}
28
- label.invalid {color:#EE0000; display:inline;}
29
- input.invalid {border:1px solid #EE0000;}
30
- input {background:#FFF; border:1px solid #CCC;}
31
- input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
32
- input, select, textarea {border:1px solid #808080;}
33
- input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
34
- input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
35
- .input_noborder {border:0;}
36
-
37
- /* Buttons */
38
- #insert, #cancel, input.button, .updateButton {
39
- border:0; margin:0; padding:0;
40
- font-weight:bold;
41
- width:94px; height:26px;
42
- background:url(../default/img/buttons.png) 0 -26px;
43
- cursor:pointer;
44
- padding-bottom:2px;
45
- float:left;
46
- }
47
-
48
- #insert {background:url(../default/img/buttons.png) 0 -52px}
49
- #cancel {background:url(../default/img/buttons.png) 0 0; float:right}
50
-
51
- /* Browse */
52
- a.pickcolor, a.browse {text-decoration:none}
53
- a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
54
- .mceOldBoxModel a.browse span {width:22px; height:20px;}
55
- a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
56
- a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
57
- a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
58
- a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
59
- .mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
60
- a.pickcolor:hover span {background-color:#B2BBD0;}
61
- a.pickcolor:hover span.disabled {}
62
-
63
- /* Charmap */
64
- table.charmap {border:1px solid #AAA; text-align:center}
65
- td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
66
- #charmap a {display:block; color:#000; text-decoration:none; border:0}
67
- #charmap a:hover {background:#CCC;color:#2B6FB6}
68
- #charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}
69
- #charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
70
-
71
- /* Source */
72
- .wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
73
- .mceActionPanel {margin-top:5px;}
74
-
75
- /* Tabs classes */
76
- .tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;}
77
- .tabs ul {margin:0; padding:0; list-style:none;}
78
- .tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}
79
- .tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}
80
- .tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}
81
- .tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;}
82
- .tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}
83
- .tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
84
-
85
- /* Panels */
86
- .panel_wrapper div.panel {display:none;}
87
- .panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
88
- .panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}
89
-
90
- /* Columns */
91
- .column {float:left;}
92
- .properties {width:100%;}
93
- .properties .column1 {}
94
- .properties .column2 {text-align:left;}
95
-
96
- /* Titles */
97
- h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
98
- h3 {font-size:14px;}
99
- .title {font-size:12px; font-weight:bold; color:#2B6FB6;}
100
-
101
- /* Dialog specific */
102
- #link .panel_wrapper, #link div.current {height:125px;}
103
- #image .panel_wrapper, #image div.current {height:200px;}
104
- #plugintable thead {font-weight:bold; background:#DDD;}
105
- #plugintable, #about #plugintable td {border:1px solid #919B9C;}
106
- #plugintable {width:96%; margin-top:10px;}
107
- #pluginscontainer {height:290px; overflow:auto;}
108
- #colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
109
- #colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
110
- #colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
111
- #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
112
- #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
113
- #colorpicker #light div {overflow:hidden;}
114
- #colorpicker .panel_wrapper div.current {height:175px;}
115
- #colorpicker #namedcolors {width:150px;}
116
- #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
117
- #colorpicker #colornamecontainer {margin-top:5px;}
118
- #colorpicker #picker_panel fieldset {margin:auto;width:325px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png DELETED
Binary file
js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png DELETED
Binary file
js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png DELETED
Binary file
js/tinymce/themes/advanced/skins/o2k7/ui.css DELETED
@@ -1,222 +0,0 @@
1
- /* Reset */
2
- .o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}
3
- .o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}
4
- .o2k7Skin table td {vertical-align:middle}
5
-
6
- /* Containers */
7
- .o2k7Skin table {background:transparent}
8
- .o2k7Skin iframe {display:block;}
9
- .o2k7Skin .mceToolbar {height:26px}
10
-
11
- /* External */
12
- .o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none}
13
- .o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
14
- .o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}
15
-
16
- /* Layout */
17
- .o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD}
18
- .o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD}
19
- .o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD}
20
- .o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}
21
- .o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD}
22
- .o2k7Skin td.mceToolbar{background:#E5EFFD}
23
- .o2k7Skin .mceStatusbar {background:#E5EFFD; display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px}
24
- .o2k7Skin .mceStatusbar div {float:left; padding:2px}
25
- .o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0}
26
- .o2k7Skin .mceStatusbar a:hover {text-decoration:underline}
27
- .o2k7Skin table.mceToolbar {margin-left:3px}
28
- .o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;}
29
- .o2k7Skin .mceToolbar td.mceFirst span {margin:0}
30
- .o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}
31
- .o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none}
32
- .o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px}
33
- .o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
34
- .o2k7Skin td.mceCenter {text-align:center;}
35
- .o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;}
36
- .o2k7Skin td.mceRight table {margin:0 0 0 auto;}
37
-
38
- /* Button */
39
- .o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}
40
- .o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px}
41
- .o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}
42
- .o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}
43
- .o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}
44
- .o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
45
- .o2k7Skin .mceButtonLabeled {width:auto}
46
- .o2k7Skin .mceButtonLabeled span.mceIcon {float:left}
47
- .o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}
48
- .o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888}
49
-
50
- /* Separator */
51
- .o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}
52
-
53
- /* ListBox */
54
- .o2k7Skin .mceListBox {padding-left: 3px}
55
- .o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block}
56
- .o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}
57
- .o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0}
58
- .o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF}
59
- .o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px}
60
- .o2k7Skin .mceListBoxDisabled .mceText {color:gray}
61
- .o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden; margin-left:3px}
62
- .o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px}
63
- .o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;}
64
-
65
- /* SplitButton */
66
- .o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px; direction:ltr}
67
- .o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}
68
- .o2k7Skin .mceSplitButton a.mceAction {width:22px}
69
- .o2k7Skin .mceSplitButton span.mceAction {width:22px; background-image:url(../../img/icons.gif)}
70
- .o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}
71
- .o2k7Skin .mceSplitButton span.mceOpen {display:none}
72
- .o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}
73
- .o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px}
74
- .o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
75
- .o2k7Skin .mceSplitButtonActive {background-position:0 -44px}
76
-
77
- /* ColorSplitButton */
78
- .o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}
79
- .o2k7Skin .mceColorSplitMenu td {padding:2px}
80
- .o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}
81
- .o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
82
- .o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}
83
- .o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}
84
- .o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}
85
- .o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden}
86
- .o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}
87
-
88
- /* Menu */
89
- .o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD; direction:ltr}
90
- .o2k7Skin .mceNoIcons span.mceIcon {width:0;}
91
- .o2k7Skin .mceNoIcons a .mceText {padding-left:10px}
92
- .o2k7Skin .mceMenu table {background:#FFF}
93
- .o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block}
94
- .o2k7Skin .mceMenu td {height:20px}
95
- .o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0}
96
- .o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}
97
- .o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px}
98
- .o2k7Skin .mceMenu pre.mceText {font-family:Monospace}
99
- .o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}
100
- .o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3}
101
- .o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px}
102
- .o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD}
103
- .o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}
104
- .o2k7Skin .mceMenuItemDisabled .mceText {color:#888}
105
- .o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}
106
- .o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}
107
- .o2k7Skin .mceMenu span.mceMenuLine {display:none}
108
- .o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}
109
- .o2k7Skin .mceMenuItem td, .o2k7Skin .mceMenuItem th {line-height: normal}
110
-
111
- /* Progress,Resize */
112
- .o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
113
- .o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
114
-
115
- /* Rtl */
116
- .mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
117
- .mceRtl .mceMenuItem .mceText {text-align: right}
118
-
119
- /* Formats */
120
- .o2k7Skin .mce_formatPreview a {font-size:10px}
121
- .o2k7Skin .mce_p span.mceText {}
122
- .o2k7Skin .mce_address span.mceText {font-style:italic}
123
- .o2k7Skin .mce_pre span.mceText {font-family:monospace}
124
- .o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
125
- .o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
126
- .o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
127
- .o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
128
- .o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
129
- .o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
130
-
131
- /* Theme */
132
- .o2k7Skin span.mce_bold {background-position:0 0}
133
- .o2k7Skin span.mce_italic {background-position:-60px 0}
134
- .o2k7Skin span.mce_underline {background-position:-140px 0}
135
- .o2k7Skin span.mce_strikethrough {background-position:-120px 0}
136
- .o2k7Skin span.mce_undo {background-position:-160px 0}
137
- .o2k7Skin span.mce_redo {background-position:-100px 0}
138
- .o2k7Skin span.mce_cleanup {background-position:-40px 0}
139
- .o2k7Skin span.mce_bullist {background-position:-20px 0}
140
- .o2k7Skin span.mce_numlist {background-position:-80px 0}
141
- .o2k7Skin span.mce_justifyleft {background-position:-460px 0}
142
- .o2k7Skin span.mce_justifyright {background-position:-480px 0}
143
- .o2k7Skin span.mce_justifycenter {background-position:-420px 0}
144
- .o2k7Skin span.mce_justifyfull {background-position:-440px 0}
145
- .o2k7Skin span.mce_anchor {background-position:-200px 0}
146
- .o2k7Skin span.mce_indent {background-position:-400px 0}
147
- .o2k7Skin span.mce_outdent {background-position:-540px 0}
148
- .o2k7Skin span.mce_link {background-position:-500px 0}
149
- .o2k7Skin span.mce_unlink {background-position:-640px 0}
150
- .o2k7Skin span.mce_sub {background-position:-600px 0}
151
- .o2k7Skin span.mce_sup {background-position:-620px 0}
152
- .o2k7Skin span.mce_removeformat {background-position:-580px 0}
153
- .o2k7Skin span.mce_newdocument {background-position:-520px 0}
154
- .o2k7Skin span.mce_image {background-position:-380px 0}
155
- .o2k7Skin span.mce_help {background-position:-340px 0}
156
- .o2k7Skin span.mce_code {background-position:-260px 0}
157
- .o2k7Skin span.mce_hr {background-position:-360px 0}
158
- .o2k7Skin span.mce_visualaid {background-position:-660px 0}
159
- .o2k7Skin span.mce_charmap {background-position:-240px 0}
160
- .o2k7Skin span.mce_paste {background-position:-560px 0}
161
- .o2k7Skin span.mce_copy {background-position:-700px 0}
162
- .o2k7Skin span.mce_cut {background-position:-680px 0}
163
- .o2k7Skin span.mce_blockquote {background-position:-220px 0}
164
- .o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}
165
- .o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}
166
- .o2k7Skin span.mce_forecolorpicker {background-position:-720px 0}
167
- .o2k7Skin span.mce_backcolorpicker {background-position:-760px 0}
168
-
169
- /* Plugins */
170
- .o2k7Skin span.mce_advhr {background-position:-0px -20px}
171
- .o2k7Skin span.mce_ltr {background-position:-20px -20px}
172
- .o2k7Skin span.mce_rtl {background-position:-40px -20px}
173
- .o2k7Skin span.mce_emotions {background-position:-60px -20px}
174
- .o2k7Skin span.mce_fullpage {background-position:-80px -20px}
175
- .o2k7Skin span.mce_fullscreen {background-position:-100px -20px}
176
- .o2k7Skin span.mce_iespell {background-position:-120px -20px}
177
- .o2k7Skin span.mce_insertdate {background-position:-140px -20px}
178
- .o2k7Skin span.mce_inserttime {background-position:-160px -20px}
179
- .o2k7Skin span.mce_absolute {background-position:-180px -20px}
180
- .o2k7Skin span.mce_backward {background-position:-200px -20px}
181
- .o2k7Skin span.mce_forward {background-position:-220px -20px}
182
- .o2k7Skin span.mce_insert_layer {background-position:-240px -20px}
183
- .o2k7Skin span.mce_insertlayer {background-position:-260px -20px}
184
- .o2k7Skin span.mce_movebackward {background-position:-280px -20px}
185
- .o2k7Skin span.mce_moveforward {background-position:-300px -20px}
186
- .o2k7Skin span.mce_media {background-position:-320px -20px}
187
- .o2k7Skin span.mce_nonbreaking {background-position:-340px -20px}
188
- .o2k7Skin span.mce_pastetext {background-position:-360px -20px}
189
- .o2k7Skin span.mce_pasteword {background-position:-380px -20px}
190
- .o2k7Skin span.mce_selectall {background-position:-400px -20px}
191
- .o2k7Skin span.mce_preview {background-position:-420px -20px}
192
- .o2k7Skin span.mce_print {background-position:-440px -20px}
193
- .o2k7Skin span.mce_cancel {background-position:-460px -20px}
194
- .o2k7Skin span.mce_save {background-position:-480px -20px}
195
- .o2k7Skin span.mce_replace {background-position:-500px -20px}
196
- .o2k7Skin span.mce_search {background-position:-520px -20px}
197
- .o2k7Skin span.mce_styleprops {background-position:-560px -20px}
198
- .o2k7Skin span.mce_table {background-position:-580px -20px}
199
- .o2k7Skin span.mce_cell_props {background-position:-600px -20px}
200
- .o2k7Skin span.mce_delete_table {background-position:-620px -20px}
201
- .o2k7Skin span.mce_delete_col {background-position:-640px -20px}
202
- .o2k7Skin span.mce_delete_row {background-position:-660px -20px}
203
- .o2k7Skin span.mce_col_after {background-position:-680px -20px}
204
- .o2k7Skin span.mce_col_before {background-position:-700px -20px}
205
- .o2k7Skin span.mce_row_after {background-position:-720px -20px}
206
- .o2k7Skin span.mce_row_before {background-position:-740px -20px}
207
- .o2k7Skin span.mce_merge_cells {background-position:-760px -20px}
208
- .o2k7Skin span.mce_table_props {background-position:-980px -20px}
209
- .o2k7Skin span.mce_row_props {background-position:-780px -20px}
210
- .o2k7Skin span.mce_split_cells {background-position:-800px -20px}
211
- .o2k7Skin span.mce_template {background-position:-820px -20px}
212
- .o2k7Skin span.mce_visualchars {background-position:-840px -20px}
213
- .o2k7Skin span.mce_abbr {background-position:-860px -20px}
214
- .o2k7Skin span.mce_acronym {background-position:-880px -20px}
215
- .o2k7Skin span.mce_attribs {background-position:-900px -20px}
216
- .o2k7Skin span.mce_cite {background-position:-920px -20px}
217
- .o2k7Skin span.mce_del {background-position:-940px -20px}
218
- .o2k7Skin span.mce_ins {background-position:-960px -20px}
219
- .o2k7Skin span.mce_pagebreak {background-position:0 -40px}
220
- .o2k7Skin span.mce_restoredraft {background-position:-20px -40px}
221
- .o2k7Skin span.mce_spellchecker {background-position:-540px -20px}
222
- .o2k7Skin span.mce_visualblocks {background-position: -40px -40px}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/o2k7/ui_black.css DELETED
@@ -1,8 +0,0 @@
1
- /* Black */
2
- .o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)}
3
- .o2k7SkinBlack td.mceToolbar, .o2k7SkinBlack td.mceStatusbar, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}
4
- .o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}
5
- .o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}
6
- .o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}
7
- .o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}
8
- .o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
 
 
 
 
 
 
 
 
js/tinymce/themes/advanced/skins/o2k7/ui_silver.css DELETED
@@ -1,5 +0,0 @@
1
- /* Silver */
2
- .o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)}
3
- .o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}
4
- .o2k7SkinSilver .mceListBox .mceText {background:#FFF}
5
- .o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}
 
 
 
 
 
js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png DELETED
Binary file
js/tinymce/themes/advanced/skins/wp_theme/img/button_bg.png DELETED
Binary file
js/tinymce/themes/advanced/skins/wp_theme/img/down_arrow.gif DELETED
Binary file
js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png DELETED
Binary file
js/tinymce/themes/advanced/skins/wp_theme/img/separator.gif DELETED
Binary file
languages/wysija-newsletters-af.mo CHANGED
Binary file
languages/wysija-newsletters-ar.mo CHANGED
Binary file
languages/wysija-newsletters-bg_BG.mo CHANGED
Binary file
languages/wysija-newsletters-bs_BA.mo CHANGED
Binary file
languages/wysija-newsletters-ca.mo CHANGED
Binary file
languages/wysija-newsletters-ca_ES.mo CHANGED
Binary file
languages/wysija-newsletters-cs_CZ.mo CHANGED
Binary file
languages/wysija-newsletters-da_DK.mo CHANGED
Binary file
languages/wysija-newsletters-de_DE.mo CHANGED
Binary file
languages/wysija-newsletters-el.mo CHANGED
Binary file
languages/wysija-newsletters-es_ES.mo CHANGED
Binary file
languages/wysija-newsletters-eu.mo CHANGED
Binary file
languages/wysija-newsletters-fa.mo CHANGED
Binary file
languages/wysija-newsletters-fa_IR.mo CHANGED
Binary file
languages/wysija-newsletters-fi.mo CHANGED
Binary file
languages/wysija-newsletters-fr_FR.mo CHANGED
Binary file
languages/wysija-newsletters-gl_ES.mo CHANGED
Binary file
languages/wysija-newsletters-he_IL.mo CHANGED
Binary file
languages/wysija-newsletters-hi_IN.mo CHANGED
Binary file
languages/wysija-newsletters-hr_HR.mo CHANGED
Binary file
languages/wysija-newsletters-hu_HU.mo CHANGED
Binary file
languages/wysija-newsletters-hy_AM.mo CHANGED
Binary file
languages/wysija-newsletters-id.mo CHANGED
Binary file
languages/wysija-newsletters-it_IT.mo CHANGED
Binary file
languages/wysija-newsletters-ja.mo CHANGED
Binary file
languages/wysija-newsletters-ko_KR.mo CHANGED
Binary file
languages/wysija-newsletters-lv.mo CHANGED
Binary file
languages/wysija-newsletters-mk_MK.mo CHANGED
Binary file
languages/wysija-newsletters-my_MM.mo CHANGED
Binary file
languages/wysija-newsletters-nb_NO.mo CHANGED
Binary file
languages/wysija-newsletters-nl_NL.mo CHANGED
Binary file
languages/wysija-newsletters-pl_PL.mo CHANGED
Binary file
languages/wysija-newsletters-pt_BR.mo CHANGED
Binary file
languages/wysija-newsletters-pt_PT.mo CHANGED
Binary file
languages/wysija-newsletters-ro_RO.mo CHANGED
Binary file
languages/wysija-newsletters-ru_RU.mo CHANGED
Binary file
languages/wysija-newsletters-sk_SK.mo CHANGED
Binary file
languages/wysija-newsletters-sl_SI.mo CHANGED
Binary file
languages/wysija-newsletters-sr_RS.mo CHANGED
Binary file
languages/wysija-newsletters-sr_RS@latin.mo CHANGED
Binary file
languages/wysija-newsletters-sv_SE.mo CHANGED
Binary file
languages/wysija-newsletters-tr_TR.mo CHANGED
Binary file
languages/wysija-newsletters-uk.mo CHANGED
Binary file
languages/wysija-newsletters-ur_PK.mo CHANGED
Binary file
languages/wysija-newsletters-vi.mo ADDED
Binary file
languages/wysija-newsletters-zh_HK.mo CHANGED
Binary file
languages/wysija-newsletters-zh_TW.mo CHANGED
Binary file
models/email.php CHANGED
@@ -97,20 +97,20 @@ class WYSIJA_model_email extends WYSIJA_model{
97
 
98
  return true;
99
  }
100
-
101
  /**
102
  * trigger on Update
103
  */
104
  function afterUpdate($result_save_id){
105
  //First reply-to address (name + email) is a default value for next newsletter
106
- $model_config=WYSIJA::get('config','model');
107
  if(!$model_config->getValue('replyto_name') || !$model_config->getValue('replyto_email')){
108
  $email = $this->getOne(false,array('email_id'=>$result_save_id));
109
  $model_config->save(array(
110
  'replyto_name' => $email['replyto_name'],
111
  'replyto_email' => $email['replyto_email']
112
  ));
113
- }
114
  return true;
115
  }
116
 
97
 
98
  return true;
99
  }
100
+
101
  /**
102
  * trigger on Update
103
  */
104
  function afterUpdate($result_save_id){
105
  //First reply-to address (name + email) is a default value for next newsletter
106
+ $model_config=WYSIJA::get('config','model');
107
  if(!$model_config->getValue('replyto_name') || !$model_config->getValue('replyto_email')){
108
  $email = $this->getOne(false,array('email_id'=>$result_save_id));
109
  $model_config->save(array(
110
  'replyto_name' => $email['replyto_name'],
111
  'replyto_email' => $email['replyto_email']
112
  ));
113
+ }
114
  return true;
115
  }
116
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: wysija, benheu
3
  Tags: newsletter, newsletters, newsletter signup, newsletter widget, subscribers, post notification, email subscription, email alerts, automatic newsletter, auto newsletter, autoresponder, follow up, email marketing, email, emailing, subscription
4
  Requires at least: 3.3
5
  Tested up to: 3.5
6
- Stable tag: 2.5.2
7
  Send newsletters, post notifications or autoresponders from WordPress easily, and beautifully.
8
 
9
  == Description ==
@@ -143,6 +143,22 @@ We got a User Voice page where you can [add or vote for new features](http://wys
143
 
144
  == Changelog ==
145
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  = 2.5.2 - 2013-06-26 =
147
  * fixed confusing text alignment not applied in the visual editor's tiny MCE
148
  * fixed autosave on step 2, the newsletter editor
3
  Tags: newsletter, newsletters, newsletter signup, newsletter widget, subscribers, post notification, email subscription, email alerts, automatic newsletter, auto newsletter, autoresponder, follow up, email marketing, email, emailing, subscription
4
  Requires at least: 3.3
5
  Tested up to: 3.5
6
+ Stable tag: 2.5.4
7
  Send newsletters, post notifications or autoresponders from WordPress easily, and beautifully.
8
 
9
  == Description ==
143
 
144
  == Changelog ==
145
 
146
+ = 2.5.4 - 2013-07-13 =
147
+ * fixed broken sending process when DKIM is activated but the openSSL php library goes missing
148
+ * fixed missing update procedure of 2.5.2 for bulk confirm
149
+ * fixed daily post notification sending sometimes one day old posts
150
+ * fixed SQL error on user to subscriber synch
151
+ * fixed frontend notice on subscriptions modifications
152
+ * fixed delete automatic newsletters
153
+ * fixed remove one user from all mailing lists at a time from the admin interface
154
+ * added reply-to address in advanced settings
155
+
156
+ = 2.5.3 - 2013-06-27 =
157
+ * added hook to delete wysija subscribers when a WP multisite user is deleted
158
+ * fixed Wysija's cron page view auto trigger creating some errors on some servers
159
+ * fixed WordPress user auto import as wysija subscribers on multisite
160
+ * fixed rendering issue 2.5.2
161
+
162
  = 2.5.2 - 2013-06-26 =
163
  * fixed confusing text alignment not applied in the visual editor's tiny MCE
164
  * fixed autosave on step 2, the newsletter editor
tools/templates/email_v2/block_content.html DELETED
@@ -1,37 +0,0 @@
1
- {if ! $background_color}{set var="$background_color" value="$styles.body.background"}{/if}
2
- <div style="{if $background_color}background-color:{$background_color|color};{/if}clear:both; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">
3
- <table style="border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin: auto;" width="{#block_width|default:600}">
4
- <tr style="{if $background_color}background-color:{$background_color|color};{/if}">
5
- <td style="{if $background_color}background-color:{$background_color|color};{/if}clear:both;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-top:10px;padding-bottom:10px;padding-left:18px;padding-right:18px;" width="{#block_width|default:600}">
6
- <div style="width:564px;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding:0;">
7
- {if #image}
8
- {if !$image_alignment}{set var="$image_alignment" value="#image.alignment"}{/if}
9
- {set var="$container_width" value="564"}
10
- {set var="$container_height" value="#image.height"}
11
- {if #text}
12
- {if $image_alignment != 'center'}
13
- {set var="$container_width" value="#image.width|inc:13"}
14
- {set var="$container_height" value="#image.height|inc:3"}
15
- {/if}
16
- {if $image_alignment == 'center'}
17
- {set var="$container_height" value="#image.height|inc:8"}
18
- {/if}
19
- {/if}
20
- <div class="wysija-image-container align-{$image_alignment}" style="width:{$container_width}px;height:{$container_height}px;max-height:{$container_height}px;overflow:hidden;">
21
- <table align="{$image_alignment}" border="0" cellpadding="0" cellspacing="0" style="{if $background_color}border:1px solid {$background_color|color};{/if}border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0;">
22
- <tr style="{if $background_color}background-color:{$background_color|color};{/if}">
23
- <td style="{if $background_color}background-color:{$background_color|color};{/if}mso-table-lspace:0;mso-table-rspace:0;clear:both;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;" height="{$container_height}" width="{$container_width}" valign="top" align="{$image_alignment}">
24
- {if #image.url}<a href="{#image.url}" style="outline:0;border:0;display:block;height:{#image.height}px;width:{#image.width}px;">{/if}
25
- <img src="{#image.src}" height="{#image.height}" alt="{#image.alt|url_decode|htmlentities}" width="{#image.width}" style="border:0;line-height:0.1em;margin:0;padding:0;" />
26
- {if #image.url}</a>{/if}
27
- </td>
28
- </tr>
29
- </table>
30
- </div>
31
- {/if}
32
- {if #text}{#text.value|base64_decode|format_text}{/if}
33
- </div>
34
- </td>
35
- </tr>
36
- </table>
37
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/templates/email_v2/block_divider.html DELETED
@@ -1,13 +0,0 @@
1
- {if #src}
2
- <div style="{if $background_color}background-color:{$background_color|color};{/if}clear:both; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">
3
- <table style="border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin: auto;" width="600">
4
- <tr>
5
- <td style="clear:both;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-top:10px;padding-bottom:10px;padding-left:18px;padding-right:18px;" width="{#block_width|default:600}">
6
- <div class="wysija-divider-container">
7
- <img src="{#src}" height="{#height}" width="{#width}" alt="" style="border:0;" />
8
- </div>
9
- </td>
10
- </tr>
11
- </table>
12
- </div>
13
- {/if}
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/templates/email_v2/block_gallery.html DELETED
@@ -1,8 +0,0 @@
1
- <div style="{if $background_color}background-color:{$background_color|color};{/if}clear:both; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">
2
- <table style="{if $background_color}background-color:{$background_color|color};{/if}border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin: auto;" width="{#block_width|default:600}"><tr><td style="clear:both;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-top:10px;padding-bottom:10px;padding-left:18px;padding-right:18px;" width="{#block_width|default:600}">
3
- <table align="{#alignment}" width="{#width}" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border-spacing: 0;">
4
- <tr valign="top">
5
- {foreach name="#items" key="j" value="image"}{include file="templates/email_v2/block_gallery_item.html"}{/foreach}
6
- </tr>
7
- </table>
8
- </td></tr></table></div>
 
 
 
 
 
 
 
 
tools/templates/email_v2/block_gallery_item.html DELETED
@@ -1,8 +0,0 @@
1
- {if #image.url}
2
- <td width="{#image.cellWidth}" height="{#image.cellHeight}">
3
- <div class="wysija-image-container align-center" style="height:{#image.height}px; max-height:{#image.height}px;overflow:hidden;">
4
- <a href="{#image.url}">
5
- <img src="{#image.src}" height="{#image.height}" alt="{#image.alt}" width="{#image.width}" style="border:0;line-height:0.1em;" />
6
- </a>
7
- </div>
8
- </td>{/if}
 
 
 
 
 
 
 
 
tools/templates/email_v2/block_raw.html DELETED
@@ -1,2 +0,0 @@
1
- <div style="width:{#block_width|default:564}px;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding:0;">{#raw|base64_decode}</div>
2
-
 
 
tools/templates/email_v2/block_template.html DELETED
@@ -1,2 +0,0 @@
1
- {set var="$template" concat="templates/email_v2/block_,#type,.html"}
2
- {include file="$template"}
 
 
tools/templates/email_v2/email_template.html DELETED
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6
- <title>{#subject|default:Wysija template}</title>
7
- <style type="text/css">
8
- {#css}
9
- </style>
10
- </head>
11
- <body bgcolor="{#styles.html.background|color}" {if #is_rtl} dir="rtl" {/if} style="background:{#styles.html.background|color};color:{#styles.body.color|color}; font-family:'{#styles.body.family}';font-size:{#styles.body.size}px;" alink="{#styles.a.color|color}" link="{#styles.a.color|color}" text="{#styles.body.color|color}">
12
- <span id="wysija_wrapper" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; display:block;background:{#styles.html.background|color};">
13
- <table cellspacing="0" id="wysija_container" align="center" style="background:none; border:none; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-color:none; border-spacing:0; margin-bottom:0; margin-left:auto; margin-right:auto; margin-top:0; width:600px;" width="600" cellpadding="0">
14
- <tr>
15
- <td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0;">
16
- {if ! #hide_viewbrowser}<table cellspacing="0" id="wysija_viewbrowser" align="center" style="background:none; background-color:{#styles.html.background|color}; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; width: 600px;" width="600" cellpadding="0"><tr valign="top"><td id="wysija_viewbrowser_content" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0;" width="600"><p style="background-color:{#styles.html.background|color};{if #styles.viewbrowser.color}color:{#styles.viewbrowser.color|color};{/if}font-family:'{#styles.viewbrowser.family}'; font-size:{#styles.viewbrowser.size}px; height:auto; padding:8px; text-align:center;">{#viewbrowser}</p></td></tr></table>{/if}
17
- {#header}
18
- <table cellspacing="0" id="wysija_body" align="center" style="background: none; background-color:{#styles.body.background|color}; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; width: 600px;" width="600" cellpadding="0"><tr valign="top"><td id="wysija_body_content" style="margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;width:600px;" width="600">{#body}</td></tr></table>
19
- {#footer}
20
- {if ! #hide_unsubscribe}<table cellspacing="0" id="wysija_unsubscribe" align="center" style="background:none; background-color:{#styles.html.background|color}; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; width: 600px;" width="600" cellpadding="0"><tr valign="top"><td id="wysija_unsubscribe_content" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0;" width="600"><p style="background-color:{#styles.html.background|color}; color:{#styles.unsubscribe.color|color}; font-family:Verdana; font-size:12px; height:auto; padding:8px; text-align:center;">{#unsubscribe}</p></td></tr></table>{/if}
21
- </td>
22
- </tr>
23
- </table>
24
- </span>
25
- </body>
26
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/templates/email_v2/footer_template.html DELETED
@@ -1,17 +0,0 @@
1
- {if #image}
2
- <table cellspacing="0" id="wysija_footer" align="center" style="background: none; background-color:{#styles.footer.background|color}; border-collapse: collapse; border-spacing: 0; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; width:600px;" width="600" cellpadding="0"><tr valign="top"><td id="wysija_header_content" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0;" width="600">
3
- <div style="clear: both; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">
4
- <table style="border-collapse: collapse; border-spacing: 0; margin: auto;" width="{#block_width|default:564}">
5
- <tr>
6
- {if #image.alignment == 'right'}<td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;" width="{#block_width|dec:#image.width}">&nbsp;</td>{/if}
7
- <td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;" width="{if #image.alignment == 'center'}{#block_width|default:564}{/if}{if #image.alignment != 'center'}{#image.width}{/if}">
8
- <div class="wysija-image-container alone-{#image.alignment}" style="height:{#image.height}px; max-height:{#image.height}px;overflow:hidden;">
9
- {if #image.url}<a href="{#image.url}" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">{/if}<img class="wysija-image-{#image.alignment}" src="{#image.src}" height="{#image.height}" alt="{#image.alt|url_decode|htmlentities}" width="{#image.width}" hspace="0" vspace="0" style="border:0;">{if #image.url}</a>{/if}
10
- </div>
11
- </td>
12
- {if #image.alignment == 'left'}<td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;" width="{#block_width|dec:#image.width}">&nbsp;</td>{/if}
13
- </tr>
14
- </table>
15
- </div>
16
- </td></tr></table>
17
- {/if}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/templates/email_v2/header_template.html DELETED
@@ -1,17 +0,0 @@
1
- {if #image}
2
- <table cellspacing="0" id="wysija_header" align="center" style="background: none; background-color:{#styles.header.background|color}; border-collapse: collapse; border-spacing: 0; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; width:600px;" width="600" cellpadding="0"><tr valign="top"><td id="wysija_header_content" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0;" width="600">
3
- <div style="clear: both; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">
4
- <table style="border-collapse: collapse; border-spacing: 0; margin: auto;" width="{#block_width|default:564}">
5
- <tr>
6
- {if #image.alignment == 'right'}<td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;" width="{#block_width|dec:#image.width}">&nbsp;</td>{/if}
7
- <td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;" width="{if #image.alignment == 'center'}{#block_width|default:564}{/if}{if #image.alignment != 'center'}{#image.width}{/if}">
8
- <div class="wysija-image-container alone-{#image.alignment}" style="height:{#image.height}px; max-height:{#image.height}px;overflow:hidden;">
9
- {if #image.url}<a href="{#image.url}" style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">{/if}<img class="wysija-image-{#image.alignment}" src="{#image.src}" height="{#image.height}" alt="{#image.alt|url_decode|htmlentities}" width="{#image.width}" hspace="0" vspace="0" style="border:0;">{if #image.url}</a>{/if}
10
- </div>
11
- </td>
12
- {if #image.alignment == 'left'}<td style="margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;" width="{#block_width|dec:#image.width}">&nbsp;</td>{/if}
13
- </tr>
14
- </table>
15
- </div>
16
- </td></tr></table>
17
- {/if}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tools/templates/email_v2/index.html DELETED
File without changes
tools/templates/email_v2/unsubscribe_template.html DELETED
@@ -1 +0,0 @@
1
- {loop name="#unsubscribe"}<a href="{#link}" target="_blank">{#label}</a>{if ! #IS_LAST}&nbsp;-&nbsp;{/if}{/loop}<br /><br />{#company_address}
 
tools/templates/email_v2/viewbrowser_template.html DELETED
@@ -1 +0,0 @@
1
- {#pretext}<a href="{#link}" target="_blank">{#label}</a>{#posttext}
 
tools/templates/email_v3/block_content_BACKUP.html DELETED
@@ -1,37 +0,0 @@
1
- {if ! $background_color}{set var="$background_color" value="$styles.body.background"}{/if}
2
- <div style="{if $background_color}background-color:{$background_color|color};{/if}clear:both; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding: 0;">
3
- <table align="left" style="border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0; margin: auto;" width="{#block_width|default:600}">
4
- <tr style="{if $background_color}background-color:{$background_color|color};{/if}">
5
- <td align="left" style="{if $background_color}background-color:{$background_color|color};{/if}clear:both;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-top:10px;padding-bottom:10px;padding-left:18px;padding-right:18px;" width="{#block_width|default:600}">
6
- <div style="width:564px;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding:0;">
7
- {if #image}
8
- {if !$image_alignment}{set var="$image_alignment" value="#image.alignment"}{/if}
9
- {set var="$container_width" value="564"}
10
- {set var="$container_height" value="#image.height"}
11
- {if #text}
12
- {if $image_alignment != 'center'}
13
- {set var="$container_width" value="#image.width|inc:13"}
14
- {set var="$container_height" value="#image.height|inc:3"}
15
- {/if}
16
- {if $image_alignment == 'center'}
17
- {set var="$container_height" value="#image.height|inc:8"}
18
- {/if}
19
- {/if}
20
- <div class="wysija-image-container align-{$image_alignment}" style="width:{$container_width}px;height:{$container_height}px;max-height:{$container_height}px;overflow:hidden;">
21
- <table align="{$image_alignment}" border="0" cellpadding="0" cellspacing="0" style="{if $background_color}border:1px solid {$background_color|color};{/if}border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; border-spacing: 0;">
22
- <tr style="{if $background_color}background-color:{$background_color|color};{/if}">
23
- <td style="{if $background_color}background-color:{$background_color|color};{/if}mso-table-lspace:0;mso-table-rspace:0;clear:both;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;" height="{$container_height}" width="{$container_width}" valign="top" align="{$image_alignment}">
24
- {if #image.url}<a href="{#image.url}" style="outline:0;border:0;display:block;height:{#image.height}px;width:{#image.width}px;">{/if}
25
- <img src="{#image.src}" height="{#image.height}" alt="{#image.alt|url_decode|htmlentities}" width="{#image.width}" style="border:0;line-height:0.1em;margin:0;padding:0;" />
26
- {if #image.url}</a>{/if}
27
- </td>
28
- </tr>
29
- </table>
30
- </div>
31
- {/if}
32
- {if #text}{#text.value|base64_decode|format_text}{/if}
33
- </div>
34
- </td>
35
- </tr>
36
- </table>
37
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
views/back/campaigns.php CHANGED
@@ -2785,17 +2785,34 @@ class WYSIJA_view_back_campaigns extends WYSIJA_view_back{
2785
  $class_added=' removeme';
2786
  }
2787
 
2788
- if(isset($section['type']) && $section['type'] === 'poll') {
2789
- foreach($data['polls'] as $pollid => $polltitle){
 
 
 
 
 
 
 
 
 
 
 
 
2790
  ?>
2791
- <!-- BEGIN: Poll on update -->
2792
- <h3><?php echo $section['title'].$link_hide ?></h3>
2793
- <script type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/<?php echo $pollid ?>.js"></script>
2794
- <noscript><a href="http://polldaddy.com/poll/<?php echo $pollid ?>/"><?php echo $polltitle; ?></a></noscript>
2795
- <br />
2796
- <!-- END: Poll on update -->
 
 
 
 
2797
  <?php
2798
  }
 
2799
  } else {
2800
  ?>
2801
  <div class="changelog <?php echo $class_added ?>">
2785
  $class_added=' removeme';
2786
  }
2787
 
2788
+ if(isset($section['type'])) {
2789
+
2790
+ if($section['type'] === 'poll'){
2791
+ foreach($data['polls'] as $pollid => $polltitle){
2792
+ ?>
2793
+ <!-- BEGIN: Poll on update -->
2794
+ <h3><?php echo $section['title'].$link_hide ?></h3>
2795
+ <script type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/<?php echo $pollid ?>.js"></script>
2796
+ <noscript><a href="http://polldaddy.com/poll/<?php echo $pollid ?>/"><?php echo $polltitle; ?></a></noscript>
2797
+ <br />
2798
+ <!-- END: Poll on update -->
2799
+ <?php
2800
+ }
2801
+ }elseif($section['type'] === 'survey'){
2802
  ?>
2803
+ <script type="text/javascript" src="http://i0.poll.fm/survey.js" charset="UTF-8"></script>
2804
+ <noscript><a href="http://mailpoet.polldaddy.com/s/wysija-user-survey-2013-07"><?php __('4 min survey to better understand what you need',WYSIJA) ?></a></noscript>
2805
+ <script type="text/javascript">
2806
+ polldaddy.add( {
2807
+ type: 'iframe',
2808
+ auto: true,
2809
+ domain: 'mailpoet.polldaddy.com/s/',
2810
+ id: 'wysija-user-survey-2013-07'
2811
+ } );
2812
+ </script>
2813
  <?php
2814
  }
2815
+
2816
  } else {
2817
  ?>
2818
  <div class="changelog <?php echo $class_added ?>">
views/back/config.php CHANGED
@@ -107,7 +107,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
107
 
108
  return $fieldHTML;
109
  }
110
-
111
  function fieldFormHTML_managesubscribe($key,$value,$model,$paramsex){
112
  // second part concerning the checkbox
113
  $formsHelp=WYSIJA::get('forms','helper');
@@ -626,7 +626,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
626
  'label'=>__('Subscribe in registration form',WYSIJA),
627
  'desc'=>__('Allow users who register to your site to subscribe on a list of your choice.',WYSIJA)
628
  );
629
- }
630
 
631
  $modelU=WYSIJA::get('user','model');
632
  $objUser=$modelU->getCurrentSubscriber();
@@ -652,7 +652,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
652
  $step['unsubscribed_subtitle']=array(
653
  'type'=>'input',
654
  'label'=>__('Unsubscribe page content',WYSIJA));
655
-
656
  $modelC=WYSIJA::get('config','model');
657
 
658
  ?>
@@ -1085,14 +1085,20 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
1085
  'type'=>'capabilities',
1086
  '1col'=>1);
1087
 
 
 
 
 
 
 
1088
  $advanced_fields ['bounce_email']=array(
1089
  'type'=>'input',
1090
  'label'=>__('Bounce Email',WYSIJA),
1091
  'desc'=>__('To which address should all the bounced emails go? Get the [link]Premium version[/link] to automatically handle these.',WYSIJA),
1092
  'link'=>'<a class="premium-tab" href="javascript:;" title="'.__('Purchase the premium version.',WYSIJA).'">');
1093
 
1094
- $advanced_fields =apply_filters('wysija_settings_advanced', $advanced_fields );
1095
-
1096
  $modelU=WYSIJA::get('user','model');
1097
  $objUser=$modelU->getCurrentSubscriber();
1098
 
@@ -1108,7 +1114,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
1108
  'values' => array(true => __('Yes', WYSIJA), false => __('No', WYSIJA)),
1109
  'desc' => __('This allows you to modify the HTML of text blocks in the visual editor.', WYSIJA)
1110
  );
1111
-
1112
  $advanced_fields ['analytics']=array(
1113
  'rowclass'=>'analytics',
1114
  'type'=>'radio',
@@ -1117,7 +1123,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
1117
  'desc'=>__('Share anonymous data and help us improve the plugin. [link]Read more[/link].',WYSIJA),
1118
  'link' => '<a target="_blank" href="http://support.wysija.com/knowledgebase/share-your-data/?utm_source=wpadmin&utm_campaign=advanced_settings">'
1119
  );
1120
-
1121
  $advanced_fields ['industry']=array(
1122
  'rowclass'=>'industry',
1123
  'type'=>'dropdown_keyval',
@@ -1157,13 +1163,13 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
1157
  if(WYSIJA::current_user_can('manage_network')) $advanced_fields ['ms_beta_mode'] = $beta_mode_field;
1158
  }else{
1159
  $advanced_fields ['beta_mode'] = $beta_mode_field;
1160
- }
1161
-
1162
  $super_advanced_fields ['subscribers_count']=array(
1163
  'type'=>'subscribers_count',
1164
  'label'=>__('Shortcode to display total number of subscribers',WYSIJA),
1165
  'desc'=>__('Paste this shortcode to display the number of confirmed subscribers in post or page',WYSIJA)
1166
- );
1167
 
1168
  $super_advanced_fields ['advanced_charset']=array(
1169
  'type'=>'dropdown_keyval',
@@ -1194,7 +1200,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
1194
  array('<a href="admin.php?page=wysija_config&action=log">','<a href="admin.php?page=wysija_config&action=clearlog">','</a>','</a>'),
1195
  'View them [link]here[/link]. Clear them [linkclear]here[/linkclear]'));
1196
  }
1197
-
1198
  //attach 'super-advanced' class to super_advanced_fields
1199
  $super_advanced_field_class = 'super-advanced';
1200
  foreach($super_advanced_fields as $key => $field){
@@ -1216,7 +1222,7 @@ class WYSIJA_view_back_config extends WYSIJA_view_back{
1216
  <div class="hide-geeky-options geeky-option">
1217
  <a href="javascript:void(0);">
1218
  <?php echo __('Hide the geeky options',WYSIJA); ?>
1219
- </a>
1220
  <span class=" icon"></span>
1221
  </div>
1222
  </td>
107
 
108
  return $fieldHTML;
109
  }
110
+
111
  function fieldFormHTML_managesubscribe($key,$value,$model,$paramsex){
112
  // second part concerning the checkbox
113
  $formsHelp=WYSIJA::get('forms','helper');
626
  'label'=>__('Subscribe in registration form',WYSIJA),
627
  'desc'=>__('Allow users who register to your site to subscribe on a list of your choice.',WYSIJA)
628
  );
629
+ }
630
 
631
  $modelU=WYSIJA::get('user','model');
632
  $objUser=$modelU->getCurrentSubscriber();
652
  $step['unsubscribed_subtitle']=array(
653
  'type'=>'input',
654
  'label'=>__('Unsubscribe page content',WYSIJA));
655
+
656
  $modelC=WYSIJA::get('config','model');
657
 
658
  ?>
1085
  'type'=>'capabilities',
1086
  '1col'=>1);
1087
 
1088
+ $advanced_fields['replyto_name']=array(
1089
+ 'type'=>'fromname',
1090
+ 'class'=>'validate[required]',
1091
+ 'label'=>__('Reply-to name & email',WYSIJA),
1092
+ 'desc'=>__('You can change the default reply-to name and email for your newsletters. This option is also used for the activation emails and Admin notifications (in Basics).',WYSIJA));
1093
+
1094
  $advanced_fields ['bounce_email']=array(
1095
  'type'=>'input',
1096
  'label'=>__('Bounce Email',WYSIJA),
1097
  'desc'=>__('To which address should all the bounced emails go? Get the [link]Premium version[/link] to automatically handle these.',WYSIJA),
1098
  'link'=>'<a class="premium-tab" href="javascript:;" title="'.__('Purchase the premium version.',WYSIJA).'">');
1099
 
1100
+ $advanced_fields =apply_filters('wysija_settings_advanced', $advanced_fields );
1101
+
1102
  $modelU=WYSIJA::get('user','model');
1103
  $objUser=$modelU->getCurrentSubscriber();
1104
 
1114
  'values' => array(true => __('Yes', WYSIJA), false => __('No', WYSIJA)),
1115
  'desc' => __('This allows you to modify the HTML of text blocks in the visual editor.', WYSIJA)
1116
  );
1117
+
1118
  $advanced_fields ['analytics']=array(
1119
  'rowclass'=>'analytics',
1120
  'type'=>'radio',
1123
  'desc'=>__('Share anonymous data and help us improve the plugin. [link]Read more[/link].',WYSIJA),
1124
  'link' => '<a target="_blank" href="http://support.wysija.com/knowledgebase/share-your-data/?utm_source=wpadmin&utm_campaign=advanced_settings">'
1125
  );
1126
+
1127
  $advanced_fields ['industry']=array(
1128
  'rowclass'=>'industry',
1129
  'type'=>'dropdown_keyval',
1163
  if(WYSIJA::current_user_can('manage_network')) $advanced_fields ['ms_beta_mode'] = $beta_mode_field;
1164
  }else{
1165
  $advanced_fields ['beta_mode'] = $beta_mode_field;
1166
+ }
1167
+
1168
  $super_advanced_fields ['subscribers_count']=array(
1169
  'type'=>'subscribers_count',
1170
  'label'=>__('Shortcode to display total number of subscribers',WYSIJA),
1171
  'desc'=>__('Paste this shortcode to display the number of confirmed subscribers in post or page',WYSIJA)
1172
+ );
1173
 
1174
  $super_advanced_fields ['advanced_charset']=array(
1175
  'type'=>'dropdown_keyval',
1200
  array('<a href="admin.php?page=wysija_config&action=log">','<a href="admin.php?page=wysija_config&action=clearlog">','</a>','</a>'),
1201
  'View them [link]here[/link]. Clear them [linkclear]here[/linkclear]'));
1202
  }
1203
+
1204
  //attach 'super-advanced' class to super_advanced_fields
1205
  $super_advanced_field_class = 'super-advanced';
1206
  foreach($super_advanced_fields as $key => $field){
1222
  <div class="hide-geeky-options geeky-option">
1223
  <a href="javascript:void(0);">
1224
  <?php echo __('Hide the geeky options',WYSIJA); ?>
1225
+ </a>
1226
  <span class=" icon"></span>
1227
  </div>
1228
  </td>