Countdown, Coming Soon – Countdown & Clock - Version 1.2.1

Version Description

  • Countdown responsiveness
  • Countdown alignment
  • Countdown On of logic
  • Hide on mobile devices (pro)
  • Show on mobile devices (pro)
  • Bug fixes
  • Code optimization
Download this release

Release Info

Developer Otto42
Plugin Icon 128x128 Countdown, Coming Soon – Countdown & Clock
Version 1.2.1
Comparing to
See all releases

Version 1.2.1

Files changed (45) hide show
  1. CountdownInit.php +57 -0
  2. assets/css/Css.php +37 -0
  3. assets/css/TimeCircles.css +1 -0
  4. assets/css/admin.css +300 -0
  5. assets/css/bootstrap.css +6846 -0
  6. assets/css/colorpicker.css +1 -0
  7. assets/css/ion.rangeSlider.css +1 -0
  8. assets/css/ion.rangeSlider.skinFlat.css +1 -0
  9. assets/css/jquery.dateTimePicker.min.css +1 -0
  10. assets/css/select2.css +1 -0
  11. assets/img/CirclePopup.png +0 -0
  12. assets/img/Cricle.png +0 -0
  13. assets/img/Flipclock.png +0 -0
  14. assets/img/sprite-skin-flat.png +0 -0
  15. assets/js/Admin.js +147 -0
  16. assets/js/Countdown.js +513 -0
  17. assets/js/Js.php +35 -0
  18. assets/js/TimeCircles.js +960 -0
  19. assets/js/ionRangeSlider.js +12 -0
  20. assets/js/jquery.datetimepicker.full.min.js +2 -0
  21. assets/js/minicolors.js +11 -0
  22. assets/js/select2.js +5746 -0
  23. assets/js/ycdGoogleFonts.js +52 -0
  24. assets/views/advancedOptions.php +36 -0
  25. assets/views/circlePreview.php +3 -0
  26. assets/views/cricleMainView.php +491 -0
  27. assets/views/types.php +17 -0
  28. assets/views/upgrade.php +10 -0
  29. classes/Actions.php +129 -0
  30. classes/Ajax.php +23 -0
  31. classes/CountdownType.php +31 -0
  32. classes/Filters.php +33 -0
  33. classes/RegisterPostType.php +182 -0
  34. classes/countdown/CircleCountdown.php +189 -0
  35. classes/countdown/Countdown.php +325 -0
  36. classes/countdown/CountdownModel.php +23 -0
  37. config/boot.php +10 -0
  38. config/config-pkg.php +2 -0
  39. config/config.php +39 -0
  40. config/optionsConfig.php +102 -0
  41. countdown-builder.php +25 -0
  42. helpers/AdminHelper.php +654 -0
  43. helpers/MultipleChoiceButton.php +242 -0
  44. helpers/ScriptsIncluder.php +120 -0
  45. readme.txt +110 -0
