LoftLoader - Version 1.0.2

Version Description

  • Fixed: Load before anything bug
  • Fixed: Wave animation minor bug
  • Added: Pro version link on settings page

=

Download this release

Release Info

Developer loftocean
Plugin Icon 128x128 LoftLoader
Version 1.0.2
Comparing to
See all releases

Code changes from version 1.0.1 to 1.0.2

configs/loftloader-config.php CHANGED
@@ -8,7 +8,6 @@ if(!defined('ABSPATH')){
8
  * fields and the default settings
9
  *
10
  * @package LoftLoader
11
- * @version 1.0
12
  * @link http://www.loftocean.com/
13
  * @author Suihai Huang from Loft Ocean Team
14
 
8
  * fields and the default settings
9
  *
10
  * @package LoftLoader
 
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
13
 
css/loftloader-animation.css CHANGED
@@ -11,9 +11,10 @@
11
  position: fixed;
12
  top: 0;
13
  left: 0;
14
- z-index: 1000;
15
  width: 100%;
16
  height: 100%;
 
17
  }
18
 
19
  .loaded #loftloader-wrapper {
@@ -184,26 +185,22 @@
184
 
185
  #loftloader-wrapper.pl-wave #loader {
186
  position: relative;
187
- width: 50px;
188
  height: 30px;
189
  }
190
 
191
  #loftloader-wrapper.pl-wave #loader span,
192
  #loftloader-wrapper.pl-wave #loader:before,
193
  #loftloader-wrapper.pl-wave #loader:after {
194
- position: absolute;
195
- display: block;
196
  width: 6px;
197
  height: 100%;
198
  background: #248ACC;
199
  }
200
 
201
  #loftloader-wrapper.pl-wave #loader span {
202
- top: 50%;
203
- left: 50%;
204
- -webkit-transform: translate(-50%, -50%);
205
- -ms-transform: translate(-50%, -50%);
206
- transform: translate(-50%, -50%);
207
  -webkit-animation: wave 0.9s linear infinite 0.3s;
208
  animation: wave 0.9s linear infinite 0.3s;
209
  }
@@ -214,52 +211,42 @@
214
  }
215
 
216
  #loftloader-wrapper.pl-wave #loader:before {
217
- top: 50%;
218
- left: 0;
219
- -webkit-transform: translate(0, -50%);
220
- -ms-transform: translate(0, -50%);
221
- transform: translate(0, -50%);
222
  -webkit-animation: wave 0.9s linear infinite;
223
  animation: wave 0.9s linear infinite;
224
  }
225
 
226
  #loftloader-wrapper.pl-wave #loader:after {
227
- top: 50%;
228
- right: 0;
229
- -webkit-transform: translate(0, -50%);
230
- -ms-transform: translate(0, -50%);
231
- transform: translate(0, -50%);
232
  -webkit-animation: wave 0.9s linear infinite 0.6s;
233
  animation: wave 0.9s linear infinite 0.6s;
234
  }
235
 
236
  @-webkit-keyframes wave {
237
  0% {
238
- height: 100%
239
  }
240
  40% {
241
- height: 10%;
242
  }
243
  80% {
244
- height: 100%;
245
  }
246
  100% {
247
- height: 100%;
248
  }
249
  }
250
 
251
  @keyframes wave {
252
  0% {
253
- height: 100%
254
  }
255
  40% {
256
- height: 10%;
257
  }
258
  80% {
259
- height: 100%;
260
  }
261
  100% {
262
- height: 100%;
263
  }
264
  }
265
 
11
  position: fixed;
12
  top: 0;
13
  left: 0;
14
+ z-index: 9999;
15
  width: 100%;
16
  height: 100%;
17
+ background: transparent !important;
18
  }
19
 
20
  .loaded #loftloader-wrapper {
185
 
186
  #loftloader-wrapper.pl-wave #loader {
187
  position: relative;
188
+ width: 60px;
189
  height: 30px;
190
  }
191
 
192
  #loftloader-wrapper.pl-wave #loader span,
193
  #loftloader-wrapper.pl-wave #loader:before,
194
  #loftloader-wrapper.pl-wave #loader:after {
195
+ position: relative;
196
+ display: inline-block;
197
  width: 6px;
198
  height: 100%;
199
  background: #248ACC;
200
  }
201
 
202
  #loftloader-wrapper.pl-wave #loader span {
203
+ margin: 0 16px;
 
 
 
 
204
  -webkit-animation: wave 0.9s linear infinite 0.3s;
205
  animation: wave 0.9s linear infinite 0.3s;
206
  }
211
  }
212
 
213
  #loftloader-wrapper.pl-wave #loader:before {
 
 
 
 
 
214
  -webkit-animation: wave 0.9s linear infinite;
215
  animation: wave 0.9s linear infinite;
