Minimal Coming Soon & Maintenance Mode - Version 1.55

Version Description

  • 2018-02-27
  • added preview to admin bar status/menu
  • GA tracking option no longer takes the whole snippet, just the GA ID
  • a lot of small improvements
  • interface touchup
  • added themes tab with 2 themes + PRO ones
  • PRO is up for sale
  • still on 40k installs; 260k downloads
  • improved readme
Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Minimal Coming Soon & Maintenance Mode
Version 1.55
Comparing to
See all releases

Code changes from version 1.50 to 1.55

Files changed (49) hide show
  1. framework/admin/css/admin.css +125 -17
  2. framework/admin/img/mm-icon-dark.png +0 -0
  3. framework/admin/img/mm-icon.png +0 -0
  4. framework/admin/img/themes/default.jpg +0 -0
  5. framework/admin/img/themes/minimal.jpg +0 -0
  6. framework/admin/img/themes/pro/aeroplane-company.jpg +0 -0
  7. framework/admin/img/themes/pro/bitcoin-miners.jpg +0 -0
  8. framework/admin/img/themes/pro/blogging.jpg +0 -0
  9. framework/admin/img/themes/pro/business-company.jpg +0 -0
  10. framework/admin/img/themes/pro/coffee-shop.jpg +0 -0
  11. framework/admin/img/themes/pro/default.jpg +0 -0
  12. framework/admin/img/themes/pro/dental-clinic.jpg +0 -0
  13. framework/admin/img/themes/pro/dog-training-and-behavior-consulting.jpg +0 -0
  14. framework/admin/img/themes/pro/flower-shop.jpg +0 -0
  15. framework/admin/img/themes/pro/lego-bricks.jpg +0 -0
  16. framework/admin/img/themes/pro/lonely-road.jpg +0 -0
  17. framework/admin/img/themes/pro/luxury-car.jpg +0 -0
  18. framework/admin/img/themes/pro/maintenance-mode.jpg +0 -0
  19. framework/admin/img/themes/pro/makeup-artist-training.jpg +0 -0
  20. framework/admin/img/themes/pro/modern-blog.jpg +0 -0
  21. framework/admin/img/themes/pro/mountain-slide.jpg +0 -0
  22. framework/admin/img/themes/pro/office-theme.jpg +0 -0
  23. framework/admin/img/themes/pro/online-learning.jpg +0 -0
  24. framework/admin/img/themes/pro/pancake-house.jpg +0 -0
  25. framework/admin/img/themes/pro/running-blog.jpg +0 -0
  26. framework/admin/img/themes/pro/shoes-store.jpg +0 -0
  27. framework/admin/img/themes/pro/snowboarding-blog.jpg +0 -0
  28. framework/admin/img/themes/pro/the-big-city-newsletter.jpg +0 -0
  29. framework/admin/img/themes/pro/travel-agency.jpg +0 -0
  30. framework/admin/img/themes/pro/video-production.jpg +0 -0
  31. framework/admin/img/themes/pro/webinar.jpg +0 -0
  32. framework/admin/img/themes/pro/wedding-blog.jpg +0 -0
  33. framework/admin/init.php +187 -16
  34. framework/admin/js/admin.js +34 -20
  35. framework/admin/preview.php +0 -4
  36. framework/admin/views/header.php +1 -2
  37. framework/admin/views/settings-basic.php +9 -7
  38. framework/admin/views/settings-email.php +14 -1
  39. framework/admin/views/settings-support.php +26 -8
  40. framework/admin/views/settings-themes.php +338 -0
  41. framework/admin/views/settings.php +18 -12
  42. framework/init.php +40 -10
  43. framework/public/img/mm-logo.png +0 -0
  44. framework/public/include/functions.php +2 -2
  45. framework/public/init.php +0 -4
  46. framework/public/views/blank.php +2 -3
  47. framework/public/views/html.php +18 -12
  48. minimal-coming-soon-maintenance-mode.php +43 -29
  49. readme.txt +28 -18
framework/admin/css/admin.css CHANGED
@@ -4,7 +4,7 @@
4
  */
5
 
6
  .signals-clearfix {
7
- *zoom: 1;
8
  }
9
  .signals-clearfix:before,
10
  .signals-clearfix:after {
@@ -82,9 +82,19 @@
82
  padding: 19px 18px 15px 24px;
83
  }
84
  .signals-tile .signals-tile-title {
85
- font-size: 14px;
86
- letter-spacing: 0.5px;
87
  font-weight: bold;
 
 
 
 
 
 
 
 
 
 
88
  }
89
  .signals-tile .signals-tile-title span {
90
  font-weight: normal;
@@ -100,7 +110,7 @@
100
  }
101
  .signals-tile .signals-tile-body ul li a {
102
  text-decoration: none;
103
- margin-right: 4px;
104
  }
105
  .signals-section-content {
106
  margin-top: 30px;
@@ -114,6 +124,7 @@
114
  color: #888888;
115
  margin: 0;
116
  padding: 0;
 
117
  }
118
  .signals-main-menu li a {
119
  display: block;
@@ -124,6 +135,7 @@
124
  border-bottom-color: #e2e2e2;
125
  outline: 0 !important;
126
  border: none;
 
127
  }
128
  .signals-main-menu li:last-child a {
129
  border-bottom-color: transparent;
@@ -140,6 +152,7 @@
140
  font-weight: bold;
141
  outline: 0;
142
  border: none;
 
143
  }
144
 
