Version Description
- 2016/11/29
- we've crossed the 20k users mark & 100k downloads ;)
- added notice on login form when Maintenance is enabled
- 1 new theme
- GUI overhaul started
- added Dribbble social icon
Download this release
Release Info
| Developer | WebFactory |
| Plugin | |
| Version | 1.30 |
| Comparing to | |
| See all releases | |
Code changes from version 1.25 to 1.30
- css/ucp-admin.css +97 -1
- images/forklift.png +0 -0
- js/ucp-admin.js +31 -2
- js/ucp-jquery-plugins.js +17 -0
- readme.txt +11 -1
- themes/forklift/forklift.png +0 -0
- themes/forklift/index.php +57 -0
- themes/forklift/style.css +75 -0
- under-construction.php +186 -54
css/ucp-admin.css
CHANGED
|
@@ -5,9 +5,13 @@
|
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
div.ucp-thumb {
|
| 9 |
width: 250px;
|
| 10 |
-
margin: 0 20px
|
| 11 |
display: inline-block;
|
| 12 |
}
|
| 13 |
|
|
@@ -37,6 +41,98 @@ input[type=url]:invalid {
|
|
| 37 |
box-shadow: 0 0 2px rgba(234,25,25,1);
|
| 38 |
}
|
| 39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
|
| 41 |
/* on/off switch */
|
| 42 |
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
+
.settings_page_ucp h1 {
|
| 9 |
+
font-weight: 500;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
div.ucp-thumb {
|
| 13 |
width: 250px;
|
| 14 |
+
margin: 0 20px 30px 0;
|
| 15 |
display: inline-block;
|
| 16 |
}
|
| 17 |
|
| 41 |
box-shadow: 0 0 2px rgba(234,25,25,1);
|
| 42 |
}
|
| 43 |
|
| 44 |
+
.settings_page_ucp #wp-content-editor-tools {
|
| 45 |
+
background-color: #ffffff;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
/* tabs */
|
| 49 |
+
|
| 50 |
+
.settings_page_ucp .ui-tabs { max-width: 100%; position: relative; padding: 0px; zoom: 1; margin-top:20px } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
| 51 |
+
|
| 52 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; }
|
| 53 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav li { list-style: none; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
| 54 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav li a { text-decoration: none; }
|
| 55 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; border-bottom: 1px solid #F1F1F1 !important; }
|
| 56 |
+
.settings_page_ucp .ui-tabs ul.ui-tabs-nav li.ui-state-active { border-top: 3px solid #e0632f; background: #ffffff; }
|
| 57 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .settings_page_ucp .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .settings_page_ucp .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
| 58 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav li a, .settings_page_ucp .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
| 59 |
+
.settings_page_ucp .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 20px; background: #ffffff; }
|
| 60 |
+
.settings_page_ucp .ui-tabs .ui-tabs-hide { display: none !important; }
|
| 61 |
+
|
| 62 |
+
.settings_page_ucp .ui-tabs .ui-tabs-nav li a {
|
| 63 |
+
font-size: 14px;
|
| 64 |
+
font-weight: 600;
|
| 65 |
+
line-height: 32px;
|
| 66 |
+
color: #AAAAAA;
|
| 67 |
+
padding: 0 5px;
|
| 68 |
+
display: block;
|
| 69 |
+
letter-spacing: 1px;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
.settings_page_ucp .ui-tabs ul.ui-tabs-nav li.ui-state-active {
|
| 73 |
+
border-top: 3px solid #e0632f;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
.settings_page_ucp .ui-tabs ul.ui-tabs-nav li.ui-state-active .icon {
|
| 77 |
+
color: #e0632f;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
.settings_page_ucp .ui-tabs-nav:after {
|
| 81 |
+
content: '';
|
| 82 |
+
clear: both;
|
| 83 |
+
display: block;
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
.settings_page_ucp .ui-tabs-anchor, .nav-tab {
|
| 87 |
+
outline: none !important;
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
.settings_page_ucp .ui-tabs ul.ui-tabs-nav li {
|
| 91 |
+
border: none;
|
| 92 |
+
color: #AAAAAA;
|
| 93 |
+
display: inline-block;
|
| 94 |
+
font-size: 12px;
|
| 95 |
+
line-height: 16px;
|
| 96 |
+
margin: 5px 5px -5px 5px;
|
| 97 |
+
text-decoration: none;
|
| 98 |
+
text-shadow: none;
|
| 99 |
+
background: rgba(255, 255, 255, 0.61);
|
| 100 |
+
padding: 15px 25px;
|
| 101 |
+
text-align: center;
|
| 102 |
+
letter-spacing: .5px;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
.settings_page_ucp .ui-tabs ul.ui-tabs-nav li .label {
|
| 106 |
+
display: block;
|
| 107 |
+
margin-top: -10px;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
.settings_page_ucp .ui-tabs ul.ui-tabs-nav li:first-child {
|
| 111 |
+
margin-left: 0;
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
.settings_page_ucp ul.ui-tabs-nav{
|
| 115 |
+
padding-bottom: 0;
|
| 116 |
+
width: 100%;
|
| 117 |
+
box-sizing: border-box;
|
| 118 |
+
border-bottom: 0px !important;
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
.settings_page_ucp .ui-state-hover a, .settings_page_ucp .ui-state-active a, .settings_page_ucp li.ui-state-hover, .settings_page_ucp li.ui-state-hover a {
|
| 122 |
+
color: #000000 !important;
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
.settings_page_ucp li.ui-state-hover {
|
| 126 |
+
background-color: #ffffff !important;
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
.settings_page_ucp .ui-tabs-nav a:focus {
|
| 130 |
+
box-shadow: none;
|
| 131 |
+
-webkit-box-shadow: none;
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
/* tabs */
|
| 136 |
|
| 137 |
/* on/off switch */
|
| 138 |
|
images/forklift.png
ADDED
|
Binary file
|
js/ucp-admin.js
CHANGED
|
@@ -5,5 +5,34 @@
|
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
-
jQuery(document).ready(function() {
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
+
jQuery(document).ready(function($) {
|
| 9 |
+
old_settings = $('#ucp_form').serialize();
|
| 10 |
+
|
| 11 |
+
$('#ucp_tabs').tabs({
|
| 12 |
+
activate: function(event, ui) {
|
| 13 |
+
Cookies.set('ucp_tabs_selected', $('#ucp_tabs').tabs('option', 'active'), { expires: 180 });
|
| 14 |
+
},
|
| 15 |
+
active: $('#ucp_tabs').tabs({ active: Cookies.get('ucp_tabs_selected') })
|
| 16 |
+
}).show();
|
| 17 |
+
|
| 18 |
+
$(document).on('click', '#ucp_preview', function(e) {
|
| 19 |
+
if ($('#ucp_form').serialize() != old_settings) {
|
| 20 |
+
if (!confirm('There are unsaved changes that will not be visible in the preview. Please save changes first.\nContinue?')) {
|
| 21 |
+
e.preventDefault();
|
| 22 |
+
return false;
|
| 23 |
+
}
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
return true;
|
| 27 |
+
});
|
| 28 |
+
|
| 29 |
+
$(document).on('click', '.change_tab', function(e) {
|
| 30 |
+
$('#ucp_tabs').tabs('option', 'active', $(this).data('tab'));
|
| 31 |
+
|
| 32 |
+
// get the link anchor and scroll to it
|
| 33 |
+
target = this.href.split('#')[1];
|
| 34 |
+
if (target) {
|
| 35 |
+
$.scrollTo('#' + target, 500, {offset: {top:-50, left:0}});
|
| 36 |
+
}
|
| 37 |
+
});
|
| 38 |
+
}); // on ready
|
js/ucp-jquery-plugins.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
* Under Construction
|
| 3 |
+
* jQuery plugins
|
| 4 |
+
* (c) Web factory Ltd, 2015 - 2016
|
| 5 |
+
*/
|
| 6 |
+
|
| 7 |
+
/**
|
| 8 |
+
* Copyright (c) 2007-2012 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
|
| 9 |
+
* Dual licensed under MIT and GPL.
|
| 10 |
+
* @author Ariel Flesler
|
| 11 |
+
* @version 1.4.3.1
|
| 12 |
+
*/
|
| 13 |
+
;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
/*! js-cookie v2.1.3 | MIT */
|
| 17 |
+
!function(a){var b=!1;if("function"==typeof define&&define.amd&&(define(a),b=!0),"object"==typeof exports&&(module.exports=a(),b=!0),!b){var c=window.Cookies,d=window.Cookies=a();d.noConflict=function(){return window.Cookies=c,d}}}(function(){function a(){for(var a=0,b={};a<arguments.length;a++){var c=arguments[a];for(var d in c)b[d]=c[d]}return b}function b(c){function d(b,e,f){var g;if("undefined"!=typeof document){if(arguments.length>1){if(f=a({path:"/"},d.defaults,f),"number"==typeof f.expires){var h=new Date;h.setMilliseconds(h.getMilliseconds()+864e5*f.expires),f.expires=h}try{g=JSON.stringify(e),/^[\{\[]/.test(g)&&(e=g)}catch(i){}return e=c.write?c.write(e,b):encodeURIComponent(e+"").replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),b=encodeURIComponent(b+""),b=b.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),b=b.replace(/[\(\)]/g,escape),document.cookie=b+"="+e+(f.expires?"; expires="+f.expires.toUTCString():"")+(f.path?"; path="+f.path:"")+(f.domain?"; domain="+f.domain:"")+(f.secure?"; secure":"")}b||(g={});for(var j=document.cookie?document.cookie.split("; "):[],k=/(%[0-9A-Z]{2})+/g,l=0;l<j.length;l++){var m=j[l].split("="),n=m.slice(1).join("=");'"'===n.charAt(0)&&(n=n.slice(1,-1));try{var o=m[0].replace(k,decodeURIComponent);if(n=c.read?c.read(n,o):c(n,o)||n.replace(k,decodeURIComponent),this.json)try{n=JSON.parse(n)}catch(i){}if(b===o){g=n;break}b||(g[o]=n)}catch(i){}}return g}}return d.set=d,d.get=function(a){return d.call(d,a)},d.getJSON=function(){return d.apply({json:!0},[].slice.call(arguments))},d.defaults={},d.remove=function(b,c){d(b,"",a(c,{expires:-1}))},d.withConverter=b,d}return b(function(){})});
|
readme.txt
CHANGED
|
@@ -3,7 +3,7 @@ Contributors: WebFactory
|
|
| 3 |
Tags: under construction page, coming soon page, maintenance, maintenance page, coming soon, maintenance mode, under construction mode, coming soon mode, site unavailable, under construction, landing page
|
| 4 |
Requires at least: 4.0
|
| 5 |
Tested up to: 4.6
|
| 6 |
-
Stable tag: 1.
|
| 7 |
License: GPLv2 or later
|
| 8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 9 |
|
|
@@ -29,6 +29,7 @@ A simple, no-nonsense plugin for all those situations when you have to hide the
|
|
| 29 |
* LinkedIn
|
| 30 |
* YouTube
|
| 31 |
* Pinterest
|
|
|
|
| 32 |
|
| 33 |
|
| 34 |
== Installation ==
|
|
@@ -55,10 +56,19 @@ Or if needed, upload manually;
|
|
| 55 |
3. Plain Text theme
|
| 56 |
4. Under Construction theme
|
| 57 |
5. Things Went Dark theme
|
|
|
|
| 58 |
|
| 59 |
|
| 60 |
== Changelog ==
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
= 1.25 =
|
| 63 |
* 2016/10/24
|
| 64 |
* fixed fatal cache busting bug reported by @jonofgahh
|
| 3 |
Tags: under construction page, coming soon page, maintenance, maintenance page, coming soon, maintenance mode, under construction mode, coming soon mode, site unavailable, under construction, landing page
|
| 4 |
Requires at least: 4.0
|
| 5 |
Tested up to: 4.6
|
| 6 |
+
Stable tag: 1.30
|
| 7 |
License: GPLv2 or later
|
| 8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 9 |
|
| 29 |
* LinkedIn
|
| 30 |
* YouTube
|
| 31 |
* Pinterest
|
| 32 |
+
* Dribbble
|
| 33 |
|
| 34 |
|
| 35 |
== Installation ==
|
| 56 |
3. Plain Text theme
|
| 57 |
4. Under Construction theme
|
| 58 |
5. Things Went Dark theme
|
| 59 |
+
6. Forklift at Work theme
|
| 60 |
|
| 61 |
|
| 62 |
== Changelog ==
|
| 63 |
|
| 64 |
+
= 1.30 =
|
| 65 |
+
* 2016/11/29
|
| 66 |
+
* we've crossed the 20k users mark & 100k downloads ;)
|
| 67 |
+
* added notice on login form when Maintenance is enabled
|
| 68 |
+
* 1 new theme
|
| 69 |
+
* GUI overhaul started
|
| 70 |
+
* added Dribbble social icon
|
| 71 |
+
|
| 72 |
= 1.25 =
|
| 73 |
* 2016/10/24
|
| 74 |
* fixed fatal cache busting bug reported by @jonofgahh
|
themes/forklift/forklift.png
ADDED
|
Binary file
|
themes/forklift/index.php
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/*
|
| 3 |
+
* Under Construction
|
| 4 |
+
* Forklift theme
|
| 5 |
+
* (c) Web factory Ltd, 2015 - 2016
|
| 6 |
+
*/
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
// this is an include only WP file
|
| 10 |
+
if (!defined('ABSPATH')) {
|
| 11 |
+
die;
|
| 12 |
+
}
|
| 13 |
+
?>
|
| 14 |
+
<!DOCTYPE html>
|
| 15 |
+
<html lang="en">
|
| 16 |
+
<head>
|
| 17 |
+
<meta charset="utf-8">
|
| 18 |
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
| 19 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 20 |
+
<title>[title]</title>
|
| 21 |
+
<meta name="description" content="[description]" />
|
| 22 |
+
<meta name="generator" content="Under Construction plugin for WordPress">
|
| 23 |
+
<link rel="stylesheet" href="[theme-url-common]css/bootstrap.min.css?v=[version]" type="text/css">
|
| 24 |
+
<link rel="stylesheet" href="[theme-url]style.css?v=[version]" type="text/css">
|
| 25 |
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,900">
|
| 26 |
+
<link rel="stylesheet" href="[theme-url-common]css/font-awesome.min.css?v=[version]" type="text/css">
|
| 27 |
+
</head>
|
| 28 |
+
|
| 29 |
+
<body>
|
| 30 |
+
<div class="container">
|
| 31 |
+
<div class="row">
|
| 32 |
+
<div class="col-xs-12 col-md-12 col-lg-12">
|
| 33 |
+
<h1>[heading1]</h1>
|
| 34 |
+
</div>
|
| 35 |
+
</div>
|
| 36 |
+
</div>
|
| 37 |
+
|
| 38 |
+
<div id="hero-image">
|
| 39 |
+
<img src="[theme-url]forklift.png" alt="Forklift at Work" title="Forklift at Work">
|
| 40 |
+
</div>
|
| 41 |
+
<div class="container">
|
| 42 |
+
|
| 43 |
+
<div class="row">
|
| 44 |
+
<div class="col-xs-12 col-md-8 col-md-offset-2 col-lg-offset-2 col-lg-8">
|
| 45 |
+
<p class="content">[content]</p>
|
| 46 |
+
</div>
|
| 47 |
+
</div>
|
| 48 |
+
|
| 49 |
+
<div class="row" id="social">
|
| 50 |
+
<div class="col-xs-12 col-md-12 col-lg-12">
|
| 51 |
+
[social-icons]
|
| 52 |
+
</div>
|
| 53 |
+
</div>
|
| 54 |
+
|
| 55 |
+
</div>
|
| 56 |
+
</body>
|
| 57 |
+
</html>
|
themes/forklift/style.css
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
* Under Construction
|
| 3 |
+
* Forklift theme CSS
|
| 4 |
+
* (c) Web factory Ltd, 2015 - 2016
|
| 5 |
+
*/
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
html {
|
| 9 |
+
height: 100%;
|
| 10 |
+
padding: 0;
|
| 11 |
+
margin: 0;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
body {
|
| 15 |
+
font-weight: 400;
|
| 16 |
+
font-size: 14px;
|
| 17 |
+
line-height: 120%;
|
| 18 |
+
color: #414042;
|
| 19 |
+
background: #fd6439 ; /* Old browsers */
|
| 20 |
+
background: -moz-linear-gradient(-45deg, #fd6439 0%,#fd6438 67%,#000000 139%); /* FF3.6-15 */
|
| 21 |
+
background: -webkit-linear-gradient(-45deg, #fd6439 0%,#fd6438 67%,#000000 139%); /* Chrome10-25,Safari5.1-6 */
|
| 22 |
+
background: linear-gradient(135deg, #fd6439 0%,#fd6438 67%,#000000 139%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
|
| 23 |
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fd6439', endColorstr='#fafafa',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
|
| 24 |
+
padding: 0;
|
| 25 |
+
margin: 0;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
#hero-image {
|
| 29 |
+
text-align: center;
|
| 30 |
+
margin: 20px auto 40px auto;
|
| 31 |
+
border-bottom: 1px solid rgba(0, 0, 0, 0.24);
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
#hero-image img {
|
| 35 |
+
max-width: 80%;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
h1 {
|
| 39 |
+
font-size: 34px;
|
| 40 |
+
color: #414042;
|
| 41 |
+
font-family: "Roboto", sans-serif;
|
| 42 |
+
font-weight: 900;
|
| 43 |
+
margin: 60px 0 30px 0;
|
| 44 |
+
text-align: center;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
.content {
|
| 48 |
+
text-align: center;
|
| 49 |
+
font-family: "Helvetica", "Arial", sans-serif;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
#social {
|
| 53 |
+
text-align: center;
|
| 54 |
+
margin-top: 30px;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
#social a i {
|
| 58 |
+
color: #414042;
|
| 59 |
+
margin: 10px;
|
| 60 |
+
box-sizing: content-box;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
#social a:hover i {
|
| 64 |
+
color: #000000;
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
@media(max-width:767px){
|
| 68 |
+
h1 {
|
| 69 |
+
font-size: 30px;
|
| 70 |
+
margin: 10px 0 30px 0;
|
| 71 |
+
}
|
| 72 |
+
#hero-image img {
|
| 73 |
+
max-width: 95%;
|
| 74 |
+
}
|
| 75 |
+
}
|
under-construction.php
CHANGED
|
@@ -1,15 +1,15 @@
|
|
| 1 |
<?php
|
| 2 |
/*
|
| 3 |
Plugin Name: Under Construction
|
| 4 |
-
Plugin URI: https://
|
| 5 |
Description: Hide your site behind a great looking under construction page while you do maintenance work.
|
| 6 |
Author: Web factory Ltd
|
| 7 |
-
Version: 1.
|
| 8 |
Author URI: http://www.webfactoryltd.com/
|
| 9 |
Text Domain: under-construction-page
|
| 10 |
Domain Path: lang
|
| 11 |
|
| 12 |
-
Copyright 2015 - 2016 Web factory Ltd (email
|
| 13 |
|
| 14 |
This program is free software; you can redistribute it and/or modify
|
| 15 |
it under the terms of the GNU General Public License, version 2, as
|
|
@@ -85,8 +85,11 @@ class UCP {
|
|
| 85 |
// AJAX endpoints
|
| 86 |
add_action('wp_ajax_ucp_dismiss_pointer', array(__CLASS__, 'dismiss_pointer_ajax'));
|
| 87 |
} else {
|
| 88 |
-
// main logic
|
| 89 |
add_action('wp', array(__CLASS__, 'display_construction_page'), 0, 1);
|
|
|
|
|
|
|
|
|
|
| 90 |
|
| 91 |
// disable feeds
|
| 92 |
add_action('do_feed_rdf', array(__CLASS__, 'disable_feed'), 1, 1);
|
|
@@ -188,11 +191,19 @@ class UCP {
|
|
| 188 |
} // get_meta
|
| 189 |
|
| 190 |
|
| 191 |
-
// fetch and display construction
|
| 192 |
static function display_construction_page() {
|
| 193 |
$options = self::get_options();
|
| 194 |
-
|
| 195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 196 |
header(wp_get_server_protocol() . ' 503 Service Unavailable');
|
| 197 |
echo self::get_template($options['theme']);
|
| 198 |
exit;
|
|
@@ -220,6 +231,9 @@ class UCP {
|
|
| 220 |
|
| 221 |
if ('settings_page_ucp' == $hook) {
|
| 222 |
wp_enqueue_style('ucp-admin', UCP_PLUGIN_URL . 'css/ucp-admin.css', array(), self::$version);
|
|
|
|
|
|
|
|
|
|
| 223 |
wp_enqueue_script('ucp-admin', UCP_PLUGIN_URL . 'js/ucp-admin.js', array('jquery'), self::$version, true);
|
| 224 |
}
|
| 225 |
|
|
@@ -297,6 +311,9 @@ class UCP {
|
|
| 297 |
if (!empty($options['social_pinterest'])) {
|
| 298 |
$out .= '<a href="' . $options['social_pinterest'] . '" target="_blank"><i class="fa fa-pinterest-square fa-3x"></i></a>';
|
| 299 |
}
|
|
|
|
|
|
|
|
|
|
| 300 |
|
| 301 |
return $out;
|
| 302 |
} // generate_social_icons
|
|
@@ -332,10 +349,10 @@ class UCP {
|
|
| 332 |
|
| 333 |
|
| 334 |
// checks if construction mode is enabled for the current visitor
|
| 335 |
-
static function is_construction_mode_enabled($
|
| 336 |
$options = self::get_options();
|
| 337 |
|
| 338 |
-
if ($
|
| 339 |
if ($options['status']) {
|
| 340 |
return true;
|
| 341 |
} else {
|
|
@@ -380,7 +397,7 @@ class UCP {
|
|
| 380 |
|
| 381 |
if (empty($notices['dismiss_rate']) &&
|
| 382 |
(current_time('timestamp') - $meta['first_install']) > (DAY_IN_SECONDS * 3)) {
|
| 383 |
-
$rate_url = 'https://wordpress.org/support/plugin/under-construction-page/reviews
|
| 384 |
$dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'rate', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
|
| 385 |
|
| 386 |
echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi! We saw you\'ve been using <b>Under Construction</b> plugin for a few days and wanted to ask for your help to <b>make the plugin better</b>.<br>We just need a minute of your time to rate the plugin. Thank you!';
|
|
@@ -437,6 +454,18 @@ class UCP {
|
|
| 437 |
'meta' => array('class' => $class)
|
| 438 |
));
|
| 439 |
} // admin_bar_notice
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 440 |
|
| 441 |
|
| 442 |
// add settings link to plugins page
|
|
@@ -462,7 +491,7 @@ class UCP {
|
|
| 462 |
|
| 463 |
// create the admin menu item
|
| 464 |
static function admin_menu() {
|
| 465 |
-
add_options_page('Under Construction', 'Under Construction', 'manage_options', 'ucp', array(__CLASS__, '
|
| 466 |
} // admin_menu
|
| 467 |
|
| 468 |
|
|
@@ -485,6 +514,7 @@ class UCP {
|
|
| 485 |
'social_linkedin' => '',
|
| 486 |
'social_youtube' => '',
|
| 487 |
'social_pinterest' => '',
|
|
|
|
| 488 |
'roles' => array('administrator')
|
| 489 |
);
|
| 490 |
|
|
@@ -507,6 +537,7 @@ class UCP {
|
|
| 507 |
case 'social_linkedin':
|
| 508 |
case 'social_youtube':
|
| 509 |
case 'social_pinterest':
|
|
|
|
| 510 |
$options[$key] = trim($value);
|
| 511 |
break;
|
| 512 |
} // switch
|
|
@@ -515,6 +546,7 @@ class UCP {
|
|
| 515 |
$options['roles'] = (array) $options['roles'];
|
| 516 |
$options = self::check_var_isset($options, array('status' => 0));
|
| 517 |
|
|
|
|
| 518 |
if ($options['status'] != $old_options['status']) {
|
| 519 |
if (function_exists('w3tc_pgcache_flush')) {
|
| 520 |
w3tc_pgcache_flush();
|
|
@@ -523,6 +555,13 @@ class UCP {
|
|
| 523 |
global $file_prefix;
|
| 524 |
wp_cache_clean_cache($file_prefix);
|
| 525 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 526 |
}
|
| 527 |
|
| 528 |
return array_merge($old_options, $options);
|
|
@@ -587,34 +626,16 @@ class UCP {
|
|
| 587 |
return $out;
|
| 588 |
}
|
| 589 |
} // create_select_options
|
| 590 |
-
|
| 591 |
|
| 592 |
-
|
| 593 |
-
static function
|
| 594 |
-
if (!current_user_can('manage_options')) {
|
| 595 |
-
wp_die('You do not have sufficient permissions to access this page.');
|
| 596 |
-
}
|
| 597 |
-
|
| 598 |
$options = self::get_options();
|
| 599 |
$default_options = self::default_options();
|
| 600 |
-
|
| 601 |
-
echo '<div class="wrap">
|
| 602 |
-
<h1>Under Construction</h1>';
|
| 603 |
-
|
| 604 |
-
echo '<form action="options.php" method="post">';
|
| 605 |
-
settings_fields(UCP_OPTIONS_KEY);
|
| 606 |
-
|
| 607 |
-
echo '<table class="form-table"><tbody>';
|
| 608 |
-
|
| 609 |
$status[] = array('val' => '0', 'label' => 'Disabled - site is working normally');
|
| 610 |
$status[] = array('val' => '1', 'label' => 'Enabled - site is in under construction mode');
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
foreach ($tmp_roles as $tmp_role => $details) {
|
| 614 |
-
$name = translate_user_role($details['name']);
|
| 615 |
-
$roles[] = array('val' => $tmp_role, 'label' => $name);
|
| 616 |
-
}
|
| 617 |
-
$roles[] = array('val' => 'guest', 'label' => 'Guest (not logged in user)');
|
| 618 |
|
| 619 |
echo '<tr valign="top">
|
| 620 |
<th scope="row"><label for="status">Status</label></th>
|
|
@@ -624,27 +645,21 @@ class UCP {
|
|
| 624 |
<span class="onoffswitch-inner"></span>
|
| 625 |
<span class="onoffswitch-switch"></span>
|
| 626 |
</label>
|
| 627 |
-
</div>
|
| 628 |
-
';
|
| 629 |
|
| 630 |
-
echo '<p class="description">By enabling construction mode all users (<a href="#whitelisted-roles">except selected ones</a>) will not be able to access the site\'s content. They will only see the under construction page.</p>';
|
| 631 |
echo '</td></tr>';
|
| 632 |
-
|
| 633 |
-
$img = plugins_url('/images/', __FILE__);
|
| 634 |
-
echo '<tr valign="top">
|
| 635 |
-
<th scope="row">Theme</th>
|
| 636 |
-
<td>
|
| 637 |
-
<div class="ucp-thumb"><label for="layout-1"><img src="' . $img . 'mad_designer.png" alt="Mad Designer" title="Mad Designer" /></label><br /><input ' . self::checked('mad_designer', $options['theme']) . ' type="radio" id="layout-1" name="' . UCP_OPTIONS_KEY . '[theme]" value="mad_designer" /> Mad Designer</div>
|
| 638 |
|
| 639 |
-
|
| 640 |
-
|
| 641 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 642 |
|
| 643 |
-
<
|
| 644 |
|
| 645 |
-
<div class="ucp-thumb"><a href="https://twitter.com/intent/tweet?text=' . urlencode('@webfactoryltd I need more themes for Under Construction #wordpress plugin. When are they coming out?') . '&url=https://wordpress.org/plugins/under-construction-page/" target="_blank"><img src="' . $img . 'more_coming_soon.png" alt="Need more themes?" title="Need more themes?" /></a><br />Click for More Themes</div>
|
| 646 |
-
</td></tr>';
|
| 647 |
-
|
| 648 |
echo '<tr valign="top">
|
| 649 |
<th scope="row"><label for="title">Title</label></th>
|
| 650 |
<td><input type="text" id="title" class="regular-text" name="' . UCP_OPTIONS_KEY . '[title]" value="' . $options['title'] . '" />';
|
|
@@ -707,7 +722,58 @@ class UCP {
|
|
| 707 |
<td><input id="social_pinterest" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_pinterest]" value="' . $options['social_pinterest'] . '" placeholder="Pinterest profile URL">';
|
| 708 |
echo '<p class="description">Complete URL, with http prefix, to Pinterest profile.</p>';
|
| 709 |
echo '</td></tr>';
|
| 710 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 711 |
echo '<tr valign="top" id="whitelisted-roles">
|
| 712 |
<th scope="row">Whitelisted User Roles</th>
|
| 713 |
<td>';
|
|
@@ -717,11 +783,77 @@ class UCP {
|
|
| 717 |
}
|
| 718 |
echo '<p class="description">Selected user roles will <b>not</b> be affected by the under construction mode and will always see the "normal" site. Default: administrator.</p>';
|
| 719 |
echo '</td></tr>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 720 |
|
| 721 |
-
echo '
|
|
|
|
|
|
|
|
|
|
|
|
|
| 722 |
|
| 723 |
-
|
| 724 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 725 |
} // options_page
|
| 726 |
|
| 727 |
|
| 1 |
<?php
|
| 2 |
/*
|
| 3 |
Plugin Name: Under Construction
|
| 4 |
+
Plugin URI: https://underconstructionpage.com/
|
| 5 |
Description: Hide your site behind a great looking under construction page while you do maintenance work.
|
| 6 |
Author: Web factory Ltd
|
| 7 |
+
Version: 1.30
|
| 8 |
Author URI: http://www.webfactoryltd.com/
|
| 9 |
Text Domain: under-construction-page
|
| 10 |
Domain Path: lang
|
| 11 |
|
| 12 |
+
Copyright 2015 - 2016 Web factory Ltd (email: ucp@webfactoryltd.com)
|
| 13 |
|
| 14 |
This program is free software; you can redistribute it and/or modify
|
| 15 |
it under the terms of the GNU General Public License, version 2, as
|
| 85 |
// AJAX endpoints
|
| 86 |
add_action('wp_ajax_ucp_dismiss_pointer', array(__CLASS__, 'dismiss_pointer_ajax'));
|
| 87 |
} else {
|
| 88 |
+
// main plugin logic
|
| 89 |
add_action('wp', array(__CLASS__, 'display_construction_page'), 0, 1);
|
| 90 |
+
|
| 91 |
+
// show under construction notice on login form
|
| 92 |
+
add_filter('login_message', array(__CLASS__, 'login_message'));
|
| 93 |
|
| 94 |
// disable feeds
|
| 95 |
add_action('do_feed_rdf', array(__CLASS__, 'disable_feed'), 1, 1);
|
| 191 |
} // get_meta
|
| 192 |
|
| 193 |
|
| 194 |
+
// fetch and display the construction page if it's enabled or preview requested
|
| 195 |
static function display_construction_page() {
|
| 196 |
$options = self::get_options();
|
| 197 |
+
|
| 198 |
+
// some URLs have to be accessible at all times
|
| 199 |
+
if ($_SERVER['REQUEST_URI'] == '/wp-admin' ||
|
| 200 |
+
$_SERVER['REQUEST_URI'] == '/wp-admin/' ||
|
| 201 |
+
$_SERVER['REQUEST_URI'] == '/wp-login.php') {
|
| 202 |
+
return true;
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
if (true == self::is_construction_mode_enabled(false)
|
| 206 |
+
|| (is_user_logged_in() && isset($_GET['ucp_preview']))) {
|
| 207 |
header(wp_get_server_protocol() . ' 503 Service Unavailable');
|
| 208 |
echo self::get_template($options['theme']);
|
| 209 |
exit;
|
| 231 |
|
| 232 |
if ('settings_page_ucp' == $hook) {
|
| 233 |
wp_enqueue_style('ucp-admin', UCP_PLUGIN_URL . 'css/ucp-admin.css', array(), self::$version);
|
| 234 |
+
|
| 235 |
+
wp_enqueue_script('jquery-ui-tabs');
|
| 236 |
+
wp_enqueue_script('ucp-jquery-plugins', UCP_PLUGIN_URL . 'js/ucp-jquery-plugins.js', array('jquery'), self::$version, true);
|
| 237 |
wp_enqueue_script('ucp-admin', UCP_PLUGIN_URL . 'js/ucp-admin.js', array('jquery'), self::$version, true);
|
| 238 |
}
|
| 239 |
|
| 311 |
if (!empty($options['social_pinterest'])) {
|
| 312 |
$out .= '<a href="' . $options['social_pinterest'] . '" target="_blank"><i class="fa fa-pinterest-square fa-3x"></i></a>';
|
| 313 |
}
|
| 314 |
+
if (!empty($options['social_dribbble'])) {
|
| 315 |
+
$out .= '<a href="' . $options['social_dribbble'] . '" target="_blank"><i class="fa fa-dribbble fa-3x"></i></a>';
|
| 316 |
+
}
|
| 317 |
|
| 318 |
return $out;
|
| 319 |
} // generate_social_icons
|
| 349 |
|
| 350 |
|
| 351 |
// checks if construction mode is enabled for the current visitor
|
| 352 |
+
static function is_construction_mode_enabled($settings_only = false) {
|
| 353 |
$options = self::get_options();
|
| 354 |
|
| 355 |
+
if ($settings_only) {
|
| 356 |
if ($options['status']) {
|
| 357 |
return true;
|
| 358 |
} else {
|
| 397 |
|
| 398 |
if (empty($notices['dismiss_rate']) &&
|
| 399 |
(current_time('timestamp') - $meta['first_install']) > (DAY_IN_SECONDS * 3)) {
|
| 400 |
+
$rate_url = 'https://wordpress.org/support/plugin/under-construction-page/reviews/?rate=5#new-post';
|
| 401 |
$dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'rate', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
|
| 402 |
|
| 403 |
echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi! We saw you\'ve been using <b>Under Construction</b> plugin for a few days and wanted to ask for your help to <b>make the plugin better</b>.<br>We just need a minute of your time to rate the plugin. Thank you!';
|
| 454 |
'meta' => array('class' => $class)
|
| 455 |
));
|
| 456 |
} // admin_bar_notice
|
| 457 |
+
|
| 458 |
+
|
| 459 |
+
// show under construction notice on WP login form
|
| 460 |
+
static function login_message($message) {
|
| 461 |
+
$options = get_option('wf_mm');
|
| 462 |
+
|
| 463 |
+
if (self::is_construction_mode_enabled(true)) {
|
| 464 |
+
$message .= '<div class="message">Under Construction mode is <b>enabled</b>.</div>';
|
| 465 |
+
}
|
| 466 |
+
|
| 467 |
+
return $message;
|
| 468 |
+
} // login_notice
|
| 469 |
|
| 470 |
|
| 471 |
// add settings link to plugins page
|
| 491 |
|
| 492 |
// create the admin menu item
|
| 493 |
static function admin_menu() {
|
| 494 |
+
add_options_page('Under Construction', 'Under Construction', 'manage_options', 'ucp', array(__CLASS__, 'main_page'));
|
| 495 |
} // admin_menu
|
| 496 |
|
| 497 |
|
| 514 |
'social_linkedin' => '',
|
| 515 |
'social_youtube' => '',
|
| 516 |
'social_pinterest' => '',
|
| 517 |
+
'social_dribbble' => '',
|
| 518 |
'roles' => array('administrator')
|
| 519 |
);
|
| 520 |
|
| 537 |
case 'social_linkedin':
|
| 538 |
case 'social_youtube':
|
| 539 |
case 'social_pinterest':
|
| 540 |
+
case 'social_dribbble':
|
| 541 |
$options[$key] = trim($value);
|
| 542 |
break;
|
| 543 |
} // switch
|
| 546 |
$options['roles'] = (array) $options['roles'];
|
| 547 |
$options = self::check_var_isset($options, array('status' => 0));
|
| 548 |
|
| 549 |
+
// empty cache in 3rd party plugins
|
| 550 |
if ($options['status'] != $old_options['status']) {
|
| 551 |
if (function_exists('w3tc_pgcache_flush')) {
|
| 552 |
w3tc_pgcache_flush();
|
| 555 |
global $file_prefix;
|
| 556 |
wp_cache_clean_cache($file_prefix);
|
| 557 |
}
|
| 558 |
+
if (function_exists('wp_cache_clear_cache')) {
|
| 559 |
+
wp_cache_clear_cache();
|
| 560 |
+
}
|
| 561 |
+
if (class_exists('Endurance_Page_Cache')) {
|
| 562 |
+
$epc = new Endurance_Page_Cache;
|
| 563 |
+
$epc->purge_all();
|
| 564 |
+
}
|
| 565 |
}
|
| 566 |
|
| 567 |
return array_merge($old_options, $options);
|
| 626 |
return $out;
|
| 627 |
}
|
| 628 |
} // create_select_options
|
|
|
|
| 629 |
|
| 630 |
+
|
| 631 |
+
static function tab_main() {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 632 |
$options = self::get_options();
|
| 633 |
$default_options = self::default_options();
|
| 634 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 635 |
$status[] = array('val' => '0', 'label' => 'Disabled - site is working normally');
|
| 636 |
$status[] = array('val' => '1', 'label' => 'Enabled - site is in under construction mode');
|
| 637 |
+
|
| 638 |
+
echo '<table class="form-table">';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 639 |
|
| 640 |
echo '<tr valign="top">
|
| 641 |
<th scope="row"><label for="status">Status</label></th>
|
| 645 |
<span class="onoffswitch-inner"></span>
|
| 646 |
<span class="onoffswitch-switch"></span>
|
| 647 |
</label>
|
| 648 |
+
</div>';
|
|
|
|
| 649 |
|
| 650 |
+
echo '<p class="description">By enabling construction mode all users (<a class="change_tab" data-tab="3" href="#whitelisted-roles">except selected ones</a>) will not be able to access the site\'s content. They will only see the under construction page.</p>';
|
| 651 |
echo '</td></tr>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 652 |
|
| 653 |
+
echo '</table>';
|
| 654 |
+
} // tab_main
|
| 655 |
+
|
| 656 |
+
|
| 657 |
+
static function tab_content() {
|
| 658 |
+
$options = self::get_options();
|
| 659 |
+
$default_options = self::default_options();
|
| 660 |
|
| 661 |
+
echo '<table class="form-table">';
|
| 662 |
|
|
|
|
|
|
|
|
|
|
| 663 |
echo '<tr valign="top">
|
| 664 |
<th scope="row"><label for="title">Title</label></th>
|
| 665 |
<td><input type="text" id="title" class="regular-text" name="' . UCP_OPTIONS_KEY . '[title]" value="' . $options['title'] . '" />';
|
| 722 |
<td><input id="social_pinterest" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_pinterest]" value="' . $options['social_pinterest'] . '" placeholder="Pinterest profile URL">';
|
| 723 |
echo '<p class="description">Complete URL, with http prefix, to Pinterest profile.</p>';
|
| 724 |
echo '</td></tr>';
|
| 725 |
+
|
| 726 |
+
echo '<tr valign="top">
|
| 727 |
+
<th scope="row"><label for="social_dribbble">Dribbble Profile</label></th>
|
| 728 |
+
<td><input id="social_dribbble" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_dribbble]" value="' . $options['social_dribbble'] . '" placeholder="Dribbble profile URL">';
|
| 729 |
+
echo '<p class="description">Complete URL, with http prefix, to Dribbble profile.</p>';
|
| 730 |
+
echo '</td></tr>';
|
| 731 |
+
|
| 732 |
+
echo '</table>';
|
| 733 |
+
} // tab_content
|
| 734 |
+
|
| 735 |
+
|
| 736 |
+
static function tab_design() {
|
| 737 |
+
$options = self::get_options();
|
| 738 |
+
$default_options = self::default_options();
|
| 739 |
+
|
| 740 |
+
$img = UCP_PLUGIN_URL . 'images/';
|
| 741 |
+
|
| 742 |
+
echo '<table class="form-table">';
|
| 743 |
+
echo '<tr valign="top">
|
| 744 |
+
<th scope="row">Theme</th>
|
| 745 |
+
<td>
|
| 746 |
+
<div class="ucp-thumb"><label for="layout-1"><img src="' . $img . 'mad_designer.png" alt="Mad Designer" title="Mad Designer" /></label><br /><input ' . self::checked('mad_designer', $options['theme']) . ' type="radio" id="layout-1" name="' . UCP_OPTIONS_KEY . '[theme]" value="mad_designer" /> Mad Designer</div>
|
| 747 |
+
|
| 748 |
+
<div class="ucp-thumb"><label for="layout-2"><img src="' . $img . 'plain_text.png" alt="Plain Text" title="Plain Text" /></label><br /><input ' . self::checked('plain_text', $options['theme']) . ' type="radio" id="layout-2" name="' . UCP_OPTIONS_KEY . '[theme]" value="plain_text" /> Plain Text</div>
|
| 749 |
+
|
| 750 |
+
<div class="ucp-thumb"><label for="layout-3"><img src="' . $img . 'under_construction.png" alt="Under Construction" title="Under Construction" /></label><br /><input ' . self::checked('under_construction', $options['theme']) . ' type="radio" id="layout-3" name="' . UCP_OPTIONS_KEY . '[theme]" value="under_construction" /> Under Construction</div>
|
| 751 |
+
|
| 752 |
+
<div class="ucp-thumb"><label for="layout-4"><img src="' . $img . 'dark.png" alt="Things Went Dark" title="Things Went Dark" /></label><br /><input ' . self::checked('dark', $options['theme']) . ' type="radio" id="layout-4" name="' . UCP_OPTIONS_KEY . '[theme]" value="dark" /> Things Went Dark</div>
|
| 753 |
+
|
| 754 |
+
<div class="ucp-thumb"><label for="layout-5"><img src="' . $img . 'forklift.png" alt="Forklift at Work" title="Forklift at Work" /></label><br /><input ' . self::checked('forklift', $options['theme']) . ' type="radio" id="layout-5" name="' . UCP_OPTIONS_KEY . '[theme]" value="forklift" /> Forklift at Work</div>
|
| 755 |
+
|
| 756 |
+
<div class="ucp-thumb"><a href="https://twitter.com/intent/tweet?text=' . urlencode('@webfactoryltd I need more themes for Under Construction #wordpress plugin. When are they coming out?') . '&url=https://wordpress.org/plugins/under-construction-page/" target="_blank"><img src="' . $img . 'more_coming_soon.png" alt="Need more themes?" title="Need more themes?" /></a><br />Click for More Themes</div>
|
| 757 |
+
</td></tr>';
|
| 758 |
+
|
| 759 |
+
echo '</table>';
|
| 760 |
+
} // tab_design
|
| 761 |
+
|
| 762 |
+
|
| 763 |
+
static function tab_access() {
|
| 764 |
+
$options = self::get_options();
|
| 765 |
+
$default_options = self::default_options();
|
| 766 |
+
|
| 767 |
+
$tmp_roles = get_editable_roles();
|
| 768 |
+
foreach ($tmp_roles as $tmp_role => $details) {
|
| 769 |
+
$name = translate_user_role($details['name']);
|
| 770 |
+
$roles[] = array('val' => $tmp_role, 'label' => $name);
|
| 771 |
+
}
|
| 772 |
+
//$roles[] = array('val' => 'guest', 'label' => 'Guest (not logged in user)');
|
| 773 |
+
// todo stupid?
|
| 774 |
+
|
| 775 |
+
echo '<table class="form-table">';
|
| 776 |
+
|
| 777 |
echo '<tr valign="top" id="whitelisted-roles">
|
| 778 |
<th scope="row">Whitelisted User Roles</th>
|
| 779 |
<td>';
|
| 783 |
}
|
| 784 |
echo '<p class="description">Selected user roles will <b>not</b> be affected by the under construction mode and will always see the "normal" site. Default: administrator.</p>';
|
| 785 |
echo '</td></tr>';
|
| 786 |
+
|
| 787 |
+
echo '</table>';
|
| 788 |
+
} // tab_access
|
| 789 |
+
|
| 790 |
+
|
| 791 |
+
// todo next version
|
| 792 |
+
static function tab_emails() {
|
| 793 |
+
$options = self::get_options();
|
| 794 |
+
$default_options = self::default_options();
|
| 795 |
+
} // tab_emails
|
| 796 |
+
|
| 797 |
+
|
| 798 |
+
// todo next version
|
| 799 |
+
static function tab_advanced() {
|
| 800 |
+
$options = self::get_options();
|
| 801 |
+
$default_options = self::default_options();
|
| 802 |
+
} // tab_advanced
|
| 803 |
+
|
| 804 |
+
|
| 805 |
+
// output the whole options page
|
| 806 |
+
static function main_page() {
|
| 807 |
+
if (!current_user_can('manage_options')) {
|
| 808 |
+
wp_die('You do not have sufficient permissions to access this page.');
|
| 809 |
+
}
|
| 810 |
+
|
| 811 |
+
$options = self::get_options();
|
| 812 |
+
$default_options = self::default_options();
|
| 813 |
|
| 814 |
+
echo '<div class="wrap">
|
| 815 |
+
<h1>Under Construction</h1>';
|
| 816 |
+
|
| 817 |
+
echo '<form action="options.php" method="post" id="ucp_form">';
|
| 818 |
+
settings_fields(UCP_OPTIONS_KEY);
|
| 819 |
|
| 820 |
+
$tabs = array();
|
| 821 |
+
$tabs[] = array('id' => 'ucp_main', 'icon' => 'dashicons-admin-settings', 'class' => '', 'label' => 'Main', 'callback' => array(__CLASS__, 'tab_main'));
|
| 822 |
+
$tabs[] = array('id' => 'ucp_design', 'icon' => 'dashicons-admin-customizer', 'class' => '', 'label' => 'Design', 'callback' => array(__CLASS__, 'tab_design'));
|
| 823 |
+
$tabs[] = array('id' => 'ucp_content', 'icon' => 'dashicons-format-aside', 'class' => '', 'label' => 'Content', 'callback' => array(__CLASS__, 'tab_content'));
|
| 824 |
+
$tabs[] = array('id' => 'ucp_access', 'icon' => 'dashicons-shield', 'class' => '', 'label' => 'Access', 'callback' => array(__CLASS__, 'tab_access'));
|
| 825 |
+
|
| 826 |
+
// todo next version
|
| 827 |
+
//$tabs[] = array('id' => 'ucp_emails', 'class' => '', 'label' => 'Emails', 'callback' => array(__CLASS__, 'tab_emails'));
|
| 828 |
+
//$tabs[] = array('id' => 'ucp_advanced', 'class' => '', 'label' => 'Advanced', 'callback' => array(__CLASS__, 'tab_advanced'));
|
| 829 |
+
$tabs = apply_filters('ucp_tabs', $tabs);
|
| 830 |
+
|
| 831 |
+
echo '<div id="ucp_tabs" class="ui-tabs" style="display: none;">';
|
| 832 |
+
echo '<ul>';
|
| 833 |
+
foreach ($tabs as $tab) {
|
| 834 |
+
if(!empty($tab['label'])){
|
| 835 |
+
echo '<li><a href="#' . $tab['id'] . '" class="' . $tab['class'] . '"><span class="icon"><span class="dashicons ' . $tab['icon'] . '"></span></span><span class="label">' . $tab['label'] . '</span></a></li>';
|
| 836 |
+
}
|
| 837 |
+
}
|
| 838 |
+
echo '</ul>';
|
| 839 |
+
|
| 840 |
+
foreach ($tabs as $tab) {
|
| 841 |
+
if(is_callable($tab['callback'])) {
|
| 842 |
+
echo '<div style="display: none;" id="' . $tab['id'] . '">';
|
| 843 |
+
call_user_func($tab['callback']);
|
| 844 |
+
echo '</div>';
|
| 845 |
+
}
|
| 846 |
+
} // foreach
|
| 847 |
+
|
| 848 |
+
echo '</div>'; // ucp_tabs
|
| 849 |
+
|
| 850 |
+
echo '<p class="submit">';
|
| 851 |
+
echo get_submit_button('Save Changes', 'primary large', 'submit', false);
|
| 852 |
+
echo ' <a id="ucp_preview" href="' . get_home_url() . '/?ucp_preview" class="button button-large button-secondary" target="_blank">Preview</a>';
|
| 853 |
+
echo '</p>';
|
| 854 |
+
|
| 855 |
+
echo '</form>'; // ucp_tabs
|
| 856 |
+
echo '</div>'; // wrap
|
| 857 |
} // options_page
|
| 858 |
|
| 859 |
|