CountdownInit.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class CountdownInit {
5
+
6
+ private static $instance = null;
7
+ private $actions;
8
+ private $filters;
9
+
10
+ private function __construct() {
11
+ $this->init();
12
+ }
13
+
14
+ private function __clone() {
15
+ }
16
+
17
+ public static function getInstance() {
18
+ if(!isset(self::$instance)) {
19
+ self::$instance = new self();
20
+ }
21
+ return self::$instance;
22
+ }
23
+
24
+ public function init() {
25
+ $this->includeData();
26
+ $this->actions();
27
+ $this->filters();
28
+ }
29
+
30
+ private function includeData() {
31
+ if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
32
+ require_once YCD_HELPERS_PATH.'CheckerPro.php';
33
+ }
34
+ require_once YCD_HELPERS_PATH.'ScriptsIncluder.php';
35
+ require_once YCD_HELPERS_PATH.'MultipleChoiceButton.php';
36
+ require_once YCD_HELPERS_PATH.'AdminHelper.php';
37
+ require_once YCD_CLASSES_PATH.'CountdownType.php';
38
+ require_once(YCD_COUNTDOWNS_PATH.'CountdownModel.php');
39
+ require_once YCD_COUNTDOWNS_PATH.'Countdown.php';
40
+ require_once YCD_CSS_PATH.'Css.php';
41
+ require_once YCD_JS_PATH.'Js.php';
42
+ require_once YCD_CLASSES_PATH.'RegisterPostType.php';
43
+ require_once YCD_CLASSES_PATH.'Actions.php';
44
+ require_once YCD_CLASSES_PATH.'Ajax.php';
45
+ require_once YCD_CLASSES_PATH.'Filters.php';
46
+ }
47
+
48
+ public function actions() {
49
+ $this->actions = new Actions();
50
+ }
51
+
52
+ public function filters() {
53
+ $this->filters = new Filters();
54
+ }
55
+ }
56
+
57
+ CountdownInit::getInstance();
assets/css/Css.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class Css {
5
+
6
+ public function __construct() {
7
+ $this->init();
8
+ }
9
+
10
+ public function init() {
11
+
12
+ add_action('admin_enqueue_scripts', array($this, 'enqueueStyles'));
13
+ }
14
+
15
+ public function enqueueStyles($hook) {
16
+
17
+ ScriptsIncluder::registerStyle('admin.css');
18
+ ScriptsIncluder::registerStyle('bootstrap.css');
19
+ ScriptsIncluder::registerStyle('colorpicker.css');
20
+ ScriptsIncluder::registerStyle('ion.rangeSlider.css');
21
+ ScriptsIncluder::registerStyle('ion.rangeSlider.skinFlat.css');
22
+ ScriptsIncluder::registerStyle('select2.css');
23
+ ScriptsIncluder::registerStyle('jquery.dateTimePicker.min.css');
24
+
25
+ if($hook == 'ycdcountdown_page_ycdcountdown' || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE) {
26
+ ScriptsIncluder::enqueueStyle('bootstrap.css');
27
+ ScriptsIncluder::enqueueStyle('admin.css');
28
+ ScriptsIncluder::enqueueStyle('colorpicker.css');
29
+ ScriptsIncluder::enqueueStyle('ion.rangeSlider.css');
30
+ ScriptsIncluder::enqueueStyle('ion.rangeSlider.skinFlat.css');
31
+ ScriptsIncluder::enqueueStyle('select2.css');
32
+ ScriptsIncluder::enqueueStyle('jquery.dateTimePicker.min.css');
33
+ }
34
+ }
35
+ }
36
+
37
+ new Css();
assets/css/TimeCircles.css ADDED
@@ -0,0 +1 @@
 