216
  }
217
 
218
  #loftloader-wrapper.pl-wave #loader:after {
 
 
 
 
 
219
  -webkit-animation: wave 0.9s linear infinite 0.6s;
220
  animation: wave 0.9s linear infinite 0.6s;
221
  }
222
 
223
  @-webkit-keyframes wave {
224
  0% {
225
+ -webkit-transform: scaleY(1);
226
  }
227
  40% {
228
+ -webkit-transform: scaleY(0.1);
229
  }
230
  80% {
231
+ -webkit-transform: scaleY(1);
232
  }
233
  100% {
234
+ -webkit-transform: scaleY(1);
235
  }
236
  }
237
 
238
  @keyframes wave {
239
  0% {
240
+ transform: scaleY(1);
241
  }
242
  40% {
243
+ transform: scaleY(0.1);
244
  }
245
  80% {
246
+ transform: scaleY(1);
247
  }
248
  100% {
249
+ transform: scaleY(1);
250
  }
251
  }
252
 
css/settings/loftloader-settings.css CHANGED
@@ -29,12 +29,24 @@
29
 
30
  .loftloader-options-panel {
31
  position: relative;
 
 
32
  padding: 20px;
33
  box-sizing: border-box;
34
  overflow: auto;
35
  font-size: 13px;
36
  }
37
 
 
 
 
 
 
 
 
 
 
 