145
  .signals-main-menu li a:focus{
@@ -187,6 +200,83 @@
187
  .signals-share a:last-child {
188
  margin-right: 0;
189
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  .signals-elements {
191
  border: 1px solid #f1f1f1;
192
  padding: 10px 20px;
@@ -304,7 +394,7 @@ dd {
304
  }
305
  .signals-form-control {
306
  display: block;
307
- width: 100%;
308
  height: 34px;
309
  padding: 6px 12px;
310
  font-size: 14px;
@@ -350,7 +440,7 @@ textarea.signals-form-control {
350
  .signals-form-group {
351
  margin-bottom: 21px;
352
  padding-bottom: 10px;
353
- border-bottom: 1px solid #f1f1f1;
354
  }
355
  .signals-form-group:last-child {
356
  border: none;
@@ -360,7 +450,7 @@ textarea.signals-form-control {
360
  }
361
  .signals-double-group {
362
  margin-bottom: 21px;
363
- border-bottom: 1px solid #f1f1f1;
364
  }
365
  .signals-double-group:last-child {
366
  border: none;
@@ -521,10 +611,8 @@ textarea.signals-form-input-lg {
521
  opacity: .8;
522
  }
523
 
524
- /* Red Color */
525
-
526
  .signals-btn-red {
527
- background-color: #f35958;
528
  }
529
  .signals-btn-red:hover,
530
  .signals-btn-red:focus,
@@ -532,6 +620,20 @@ textarea.signals-form-input-lg {
532
  background-color: #f35958;
533
  }
534
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  /* Overrides extra padding on button elements in Firefox */
536
 
537
  .signals-btn::-moz-focus-inner {
@@ -704,8 +806,8 @@ textarea.signals-form-input-lg {
704
  }
705
 
706
  #collect_emails p .button {
707
- -webkit-box-shadow: none;
708
- box-shadow: none;
709
  text-shadow: none;
710
  border: none;
711
  font-weight: 600;
@@ -718,16 +820,16 @@ input.color, input.jscolor {
718
  .signals-admin-form .button-flat {
719
  box-shadow: none;
720
  vertical-align: baseline;
721
- background-color: transparent;
722
- border: thin solid #fff;
723
- color: #fff;
724
  font-weight: bold;
 
 
 
725
  }
726
 
727
  .signals-admin-form .button-flat:hover {
728
- background-color: #fff;
729
  border: thin solid #fff;
730
- color: rgba(243, 89, 88, 0.81);
731
  }
732
 
733
  #mm_rate_cancel {
@@ -744,3 +846,9 @@ input.color, input.jscolor {
744
  #rating-notice b {
745
  font-weight: bold;
746
  }
 
 
 
 
 
 
4
  */
5
 
6
  .signals-clearfix {
7
+ overflow: hidden;
8
  }
9
  .signals-clearfix:before,
10
  .signals-clearfix:after {
82
  padding: 19px 18px 15px 24px;
83
  }
84
  .signals-tile .signals-tile-title {
85
+ font-size: 16px;
86
+ letter-spacing: 1px;
87
  font-weight: bold;
88
+ margin-bottom: 0px;
89
+ text-transform: uppercase;
90
+ border-left: 2px solid #fe2929;
91
+ padding-left: 10px;
92
+ }
93
+ .signals-tile-title + p {
94
+ margin: 0px 0 0 0px;
95
+ border-left: 2px solid #fe2929;
96
+ padding-left: 10px;
97
+ padding-top: 5px;
98
  }
99
  .signals-tile .signals-tile-title span {
100
  font-weight: normal;
110
  }
111
  .signals-tile .signals-tile-body ul li a {
112
  text-decoration: none;
113
+ margin: 0;
114
  }
115
  .signals-section-content {
116
  margin-top: 30px;
124
  color: #888888;
125
  margin: 0;
126
  padding: 0;
127
+ transition: all 300ms ease;
128
  }
129
  .signals-main-menu li a {
130
  display: block;
135
  border-bottom-color: #e2e2e2;
136
  outline: 0 !important;
137
  border: none;
138
+ transition: all 300ms ease;
139
  }
140
  .signals-main-menu li:last-child a {
141
  border-bottom-color: transparent;
152
  font-weight: bold;
153
  outline: 0;
154
  border: none;
155
+ border-left: 2px solid #fe2929;
156
  }
157
 
158
  .signals-main-menu li a:focus{
200
  .signals-share a:last-child {
201
  margin-right: 0;
202
  }
203
+
204
+ .theme-thumb {
205
+ min-width: 150px;
206
+ display: inline-block;
207
+ margin: 15px;
208
+ width: calc(33% - 25px);
209
+ box-sizing: border-box;
210
+ background-color: #f1f1f1;
211
+ padding-bottom: 5px;
212
+ border: thin solid transparent;
213
+ position: relative;
214
+ }
215
+ .signals-section-content .theme-thumb:nth-child(3n + 1) {
216
+ margin-left: 0;
217
+ }
218
+ .theme-thumb:hover {
219
+ border: thin solid #00000099;
220
+ }
221
+ .theme-thumb span {
222
+ display: block;
223
+ padding: 5px 10px;
224
+ }
225
+ .theme-thumb img {
226
+ max-width: 100%;
227
+ border-bottom: 2px solid #fe2929;
228
+ }
229
+ .theme-thumb span.name {
230
+ font-weight: 600;
231
+ font-size: 15px;
232
+ }
233
+ .theme-thumb .ribbon {
234
+ width: 100px;
235
+ height: 100px;
236
+ overflow: hidden;
237
+ position: absolute;
238
+ top: 0;
239
+ right: 0;
240
+ }
241
+ .theme-thumb .ribbon::before,
242
+ .theme-thumb .ribbon::after {
243
+ position: absolute;
244
+ z-index: -1;
245
+ content: '';
246
+ display: block;
247
+ }
248
+ .theme-thumb .ribbon i {
249
+ position: absolute;
250
+ display: inline-block;
251
+ width: 106px;
252
+ padding: 22px 0px 6px 10px;
253
+ background-color: #fe2929e6;
254
+ box-shadow: 0 5px 10px rgba(0,0,0,.1);
255
+ color: #fff;
256
+ font: 700 18px/1 'Lato', sans-serif;
257
+ text-shadow: 0 1px 1px rgba(0,0,0,.2);
258
+ text-transform: uppercase;
259
+ text-align: center;
260
+ left: 25px;
261
+ top: -11px;
262
+ transform: rotate(45deg);
263
+ }
264
+ .theme-thumb .ribbon::before,
265
+ .theme-thumb .ribbon::after {
266
+ border-top-color: transparent;
267
+ border-right-color: transparent;
268
+ }
269
+ .theme-thumb .ribbon::before {
270
+ top: 0;
271
+ left: 0;
272
+ }
273
+ .theme-thumb .ribbon::after {
274
+ bottom: 0;
275
+ right: 0;
276
+ }
277
+
278
+
279
+ /* drag&drop */
280
  .signals-elements {
281
  border: 1px solid #f1f1f1;
282
  padding: 10px 20px;
394
  }
395
  .signals-form-control {
396
  display: block;
397
+ width: 99%;
398
  height: 34px;
399
  padding: 6px 12px;
400
  font-size: 14px;
440
  .signals-form-group {
441
  margin-bottom: 21px;
442
  padding-bottom: 10px;
443
+ border-bottom: thin solid #0190da9e;
444
  }
445
  .signals-form-group:last-child {
446
  border: none;
450
  }
451
  .signals-double-group {
452
  margin-bottom: 21px;
453
+ border-bottom: thin solid #0190da9e;
454
  }
455
  .signals-double-group:last-child {
456
  border: none;
611
  opacity: .8;
612
  }
613
 
 
 
614
  .signals-btn-red {
615
+ background-color: #fe2929;
616
  }
617
  .signals-btn-red:hover,
618
  .signals-btn-red:focus,
620
  background-color: #f35958;
621
  }
622
 
623
+ .signals-btn-secondary {
624
+ color: #555;
625
+ background-color: #f7f7f7;
626
+ border: thin solid #ccc;
627
+ }
628
+ .signals-btn-secondary:hover,
629
+ .signals-btn-secondary:focus,
630
+ .signals-btn-secondary:active {
631
+ background-color: #f7f7f7;
632
+ color: #555;
633
+ opacity: .8;
634
+ border: thin solid #bbb;
635
+ }
636
+
637
  /* Overrides extra padding on button elements in Firefox */
638
 
639
  .signals-btn::-moz-focus-inner {
806
  }
807
 
808
  #collect_emails p .button {
809
+ -webkit-box-shadow: none;
810
+ box-shadow: none;
811
  text-shadow: none;
812
  border: none;
813
  font-weight: 600;
820
  .signals-admin-form .button-flat {
821
  box-shadow: none;
822
  vertical-align: baseline;
 
 
 
823
  font-weight: bold;
824
+ background-color: #fff;
825
+ border: thin solid #fff;
826
+ color: rgba(243, 89, 88, 0.81);
827
  }
828
 
829
  .signals-admin-form .button-flat:hover {
830
+ background-color: transparent;
831
  border: thin solid #fff;
832
+ color: #fff;
833
  }
834
 
835
  #mm_rate_cancel {
846
  #rating-notice b {
847
  font-weight: bold;
848
  }
849
+
850
+ .signals-strong sup {
851
+ padding: 0;
852
+ margin: 0;
853
+ color: #fe2929;
854
+ }
framework/admin/img/mm-icon-dark.png ADDED
Binary file
framework/admin/img/mm-icon.png CHANGED
Binary file
framework/admin/img/themes/default.jpg ADDED
Binary file
framework/admin/img/themes/minimal.jpg ADDED
Binary file
framework/admin/img/themes/pro/aeroplane-company.jpg ADDED
Binary file
framework/admin/img/themes/pro/bitcoin-miners.jpg ADDED
Binary file
framework/admin/img/themes/pro/blogging.jpg ADDED
Binary file
framework/admin/img/themes/pro/business-company.jpg ADDED
Binary file
framework/admin/img/themes/pro/coffee-shop.jpg ADDED
Binary file
framework/admin/img/themes/pro/default.jpg ADDED
Binary file
framework/admin/img/themes/pro/dental-clinic.jpg ADDED
Binary file
framework/admin/img/themes/pro/dog-training-and-behavior-consulting.jpg ADDED
Binary file
framework/admin/img/themes/pro/flower-shop.jpg ADDED
Binary file
framework/admin/img/themes/pro/lego-bricks.jpg ADDED
Binary file
framework/admin/img/themes/pro/lonely-road.jpg ADDED
Binary file
framework/admin/img/themes/pro/luxury-car.jpg ADDED
Binary file
framework/admin/img/themes/pro/maintenance-mode.jpg ADDED
Binary file
framework/admin/img/themes/pro/makeup-artist-training.jpg ADDED
Binary file
framework/admin/img/themes/pro/modern-blog.jpg ADDED
Binary file
framework/admin/img/themes/pro/mountain-slide.jpg ADDED
Binary file
framework/admin/img/themes/pro/office-theme.jpg ADDED
Binary file
framework/admin/img/themes/pro/online-learning.jpg ADDED
Binary file
framework/admin/img/themes/pro/pancake-house.jpg ADDED
Binary file
framework/admin/img/themes/pro/running-blog.jpg ADDED
Binary file
framework/admin/img/themes/pro/shoes-store.jpg ADDED
Binary file
framework/admin/img/themes/pro/snowboarding-blog.jpg ADDED
Binary file
framework/admin/img/themes/pro/the-big-city-newsletter.jpg ADDED
Binary file
framework/admin/img/themes/pro/travel-agency.jpg ADDED
Binary file
framework/admin/img/themes/pro/video-production.jpg ADDED
Binary file
framework/admin/img/themes/pro/webinar.jpg ADDED
Binary file
framework/admin/img/themes/pro/wedding-blog.jpg ADDED
Binary file
framework/admin/init.php CHANGED
@@ -33,13 +33,13 @@ add_action( 'admin_menu', 'csmm_add_menu' );
33
  // Registering JS and CSS files over here
34
  function csmm_admin_scripts() {
35
 
36
- wp_register_style( 'csmm-admin-base', SIGNALS_CSMM_URL . '/framework/admin/css/admin.css', false, csmm_get_plugin_version() );
37
 
38
  wp_register_script( 'csmm-webfonts', '//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js', false );
39
- wp_register_script( 'csmm-admin-editor', SIGNALS_CSMM_URL . '/framework/admin/js/editor/ace.js', false, csmm_get_plugin_version(), true );
40
- wp_register_script( 'csmm-admin-color', SIGNALS_CSMM_URL . '/framework/admin/js/colorpicker/jscolor.js', false, csmm_get_plugin_version(), true );
41
- wp_register_script('csmm-admin-plugins', SIGNALS_CSMM_URL . '/framework/admin/js/plugins.js', 'jquery', csmm_get_plugin_version(), true);
42
- wp_register_script('csmm-admin-base', SIGNALS_CSMM_URL . '/framework/admin/js/admin.js', 'jquery', csmm_get_plugin_version(), true);
43
 
44
  // Calling the files
45
  wp_enqueue_style( 'csmm-admin-base' );
@@ -64,7 +64,7 @@ function csmm_load_scripts() {
64
  // add settings link to plugins page
65
  function csmm_plugin_action_links($links) {
66
  $settings_link = '<a href="' . admin_url('options-general.php?page=maintenance_mode_options') . '" title="Minimal Coming Soon &amp; Maintenance Mode Settings">Settings</a>';
67
-
68
  array_unshift($links, $settings_link);
69
 
70
  return $links;
@@ -95,12 +95,12 @@ function csmm_dismiss_pointer_ajax() {
95
 
96
  wp_send_json_success();
97
  } // dismiss_pointer_ajax
98
-
99
 
100
  // reset all pointers to default state - visible
101
  function csmm_get_pointers() {
102
  $pointers = array();
103
-
104
  $pointers['welcome'] = array('target' => '#menu-settings', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">Minimal Coming Soon &amp; Maintenance Mode</b> plugin! Please open <a href="' . admin_url('options-general.php?page=maintenance_mode_options'). '">Settings - Maintenance Mode</a> to create a beautiful coming soon or maintenance mode page.');
105
  $pointers['getting_started'] = array('target' => '#main-status', 'edge' => 'bottom', 'align' => 'left', 'content' => 'Make sure you <b>enable Maintenance Mode</b> so it\'s visible to your visitors. If you just want to preview it, use the preview button on the bottom of the page.');
106
 
@@ -112,14 +112,14 @@ function csmm_enqueue_pointers($hook) {
112
  $pointers = array();
113
  $all_pointers = csmm_get_pointers();
114
  $disabled_pointers = get_option(CSMM_POINTERS);
115
-
116
  // auto remove welcome pointer when options are opened
117
  // disabled
118
  if (false && empty($disabled_pointers['welcome']) && 'settings_page_maintenance_mode_options' == $hook) {
119
  $disabled_pointers['welcome'] = true;
120
  update_option(CSMM_POINTERS, $disabled_pointers);
121
  }
122
-
123
  // temp remove
124
  if ('settings_page_maintenance_mode_options' == $hook) {
125
  $disabled_pointers['welcome'] = true;
@@ -134,10 +134,10 @@ function csmm_enqueue_pointers($hook) {
134
  if (empty($pointers)) {
135
  return;
136
  }
137
-
138
  $pointers['_nonce_dismiss_pointer'] = wp_create_nonce('csmm_dismiss_pointer');
139
  wp_enqueue_script('wp-pointer');
140
- wp_enqueue_script('csmm-pointers', SIGNALS_CSMM_URL . '/framework/admin/js/pointers.js', array('jquery'), csmm_get_plugin_version(), true);
141
  wp_enqueue_style('wp-pointer');
142
  wp_localize_script('wp-pointer', 'csmm_pointers', $pointers);
143
  } // csmm_enqueue_pointers
@@ -147,7 +147,7 @@ function csmm_plugin_admin_init() {
147
  if (!is_admin()) {
148
  return;
149
  }
150
-
151
  $meta = get_option('signals_csmm_meta', array());
152
  if (!isset($meta['first_version']) || !isset($meta['first_install'])) {
153
  $meta['first_version'] = csmm_get_plugin_version();
@@ -155,14 +155,185 @@ function csmm_plugin_admin_init() {
155
  $meta['first_install'] = current_time('timestamp');
156
  update_option('signals_csmm_meta', $meta);
157
  }
158
-
159
  add_filter('plugin_action_links_' . CSMM_BASENAME, 'csmm_plugin_action_links');
160
  add_filter('plugin_row_meta', 'csmm_plugin_meta_links', 10, 2);
161
-
162
  add_action('admin_enqueue_scripts', 'csmm_enqueue_pointers', 100, 1);
 
 
 
163
  } // csmm_plugin_admin_init
164
 
165
  add_action( 'init', 'csmm_plugin_admin_init' );
166
 
167
  // Including file for the management panel
168
- require_once SIGNALS_CSMM_PATH . 'framework/admin/settings.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  // Registering JS and CSS files over here
34
  function csmm_admin_scripts() {
35
 
36
+ wp_register_style( 'csmm-admin-base', CSMM_URL . '/framework/admin/css/admin.css', false, csmm_get_plugin_version() );
37
 
38
  wp_register_script( 'csmm-webfonts', '//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js', false );
39
+ wp_register_script( 'csmm-admin-editor', CSMM_URL . '/framework/admin/js/editor/ace.js', false, csmm_get_plugin_version(), true );
40
+ wp_register_script( 'csmm-admin-color', CSMM_URL . '/framework/admin/js/colorpicker/jscolor.js', false, csmm_get_plugin_version(), true );
41
+ wp_register_script('csmm-admin-plugins', CSMM_URL . '/framework/admin/js/plugins.js', 'jquery', csmm_get_plugin_version(), true);
42
+ wp_register_script('csmm-admin-base', CSMM_URL . '/framework/admin/js/admin.js', 'jquery', csmm_get_plugin_version(), true);
43
 
44
  // Calling the files
45
  wp_enqueue_style( 'csmm-admin-base' );
64
  // add settings link to plugins page
65
  function csmm_plugin_action_links($links) {
66
  $settings_link = '<a href="' . admin_url('options-general.php?page=maintenance_mode_options') . '" title="Minimal Coming Soon &amp; Maintenance Mode Settings">Settings</a>';
67
+
68
  array_unshift($links, $settings_link);
69
 
70
  return $links;
95
 
96
  wp_send_json_success();
97
  } // dismiss_pointer_ajax
98
+
99
 
100
  // reset all pointers to default state - visible
101
  function csmm_get_pointers() {
102
  $pointers = array();
103
+
104
  $pointers['welcome'] = array('target' => '#menu-settings', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">Minimal Coming Soon &amp; Maintenance Mode</b> plugin! Please open <a href="' . admin_url('options-general.php?page=maintenance_mode_options'). '">Settings - Maintenance Mode</a> to create a beautiful coming soon or maintenance mode page.');
105
  $pointers['getting_started'] = array('target' => '#main-status', 'edge' => 'bottom', 'align' => 'left', 'content' => 'Make sure you <b>enable Maintenance Mode</b> so it\'s visible to your visitors. If you just want to preview it, use the preview button on the bottom of the page.');
106
 
112
  $pointers = array();
113
  $all_pointers = csmm_get_pointers();
114
  $disabled_pointers = get_option(CSMM_POINTERS);
115
+
116
  // auto remove welcome pointer when options are opened
117
  // disabled
118
  if (false && empty($disabled_pointers['welcome']) && 'settings_page_maintenance_mode_options' == $hook) {
119
  $disabled_pointers['welcome'] = true;
120
  update_option(CSMM_POINTERS, $disabled_pointers);
121
  }
122
+
123
  // temp remove
124
  if ('settings_page_maintenance_mode_options' == $hook) {
125
  $disabled_pointers['welcome'] = true;
134
  if (empty($pointers)) {
135
  return;
136
  }
137
+
138
  $pointers['_nonce_dismiss_pointer'] = wp_create_nonce('csmm_dismiss_pointer');
139
  wp_enqueue_script('wp-pointer');
140
+ wp_enqueue_script('csmm-pointers', CSMM_URL . '/framework/admin/js/pointers.js', array('jquery'), csmm_get_plugin_version(), true);
141
  wp_enqueue_style('wp-pointer');
142
  wp_localize_script('wp-pointer', 'csmm_pointers', $pointers);
143
  } // csmm_enqueue_pointers
147
  if (!is_admin()) {
148
  return;
149
  }
150
+
151
  $meta = get_option('signals_csmm_meta', array());
152
  if (!isset($meta['first_version']) || !isset($meta['first_install'])) {
153
  $meta['first_version'] = csmm_get_plugin_version();
155
  $meta['first_install'] = current_time('timestamp');
156
  update_option('signals_csmm_meta', $meta);
157
  }
158
+
159
  add_filter('plugin_action_links_' . CSMM_BASENAME, 'csmm_plugin_action_links');
160
  add_filter('plugin_row_meta', 'csmm_plugin_meta_links', 10, 2);
161
+
162
  add_action('admin_enqueue_scripts', 'csmm_enqueue_pointers', 100, 1);
163
+
164
+ add_action('admin_action_csmm_activate_theme', 'csmm_activate_theme');
165
+ add_action('admin_action_csmm_export_settings', 'csmm_export_settings');
166
  } // csmm_plugin_admin_init
167
 
168
  add_action( 'init', 'csmm_plugin_admin_init' );
169
 
170
  // Including file for the management panel
171
+ require_once CSMM_PATH . 'framework/admin/settings.php';
172
+
173
+ function csmm_create_select_options($options, $selected = null, $output = true) {
174
+ $out = "\n";
175
+
176
+ if(!is_array($selected)) {
177
+ $selected = array($selected);
178
+ }
179
+
180
+ foreach ($options as $tmp) {
181
+ $data = '';
182
+ if (isset($tmp['disabled'])) {
183
+ $data .= ' disabled="disabled" ';
184
+ }
185
+ if (in_array($tmp['val'], $selected)) {
186
+ $out .= "<option selected=\"selected\" value=\"{$tmp['val']}\"{$data}>{$tmp['label']}&nbsp;</option>\n";
187
+ } else {
188
+ $out .= "<option value=\"{$tmp['val']}\"{$data}>{$tmp['label']}&nbsp;</option>\n";
189
+ }
190
+ } // foreach
191
+
192
+ if ($output) {
193
+ echo $out;
194
+ } else {
195
+ return $out;
196
+ }
197
+ } // csmm_create_select_options
198
+
199
+
200
+ function csmm_activate_theme() {
201
+ $themes = array();
202
+ $theme = basename(trim(@$_GET['theme']));
203
+ $settings = csmm_get_options();
204
+
205
+ $themes['default'] = array(
206
+ 'header_text' => 'Our site is coming soon',
207
+ 'secondary_text' => 'We are doing some maintenance on our site. It won\'t take long, we promise. Come back and visit us again in a few days. Thank you for your patience!',
208
+ 'antispam_text' => 'And yes, we hate spam too!',
209
+ 'arrange' => 'logo,header,secondary,form,html',
210
+ 'logo' => CSMM_URL . '/framework/public/img/mm-logo.png',
211
+ 'favicon' => CSMM_URL . '/framework/public/img/mm-favicon.png',
212
+ 'bg_cover' => CSMM_URL . '/framework/public/img/mountain-bg.jpg',
213
+ 'content_overlay' => 1,
214
+ 'content_width' => '600',
215
+ 'bg_color' => 'FFFFFF',
216
+ 'content_position' => 'center',
217
+ 'content_alignment' => 'left',
218
+ 'header_font' => 'Karla',
219
+ 'secondary_font' => 'Karla',
220
+ 'header_font_size' => '28',
221
+ 'secondary_font_size' => '14',
222
+ 'header_font_color' => 'FFFFFF',
223
+ 'secondary_font_color' => 'FFFFFF',
224
+ 'antispam_font_size' => '13',
225
+ 'antispam_font_color' => 'BBBBBB',
226
+ 'input_text' => 'Enter your best email address',
227
+ 'button_text' => 'Subscribe',
228
+ 'ignore_form_styles' => 1,
229
+ 'input_font_size' => '13',
230
+ 'button_font_size' => '12',
231
+ 'input_font_color' => 'FFFFFF',
232
+ 'button_font_color' => 'FFFFFF',
233
+ 'input_bg' => '',
234
+ 'button_bg' => '0F0F0F',
235
+ 'input_bg_hover' => '',
236
+ 'button_bg_hover' => '0A0A0A',
237
+ 'input_border' => 'EEEEEE',
238
+ 'button_border' => '0F0F0F',
239
+ 'input_border_hover' => 'BBBBBB',
240
+ 'button_border_hover' => '0A0A0A',
241
+ 'success_background' => '90C695',
242
+ 'success_color' => 'FFFFFF',
243
+ 'error_background' => 'E08283',
244
+ 'error_color' => 'FFFFFF',
245
+ 'disable_settings' => '2',
246
+ 'custom_html' => '',
247
+ 'custom_css' => ''
248
+ );
249
+
250
+ $themes['minimal'] = array(
251
+ 'header_text' => 'Maintenance Mode',
252
+ 'secondary_text' => 'We are doing some maintenance on our site. It won\'t take long, we promise. Come back and visit us again in a few days. Thank you for your patience!',
253
+ 'antispam_text' => 'And yes, we hate spam too!',
254
+ 'arrange' => 'logo,header,secondary,form,html',
255
+ 'logo' => CSMM_URL . '/framework/public/img/mm-logo.png',
256
+ 'favicon' => CSMM_URL . '/framework/public/img/mm-favicon.png',
257
+ 'bg_cover' => '',
258
+ 'content_overlay' => 0,
259
+ 'content_width' => '600',
260
+ 'bg_color' => 'FFFFFF',
261
+ 'content_position' => 'center',
262
+ 'content_alignment' => 'left',
263
+ 'header_font' => 'Karla',
264
+ 'secondary_font' => 'Karla',
265
+ 'header_font_size' => '28',
266
+ 'secondary_font_size' => '14',
267
+ 'header_font_color' => '111111',
268
+ 'secondary_font_color' => '111111',
269
+ 'antispam_font_size' => '13',
270
+ 'antispam_font_color' => 'BBBBBB',
271
+ 'input_text' => 'Enter your best email address',
272
+ 'button_text' => 'Subscribe',
273
+ 'ignore_form_styles' => 1,
274
+ 'input_font_size' => '13',
275
+ 'button_font_size' => '12',
276
+ 'input_font_color' => '111111',
277
+ 'button_font_color' => 'FFFFFF',
278
+ 'input_bg' => '',
279
+ 'button_bg' => '0F0F0F',
280
+ 'input_bg_hover' => '',
281
+ 'button_bg_hover' => '0A0A0A',
282
+ 'input_border' => 'EEEEEE',
283
+ 'button_border' => '0F0F0F',
284
+ 'input_border_hover' => 'BBBBBB',
285
+ 'button_border_hover' => '0A0A0A',
286
+ 'success_background' => '90C695',
287
+ 'success_color' => '111111',
288
+ 'error_background' => 'E08283',
289
+ 'error_color' => '111111',
290
+ 'disable_settings' => '2',
291
+ 'custom_html' => '',
292
+ 'custom_css' => '.logo { filter: grayscale(100%); } .logo-container { text-align: left; }'
293
+ );
294
+
295
+
296
+ if (empty($themes[$theme])) {
297
+ set_transient('csmm_error_msg', '<div class="signals-alert signals-alert-info"><strong>Error loading theme! Theme data not found. Please contact support.</strong><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 1);
298
+ } else {
299
+ $settings = array_merge($settings, $themes[$theme]);
300
+ update_option('signals_csmm_options', $settings);
301
+
302
+ set_transient('csmm_error_msg', '<div class="signals-alert signals-alert-info"><strong>' . ucfirst($theme) . ' theme has been activated!</strong><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 1);
303
+ }
304
+
305
+ if (!empty($_GET['redirect'])) {
306
+ wp_redirect($_GET['redirect']);
307
+ } else {
308
+ wp_redirect(admin_url());
309
+ }
310
+
311
+ exit;
312
+ } // activate_theme
313
+
314
+
315
+ function csmm_export_settings() {
316
+ $filename = str_replace(array('http://', 'https://'), '', home_url());
317
+ $filename = str_replace(array('/', '\\', '.'), '-', $filename);
318
+ $filename .= '-' . date('Y-m-d') . '-csmm.txt';
319
+
320
+ $options = csmm_get_options();
321
+ unset($options['none']);
322
+ $options = apply_filters('csmm_options_pre_export', $options);
323
+
324
+ $out = array('type' => 'CSMM', 'version' => csmm_get_plugin_version(), 'data' => $options);
325
+ $out = json_encode($out);
326
+
327
+ header('Content-Type: text/plain');
328
+ header('Content-Disposition: attachment; filename=' . $filename);
329
+ header('Expires: 0');
330
+ header('Cache-Control: must-revalidate');
331
+ header('Pragma: public');
332
+ header('Content-Length: ' . strlen($out));
333
+
334
+ @ob_end_clean();
335
+ flush();
336
+
337
+ echo $out;
338
+ exit;
339
+ } // export_settings
framework/admin/js/admin.js CHANGED
@@ -80,9 +80,11 @@ function getUploader( $text, $target ) {
80
 
81
  editor.session.setUseSoftTabs( null );
82
  }
83
-
84
  }
85
 
 
 
 
86
  // WP native uploader
87
  $( document ).on( 'click', '.signals-upload', function( e ) {
88
 
@@ -104,9 +106,9 @@ function getUploader( $text, $target ) {
104
 
105
  // on dom ready
106
  $( document ).ready( function() {
107
-
108
  // hide nags from other plugins
109
- $('#wpbody-content .update-nag, #wpbody-content .notice-error, #wpbody-content .notice-info').hide();
110
 
111
  $( document ).on( 'click', '#mm_subscribe', function(e) {
112
  e.preventDefault();
@@ -135,7 +137,7 @@ function getUploader( $text, $target ) {
135
 
136
  return false;
137
  } );
138
-
139
  $( document ).on( 'click', '#mm_rate_cancel', function(e) {
140
  e.preventDefault();
141
 
@@ -224,25 +226,25 @@ function getUploader( $text, $target ) {
224
  } );
225
  } );
226
 
227
-
228
  $('.csmm-change-tab').on('click', function(e) {
229
  e.preventDefault();
230
-
231
  tab_name = $(this).attr('href');
232
  csmm_change_tab(tab_name);
233
-
234
  return false;
235
  });
236
-
237
-
238
  function csmm_change_tab(tab_name) {
239
  tab_name = '#' + tab_name.replace('#', '');
240
-
241
  $('.signals-main-menu li a[href=' + tab_name + ']').trigger('click');
242
  window.scrollTo(0, 0);
243
  } // csmm_change_tab
244
 
245
-
246
  // tabs
247
  var $state = $.cookie( 'signals_csmm_menu' );
248
  if( $state ) {
@@ -276,18 +278,30 @@ function getUploader( $text, $target ) {
276
  $( '.signals-main-menu' ).slideToggle();
277
  } );
278
 
279
-
280
  // dismiss notice
281
  $('.signals-alert .notice-dismiss').on('click', function(e) {
282
  e.preventDefault();
283
-
284
- $(this).parents('.signals-alert').hide();
285
-
286
  return false;
287
  });
288
-
289
-
290
- // alert user of unsaved changes when doing preview
 
 
 
 
 
 
 
 
 
 
 
 
291
  old_settings = $('form.signals-admin-form *').not('.skip-save').serialize();
292
  $('#csmm-preview').on('click', function(e) {
293
  if ($('form.signals-admin-form *').not('.skip-save').serialize() != old_settings) {
@@ -296,9 +310,9 @@ function getUploader( $text, $target ) {
296
  return false;
297
  }
298
  }
299
-
300
  return true;
301
  });
302
  }); // on ready
303
 
304
- } )( jQuery );
80
 
81
  editor.session.setUseSoftTabs( null );
82
  }
 
83
  }
84
 
85
+ // auto remove notices
86
+ window.setTimeout(function() { $('.signals-alert').fadeOut(); }, 1000 * 15);
87
+
88
  // WP native uploader
89
  $( document ).on( 'click', '.signals-upload', function( e ) {
90
 
106
 
107
  // on dom ready
108
  $( document ).ready( function() {
109
+
110
  // hide nags from other plugins
111
+ $('#wpbody-content .notice-warning, #wpbody-content .update-nag, #wpbody-content .notice-error, #wpbody-content .notice-info, #wpbody-content .error').hide();
112
 
113
  $( document ).on( 'click', '#mm_subscribe', function(e) {
114
  e.preventDefault();
137
 
138
  return false;
139
  } );
140
+
141
  $( document ).on( 'click', '#mm_rate_cancel', function(e) {
142
  e.preventDefault();
143
 
226
  } );
227
  } );
228
 
229
+
230
  $('.csmm-change-tab').on('click', function(e) {
231
  e.preventDefault();
232
+
233
  tab_name = $(this).attr('href');
234
  csmm_change_tab(tab_name);
235
+
236
  return false;
237
  });
238
+
239
+
240
  function csmm_change_tab(tab_name) {
241
  tab_name = '#' + tab_name.replace('#', '');
242
+
243
  $('.signals-main-menu li a[href=' + tab_name + ']').trigger('click');
244
  window.scrollTo(0, 0);
245
  } // csmm_change_tab
246
 
247
+
248
  // tabs
249
  var $state = $.cookie( 'signals_csmm_menu' );
250
  if( $state ) {
278
  $( '.signals-main-menu' ).slideToggle();
279
  } );
280
 
281
+
282
  // dismiss notice
283
  $('.signals-alert .notice-dismiss').on('click', function(e) {
284
  e.preventDefault();
285
+
286
+ $(this).parents('.signals-alert').fadeOut();
287
+
288
  return false;
289
  });
290
+
291
+ // helper for linking anchors in different tabs
292
+ $('.signals-cnt-fix').on('click', '.confirm-action', function(e) {
293
+ message = $(this).data('confirm');
294
+
295
+ if (!message || confirm(message)) {
296
+ return true;
297
+ } else {
298
+ e.preventDefault();
299
+ return false;
300
+ }
301
+ }); // confirm action before link click
302
+
303
+
304
+ // alert user of unsaved changes when doing preview
305
  old_settings = $('form.signals-admin-form *').not('.skip-save').serialize();
306
  $('#csmm-preview').on('click', function(e) {
307
  if ($('form.signals-admin-form *').not('.skip-save').serialize() != old_settings) {
310
  return false;
311
  }
312
  }
313
+
314
  return true;
315
  });
316
  }); // on ready
317
 
318
+ })( jQuery );
framework/admin/preview.php CHANGED
@@ -23,10 +23,6 @@ require_once '../public/include/functions.php';
23
  $signals_csmm_options = csmm_get_options();
24
 
25
 
26
- // Localization
27
- load_plugin_textdomain( 'signals', false, SIGNALS_CSMM_PATH . 'framework/langs' );
28
-
29
-
30
  // Getting custom login URL for the admin
31
  $signals_login_url = wp_login_url();
32
 
23
  $signals_csmm_options = csmm_get_options();
24
 
25
 
 
 
 
 
26
  // Getting custom login URL for the admin
27
  $signals_login_url = wp_login_url();
28
 
framework/admin/views/header.php CHANGED
@@ -12,7 +12,7 @@
12
  <div class="signals-cnt-fix">
13
  <div class="signals-fix-wp38">
14
  <div class="signals-header signals-clearfix">
15
- <img src="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/img/mm-icon.png" class="signals-logo">
16
  <p>
17
  <strong><?php _e( 'Minimal Coming Soon &amp; Maintenance Mode', 'signals' ); ?></strong>
18
  <span><?php _e( 'by', 'signals' ); ?> <a href="http://www.webfactoryltd.com/" target="_blank"><?php _e( 'Web Factory Ltd', 'signals' ); ?></a></span>
@@ -20,4 +20,3 @@
20
 
21
  <?php if ( isset( $signals_header_addon ) ) { echo $signals_header_addon; } ?>
22
  </div><!-- .signals-header -->
23
-
12
  <div class="signals-cnt-fix">
13
  <div class="signals-fix-wp38">
14
  <div class="signals-header signals-clearfix">
15
+ <img src="<?php echo CSMM_URL; ?>/framework/admin/img/mm-icon-dark.png" class="signals-logo">
16
  <p>
17
  <strong><?php _e( 'Minimal Coming Soon &amp; Maintenance Mode', 'signals' ); ?></strong>
18
  <span><?php _e( 'by', 'signals' ); ?> <a href="http://www.webfactoryltd.com/" target="_blank"><?php _e( 'Web Factory Ltd', 'signals' ); ?></a></span>
20
 
21
  <?php if ( isset( $signals_header_addon ) ) { echo $signals_header_addon; } ?>
22
  </div><!-- .signals-header -->
 
framework/admin/views/settings-basic.php CHANGED
@@ -22,7 +22,7 @@
22
 
23
  <p class="signals-form-help-block"><?php _e( 'Set the plugin status. Do you want to enable <strong>Maintenance Mode</strong> for your website?', 'signals' ); ?></p>
24
  </div>
25
-
26
  <div id="love-status" class="signals-form-group">
27
  <label for="signals_csmm_love" class="signals-strong"><?php _e( 'Show Some Love', 'signals' ); ?></label>
28
  <input type="checkbox" class="signals-form-ios" name="signals_csmm_love" id="signals_csmm_love" value="1"<?php checked( '1', $signals_csmm_options['love'] ); ?>>
@@ -30,7 +30,7 @@
30
  <p class="signals-form-help-block"><?php _e( 'Please help others learn about this free plugin by placing a small link in the footer. Thank you very much!', 'signals' ); ?></p>
31
  </div>
32
  </div>
33
-
34
  <div class="signals-double-group signals-clearfix">
35
  <div class="signals-form-group">
36
  <label for="signals_csmm_showlogged" class="signals-strong"><?php _e( 'Show normal website to logged in users?', 'signals' ); ?></label>
@@ -46,7 +46,7 @@
46
  <p class="signals-form-help-block"><?php _e( 'Do you want to exclude search engines from viewing maintenance page? This will enable search engines to view your regular website and not the Maintenance Mode page even if the plugin is enabled.', 'signals' ); ?></p>
47
  </div>
48
  </div>
49
-
50
  <div class="signals-double-group signals-clearfix">
51
  <div class="signals-form-group">
52
  <label for="signals_csmm_title" class="signals-strong"><?php _e( 'Page Title', 'signals' ); ?></label>
@@ -54,7 +54,7 @@
54
 
55
  <p class="signals-form-help-block"><?php _e( 'Provide title for the maintenance page, for SEO.', 'signals' ); ?></p>
56
  </div>
57
-
58
  <div class="signals-form-group">
59
  <label for="signals_csmm_description" class="signals-strong"><?php _e( 'Page Description', 'signals' ); ?></label>
60
  <input type="text" name="signals_csmm_description" id="signals_csmm_description" value="<?php echo esc_attr_e( stripslashes( $signals_csmm_options['description'] ) ); ?>" placeholder="<?php esc_attr_e( 'Please provide the Page Description', 'signals' ); ?>" class="signals-form-control">
@@ -108,7 +108,7 @@
108
  }
109
  $section_names = array('logo' => 'Logo', 'header' => 'Header', 'secondary' => 'Content', 'form' => 'Form', 'html' => 'Custom HTML');
110
  $section_links = array('logo' => 'design', 'header' => 'design', 'secondary' => 'design', 'form' => 'form', 'html' => 'advanced');
111
-
112
  // list items
113
  foreach ( $signals_arrange as $signals_item ) {
114
  echo '<li data-id="' . $signals_item . '"><div class="actions-left"><span class="dashicons dashicons-menu"></span> ' . $section_names[$signals_item] . '</div><div class="actions-right"><a href="#' . $section_links[$signals_item] . '" class="js-action csmm-change-tab" title="Edit element"><span class="dashicons dashicons-edit"></span></a></div></li>';
@@ -119,11 +119,13 @@
119
  <input type="hidden" name="signals_csmm_arrange" id="signals_csmm_arrange" value="<?php echo esc_attr_e( $signals_csmm_options['arrange'] ); ?>">
120
  </div>
121
 
 
122
  <div class="signals-form-group">
123
  <label for="signals_csmm_analytics" class="signals-strong"><?php _e( 'Analytics Code', 'signals' ); ?></label>
124
- <textarea name="signals_csmm_analytics" id="signals_csmm_analytics" rows="5" placeholder="<?php esc_attr_e( 'Analytics code for the maintenance page', 'signals' ); ?>"><?php echo esc_textarea( stripslashes( $signals_csmm_options['analytics'] ) ); ?></textarea>
125
 
126
- <p class="signals-form-help-block"><?php _e( 'Copy&amp;paste the complete analytics code, including the opening and closing <i>&lt;script&gt;</i> tags.', 'signals' ); ?></p>
 
127
  </div>
128
  </div>
129
  </div>
22
 
23
  <p class="signals-form-help-block"><?php _e( 'Set the plugin status. Do you want to enable <strong>Maintenance Mode</strong> for your website?', 'signals' ); ?></p>
24
  </div>
25
+
26
  <div id="love-status" class="signals-form-group">
27
  <label for="signals_csmm_love" class="signals-strong"><?php _e( 'Show Some Love', 'signals' ); ?></label>
28
  <input type="checkbox" class="signals-form-ios" name="signals_csmm_love" id="signals_csmm_love" value="1"<?php checked( '1', $signals_csmm_options['love'] ); ?>>
30
  <p class="signals-form-help-block"><?php _e( 'Please help others learn about this free plugin by placing a small link in the footer. Thank you very much!', 'signals' ); ?></p>
31
  </div>
32
  </div>
33
+
34
  <div class="signals-double-group signals-clearfix">
35
  <div class="signals-form-group">
36
  <label for="signals_csmm_showlogged" class="signals-strong"><?php _e( 'Show normal website to logged in users?', 'signals' ); ?></label>
46
  <p class="signals-form-help-block"><?php _e( 'Do you want to exclude search engines from viewing maintenance page? This will enable search engines to view your regular website and not the Maintenance Mode page even if the plugin is enabled.', 'signals' ); ?></p>
47
  </div>
48
  </div>
49
+
50
  <div class="signals-double-group signals-clearfix">
51
  <div class="signals-form-group">
52
  <label for="signals_csmm_title" class="signals-strong"><?php _e( 'Page Title', 'signals' ); ?></label>
54
 
55
  <p class="signals-form-help-block"><?php _e( 'Provide title for the maintenance page, for SEO.', 'signals' ); ?></p>
56
  </div>
57
+
58
  <div class="signals-form-group">
59
  <label for="signals_csmm_description" class="signals-strong"><?php _e( 'Page Description', 'signals' ); ?></label>
60
  <input type="text" name="signals_csmm_description" id="signals_csmm_description" value="<?php echo esc_attr_e( stripslashes( $signals_csmm_options['description'] ) ); ?>" placeholder="<?php esc_attr_e( 'Please provide the Page Description', 'signals' ); ?>" class="signals-form-control">
108
  }
109
  $section_names = array('logo' => 'Logo', 'header' => 'Header', 'secondary' => 'Content', 'form' => 'Form', 'html' => 'Custom HTML');
110
  $section_links = array('logo' => 'design', 'header' => 'design', 'secondary' => 'design', 'form' => 'form', 'html' => 'advanced');
111
+
112
  // list items
113
  foreach ( $signals_arrange as $signals_item ) {
114
  echo '<li data-id="' . $signals_item . '"><div class="actions-left"><span class="dashicons dashicons-menu"></span> ' . $section_names[$signals_item] . '</div><div class="actions-right"><a href="#' . $section_links[$signals_item] . '" class="js-action csmm-change-tab" title="Edit element"><span class="dashicons dashicons-edit"></span></a></div></li>';
119
  <input type="hidden" name="signals_csmm_arrange" id="signals_csmm_arrange" value="<?php echo esc_attr_e( $signals_csmm_options['arrange'] ); ?>">
120
  </div>
121
 
122
+ <div class="signals-double-group signals-clearfix">
123
  <div class="signals-form-group">
124
  <label for="signals_csmm_analytics" class="signals-strong"><?php _e( 'Analytics Code', 'signals' ); ?></label>
125
+ <input name="signals_csmm_analytics" id="signals_csmm_analytics" placeholder="UA-123456-12" value="<?php echo csmm_convert_ga( stripslashes($signals_csmm_options['analytics'])); ?>">
126
 
127
+ <p class="signals-form-help-block"><?php _e( 'Enter only the Google Analytics Profile ID, ie: UA-123456-99. You\'ll find it in the GA tracking code.', 'signals' ); ?></p>
128
+ </div>
129
  </div>
130
  </div>
131
  </div>
framework/admin/views/settings-email.php CHANGED
@@ -15,14 +15,18 @@
15
  <p><?php _e( 'Email settings for the plugin. You can configure your MailChimp account API to store collected emails in a list.', 'signals' ); ?></p>
16
 
17
  <div class="signals-section-content">
18
- <div class="signals-form-group">
 
 
19
  <label for="signals_csmm_api" class="signals-strong"><?php _e( 'MailChimp API', 'signals' ); ?></label>
20
  <input type="text" name="signals_csmm_api" id="signals_csmm_api" value="<?php esc_attr_e( $signals_csmm_options['mailchimp_api'] ); ?>" placeholder="<?php esc_attr_e( 'MailChimp API key', 'signals' ); ?>" class="signals-form-control">
21
 
22
  <p class="signals-form-help-block"><?php _e( 'Enter your MailChimp API key.', 'signals' ); ?> Open your <a href="https://us2.admin.mailchimp.com/account/api/" target="_blank"><?php _e( 'MailChimp profile', 'signals' ); ?></a> <?php _e( 'to get the API key. If you don\'t want to enable the subscription option, leave this field blank.', 'signals' ); ?></p>
23
  <p><button type="submit" name="signals_csmm_submit" class="signals-btn"><?php _e( 'Save API key &amp; refresh mailing lists', 'signals' ); ?></button></p>
 
24
  </div>
25
 
 
26
  <div class="signals-form-group">
27
  <label for="signals_csmm_list" class="signals-strong"><?php _e( 'MailChimp List', 'signals' ); ?></label>
28
 
@@ -57,6 +61,15 @@
57
  }
58
 
59
  ?>
 
 
 
 
 
 
 
 
 
60
  </div>
61
 
62
  <div class="signals-double-group signals-clearfix">
15
  <p><?php _e( 'Email settings for the plugin. You can configure your MailChimp account API to store collected emails in a list.', 'signals' ); ?></p>
16
 
17
  <div class="signals-section-content">
18
+
19
+ <div class="signals-double-group signals-clearfix">
20
+ <div class="signals-form-group">
21
  <label for="signals_csmm_api" class="signals-strong"><?php _e( 'MailChimp API', 'signals' ); ?></label>
22
  <input type="text" name="signals_csmm_api" id="signals_csmm_api" value="<?php esc_attr_e( $signals_csmm_options['mailchimp_api'] ); ?>" placeholder="<?php esc_attr_e( 'MailChimp API key', 'signals' ); ?>" class="signals-form-control">
23
 
24
  <p class="signals-form-help-block"><?php _e( 'Enter your MailChimp API key.', 'signals' ); ?> Open your <a href="https://us2.admin.mailchimp.com/account/api/" target="_blank"><?php _e( 'MailChimp profile', 'signals' ); ?></a> <?php _e( 'to get the API key. If you don\'t want to enable the subscription option, leave this field blank.', 'signals' ); ?></p>
25
  <p><button type="submit" name="signals_csmm_submit" class="signals-btn"><?php _e( 'Save API key &amp; refresh mailing lists', 'signals' ); ?></button></p>
26
+ </div>
27
  </div>
28
 
29
+ <div class="signals-double-group signals-clearfix">
30
  <div class="signals-form-group">
31
  <label for="signals_csmm_list" class="signals-strong"><?php _e( 'MailChimp List', 'signals' ); ?></label>
32
 
61
  }
62
 
63
  ?>
64
+ </div>
65
+
66
+ <div class="signals-form-group" style="display: none;">
67
+ <label for="signals_csmm_double_optin" class="signals-strong"><?php _e( 'Double Opt-In', 'signals' ); ?><sup>PRO</sup></label>
68
+ <input type="checkbox" class="signals-form-ios pro-option" name="signals_csmm_double_optin" id="signals_csmm_double_optin" value="1" checked="checked">
69
+
70
+ <p class="signals-form-help-block"><?php _e( 'TODO Enable this option if you would like to use your custom form styles. The settings below will only be applicable when this option is turned on.', 'signals' ); ?></p>
71
+ </div>
72
+
73
  </div>
74
 
75
  <div class="signals-double-group signals-clearfix">
framework/admin/views/settings-support.php CHANGED
@@ -17,20 +17,38 @@
17
  <div class="signals-section-content signals-support-form">
18
  <div class="signals-ajax-response"></div>
19
 
20
- <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0;">
21
- <label for="signals_support_email" class="signals-strong"><?php _e( 'Email Address', 'signals' ); ?></label>
22
- <input type="text" name="signals_support_email" id="signals_support_email" value="" placeholder="<?php _e( 'Your best email address', 'signals' ); ?>" class="signals-form-control">
 
23
 
24
- <p class="signals-form-help-block"><?php _e( 'You will receive support response on this email address.', 'signals' ); ?></p>
25
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0">
28
  <label for="signals_support_issue" class="signals-strong"><?php _e( 'Issue / Feedback', 'signals' ); ?></label>
29
- <textarea name="signals_support_issue" id="signals_support_issue" class="signals-block" rows="10" placeholder="<?php _e( 'Please explain the issue you are facing with the plugin. Provide as much detail as possible.', 'signals' ); ?>"></textarea>
30
 
31
  <p class="signals-form-help-block"><?php _e( 'Please explain the issue you are facing with the plugin. Provide as much detail as possible.', 'signals' ); ?></p>
32
  </div>
33
-
34
  <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0;">
35
  <label for="" class="signals-strong">Additional data</label>
36
  <?php
@@ -43,7 +61,7 @@
43
  echo 'Theme: <code>' . $theme->get('Name') . ' v' . $theme->get('Version') . '</code><br>';
44
  echo 'MM Options: <i>all option values will be sent to support to ease debugging</i>';
45
  echo '</p>';
46
- ?>
47
  <p class="signals-form-help-block">Our support agents need this info to provide faster &amp; better support. The data above will be added to your message.</p>
48
  </div>
49
 
17
  <div class="signals-section-content signals-support-form">
18
  <div class="signals-ajax-response"></div>
19
 
20
+ <div class="signals-double-group signals-clearfix" style="border-bottom: none; padding-bottom: 0;">
21
+ <div class="signals-form-group">
22
+ <label for="signals_support_email" class="signals-strong"><?php _e( 'Email Address', 'signals' ); ?></label>
23
+ <input type="text" name="signals_support_email" id="signals_support_email" value="" placeholder="<?php _e( 'Your best email address', 'signals' ); ?>" class="signals-form-control skip-save">
24
 
25
+ <p class="signals-form-help-block"><?php _e( 'You will receive support response on this email address.', 'signals' ); ?></p>
26
+ </div>
27
+
28
+ <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0; display: none;">
29
+ <label for="email_urgency" class="signals-strong"><?php _e( 'Priority', 'signals' ); ?></label>
30
+ <select class="skip-save" id="email_urgency" name="email_urgency">
31
+ <?php
32
+ $email_options = array(
33
+ array( 'val'=> 'low', 'label' => __('Low - this can really wait a day', 'signals' ) ),
34
+ array( 'val'=> 'normal', 'label' => __('Normal', 'signals' ) ),
35
+ array( 'val'=> 'urgent', 'label' => __('Urgent - my site is down', 'signals' ) ),
36
+ );
37
+
38
+ csmm_create_select_options($email_options, 'normal' ); ?>
39
+ </select>
40
+
41
+ <p class="signals-form-help-block"><?php _e( 'Choose the priority of your inquiry.', 'signals' ); ?></p>
42
+ </div>
43
+ </div>
44
 
45
  <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0">
46
  <label for="signals_support_issue" class="signals-strong"><?php _e( 'Issue / Feedback', 'signals' ); ?></label>
47
+ <textarea name="signals_support_issue" id="signals_support_issue" class="signals-block skip-save" rows="10" placeholder="<?php _e( 'Please explain the issue you are facing with the plugin. Provide as much detail as possible.', 'signals' ); ?>"></textarea>
48
 
49
  <p class="signals-form-help-block"><?php _e( 'Please explain the issue you are facing with the plugin. Provide as much detail as possible.', 'signals' ); ?></p>
50
  </div>
51
+
52
  <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0;">
53
  <label for="" class="signals-strong">Additional data</label>
54
  <?php
61
  echo 'Theme: <code>' . $theme->get('Name') . ' v' . $theme->get('Version') . '</code><br>';
62
  echo 'MM Options: <i>all option values will be sent to support to ease debugging</i>';
63
  echo '</p>';
64
+ ?>
65
  <p class="signals-form-help-block">Our support agents need this info to provide faster &amp; better support. The data above will be added to your message.</p>
66
  </div>
67
 
framework/admin/views/settings-themes.php ADDED
@@ -0,0 +1,338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $themes = array (
3
+ 0 =>
4
+ array (
5
+ 'type' => 'CSMM PRO',
6
+ 'version' => '5.005',
7
+ 'last_edit' => 'Thu, 22 Feb 2018 18:45:00 +0000',
8
+ 'name' => 'Aeroplane Company',
9
+ 'description' => 'Andrea',
10
+ 'frontpage' => '1',
11
+ 'status' => 'pro',
12
+ 'name_clean' => 'aeroplane-company',
13
+ ),
14
+ 1 =>
15
+ array (
16
+ 'type' => 'CSMM PRO',
17
+ 'version' => '5.005',
18
+ 'last_edit' => 'Sat, 24 Feb 2018 11:48:50 +0000',
19
+ 'name' => 'Bitcoin Miners',
20
+ 'description' => '',
21
+ 'frontpage' => '1',
22
+ 'status' => 'agency',
23
+ 'name_clean' => 'bitcoin-miners',
24
+ ),
25
+ 2 =>
26
+ array (
27
+ 'type' => 'CSMM PRO',
28
+ 'version' => '5.005',
29
+ 'last_edit' => 'Mon, 26 Feb 2018 18:01:26 +0000',
30
+ 'name' => 'Blogging',
31
+ 'description' => 'Andrea',
32
+ 'frontpage' => '1',
33
+ 'status' => 'agency',
34
+ 'name_clean' => 'blogging',
35
+ ),
36
+ 3 =>
37
+ array (
38
+ 'type' => 'CSMM PRO',
39
+ 'version' => '5.001',
40
+ 'last_edit' => 'Thu, 15 Feb 2018 16:24:58 +0000',
41
+ 'name' => 'Business Company',
42
+ 'description' => '',
43
+ 'frontpage' => '0',
44
+ 'status' => 'agency',
45
+ 'name_clean' => 'business-company',
46
+ ),
47
+ 4 =>
48
+ array (
49
+ 'type' => 'CSMM PRO',
50
+ 'version' => '5.005',
51
+ 'last_edit' => 'Thu, 22 Feb 2018 18:45:40 +0000',
52
+ 'name' => 'Coffee Shop',
53
+ 'description' => 'Andrea',
54
+ 'frontpage' => '1',
55
+ 'status' => 'agency',
56
+ 'name_clean' => 'coffee-shop',
57
+ ),
58
+ 5 =>
59
+ array (
60
+ 'type' => 'CSMM PRO',
61
+ 'version' => '5.005',
62
+ 'last_edit' => 'Mon, 26 Feb 2018 20:41:31 +0000',
63
+ 'name' => 'Default',
64
+ 'description' => 'Default settings, nothing more.',
65
+ 'frontpage' => '0',
66
+ 'status' => 'pro',
67
+ 'name_clean' => 'default',
68
+ ),
69
+ 6 =>
70
+ array (
71
+ 'type' => 'CSMM PRO',
72
+ 'version' => '5.005',
73
+ 'last_edit' => 'Sat, 24 Feb 2018 11:29:34 +0000',
74
+ 'name' => 'Dental Clinic',
75
+ 'description' => 'Andrea',
76
+ 'frontpage' => '1',
77
+ 'status' => 'agency',
78
+ 'name_clean' => 'dental-clinic',
79
+ ),
80
+ 7 =>
81
+ array (
82
+ 'type' => 'CSMM PRO',
83
+ 'version' => '5.001',
84
+ 'last_edit' => 'Tue, 20 Feb 2018 09:14:59 +0000',
85
+ 'name' => 'Dog Training and Behavior Consulting',
86
+ 'description' => '',
87
+ 'frontpage' => '1',
88
+ 'status' => 'agency',
89
+ 'name_clean' => 'dog-training-and-behavior-consulting',
90
+ ),
91
+ 8 =>
92
+ array (
93
+ 'type' => 'CSMM PRO',
94
+ 'version' => '5.0',
95
+ 'last_edit' => 'Thu, 15 Feb 2018 12:49:10 +0000',
96
+ 'name' => 'Flower Shop',
97
+ 'description' => 'Flower shop theme with a background image, video, progress bar and social module',
98
+ 'frontpage' => '1',
99
+ 'status' => 'pro',
100
+ 'name_clean' => 'flower-shop',
101
+ ),
102
+ 9 =>
103
+ array (
104
+ 'type' => 'CSMM PRO',
105
+ 'version' => '5.005',
106
+ 'last_edit' => 'Fri, 23 Feb 2018 12:01:58 +0000',
107
+ 'name' => 'LEGO Bricks',
108
+ 'description' => '',
109
+ 'frontpage' => '1',
110
+ 'status' => 'pro',
111
+ 'name_clean' => 'lego-bricks',
112
+ ),
113
+ 10 =>
114
+ array (
115
+ 'type' => 'CSMM PRO',
116
+ 'version' => '5.005',
117
+ 'last_edit' => 'Fri, 23 Feb 2018 11:58:49 +0000',
118
+ 'name' => 'Lonely Road',
119
+ 'description' => 'Andrea',
120
+ 'frontpage' => '1',
121
+ 'status' => 'agency',
122
+ 'name_clean' => 'lonely-road',
123
+ ),
124
+ 11 =>
125
+ array (
126
+ 'type' => 'CSMM PRO',
127
+ 'version' => '5.001',
128
+ 'last_edit' => 'Thu, 15 Feb 2018 18:05:56 +0000',
129
+ 'name' => 'Luxury Car',
130
+ 'description' => '',
131
+ 'frontpage' => '1',
132
+ 'status' => 'pro',
133
+ 'name_clean' => 'luxury-car',
134
+ ),
135
+ 12 =>
136
+ array (
137
+ 'type' => 'CSMM PRO',
138
+ 'version' => '5.005',
139
+ 'last_edit' => 'Mon, 26 Feb 2018 19:55:48 +0000',
140
+ 'name' => 'Maintenance Mode',
141
+ 'description' => 'Andrea',
142
+ 'frontpage' => '0',
143
+ 'status' => 'pro',
144
+ 'name_clean' => 'maintenance-mode',
145
+ ),
146
+ 13 =>
147
+ array (
148
+ 'type' => 'CSMM PRO',
149
+ 'version' => '5.005',
150
+ 'last_edit' => 'Mon, 26 Feb 2018 17:59:30 +0000',
151
+ 'name' => 'Makeup Artist Training',
152
+ 'description' => 'Andrea',
153
+ 'frontpage' => '1',
154
+ 'status' => 'agency',
155
+ 'name_clean' => 'makeup-artist-training',
156
+ ),
157
+ 14 =>
158
+ array (
159
+ 'type' => 'CSMM PRO',
160
+ 'version' => '5.005',
161
+ 'last_edit' => 'Mon, 26 Feb 2018 18:04:32 +0000',
162
+ 'name' => 'Modern Blog',
163
+ 'description' => '',
164
+ 'frontpage' => '1',
165
+ 'status' => 'pro',
166
+ 'name_clean' => 'modern-blog',
167
+ ),
168
+ 15 =>
169
+ array (
170
+ 'type' => 'CSMM PRO',
171
+ 'version' => '5.001',
172
+ 'last_edit' => 'Thu, 15 Feb 2018 18:56:47 +0000',
173
+ 'name' => 'Mountain Slide',
174
+ 'description' => '',
175
+ 'frontpage' => '1',
176
+ 'status' => 'pro',
177
+ 'name_clean' => 'mountain-slide',
178
+ ),
179
+ 16 =>
180
+ array (
181
+ 'type' => 'CSMM PRO',
182
+ 'version' => '5.005',
183
+ 'last_edit' => 'Fri, 23 Feb 2018 09:24:34 +0000',
184
+ 'name' => 'Office Theme',
185
+ 'description' => 'Andrea',
186
+ 'frontpage' => '1',
187
+ 'status' => 'pro',
188
+ 'name_clean' => 'office-theme',
189
+ ),
190
+ 17 =>
191
+ array (
192
+ 'type' => 'CSMM PRO',
193
+ 'version' => '5.005',
194
+ 'last_edit' => 'Mon, 26 Feb 2018 18:07:28 +0000',
195
+ 'name' => 'Online Learning',
196
+ 'description' => 'Andrea',
197
+ 'frontpage' => '1',
198
+ 'status' => 'agency',
199
+ 'name_clean' => 'online-learning',
200
+ ),
201
+ 18 =>
202
+ array (
203
+ 'type' => 'CSMM PRO',
204
+ 'version' => '5.005',
205
+ 'last_edit' => 'Mon, 26 Feb 2018 18:10:05 +0000',
206
+ 'name' => 'Pancake House',
207
+ 'description' => 'Andrea',
208
+ 'frontpage' => '0',
209
+ 'status' => 'pro',
210
+ 'name_clean' => 'pancake-house',
211
+ ),
212
+ 19 =>
213
+ array (
214
+ 'type' => 'CSMM PRO',
215
+ 'version' => '5.001',
216
+ 'last_edit' => 'Thu, 15 Feb 2018 18:34:58 +0000',
217
+ 'name' => 'Running Blog',
218
+ 'description' => '',
219
+ 'frontpage' => '1',
220
+ 'status' => 'agency',
221
+ 'name_clean' => 'running-blog',
222
+ ),
223
+ 20 =>
224
+ array (
225
+ 'type' => 'CSMM PRO',
226
+ 'version' => '5.005',
227
+ 'last_edit' => 'Mon, 26 Feb 2018 11:17:32 +0000',
228
+ 'name' => 'Shoes Store',
229
+ 'description' => 'Andrea',
230
+ 'frontpage' => '1',
231
+ 'status' => 'agency',
232
+ 'name_clean' => 'shoes-store',
233
+ ),
234
+ 21 =>
235
+ array (
236
+ 'type' => 'CSMM PRO',
237
+ 'version' => '5.001',
238
+ 'last_edit' => 'Tue, 20 Feb 2018 09:14:02 +0000',
239
+ 'name' => 'Snowboarding Blog',
240
+ 'description' => '',
241
+ 'frontpage' => '1',
242
+ 'status' => 'pro',
243
+ 'name_clean' => 'snowboarding-blog',
244
+ ),
245
+ 22 =>
246
+ array (
247
+ 'type' => 'CSMM PRO',
248
+ 'version' => '5.005',
249
+ 'last_edit' => 'Fri, 23 Feb 2018 12:43:09 +0000',
250
+ 'name' => 'The Big City Newsletter',
251
+ 'description' => 'Andrea',
252
+ 'frontpage' => '1',
253
+ 'status' => 'agency',
254
+ 'name_clean' => 'the-big-city-newsletter',
255
+ ),
256
+ 23 =>
257
+ array (
258
+ 'type' => 'CSMM PRO',
259
+ 'version' => '5.001',
260
+ 'last_edit' => 'Tue, 20 Feb 2018 10:57:27 +0000',
261
+ 'name' => 'Travel Agency',
262
+ 'description' => '',
263
+ 'frontpage' => '1',
264
+ 'status' => 'pro',
265
+ 'name_clean' => 'travel-agency',
266
+ ),
267
+ 24 =>
268
+ array (
269
+ 'type' => 'CSMM PRO',
270
+ 'version' => '5.001',
271
+ 'last_edit' => 'Mon, 19 Feb 2018 12:31:48 +0000',
272
+ 'name' => 'Video Production',
273
+ 'description' => '',
274
+ 'frontpage' => '1',
275
+ 'status' => 'pro',
276
+ 'name_clean' => 'video-production',
277
+ ),
278
+ 25 =>
279
+ array (
280
+ 'type' => 'CSMM PRO',
281
+ 'version' => '5.005',
282
+ 'last_edit' => 'Mon, 26 Feb 2018 19:54:07 +0000',
283
+ 'name' => 'Webinar',
284
+ 'description' => 'Andrea',
285
+ 'frontpage' => '1',
286
+ 'status' => 'agency',
287
+ 'name_clean' => 'webinar',
288
+ ),
289
+ 26 =>
290
+ array (
291
+ 'type' => 'CSMM PRO',
292
+ 'version' => '5.005',
293
+ 'last_edit' => 'Fri, 23 Feb 2018 11:53:23 +0000',
294
+ 'name' => 'Wedding Blog',
295
+ 'description' => 'Andrea',
296
+ 'frontpage' => '1',
297
+ 'status' => 'agency',
298
+ 'name_clean' => 'wedding-blog',
299
+ )
300
+ );
301
+
302
+ array_unshift($themes, array('name' => 'Minimal', 'name_clean' => 'minimal', 'status' => 'free'));
303
+ array_unshift($themes, array('name' => 'Default', 'name_clean' => 'default', 'status' => 'free'));
304
+ ?>
305
+
306
+ <div class="signals-tile" id="themes">
307
+ <div class="signals-tile-body">
308
+ <div class="signals-tile-title">Themes</div>
309
+ <p>TODO Once a theme is activated it can be fullly adjusted and modified. There are no "locked in" features. Please note that activating a theme overwrites all customizations done to the current design. Non-design settings such as access control are not affected.</p>
310
+
311
+ <div class="signals-section-content">
312
+ <?php
313
+ foreach ($themes as $theme) {
314
+ echo '<div class="theme-thumb" data-theme="' . $theme['name_clean'] . '">';
315
+ if ($theme['status'] != 'free') {
316
+ echo '<img src="' . CSMM_URL . '/framework/admin/img/themes/pro/' . $theme['name_clean'] . '.jpg" alt="' . $theme['name'] . '" title="' . $theme['name'] . '">';
317
+ } else {
318
+ echo '<img src="' . CSMM_URL . '/framework/admin/img/themes/' . $theme['name_clean'] . '.jpg" alt="' . $theme['name'] . '" title="' . $theme['name'] . '">';
319
+ }
320
+ echo '<span class="name">' . $theme['name'] . '</span>';
321
+ echo '<span name="actions">';
322
+ if ($theme['status'] != 'free') {
323
+ echo '<a href="' . csmm_generate_web_link('get-theme-' . $theme['name_clean'], '/', array('coupon' => 'welcome')) . '" class="signals-btn" target="_blank">Get this theme</a>&nbsp; &nbsp;';
324
+ echo '<a target="_blank" class="signals-btn signals-btn-secondary" href="' . csmm_generate_web_link('themes-preview-' . $theme['name_clean'], 'theme-preview', array('theme' => $theme['name_clean'])) . '">Preview</a>';
325
+ } else {
326
+ echo '<a href="' . add_query_arg(array('action' => 'csmm_activate_theme', 'theme' => $theme['name_clean'], 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php')) . '" class="signals-btn confirm-action" data-confirm="Are you sure you want to activate the selected theme? Customizations you made on the current design will be lost.">Activate</a>&nbsp; &nbsp;';
327
+ }
328
+ echo '</span>';
329
+ if ($theme['status'] != 'free') {
330
+ echo '<div class="ribbon"><i>PRO</i></div>';
331
+ }
332
+ echo '</div>';
333
+
334
+ } // foreach theme
335
+ ?>
336
+ </div>
337
+ </div>
338
+ </div><!-- #themes -->
framework/admin/views/settings.php CHANGED
@@ -21,17 +21,21 @@ require_once 'header.php';
21
  echo $signals_csmm_err;
22
  }
23
 
 
 
 
 
24
  $current_user = wp_get_current_user();
25
  $name = '';
26
  if (!empty($current_user->user_firstname)) {
27
  $name = ' ' . $current_user->user_firstname;
28
  }
29
  $meta = get_option('signals_csmm_meta', false);
30
-
31
  if (!get_transient('csmm_rate_hide')
32
- && (time() - $meta['first_install_gmt']) > (DAY_IN_SECONDS * 1)) {
33
  echo '<div id="rating-notice"><p>';
34
- echo '<b>Hi' . $name . '!</b><br>We saw you\'ve been using the <b>Maintenance Mode</b> plugin for a few days (that\'s awesome!) and wanted to ask for your help to <b>make the plugin better</b>.<br>It just takes a minute of your time to rate the plugin. It helps us out a lot!</p>';
35
  echo '<p><a href="https://wordpress.org/support/plugin/minimal-coming-soon-maintenance-mode/reviews/?rate=5&filter=5#new-post" target="_blank" class="button button-flat">Rate the plugin</a>';
36
  echo '<a href="#" id="mm_rate_cancel">I\'ve already rated the plugin</a>';
37
  echo '</p></div>';
@@ -41,12 +45,13 @@ require_once 'header.php';
41
  <div class="signals-float-left">
42
  <div class="signals-mobile-menu">
43
  <a href="#">
44
- <img src="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/img/toggle.png" />
45
  </a>
46
  </div>
47
 
48
  <ul class="signals-main-menu">
49
- <li><a href="#basic"><?php _e( 'Basic', 'signals' ); ?></a></li>
 
50
  <li><a href="#email"><?php _e( 'Email', 'signals' ); ?></a></li>
51
  <li><a href="#design"><?php _e( 'Design', 'signals' ); ?></a></li>
52
  <li><a href="#form"><?php _e( 'Form', 'signals' ); ?></a></li>
@@ -59,12 +64,13 @@ require_once 'header.php';
59
  <?php
60
 
61
  // Including tabs content
62
- require_once 'settings-basic.php'; // basic
63
- require_once 'settings-email.php'; // email
64
- require_once 'settings-design.php'; // design
65
- require_once 'settings-form.php'; // form
66
- require_once 'settings-advanced.php'; // advanced
67
- require_once 'settings-support.php'; // support
 
68
  ?>
69
  </div><!-- .signals-float-right -->
70
 
@@ -72,7 +78,7 @@ require_once 'header.php';
72
  <div class="signals-tile-body">
73
  <p class="signals-form-help-block" style="margin: 0; padding: 0 20px 0 10px;">
74
  <button type="submit" name="signals_csmm_submit" class="signals-btn signals-btn-red"><strong><?php _e( 'Save Changes', 'signals' ); ?></strong></button>
75
- <a id="csmm-preview" style="margin: 0 0 0 15px;" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/preview.php" class="signals-btn" target="_blank"><strong><?php _e( 'Preview Maintenance Page', 'signals' ); ?></strong></a>
76
  </p>
77
  </div><!-- .signals-tile-body -->
78
  </div><!-- .signals-fixed-save-btn -->
21
  echo $signals_csmm_err;
22
  }
23
 
24
+ if (get_transient('csmm_error_msg')) {
25
+ echo get_transient('csmm_error_msg');
26
+ }
27
+
28
  $current_user = wp_get_current_user();
29
  $name = '';
30
  if (!empty($current_user->user_firstname)) {
31
  $name = ' ' . $current_user->user_firstname;
32
  }
33
  $meta = get_option('signals_csmm_meta', false);
34
+
35
  if (!get_transient('csmm_rate_hide')
36
+ && (time() - $meta['first_install_gmt']) > (DAY_IN_SECONDS / 2)) {
37
  echo '<div id="rating-notice"><p>';
38
+ echo '<b>Hi' . $name . '!</b><br>We saw you\'ve been using the <b>Minimal Maintenance Mode</b> plugin for some time (that\'s awesome!) and wanted to ask for your help to <b>make the plugin better</b>.<br>It just takes a minute of your time to rate the plugin. It helps us out a lot! Thank you!</p>';
39
  echo '<p><a href="https://wordpress.org/support/plugin/minimal-coming-soon-maintenance-mode/reviews/?rate=5&filter=5#new-post" target="_blank" class="button button-flat">Rate the plugin</a>';
40
  echo '<a href="#" id="mm_rate_cancel">I\'ve already rated the plugin</a>';
41
  echo '</p></div>';
45
  <div class="signals-float-left">
46
  <div class="signals-mobile-menu">
47
  <a href="#">
48
+ <img src="<?php echo CSMM_URL; ?>/framework/admin/img/toggle.png" />
49
  </a>
50
  </div>
51
 
52
  <ul class="signals-main-menu">
53
+ <li><a href="#basic"><?php _e( 'Basic', 'signals' ); ?></a></li>
54
+ <li><a href="#themes"><?php _e( 'Themes', 'signals' ); ?></a></li>
55
  <li><a href="#email"><?php _e( 'Email', 'signals' ); ?></a></li>
56
  <li><a href="#design"><?php _e( 'Design', 'signals' ); ?></a></li>
57
  <li><a href="#form"><?php _e( 'Form', 'signals' ); ?></a></li>
64
  <?php
65
 
66
  // Including tabs content
67
+ require_once 'settings-basic.php';
68
+ require_once 'settings-themes.php';
69
+ require_once 'settings-email.php';
70
+ require_once 'settings-design.php';
71
+ require_once 'settings-form.php';
72
+ require_once 'settings-advanced.php';
73
+ require_once 'settings-support.php';
74
  ?>
75
  </div><!-- .signals-float-right -->
76
 
78
  <div class="signals-tile-body">
79
  <p class="signals-form-help-block" style="margin: 0; padding: 0 20px 0 10px;">
80
  <button type="submit" name="signals_csmm_submit" class="signals-btn signals-btn-red"><strong><?php _e( 'Save Changes', 'signals' ); ?></strong></button>
81
+ <a id="csmm-preview" style="margin: 0 0 0 15px;" href="<?php echo CSMM_URL; ?>/framework/admin/preview.php" class="signals-btn" target="_blank"><strong><?php _e( 'Preview Maintenance Page', 'signals' ); ?></strong></a>
82
  </p>
83
  </div><!-- .signals-tile-body -->
84
  </div><!-- .signals-fixed-save-btn -->
framework/init.php CHANGED
@@ -1,17 +1,17 @@
1
  <?php
2
-
3
  class CSMM {
4
  static function init() {
5
  if (is_admin()) {
6
  add_action('admin_action_csmm_change_status', array(__CLASS__, 'change_status'));
7
  }
8
-
9
  // admin bar notice for frontend & backend
10
  add_action('wp_before_admin_bar_render', array(__CLASS__, 'admin_bar'));
11
  add_action('wp_head', array(__CLASS__, 'admin_bar_style'));
12
  add_action('admin_head', array(__CLASS__, 'admin_bar_style'));
13
  }
14
-
15
  static function admin_bar_style() {
16
  // admin bar has to be anabled, user an admin and custom filter true
17
  if (false === is_admin_bar_showing() || false === current_user_can('administrator') || false === apply_filters('csmm_show_admin_bar', true)) {
@@ -19,7 +19,7 @@ class CSMM {
19
  }
20
 
21
  // no sense in loading a new CSS file for 2 lines of CSS
22
- $custom_css = '<style type="text/css">#wpadminbar i.csmm-status-dot { font-size: 17px; margin-top: -7px; color: #02ca02; height: 17px; display: inline-block; } #wpadminbar i.csmm-status-dot-enabled { color: #64bd63; } #wpadminbar i.csmm-status-dot-disabled { color: #FE2D2D; } #wpadminbar #csmm-status-wrapper { display: inline; border: 1px solid rgba(240,245,250,0.7); padding: 0; margin: 0 0 0 5px; background: rgb(35, 40, 45); } #wpadminbar .csmm-status-btn { padding: 0 7px; color: #fff; } #wpadminbar #csmm-status-wrapper.off #csmm-status-off { background: #FE2D2D;} #wpadminbar #csmm-status-wrapper.on #csmm-status-on { background: #64bd63; }#wp-admin-bar-csmm img.logo { height: 17px; margin-bottom: 4px; padding-right: 3px; } #wp-admin-bar-csmm a img { height: 17px; margin-bottom: -2px; padding-right: 3px; }</style>';
23
 
24
  echo $custom_css;
25
  } // admin_bar_style
@@ -33,21 +33,21 @@ class CSMM {
33
  if (false === current_user_can('administrator') || false === apply_filters('csmm_show_admin_bar', true)) {
34
  return;
35
  }
36
-
37
  $options = csmm_get_options();
38
-
39
  if (isset($_POST['signals_csmm_submit'])) {
40
  $options['status'] = (string) (int) !empty($_POST['signals_csmm_status']);
41
  }
42
 
43
  if ($options['status'] == '1') {
44
- $main_label = '<img src="' . SIGNALS_CSMM_URL . '/framework/admin/img/mm-icon.png" alt="' . __('Maintenance mode is enabled', 'under-construction-page') . '" title="' . __('Maintenance mode is enabled', 'under-construction-page') . '"> <span class="ab-label">' . __('Maintenance Mode', 'under-construction-page') . ' <i class="csmm-status-dot csmm-status-dot-enabled">&#9679;</i></span>';
45
  $class = 'csmm-enabled';
46
  $action_url = add_query_arg(array('action' => 'csmm_change_status', 'new_status' => 'disabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
47
  $action = __('Maintenance mode', 'under-construction-page');
48
  $action .= '<a href="' . $action_url . '" id="csmm-status-wrapper" class="on"><span id="csmm-status-off" class="csmm-status-btn">OFF</span><span id="csmm-status-on" class="csmm-status-btn">ON</span></a>';
49
  } else {
50
- $main_label = '<img src="' . SIGNALS_CSMM_URL . '/framework/admin/img/mm-icon.png" alt="' . __('Maintenance mode is disabled', 'under-construction-page') . '" title="' . __('Maintenance mode is disabled', 'under-construction-page') . '"> <span class="ab-label">' . __('Maintenance Mode', 'under-construction-page') . ' <i class="csmm-status-dot csmm-status-dot-disabled">&#9679;</i></span>';
51
  $class = 'csmm-disabled';
52
  $action_url = add_query_arg(array('action' => 'csmm_change_status', 'new_status' => 'enabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
53
  $action = __('Maintenance mode', 'under-construction-page');
@@ -67,6 +67,13 @@ class CSMM {
67
  'href' => false,
68
  'parent'=> 'csmm'
69
  ));
 
 
 
 
 
 
 
70
  $wp_admin_bar->add_node( array(
71
  'id' => 'csmm-settings',
72
  'title' => 'Settings',
@@ -74,8 +81,8 @@ class CSMM {
74
  'parent' => 'csmm'
75
  ));
76
  } // admin_bar
77
-
78
-
79
  // change status via admin bar
80
  static function change_status() {
81
  if (empty($_GET['new_status'])) {
@@ -104,3 +111,26 @@ class CSMM {
104
  } // class csmm
105
 
106
  add_action('init', array('CSMM', 'init'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+
3
  class CSMM {
4
  static function init() {
5
  if (is_admin()) {
6
  add_action('admin_action_csmm_change_status', array(__CLASS__, 'change_status'));
7
  }
8
+
9
  // admin bar notice for frontend & backend
10
  add_action('wp_before_admin_bar_render', array(__CLASS__, 'admin_bar'));
11
  add_action('wp_head', array(__CLASS__, 'admin_bar_style'));
12
  add_action('admin_head', array(__CLASS__, 'admin_bar_style'));
13
  }
14
+
15
  static function admin_bar_style() {
16
  // admin bar has to be anabled, user an admin and custom filter true
17
  if (false === is_admin_bar_showing() || false === current_user_can('administrator') || false === apply_filters('csmm_show_admin_bar', true)) {
19
  }
20
 
21
  // no sense in loading a new CSS file for 2 lines of CSS
22
+ $custom_css = '<style type="text/css">#wpadminbar i.csmm-status-dot { font-size: 17px; margin-top: -7px; color: #02ca02; height: 17px; display: inline-block; } #wpadminbar i.csmm-status-dot-enabled { color: #64bd63; } #wpadminbar i.csmm-status-dot-disabled { color: #FE2D2D; } #wpadminbar #csmm-status-wrapper { display: inline; border: 1px solid rgba(240,245,250,0.7); padding: 0; margin: 0 0 0 5px; background: rgb(35, 40, 45); } #wpadminbar .csmm-status-btn { padding: 0 7px; color: #fff; } #wpadminbar #csmm-status-wrapper.off #csmm-status-off { background: #FE2D2D;} #wpadminbar #csmm-status-wrapper.on #csmm-status-on { background: #64bd63; }#wp-admin-bar-csmm img.logo { height: 17px; margin-bottom: 4px; padding-right: 3px; } #wp-admin-bar-csmm a img { height: 17px; margin-bottom: -2px; padding-right: 3px; } #wpadminbar #wp-admin-bar-csmm-status .ab-empty-item { margin-bottom: 2px; }</style>';
23
 
24
  echo $custom_css;
25
  } // admin_bar_style
33
  if (false === current_user_can('administrator') || false === apply_filters('csmm_show_admin_bar', true)) {
34
  return;
35
  }
36
+
37
  $options = csmm_get_options();
38
+
39
  if (isset($_POST['signals_csmm_submit'])) {
40
  $options['status'] = (string) (int) !empty($_POST['signals_csmm_status']);
41
  }
42
 
43
  if ($options['status'] == '1') {
44
+ $main_label = '<img src="' . CSMM_URL . '/framework/admin/img/mm-icon.png" alt="' . __('Maintenance mode is enabled', 'under-construction-page') . '" title="' . __('Maintenance mode is enabled', 'under-construction-page') . '"> <span class="ab-label">' . __('Maintenance Mode', 'under-construction-page') . ' <i class="csmm-status-dot csmm-status-dot-enabled">&#9679;</i></span>';
45
  $class = 'csmm-enabled';
46
  $action_url = add_query_arg(array('action' => 'csmm_change_status', 'new_status' => 'disabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
47
  $action = __('Maintenance mode', 'under-construction-page');
48
  $action .= '<a href="' . $action_url . '" id="csmm-status-wrapper" class="on"><span id="csmm-status-off" class="csmm-status-btn">OFF</span><span id="csmm-status-on" class="csmm-status-btn">ON</span></a>';
49
  } else {
50
+ $main_label = '<img src="' . CSMM_URL . '/framework/admin/img/mm-icon.png" alt="' . __('Maintenance mode is disabled', 'under-construction-page') . '" title="' . __('Maintenance mode is disabled', 'under-construction-page') . '"> <span class="ab-label">' . __('Maintenance Mode', 'under-construction-page') . ' <i class="csmm-status-dot csmm-status-dot-disabled">&#9679;</i></span>';
51
  $class = 'csmm-disabled';
52
  $action_url = add_query_arg(array('action' => 'csmm_change_status', 'new_status' => 'enabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
53
  $action = __('Maintenance mode', 'under-construction-page');
67
  'href' => false,
68
  'parent'=> 'csmm'
69
  ));
70
+ $wp_admin_bar->add_node( array(
71
+ 'id' => 'csmm-preview',
72
+ 'title' => 'Preview',
73
+ 'href' => CSMM_URL . '/framework/admin/preview.php',
74
+ 'parent' => 'csmm',
75
+ 'meta' => array('target' => '_blank')
76
+ ));
77
  $wp_admin_bar->add_node( array(
78
  'id' => 'csmm-settings',
79
  'title' => 'Settings',
81
  'parent' => 'csmm'
82
  ));
83
  } // admin_bar
84
+
85
+
86
  // change status via admin bar
87
  static function change_status() {
88
  if (empty($_GET['new_status'])) {
111
  } // class csmm
112
 
113
  add_action('init', array('CSMM', 'init'));
114
+
115
+
116
+ // helper function to generate tagged buy links
117
+ function csmm_generate_web_link($placement = '', $page = '/', $params = array(), $anchor = '') {
118
+ $base_url = 'https://comingsoonwp.com';
119
+
120
+ if ('/' != $page) {
121
+ $page = '/' . trim($page, '/') . '/';
122
+ }
123
+ if ($page == '//') {
124
+ $page = '/';
125
+ }
126
+
127
+ $parts = array_merge(array('utm_source' => 'csmm-free', 'utm_medium' => 'plugin', 'utm_content' => $placement, 'utm_campaign' => 'csmm-free-v' . csmm_get_plugin_version()), $params);
128
+
129
+ if (!empty($anchor)) {
130
+ $anchor = '#' . trim($anchor, '#');
131
+ }
132
+
133
+ $out = $base_url . $page . '?' . http_build_query($parts, '', '&amp;') . $anchor;
134
+
135
+ return $out;
136
+ } // generate_web_link
framework/public/img/mm-logo.png CHANGED
Binary file
framework/public/include/functions.php CHANGED
@@ -35,9 +35,9 @@ function csmm_render_template( $options ) {
35
 
36
  // Template file
37
  if ( '1' == $options['disable_settings'] ) {
38
- require_once SIGNALS_CSMM_PATH . 'framework/public/views/blank.php';
39
  } else {
40
- require_once SIGNALS_CSMM_PATH . 'framework/public/views/html.php';
41
  }
42
 
43
  ob_flush();
35
 
36
  // Template file
37
  if ( '1' == $options['disable_settings'] ) {
38
+ require_once CSMM_PATH . 'framework/public/views/blank.php';
39
  } else {
40
+ require_once CSMM_PATH . 'framework/public/views/html.php';
41
  }
42
 
43
  ob_flush();
framework/public/init.php CHANGED
@@ -29,10 +29,6 @@ function csmm_plugin_init() {
29
  // Plugin options from the database
30
  $signals_csmm_options = csmm_get_options();
31
 
32
- // Localization
33
- load_plugin_textdomain( 'signals', false, SIGNALS_CSMM_PATH . 'framework/langs' );
34
-
35
-
36
  // Getting custom login URL for the admin
37
  $signals_login_url = wp_login_url();
38
 
29
  // Plugin options from the database
30
  $signals_csmm_options = csmm_get_options();
31
 
 
 
 
 
32
  // Getting custom login URL for the admin
33
  $signals_login_url = wp_login_url();
34
 
framework/public/views/blank.php CHANGED
@@ -21,7 +21,7 @@
21
  <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
22
  <link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
23
  <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
24
- <link rel="stylesheet" type="text/css" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/public/css/basic.css" />
25
  <script src='//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'></script>
26
  <script>
27
  WebFont.load( {
@@ -63,7 +63,7 @@
63
  $signals_email = filter_var( strtolower( trim( $signals_email ) ), FILTER_SANITIZE_EMAIL );
64
 
65
  if ( strpos( $signals_email, '@' ) ) {
66
- require_once SIGNALS_CSMM_PATH . '/framework/admin/include/classes/class-mailchimp.php';
67
 
68
  $signals_connect = new Signals_MailChimp( $options['mailchimp_api'] );
69
  $signals_response = $signals_connect->call( 'lists/subscribe', array(
@@ -115,7 +115,6 @@
115
  echo $custom_html;
116
 
117
  ?>
118
-
119
  <!-- Maintenance Mode Plugin by Web Factory Ltd (http://www.webfactoryltd.com) -->
120
  </body>
121
  </html>
21
  <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
22
  <link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
23
  <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
24
+ <link rel="stylesheet" type="text/css" href="<?php echo CSMM_URL; ?>/framework/public/css/basic.css" />
25
  <script src='//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'></script>
26
  <script>
27
  WebFont.load( {
63
  $signals_email = filter_var( strtolower( trim( $signals_email ) ), FILTER_SANITIZE_EMAIL );
64
 
65
  if ( strpos( $signals_email, '@' ) ) {
66
+ require_once CSMM_PATH . '/framework/admin/include/classes/class-mailchimp.php';
67
 
68
  $signals_connect = new Signals_MailChimp( $options['mailchimp_api'] );
69
  $signals_response = $signals_connect->call( 'lists/subscribe', array(
115
  echo $custom_html;
116
 
117
  ?>
 
118
  <!-- Maintenance Mode Plugin by Web Factory Ltd (http://www.webfactoryltd.com) -->
119
  </body>
120
  </html>
framework/public/views/html.php CHANGED
@@ -20,7 +20,7 @@
20
  <link rel="shortcut icon" href="<?php echo esc_url_raw( $options['favicon'] ); ?>" />
21
  <?php endif; ?>
22
  <link rel="profile" href="https://gmpg.org/xfn/11">
23
- <link rel="stylesheet" type="text/css" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/public/css/public.css" />
24
  <script src='//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'></script>
25
  <script>
26
  WebFont.load( {
@@ -29,7 +29,22 @@
29
  }
30
  } );
31
  </script>
32
- <?php require_once SIGNALS_CSMM_PATH . '/framework/public/include/styles.php'; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  </head>
34
  <body class="signals-plugin">
35
  <div class="maintenance-mode">
@@ -68,7 +83,7 @@
68
  $signals_email = filter_var( strtolower( trim( $signals_email ) ), FILTER_SANITIZE_EMAIL );
69
 
70
  if ( strpos( $signals_email, '@' ) ) {
71
- require_once SIGNALS_CSMM_PATH . '/framework/admin/include/classes/class-mailchimp.php';
72
 
73
  $signals_connect = new Signals_MailChimp( $options['mailchimp_api'] );
74
  $signals_response = $signals_connect->call( 'lists/subscribe', array(
@@ -141,14 +156,5 @@
141
  <?php echo csmm_linkback(); ?>
142
  </div><!-- .s-container -->
143
  </div><!-- .maintenance-mode -->
144
-
145
- <?php
146
-
147
- // analytics
148
- if ( !empty( $options['analytics'] )) {
149
- echo stripslashes( $options['analytics'] ) . "\r\n";
150
- }
151
-
152
- ?>
153
  </body>
154
  </html>
20
  <link rel="shortcut icon" href="<?php echo esc_url_raw( $options['favicon'] ); ?>" />
21
  <?php endif; ?>
22
  <link rel="profile" href="https://gmpg.org/xfn/11">
23
+ <link rel="stylesheet" type="text/css" href="<?php echo CSMM_URL; ?>/framework/public/css/public.css" />
24
  <script src='//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'></script>
25
  <script>
26
  WebFont.load( {
29
  }
30
  } );
31
  </script>
32
+ <?php require_once CSMM_PATH . '/framework/public/include/styles.php'; ?>
33
+
34
+ <?php
35
+
36
+ // analytics
37
+ if (csmm_convert_ga($options['analytics'])) {
38
+ echo '<!-- Global site tag (gtag.js) - Google Analytics -->
39
+ <script async src="https://www.googletagmanager.com/gtag/js?id=' . csmm_convert_ga($options['analytics']) . '"></script>
40
+ <script>
41
+ window.dataLayer = window.dataLayer || [];
42
+ function gtag(){dataLayer.push(arguments);}
43
+ gtag(\'js\', new Date());
44
+ gtag(\'config\', \'' . csmm_convert_ga($options['analytics']) . '\');
45
+ </script>' . "\r\n";
46
+ }
47
+ ?>
48
  </head>
49
  <body class="signals-plugin">
50
  <div class="maintenance-mode">
83
  $signals_email = filter_var( strtolower( trim( $signals_email ) ), FILTER_SANITIZE_EMAIL );
84
 
85
  if ( strpos( $signals_email, '@' ) ) {
86
+ require_once CSMM_PATH . '/framework/admin/include/classes/class-mailchimp.php';
87
 
88
  $signals_connect = new Signals_MailChimp( $options['mailchimp_api'] );
89
  $signals_response = $signals_connect->call( 'lists/subscribe', array(
156
  <?php echo csmm_linkback(); ?>
157
  </div><!-- .s-container -->
158
  </div><!-- .maintenance-mode -->
 
 
 
 
 
 
 
 
 
159
  </body>
160
  </html>
minimal-coming-soon-maintenance-mode.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Minimal Coming Soon & Maintenance Mode
4
  * Plugin URI: https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/
5
  * Description: Simply awesome coming soon & maintenance mode plugin. Super-simple to use. MailChimp support built-in.
6
- * Version: 1.50
7
  * Author: WebFactory
8
  * Author URI: https://www.webfactoryltd.com
9
  * License: GPLv3
@@ -37,8 +37,8 @@ if (!defined('WPINC')) {
37
 
38
  /* Constants we will be using throughout the plugin. */
39
  define('CSMM_BASENAME', plugin_basename(__FILE__));
40
- define('SIGNALS_CSMM_URL', plugins_url('', __FILE__));
41
- define('SIGNALS_CSMM_PATH', plugin_dir_path(__FILE__));
42
  define('CSMM_POINTERS', 'csmm_pointers');
43
 
44
 
@@ -49,7 +49,7 @@ function csmm_default_options() {
49
  'title' => 'Site is under maintenance',
50
  'description' => 'We are doing some maintenance on our site. Please come back later.',
51
  'love' => '0',
52
- 'header_text' => 'Sorry, we\'re doing some maintenance',
53
  'secondary_text' => 'We are doing some maintenance on our site. It won\'t take long, we promise. Come back and visit us again in a few days. Thank you for your patience!',
54
  'antispam_text' => 'And yes, we hate spam too!',
55
  'custom_login_url' => '',
@@ -65,12 +65,12 @@ function csmm_default_options() {
65
  'message_wrong' => 'Oops! Something went wrong.',
66
  'message_done' => 'Thank you! We\'ll be in touch!',
67
 
68
- 'logo' => SIGNALS_CSMM_URL . '/framework/public/img/mm-logo.png',
69
- 'favicon' => SIGNALS_CSMM_URL . '/framework/public/img/mm-favicon.png',
70
- 'bg_cover' => SIGNALS_CSMM_URL . '/framework/public/img/mountain-bg.jpg',
71
  'content_overlay' => 1,
72
  'content_width' => '600',
73
- 'bg_color' => 'ffffff',
74
  'content_position' => 'center',
75
  'content_alignment' => 'left',
76
  'header_font' => 'Karla',
@@ -80,33 +80,33 @@ function csmm_default_options() {
80
  'header_font_color' => 'FFFFFF',
81
  'secondary_font_color' => 'FFFFFF',
82
  'antispam_font_size' => '13',
83
- 'antispam_font_color' => 'bbbbbb',
84
 
85
  'input_text' => 'Enter your best email address',
86
  'button_text' => 'Subscribe',
87
  'ignore_form_styles' => 1,
88
  'input_font_size' => '13',
89
  'button_font_size' => '12',
90
- 'input_font_color' => 'ffffff',
91
- 'button_font_color' => 'ffffff',
92
  'input_bg' => '',
93
- 'button_bg' => '0f0f0f',
94
  'input_bg_hover' => '',
95
- 'button_bg_hover' => '0a0a0a',
96
- 'input_border' => 'eeeeee',
97
- 'button_border' => '0f0f0f',
98
- 'input_border_hover' => 'bbbbbb',
99
- 'button_border_hover' => '0a0a0a',
100
- 'success_background' => '90c695',
101
- 'success_color' => 'ffffff',
102
- 'error_background' => 'e08283',
103
- 'error_color' => 'ffffff',
104
 
105
  'disable_settings' => '2',
106
  'custom_html' => '',
107
  'custom_css' => ''
108
  );
109
-
110
  return $default_options;
111
  } // csmm_default_options
112
 
@@ -114,7 +114,7 @@ function csmm_default_options() {
114
  function csmm_get_options() {
115
  $signals_csmm_options = get_option('signals_csmm_options', array());
116
  $signals_csmm_options = array_merge(csmm_default_options(), $signals_csmm_options);
117
-
118
  return $signals_csmm_options;
119
  } // csmm_get_options
120
 
@@ -141,7 +141,7 @@ function csmm_plugin_activation() {
141
  $default_options = array_merge( $default_options, $signals_csmm_options );
142
  update_option( 'signals_csmm_options', $default_options );
143
  }
144
-
145
  // set some meta data
146
  $meta = get_option('signals_csmm_meta', array());
147
  if (!isset($meta['first_version']) || !isset($meta['first_install'])) {
@@ -168,7 +168,7 @@ function csmm_plugin_page() {
168
  return true;
169
  } else {
170
  return false;
171
- }
172
  } // csmm_plugin_page
173
 
174
 
@@ -176,13 +176,13 @@ function csmm_plugin_page() {
176
  * Include files necessary for the management panel of the plugin.
177
  */
178
 
179
- require SIGNALS_CSMM_PATH . 'framework/init.php';
180
-
181
  if (is_admin()) {
182
- require SIGNALS_CSMM_PATH . 'framework/admin/init.php';
183
  }
184
 
185
- require SIGNALS_CSMM_PATH . 'framework/public/init.php';
186
 
187
 
188
  function csmm_get_plugin_version() {
@@ -190,3 +190,17 @@ function csmm_get_plugin_version() {
190
 
191
  return $plugin_data['version'];
192
  } // csmm_get_plugin_version
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  * Plugin Name: Minimal Coming Soon & Maintenance Mode
4
  * Plugin URI: https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/
5
  * Description: Simply awesome coming soon & maintenance mode plugin. Super-simple to use. MailChimp support built-in.
6
+ * Version: 1.55
7
  * Author: WebFactory
8
  * Author URI: https://www.webfactoryltd.com
9
  * License: GPLv3
37
 
38
  /* Constants we will be using throughout the plugin. */
39
  define('CSMM_BASENAME', plugin_basename(__FILE__));
40
+ define('CSMM_URL', plugins_url('', __FILE__));
41
+ define('CSMM_PATH', plugin_dir_path(__FILE__));
42
  define('CSMM_POINTERS', 'csmm_pointers');
43
 
44
 
49
  'title' => 'Site is under maintenance',
50
  'description' => 'We are doing some maintenance on our site. Please come back later.',
51
  'love' => '0',
52
+ 'header_text' => 'Our site is coming soon',
53
  'secondary_text' => 'We are doing some maintenance on our site. It won\'t take long, we promise. Come back and visit us again in a few days. Thank you for your patience!',
54
  'antispam_text' => 'And yes, we hate spam too!',
55
  'custom_login_url' => '',
65
  'message_wrong' => 'Oops! Something went wrong.',
66
  'message_done' => 'Thank you! We\'ll be in touch!',
67
 
68
+ 'logo' => CSMM_URL . '/framework/public/img/mm-logo.png',
69
+ 'favicon' => CSMM_URL . '/framework/public/img/mm-favicon.png',
70
+ 'bg_cover' => CSMM_URL . '/framework/public/img/mountain-bg.jpg',
71
  'content_overlay' => 1,
72
  'content_width' => '600',
73
+ 'bg_color' => 'FFFFFF',
74
  'content_position' => 'center',
75
  'content_alignment' => 'left',
76
  'header_font' => 'Karla',
80
  'header_font_color' => 'FFFFFF',
81
  'secondary_font_color' => 'FFFFFF',
82
  'antispam_font_size' => '13',
83
+ 'antispam_font_color' => 'BBBBBB',
84
 
85
  'input_text' => 'Enter your best email address',
86
  'button_text' => 'Subscribe',
87
  'ignore_form_styles' => 1,
88
  'input_font_size' => '13',
89
  'button_font_size' => '12',
90
+ 'input_font_color' => 'FFFFFF',
91
+ 'button_font_color' => 'FFFFFF',
92
  'input_bg' => '',
93
+ 'button_bg' => '0F0F0F',
94
  'input_bg_hover' => '',
95
+ 'button_bg_hover' => '0A0A0A',
96
+ 'input_border' => 'EEEEEE',
97
+ 'button_border' => '0F0F0F',
98
+ 'input_border_hover' => 'BBBBBB',
99
+ 'button_border_hover' => '0A0A0A',
100
+ 'success_background' => '90C695',
101
+ 'success_color' => 'FFFFFF',
102
+ 'error_background' => 'E08283',
103
+ 'error_color' => 'FFFFFF',
104
 
105
  'disable_settings' => '2',
106
  'custom_html' => '',
107
  'custom_css' => ''
108
  );
109
+
110
  return $default_options;
111
  } // csmm_default_options
112
 
114
  function csmm_get_options() {
115
  $signals_csmm_options = get_option('signals_csmm_options', array());
116
  $signals_csmm_options = array_merge(csmm_default_options(), $signals_csmm_options);
117
+
118
  return $signals_csmm_options;
119
  } // csmm_get_options
120
 
141
  $default_options = array_merge( $default_options, $signals_csmm_options );
142
  update_option( 'signals_csmm_options', $default_options );
143
  }
144
+
145
  // set some meta data
146
  $meta = get_option('signals_csmm_meta', array());
147
  if (!isset($meta['first_version']) || !isset($meta['first_install'])) {
168
  return true;
169
  } else {
170
  return false;
171
+ }
172
  } // csmm_plugin_page
173
 
174
 
176
  * Include files necessary for the management panel of the plugin.
177
  */
178
 
179
+ require CSMM_PATH . 'framework/init.php';
180
+
181
  if (is_admin()) {
182
+ require CSMM_PATH . 'framework/admin/init.php';
183
  }
184
 
185
+ require CSMM_PATH . 'framework/public/init.php';
186
 
187
 
188
  function csmm_get_plugin_version() {
190
 
191
  return $plugin_data['version'];
192
  } // csmm_get_plugin_version
193
+
194
+
195
+ function csmm_convert_ga($code) {
196
+ if (empty($code) || strpos($code, '<script') === false) {
197
+ return $code;
198
+ }
199
+
200
+ preg_match_all('/(UA-[0-9]{3,10}-[0-9]{1,3})/i', $code, $matches, PREG_SET_ORDER, 0);
201
+ if (!empty($matches[0][0])) {
202
+ return $matches[0][0];
203
+ } else {
204
+ return '';
205
+ }
206
+ } // csmm_convert_ga
readme.txt CHANGED
@@ -1,45 +1,44 @@
1
  === Minimal Coming Soon & Maintenance Mode ===
2
  Contributors: WebFactory
3
- Tags: coming soon, coming soon page, launch page, maintenance mode, mailchimp
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
- Stable tag: 1.50
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
- Simple & flexible Coming Soon & Maintenance Mode plugin - sets up in under a minute. MailChimp support built-in.
12
 
13
 
14
  == Description ==
15
- The <a href="https://comingsoonwp.com/">Minimal Coming Soon & Maintenance Mode</a> plugin allows you to **quickly & easily** set up a Coming Soon, Maintenance Mode or Launch Page for your website.
16
 
17
- It's simple + flexible and works with any WordPress theme & plugin, plus you'll have full control over the frontend of the website and can modify almost every aspect of it per your preference. Easily connects with MailChimp so that you can **collect emails** from visitors.
18
 
19
 
20
  = Plugin Features =
21
 
22
- * check out <a href="https://comingsoonwp.com/themes/">30+ themes</a> that come with the PRO version
23
  * Works with all WordPress themes and plugins
24
- * Completely customizable look and feel including background color, cover image, fonts etc
25
- * includes <a href="https://comingsoonwp.com/">400,000 premium images</a> in PRO version
26
  * Each and every element of the maintenance page can be configured
27
- * Option to preview the maintenance page before activation
28
- * <a href="https://comingsoonwp.com/">SEO preview and analysis tools</a> are available in the PRO version
29
- * Rearrange position of the page elements to your liking
30
  * W3 Total Cache and WP Super Cache Support
31
  * Easily add Custom CSS and HTML
32
- * Collect Emails with MailChimp - full API support
33
- * You can let search engines to view website normally while visitors see the "Coming Soon" page
34
- * Visible to only non logged in users so you can build your site while visitors see the "Coming Soon" page. Configurable via options panel
35
- * Supports Custom Login URL
36
  * Track visitors with support for Google Analytics
37
  * Over 700 Google Fonts available to fit any design
38
  * Stretch Background Image to Cover the Entire Browser
39
  * Uses HTML5 & CSS3
40
- * Translation Ready, i18n Support
41
  * Powerful Options Panel
42
- * Get support from within the options panel - send a message directly to support agents
43
 
44
 
45
  == Installation ==
@@ -56,7 +55,7 @@ To manually install the plugin, please do the following:
56
 
57
  = Having issues with the plugin? =
58
 
59
- Please use the <a href="https://wordpress.org/support/plugin/minimal-coming-soon-maintenance-mode">support forum</a>. We read it all the time.
60
 
61
  = Emails not saving in MailChimp? =
62
 
@@ -77,6 +76,17 @@ Yes and no. When activated it enables itself across the entire WP-MU network.
77
 
78
  == Changelog ==
79
 
 
 
 
 
 
 
 
 
 
 
 
80
  = 1.50 =
81
  * 2018-01-05
82
  * added admin bar status/menu
1
  === Minimal Coming Soon & Maintenance Mode ===
2
  Contributors: WebFactory
3
+ Tags: coming soon, coming soon page, launch page, maintenance mode, mailchimp, coming soon mode, under construction, maintenance mode page, landing page, offline page, subscribe form, maintenance
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
+ Stable tag: 1.55
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
+ Simple & flexible Coming Soon, Maintenance Mode & Landing Pages - sets up in under a minute. MailChimp support built-in.
12
 
13
 
14
  == Description ==
15
+ The <a href="https://comingsoonwp.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=top">Minimal Coming Soon & Maintenance Mode</a> plugin allows you to **quickly & easily** set up a Coming Soon, Maintenance Mode, Landing Page or Launch Page for your website.
16
 
17
+ It's simple + flexible and works with any WordPress theme & plugin, plus you'll have full control over the frontend of the website and can modify almost every aspect of it per your preference. Easily connects with MailChimp API so that you can **collect emails** from visitors.
18
 
19
 
20
  = Plugin Features =
21
 
22
+ * check out <a href="https://comingsoonwp.com/themes/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=themes">30+ themes</a> that come with the PRO version
23
  * Works with all WordPress themes and plugins
24
+ * Completely customizable look and feel including background color, cover image, fonts, logo etc
25
+ * includes <a href="https://comingsoonwp.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=400_images">400,000 premium images</a> in PRO version
26
  * Each and every element of the maintenance page can be configured
27
+ * Option to preview the coming soon or maintenance page before activation
28
+ * <a href="https://comingsoonwp.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=seo">SEO preview and analysis tools</a> are available in the PRO version
29
+ * Rearrange position of the page elements to your liking - simple drag&drop
30
  * W3 Total Cache and WP Super Cache Support
31
  * Easily add Custom CSS and HTML
32
+ * Collect Emails with MailChimp - full API support built-in
33
+ * You can let search engines to view website normally while visitors see the Coming Soon page
34
+ * Visible to only non logged in users so you can build your site while visitors see the Coming Soon page
35
+ * Supports Custom Login URL - works with all custom login plugins
36
  * Track visitors with support for Google Analytics
37
  * Over 700 Google Fonts available to fit any design
38
  * Stretch Background Image to Cover the Entire Browser
39
  * Uses HTML5 & CSS3
 
40
  * Powerful Options Panel
41
+ * Get support from within the options panel - send a message directly to support agents, get a response ASAP
42
 
43
 
44
  == Installation ==
55
 
56
  = Having issues with the plugin? =
57
 
58
+ Please use the <a href="https://wordpress.org/support/plugin/minimal-coming-soon-maintenance-mode">support forum</a>. We read it all the time. Or use the built-in contact form found in the plugin admin.
59
 
60
  = Emails not saving in MailChimp? =
61
 
76
 
77
  == Changelog ==
78
 
79
+ = 1.55 =
80
+ * 2018-02-27
81
+ * added preview to admin bar status/menu
82
+ * GA tracking option no longer takes the whole snippet, just the GA ID
83
+ * a lot of small improvements
84
+ * interface touchup
85
+ * added themes tab with 2 themes + PRO ones
86
+ * PRO is up for sale
87
+ * still on 40k installs; 260k downloads
88
+ * improved readme
89
+
90
  = 1.50 =
91
  * 2018-01-05
92
  * added admin bar status/menu