1
+ .time_circles>div>h4,.time_circles>div>span{margin:0;padding:0;text-align:center;font-family:'Century Gothic',Arial;line-height:1}.time_circles{position:relative;width:100%;height:100%}.time_circles>div{position:absolute;text-align:center}.time_circles>div>h4{text-transform:uppercase}.time_circles>div>span{display:block;width:100%;font-weight:700}
assets/css/admin.css ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ycd-bootstrap-wrapper .row {
2
+ margin-left: 0;
3
+ margin-right: 0;
4
+ }
5
+
6
+ .ycd-hide-content,
7
+ .ycd-hide {
8
+ display: none;
9
+ }
10
+
11
+ .countdowns-div {
12
+ width: 250px;
13
+ height: 150px;
14
+ border: 1px solid #CCCCCC;
15
+ float: left;
16
+ margin-right: 10px;
17
+ margin-bottom: 10px;
18
+ background-color: #DEDEDE;
19
+ background-size: 100%;
20
+ transition: all .1s ease-in-out;
21
+ }
22
+
23
+ .countdowns-div:hover {
24
+ background-color: #CDCDCD;
25
+ transform: scale(1.05);
26
+ }
27
+
28
+ .circle-countdown {
29
+ background-image: url("../img/Cricle.png");
30
+ background-size: 100% 100%;
31
+ }
32
+
33
+ .flipClock-countdown,
34
+ .flipClock-countdown-pro {
35
+ background-image: url("../img/Flipclock.png");
36
+ background-size: 100% 100%;
37
+ }
38
+
39
+ .circlePopup-countdown,
40
+ .circlePopup-countdown-pro {
41
+ background-image: url("../img/CirclePopup.png");
42
+ background-repeat: no-repeat;
43
+ background-position: 13%;
44
+ background-color: black;
45
+ }
46
+
47
+ .circlePopup-countdown:hover,
48
+ .circlePopup-countdown-pro:hover {
49
+ background-color: black;
50
+ }
51
+
52
+ .countdowns-div {
53
+ position: relative;
54
+ }
55
+
56
+ .ycd-type-title-pro {
57
+ font-size: 23px;
58
+ font-weight: 600;
59
+ color: red;
60
+ opacity: 1;
61
+ overflow-wrap: break-word;
62
+ width: auto;
63
+ margin-top: -15px;
64
+ -ms-transform: rotate(7deg);
65
+ /* -webkit-transform: rotate(7deg); */
66
+ transform: rotate(36deg);
67
+ top: 28px;
68
+ right: -13px;
69
+ position: absolute;
70
+ }
71
+
72
+ .js-ycd-select {
73
+ min-width: 100% !important;
74
+ width: 100% !important;
75
+ }
76
+
77
+ /*Checkbox slider start*/
78
+ /* The switch - the box around the slider */
79
+ .ycd-switch {
80
+ position: relative;
81
+ display: inline-block;
82
+ width: 60px;
83
+ height: 34px;
84
+ }
85
+
86
+ /* Hide default HTML checkbox */
87
+ .ycd-switch input {display:none;}
88
+
89
+ /* The slider */
90
+ .ycd-slider {
91
+ position: absolute;
92
+ cursor: pointer;
93
+ top: 0;
94
+ left: 0;
95
+ right: 0;
96
+ bottom: 0;
97
+ background-color: #ccc;
98
+ -webkit-transition: .4s;
99
+ transition: .4s;
100
+ transform: scale(0.8, 0.8);
101
+ }
102
+
103
+ .ycd-slider:before {
104
+ position: absolute;
105
+ content: "";
106
+ height: 26px;
107
+ width: 26px;
108
+ left: 4px;
109
+ bottom: 4px;
110
+ background-color: white;
111
+ -webkit-transition: .4s;
112
+ transition: .4s;
113
+ }
114
+
115
+ input:checked + .ycd-slider {
116
+ background-color: #2196F3;
117
+ }
118
+
119
+ input:focus + .ycd-slider {
120
+ box-shadow: 0 0 1px #2196F3;
121
+ }
122
+
123
+ input:checked + .ycd-slider:before {
124
+ -webkit-transform: translateX(26px);
125
+ -ms-transform: translateX(26px);
126
+ transform: translateX(26px);
127
+ }
128
+
129
+ /* Rounded sliders */
130
+ .ycd-slider.ycd-round {
131
+ border-radius: 34px;
132
+ }
133
+
134
+ .ycd-slider.ycd-round:before {
135
+ border-radius: 50%;
136
+ }
137
+ /*Checkbox slider end*/
138
+
139
+ .ycd-live-preview {
140
+ position: fixed;
141
+ right: 0;
142
+ bottom: 5px;
143
+ background-color: white;
144
+ border: 1px solid #ccc;
145
+ min-width: 400px;
146
+ z-index: 999;
147
+ }
148
+
149
+ .ycd-live-preview h3 {
150
+ text-align: center;
151
+ }
152
+
153
+ .ycd-pro-span {
154
+ display: inline-block;
155
+ color: red;
156
+ margin-left: 5px;
157
+ }
158
+
159
+ .ycd-circle-popup-shortcode {
160
+ padding: 10px;
161
+ }
162
+
163
+ .ycd-circles-width-wrapper .irs-single {
164
+ display: none;
165
+ }
166
+
167
+ .irs-line {
168
+ margin-top: -14px;
169
+ }
170
+
171
+ .irs-bar {
172
+ cursor: pointer;
173
+ }
174
+
175
+ .ycd-range-slider-wrapper {
176
+ margin-top: 7px;
177
+ }
178
+
179
+ .ycd-label-of-select {
180
+ margin-top: 4px;
181
+ }
182
+
183
+ .ycd-label-of-switch,
184
+ .ycd-label-of-input {
185
+ margin-top: 6px;
186
+ }
187
+
188
+ .ycd-label-of-color {
189
+ margin-top: 5px;
190
+ }
191
+
192
+ .ycd-label-of-select {
193
+ margin-top: 3px;
194
+ }
195
+
196
+ .ycd-live-preview-text {
197
+ border-bottom: 1px solid #CCCCCC;
198
+ position: relative;
199
+ margin-top: 10px;
200
+ cursor: pointer;
201
+ }
202
+
203
+ .ycd-live-preview-text h3 {
204
+ margin-top: 0;
205
+ }
206
+
207
+ .ycd-toggle-icon-open:before {
208
+ content: "\f142";
209
+ display: inline-block;
210
+ font: 400 20px/1 dashicons;
211
+ speak: none;
212
+ -webkit-font-smoothing: antialiased;
213
+ -moz-osx-font-smoothing: grayscale;
214
+ text-decoration: none!important;
215
+ cursor: pointer;
216
+ }
217
+
218
+ .ycd-toggle-icon-close:before {
219
+ content: "\f140";
220
+ display: inline-block;
221
+ font: 400 20px/1 dashicons;
222
+ speak: none;
223
+ -webkit-font-smoothing: antialiased;
224
+ -moz-osx-font-smoothing: grayscale;
225
+ text-decoration: none!important;
226
+ cursor: pointer;
227
+ }
228
+
229
+ .ycd-toggle-icon {
230
+ margin-top: 4px;
231
+ width: 20px;
232
+ border-radius: 50%;
233
+ text-indent: -1px;
234
+ position: absolute;
235
+ top: -5px;
236
+ right: 11px
237
+ }
238
+
239
+ .ycd-upgrade-button-red {
240
+ background: #d10303;
241
+ border: 1px solid #d10303;
242
+ padding: 4px 5px 5px 5px;
243
+ color: #fff !important;
244
+ font-size: 16px;
245
+ border-radius: 3px;
246
+ cursor: pointer;
247
+ align-items: flex-start;
248
+ text-align: center !important;
249
+ }
250
+
251
+ .ycd-upgrade-button-red:hover {
252
+ background: #fff;
253
+ color: #d10303 !important;
254
+ border: 1px solid #d10303 !important;
255
+ }
256
+
257
+ .ycd-upgrade-button-red .h2 {
258
+ font-size: 22px !important;
259
+ margin: 0 0 5px 0 !important;
260
+ display: inline-block !important;
261
+ }
262
+
263
+ .ycf-pro-wrapper {
264
+ text-align: center;
265
+ }
266
+
267
+ .ycd-popup-theme {
268
+ margin-left: 8px !important;
269
+ }
270
+
271
+ .ycd-popup-theme:first-child {
272
+ margin-left: 0 !important;
273
+ }
274
+
275
+ .ycd-accordion-content {
276
+ padding-left: 45px;
277
+ }
278
+
279
+ .ycd-bootstrap-wrapper {
280
+ position: relative;
281
+ }
282
+
283
+ .ycd-pro-options-div {
284
+ position: absolute;
285
+ width: 100%;
286
+ height: 100%;
287
+ background-color: rgba(238,238,238,0.4);
288
+ top: 0;
289
+ cursor: pointer;
290
+ }
291
+
292
+ .ycd-pro-options-title {
293
+ position: absolute;
294
+ top: 30%;
295
+ left: 54%;
296
+ font-size: 30px;
297
+ color: red;
298
+ opacity: 1;
299
+ overflow-wrap: break-word;
300
+ }
assets/css/bootstrap.css ADDED
@@ -0,0 +1,6846 @@