38
  .loftloader-options-panel * {
39
  margin: 0 auto;
40
  padding: 0;
@@ -519,6 +531,11 @@ h1.loftloader-option-section-title {
519
  }
520
 
521
  @media screen and (max-width : 640px) {
 
 
 
 
 
522
  .loftloader-options-panel ul.form-list li .list-title,
523
  .loftloader-options-panel ul.form-list li .list-content {
524
  float: none;
29
 
30
  .loftloader-options-panel {
31
  position: relative;
32
+ float: left;
33
+ width: 75%;
34
  padding: 20px;
35
  box-sizing: border-box;
36
  overflow: auto;
37
  font-size: 13px;
38
  }
39
 
40
+ #loftloader-pro-ad-wrapper {
41
+ float: left;
42
+ width: 25%;
43
+ }
44
+
45
+ #loftloader-pro-ad-wrapper img {
46
+ width: 100%;
47
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
48
+ }
49
+
50
  .loftloader-options-panel * {
51
  margin: 0 auto;
52
  padding: 0;
531
  }
532
 
533
  @media screen and (max-width : 640px) {
534
+ .loftloader-options-panel,
535
+ #loftloader-pro-ad-wrapper {
536
+ float: none;
537
+ width: 100%;
538
+ }
539
  .loftloader-options-panel ul.form-list li .list-title,
540
  .loftloader-options-panel ul.form-list li .list-content {
541
  float: none;
front/class-loftloader-front.php CHANGED
@@ -8,7 +8,6 @@ if(!defined('ABSPATH')){
8
  * Main class for front display
9
  *
10
  * @package LoftLoader
11
- * @version 1.0
12
  * @link http://www.loftocean.com/
13
  * @author Suihai Huang from Loft Ocean Team
14
 
@@ -53,6 +52,7 @@ if(!class_exists('LoftLoader_Front')){
53
  public function loader_custom_styles(){
54
  $styles = get_option('loftloader-custom-styles', '');
55
  echo empty($styles) ? '' : '<style type="text/css">' . $styles . '</style>';
 
56
  }
57
  /**
58
  * @description loftloader html
@@ -82,7 +82,16 @@ if(!class_exists('LoftLoader_Front')){
82
  $html .= '</div><div class="loader-section section-right"></div>';
83
  }
84
  $html .= '</div>';
85
- echo $html;
 
 
 
 
 
 
 
 
 
86
  }
87
  }
88
  new LoftLoader_Front();
8
  * Main class for front display
9
  *
10
  * @package LoftLoader
 
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
13
 
52
  public function loader_custom_styles(){
53
  $styles = get_option('loftloader-custom-styles', '');
54
  echo empty($styles) ? '' : '<style type="text/css">' . $styles . '</style>';
55
+ ob_start();
56
  }
57
  /**
58
  * @description loftloader html
82
  $html .= '</div><div class="loader-section section-right"></div>';
83
  }
84
  $html .= '</div>';
85
+
86
+ $origin = ob_get_clean();
87
+ $regexp ='/<body[^>]*>/i';
88
+ if(preg_match($regexp, $origin, $match)){
89
+ $html = $match[0] . $html;
90
+ echo preg_replace($regexp, $html, $origin);
91
+ }
92
+ else{
93
+ echo $origin . $html;
94
+ }
95
  }
96
  }
97
  new LoftLoader_Front();
img/pro-ad.jpg ADDED
Binary file
loftloader.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: LoftLoader
4
  Plugin URI: http://www.loftocean.com/
5
  Description: An easy to use plugin to add an animated preloader to your website with fully customisations.
6
- Version: 1.0.1
7
  Author: Loft Ocean
8
  Author URI: http://www.loftocean.com/
9
  Text Domain: loftloader
@@ -17,7 +17,6 @@ License URI: https://www.gnu.org/licenses/gpl-2.0.html
17
  * LoftLoader main file
18
  *
19
  * @package LoftLoader
20
- * @version 1.0
21
  * @link http://www.loftocean.com/
22
  * @author Suihai Huang from Loft Ocean Team
23
  */
@@ -34,7 +33,7 @@ if(!class_exists('LoftLoader')){
34
  * Update the plugin version for initial version
35
  */
36
  function loftloader_activate(){
37
- update_option('loftloader_plugin_version', '1.0.0');
38
  }
39
  /**
40
  * Do nothing for initial version
@@ -84,7 +83,7 @@ if(!class_exists('LoftLoader')){
84
  * @description register the loader style css for both plugin setting page and front end
85
  */
86
  public function enqueue_loader_styles(){
87
- wp_register_style('loftloader-animation', LOFTLOADER_CSS_URI . 'loftloader-animation.css', array(), '1.0');
88
  }
89
  }
90
  new LoftLoader(); // Enable LoftLoader
3
  Plugin Name: LoftLoader
4
  Plugin URI: http://www.loftocean.com/
5
  Description: An easy to use plugin to add an animated preloader to your website with fully customisations.
6
+ Version: 1.0.2
7
  Author: Loft Ocean
8
  Author URI: http://www.loftocean.com/
9
  Text Domain: loftloader
17
  * LoftLoader main file
18
  *
19
  * @package LoftLoader
 
20
  * @link http://www.loftocean.com/
21
  * @author Suihai Huang from Loft Ocean Team
22
  */
33
  * Update the plugin version for initial version
34
  */
35
  function loftloader_activate(){
36
+ update_option('loftloader_plugin_version', '1.0.2');
37
  }
38
  /**
39
  * Do nothing for initial version
83
  * @description register the loader style css for both plugin setting page and front end
84
  */
85
  public function enqueue_loader_styles(){
86
+ wp_register_style('loftloader-animation', LOFTLOADER_CSS_URI . 'loftloader-animation.css', array(), '20161015');
87
  }
88
  }
89
  new LoftLoader(); // Enable LoftLoader
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: loftocean
3
  Tags: loader, load, preloader, page preloader, prelader spinner, preloader with custom logo, animated preloader, CSS3 preloader, customize
4
  Donate link:
5
  Requires at least: 4.3
6
- Tested up to: 4.5
7
- Stable tag: 1.0.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -28,6 +28,23 @@ Small and powerful. LoftLoader helps you to add a beautiful animated preloader t
28
  * Option to enable preloader on site homepage only.
29
  * Ready for translation (.pot file included).
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  == Installation ==
32
 
33
  1. Install the plugin either via the WordPress.org plugin directory, or by uploading the files to your server (in the /wp-content/plugins/ directory).
@@ -45,6 +62,10 @@ Small and powerful. LoftLoader helps you to add a beautiful animated preloader t
45
  2. LoftLoader background settings
46
  3. LoftLoader animation settings
47
  4. LoftLoader live preview
 
 
 
 
48
 
49
  == Changelog ==
50
 
@@ -54,6 +75,11 @@ Small and powerful. LoftLoader helps you to add a beautiful animated preloader t
54
  = 1.0.1 =
55
  * Add support for site homepage only
56
 
 
 
 
 
 
57
  == Upgrade Notice ==
58
 
59
  = 1.0.0 =
3
  Tags: loader, load, preloader, page preloader, prelader spinner, preloader with custom logo, animated preloader, CSS3 preloader, customize
4
  Donate link:
5
  Requires at least: 4.3
6
+ Tested up to: 4.6.1
7
+ Stable tag: 1.0.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
28
  * Option to enable preloader on site homepage only.
29
  * Ready for translation (.pot file included).
30
 
31
+ = Pro Version =
32
+
33
+ LoftLoader Pro is available. [Upgrade to pro version](https://codecanyon.net/item/loftloader-pro-preloader-plugin-for-wordpress/17339671) and get more stunning features!
34
+
35
+ * Enhanced settings panel with WordPress Customizer.
36
+ * Handpick - Turn the preloader on for specific pages or posts.
37
+ * Loader - 16 types of animations to choose. 5 of them support custom images.
38
+ * Looping - Animation can be set to looping forever, or just once (ends after page has loaded).
39
+ * Progress - Progress bar or counting percentage. Any color. Position & size control.
40
+ * Message - Enter your custom welcome or loading message to display. Control color & font size.
41
+ * Load Time - Set a minimum load time to prevent the pre-loader from disappearing too fast.
42
+ * Device Control - Choose to show the loading screen on all devices, or hide on mobile, or show on mobile only.
43
+ * Light weight, fast. Coded with SASS. JS minified.
44
+ * Purchase once, free lifetime update with new features.
45
+
46
+ Check some [demos](http://www.loftocean.com/loftloader/example-8/) created by pro version.
47
+
48
  == Installation ==
49
 
50
  1. Install the plugin either via the WordPress.org plugin directory, or by uploading the files to your server (in the /wp-content/plugins/ directory).
62
  2. LoftLoader background settings
63
  3. LoftLoader animation settings
64
  4. LoftLoader live preview
65
+ 5. Pro version: Settings Panel
66
+ 6. Pro version: Custom Image Loading
67
+ 7. Pro version: Gradient Background
68
+ 8. Pro version: Load Time & Device Control
69
 
70
  == Changelog ==
71
 
75
  = 1.0.1 =
76
  * Add support for site homepage only
77
 
78
+ = 1.0.2 =
79
+ * Fixed: Load before anything bug
80
+ * Fixed: Wave animation minor bug
81
+ * Added: Pro version link on settings page
82
+
83
  == Upgrade Notice ==
84
 
85
  = 1.0.0 =
settings/class-loftloader-settings.php CHANGED
@@ -8,7 +8,6 @@ if(!defined('ABSPATH')){
8
  * Main class for plugin option page
9
  *
10
  * @package LoftLoader
11
- * @version 1.0
12
  * @link http://www.loftocean.com/
13
  * @author Suihai Huang from Loft Ocean Team
14
 
@@ -110,6 +109,8 @@ if(!class_exists('LoftLoader_Settings')){
110
  $footer = '<div class="panel-footer">' . $this->get_buttons() . '</div>';
111
  $content = $this->get_settings_content();
112
  $action = admin_url('options.php');
 
 
113
  $html = <<<ETO
114
  <div class="wrap">
115
  <div id="loftloader-options-panel" class="loftloader-options-panel">
@@ -121,6 +122,9 @@ if(!class_exists('LoftLoader_Settings')){
121
  $footer
122
  </form>
123
  </div>
 
 
 
124
  </div>
125
  ETO;
126
  echo $html;
8
  * Main class for plugin option page
9
  *
10
  * @package LoftLoader
 
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
13
 
109
  $footer = '<div class="panel-footer">' . $this->get_buttons() . '</div>';
110
  $content = $this->get_settings_content();
111
  $action = admin_url('options.php');
112
+ $ad_url = LOFTLOADER_URI . 'img/pro-ad.jpg';
113
+ $codecanyon = 'https://codecanyon.net/item/loftloader-pro-preloader-plugin-for-wordpress/17339671';
114
  $html = <<<ETO
115
  <div class="wrap">
116
  <div id="loftloader-options-panel" class="loftloader-options-panel">
122
  $footer
123
  </form>
124
  </div>
125
+ <div id="loftloader-pro-ad-wrapper">
126
+ <a href="$codecanyon" target="_blank"><img src="$ad_url"></a>
127
+ </div>
128
  </div>
129
  ETO;
130
  echo $html;
settings/form/class-loftloader-checkbox.php CHANGED
@@ -8,7 +8,6 @@ if(!defined('ABSPATH')){
8
  * Type Checkbox
9
  *
10
  * @package LoftLoader
11
- * @version 1.0
12
  * @link http://www.loftocean.com/
13
  * @author Suihai Huang from Loft Ocean Team
14
 
8
  * Type Checkbox
9
  *
10
  * @package LoftLoader
 
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
13
 
settings/form/class-loftloader-form-base.php CHANGED
@@ -8,7 +8,6 @@ if(!defined('ABSPATH')){
8
  * The base class of each type of form element
9
  *
10
  * @package LoftLoader
11
- * @version 1.0
12
  * @link http://www.loftocean.com/
13
  * @author Suihai Huang from Loft Ocean Team
14
 
8
  * The base class of each type of form element
9
  *
10
  * @package LoftLoader
 
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
13
 
settings/form/class-loftloader-preview.php CHANGED
@@ -8,7 +8,6 @@ if(!defined('ABSPATH')){
8
  * Type Preloader_Preview, actually this includes a set of settings and a preview for these settings
9
  *
10
  * @package LoftLoader
11
- * @version 1.0
12
  * @link http://www.loftocean.com/
13
  * @author Suihai Huang from Loft Ocean Team
14
 
8
  * Type Preloader_Preview, actually this includes a set of settings and a preview for these settings
9
  *
10
  * @package LoftLoader
 
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
13