Version Description
- Fixed Secured from XSS vulnerability with admin logged credentials (Thanks to Yorick)
- Fixed Google font link issue
- Fixed widget compatibility with PHP7+
Download this release
Release Info
Developer | ujimoto |
Plugin | Uji Countdown |
Version | 2.0.7 |
Comparing to | |
See all releases |
Code changes from version 2.0.6 to 2.0.7
- README.txt +7 -2
- assets/banner-1544x500.png +0 -0
- assets/banner-772x250.png +0 -0
- assets/css/admin.css +0 -0
- assets/css/jquery-ui-custom.css +0 -0
- assets/css/jquery-ui.min.css +0 -0
- assets/css/pink.css +0 -0
- assets/css/pink.png +0 -0
- assets/css/pink@2x.png +0 -0
- assets/css/uji-box-bg.png +0 -0
- assets/css/ujic-style.css +0 -0
- assets/googlefonts.php +0 -0
- assets/images/align-center.png +0 -0
- assets/images/align-left.png +0 -0
- assets/images/align-none.png +0 -0
- assets/images/align-right.png +0 -0
- assets/images/back.jpg +0 -0
- assets/images/classic.png +0 -0
- assets/images/classic@2.png +0 -0
- assets/images/custom.png +0 -0
- assets/images/custom@2.png +0 -0
- assets/images/data-picker.png +0 -0
- assets/images/data-picker@2.png +0 -0
- assets/images/icon-custom.png +0 -0
- assets/images/icon-email.png +0 -0
- assets/images/icon-font.png +0 -0
- assets/images/icon-glob.png +0 -0
- assets/images/icon-mob.png +0 -0
- assets/images/icon-rec.png +0 -0
- assets/images/icon-rtl.png +0 -0
- assets/images/icon-wp.png +0 -0
- assets/images/jq_UI/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- assets/images/jq_UI/ui-bg_flat_75_ffffff_40x100.png +0 -0
- assets/images/jq_UI/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- assets/images/jq_UI/ui-bg_glass_65_ffffff_1x400.png +0 -0
- assets/images/jq_UI/ui-bg_glass_75_dadada_1x400.png +0 -0
- assets/images/jq_UI/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- assets/images/jq_UI/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- assets/images/jq_UI/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- assets/images/jq_UI/ui-icons_222222_256x240.png +0 -0
- assets/images/jq_UI/ui-icons_2e83ff_256x240.png +0 -0
- assets/images/jq_UI/ui-icons_454545_256x240.png +0 -0
- assets/images/jq_UI/ui-icons_888888_256x240.png +0 -0
- assets/images/jq_UI/ui-icons_cd0a0a_256x240.png +0 -0
- assets/images/slider-control.png +0 -0
- assets/images/ucount-icon.png +0 -0
- assets/images/ucount-icon@x2.png +0 -0
- assets/images/ujic-ps.jpg +0 -0
- assets/images/ujic-ps2.jpg +0 -0
- assets/images/ujic-ps3.png +0 -0
- assets/index.php +0 -0
- assets/js/admin.js +0 -0
- assets/js/jquery.icheck.min.js +0 -0
- assets/js/ujic-popup-button.js +0 -0
- assets/js/widget.js +0 -0
- classes/UjiSubscriptionsTable.php +0 -0
- classes/class-uji-countdown-admin.php +28 -5
- classes/class-uji-countdown-front.php +0 -0
- classes/class-uji-countdown.php +9 -3
- classes/class-uji-widget.php +40 -30
- css/uji-countdown.css +0 -0
- js/jquery.countdown.js +0 -0
- js/uji-countdown.js +1 -1
- js/uji-newsletter.js +0 -0
- lang/index.php +0 -0
- lang/uji-countdown-de_DE.mo +0 -0
- lang/uji-countdown-de_DE.po +0 -0
- lang/uji-countdown-en_EN.mo +0 -0
- lang/uji-countdown-en_EN.po +0 -0
- lang/uji-countdown-en_US.mo +0 -0
- lang/uji-countdown-en_US.pot +0 -0
- lang/uji-countdown-es_ES.mo +0 -0
- lang/uji-countdown-es_ES.po +0 -0
- lang/uji-countdown-fr_FR.mo +0 -0
- lang/uji-countdown-fr_FR.po +0 -0
- lang/uji-countdown-hu_HU.mo +0 -0
- lang/uji-countdown-hu_HU.po +0 -0
- lang/uji-countdown-it_IT.mo +0 -0
- lang/uji-countdown-it_IT.po +0 -0
- lang/uji-countdown-nl_NL.mo +0 -0
- lang/uji-countdown-nl_NL.po +0 -0
- lang/uji-countdown-ro_RO.mo +0 -0
- lang/uji-countdown-ro_RO.po +0 -0
- lang/uji-countdown-ru_RU.mo +0 -0
- lang/uji-countdown-ru_RU.po +0 -0
- ujicountdown.php +2 -2
- uninstall.php +0 -0
- views/admin.php +0 -0
- views/index.php +0 -0
- views/public.php +0 -0
README.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: ujimoto
|
|
3 |
Donate link: http://www.wpmanage.com/uji-countdown
|
4 |
Tags: countdown, counter, html5 countdown, animated countdown, countdown timer, count down, countdown clock, jQuery countdown, clock, timer, recurring timer
|
5 |
Requires at least: 3.0
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 2.0.
|
8 |
|
9 |
Uji Countdown - HTML5 Customizable Countdown Timer
|
10 |
|
@@ -51,6 +51,11 @@ Please feel free to visit our [demo site](http://wpmanage.com/project/ujicountdo
|
|
51 |
|
52 |
== Changelog ==
|
53 |
|
|
|
|
|
|
|
|
|
|
|
54 |
= 2.0.6 =
|
55 |
* Fixed datapicker arrows to switch month
|
56 |
* Fixed https URL redirection
|
3 |
Donate link: http://www.wpmanage.com/uji-countdown
|
4 |
Tags: countdown, counter, html5 countdown, animated countdown, countdown timer, count down, countdown clock, jQuery countdown, clock, timer, recurring timer
|
5 |
Requires at least: 3.0
|
6 |
+
Tested up to: 4.5.3
|
7 |
+
Stable tag: 2.0.7
|
8 |
|
9 |
Uji Countdown - HTML5 Customizable Countdown Timer
|
10 |
|
51 |
|
52 |
== Changelog ==
|
53 |
|
54 |
+
= 2.0.7 =
|
55 |
+
* Fixed Secured from XSS vulnerability with admin logged credentials (Thanks to Yorick)
|
56 |
+
* Fixed Google font link issue
|
57 |
+
* Fixed widget compatibility with PHP7+
|
58 |
+
|
59 |
= 2.0.6 =
|
60 |
* Fixed datapicker arrows to switch month
|
61 |
* Fixed https URL redirection
|
assets/banner-1544x500.png
CHANGED
File without changes
|
assets/banner-772x250.png
CHANGED
File without changes
|
assets/css/admin.css
CHANGED
File without changes
|
assets/css/jquery-ui-custom.css
CHANGED
File without changes
|
assets/css/jquery-ui.min.css
CHANGED
File without changes
|
assets/css/pink.css
CHANGED
File without changes
|
assets/css/pink.png
CHANGED
File without changes
|
assets/css/pink@2x.png
CHANGED
File without changes
|
assets/css/uji-box-bg.png
CHANGED
File without changes
|
assets/css/ujic-style.css
CHANGED
File without changes
|
assets/googlefonts.php
CHANGED
File without changes
|
assets/images/align-center.png
CHANGED
File without changes
|
assets/images/align-left.png
CHANGED
File without changes
|
assets/images/align-none.png
CHANGED
File without changes
|
assets/images/align-right.png
CHANGED
File without changes
|
assets/images/back.jpg
CHANGED
File without changes
|
assets/images/classic.png
CHANGED
File without changes
|
assets/images/classic@2.png
CHANGED
File without changes
|
assets/images/custom.png
CHANGED
File without changes
|
assets/images/custom@2.png
CHANGED
File without changes
|
assets/images/data-picker.png
CHANGED
File without changes
|
assets/images/data-picker@2.png
CHANGED
File without changes
|
assets/images/icon-custom.png
CHANGED
File without changes
|
assets/images/icon-email.png
CHANGED
File without changes
|
assets/images/icon-font.png
CHANGED
File without changes
|
assets/images/icon-glob.png
CHANGED
File without changes
|
assets/images/icon-mob.png
CHANGED
File without changes
|
assets/images/icon-rec.png
CHANGED
File without changes
|
assets/images/icon-rtl.png
CHANGED
File without changes
|
assets/images/icon-wp.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_flat_0_aaaaaa_40x100.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_flat_75_ffffff_40x100.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_glass_55_fbf9ee_1x400.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_glass_65_ffffff_1x400.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_glass_75_dadada_1x400.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_glass_75_e6e6e6_1x400.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_glass_95_fef1ec_1x400.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-bg_highlight-soft_75_cccccc_1x100.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-icons_222222_256x240.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-icons_2e83ff_256x240.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-icons_454545_256x240.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-icons_888888_256x240.png
CHANGED
File without changes
|
assets/images/jq_UI/ui-icons_cd0a0a_256x240.png
CHANGED
File without changes
|
assets/images/slider-control.png
CHANGED
File without changes
|
assets/images/ucount-icon.png
CHANGED
File without changes
|
assets/images/ucount-icon@x2.png
CHANGED
File without changes
|
assets/images/ujic-ps.jpg
CHANGED
File without changes
|
assets/images/ujic-ps2.jpg
CHANGED
File without changes
|
assets/images/ujic-ps3.png
CHANGED
File without changes
|
assets/index.php
CHANGED
File without changes
|
assets/js/admin.js
CHANGED
File without changes
|
assets/js/jquery.icheck.min.js
CHANGED
File without changes
|
assets/js/ujic-popup-button.js
CHANGED
File without changes
|
assets/js/widget.js
CHANGED
File without changes
|
classes/UjiSubscriptionsTable.php
CHANGED
File without changes
|
classes/class-uji-countdown-admin.php
CHANGED
@@ -218,6 +218,8 @@ class Uji_Countdown_Admin {
|
|
218 |
$cnt .= $this->cform_input( __( 'Error Message', $this->plugin_slug ), 'ujic_subscrFrmErrorMessage', $vars['ujic_subscrFrmErrorMessage'] );
|
219 |
|
220 |
$cnt .= $this->cform_buttons();
|
|
|
|
|
221 |
|
222 |
$cnt .= '</form>';
|
223 |
|
@@ -568,14 +570,14 @@ class Uji_Countdown_Admin {
|
|
568 |
if ( $this->cform_is_create() ) {
|
569 |
if ( $this->cform_errors() ) {
|
570 |
$this->ins_ujic_db( $_POST );
|
571 |
-
$this->ujic_message( __( "Your Timer Style
|
572 |
echo '<script type="text/javascript"> ujic_admin_home(); </script>';
|
573 |
}
|
574 |
}
|
575 |
if ( isset( $_POST ) && !empty( $_POST ) && $this->cform_is_edit() ) {
|
576 |
if ( $this->cform_errors() ) {
|
577 |
$this->upd_ujic_db( $_POST, $_GET['edit'] );
|
578 |
-
$this->ujic_message( __( "Your Timer
|
579 |
}
|
580 |
}
|
581 |
}
|
@@ -636,10 +638,13 @@ class Uji_Countdown_Admin {
|
|
636 |
* @since 2.0
|
637 |
*/
|
638 |
public function cform_is_create() {
|
639 |
-
if ( isset( $_POST ) && !empty( $_POST ) && isset( $_GET['save'] ) && !empty( $_GET['save'] ) && $_GET['save'] == 'true' )
|
|
|
|
|
640 |
return true;
|
641 |
-
else
|
642 |
return false;
|
|
|
643 |
}
|
644 |
|
645 |
/**
|
@@ -734,6 +739,8 @@ class Uji_Countdown_Admin {
|
|
734 |
}
|
735 |
$cnt .= get_submit_button( __( "Save Changes", $this->plugin_slug ), 'primary', 'submit_ujic', true );
|
736 |
|
|
|
|
|
737 |
$cnt .= '</form>';
|
738 |
|
739 |
echo $this->custom_metabox( __( "Timer Settings", $this->plugin_slug ), $cnt, 'ujic-create ujic-settings' );
|
@@ -746,7 +753,10 @@ class Uji_Countdown_Admin {
|
|
746 |
*/
|
747 |
public function save_timerset() {
|
748 |
if ( isset( $_POST ) && !empty( $_POST ) && isset( $_GET['saveset'] ) && !empty( $_GET['saveset'] ) && $_GET['saveset'] == 'true' ){
|
749 |
-
|
|
|
|
|
|
|
750 |
unset($settings['submit_ujic']);
|
751 |
update_option('ujic_set', $settings);
|
752 |
$this->ujic_message( __("Settings saved.", $this->plugin_slug ) );
|
@@ -788,5 +798,18 @@ class Uji_Countdown_Admin {
|
|
788 |
echo $this->custom_metabox( __( 'Subscribers List', $this->plugin_slug ), $htmlContent , 'ujic-create ujic-subscribers' );
|
789 |
|
790 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
791 |
|
792 |
}
|
218 |
$cnt .= $this->cform_input( __( 'Error Message', $this->plugin_slug ), 'ujic_subscrFrmErrorMessage', $vars['ujic_subscrFrmErrorMessage'] );
|
219 |
|
220 |
$cnt .= $this->cform_buttons();
|
221 |
+
|
222 |
+
$cnt .= wp_nonce_field( 'ujic_secure', 'ujic_secure_form', true, false );
|
223 |
|
224 |
$cnt .= '</form>';
|
225 |
|
570 |
if ( $this->cform_is_create() ) {
|
571 |
if ( $this->cform_errors() ) {
|
572 |
$this->ins_ujic_db( $_POST );
|
573 |
+
$this->ujic_message( __( "Your Timer Style Has Been Created", $this->plugin_slug ) );
|
574 |
echo '<script type="text/javascript"> ujic_admin_home(); </script>';
|
575 |
}
|
576 |
}
|
577 |
if ( isset( $_POST ) && !empty( $_POST ) && $this->cform_is_edit() ) {
|
578 |
if ( $this->cform_errors() ) {
|
579 |
$this->upd_ujic_db( $_POST, $_GET['edit'] );
|
580 |
+
$this->ujic_message( __( "Your Timer Has Been Updated", $this->plugin_slug ) );
|
581 |
}
|
582 |
}
|
583 |
}
|
638 |
* @since 2.0
|
639 |
*/
|
640 |
public function cform_is_create() {
|
641 |
+
if ( isset( $_POST ) && !empty( $_POST ) && isset( $_GET['save'] ) && !empty( $_GET['save'] ) && $_GET['save'] == 'true' ){
|
642 |
+
//2.0.7 Fix Cross-Site Request Forgery attacks
|
643 |
+
self::ujic_secure( 'ujic_secure', 'ujic_secure_form', $_POST );
|
644 |
return true;
|
645 |
+
}else{
|
646 |
return false;
|
647 |
+
}
|
648 |
}
|
649 |
|
650 |
/**
|
739 |
}
|
740 |
$cnt .= get_submit_button( __( "Save Changes", $this->plugin_slug ), 'primary', 'submit_ujic', true );
|
741 |
|
742 |
+
$cnt .= wp_nonce_field( 'ujic_secureset', 'ujic_secureset_form', true, false );
|
743 |
+
|
744 |
$cnt .= '</form>';
|
745 |
|
746 |
echo $this->custom_metabox( __( "Timer Settings", $this->plugin_slug ), $cnt, 'ujic-create ujic-settings' );
|
753 |
*/
|
754 |
public function save_timerset() {
|
755 |
if ( isset( $_POST ) && !empty( $_POST ) && isset( $_GET['saveset'] ) && !empty( $_GET['saveset'] ) && $_GET['saveset'] == 'true' ){
|
756 |
+
//2.0.7 Fix Cross-Site Request Forgery attacks
|
757 |
+
self::ujic_secure( 'ujic_secureset', 'ujic_secureset_form', $_POST );
|
758 |
+
|
759 |
+
$settings = wp_kses_allowed_html( $_POST );
|
760 |
unset($settings['submit_ujic']);
|
761 |
update_option('ujic_set', $settings);
|
762 |
$this->ujic_message( __("Settings saved.", $this->plugin_slug ) );
|
798 |
echo $this->custom_metabox( __( 'Subscribers List', $this->plugin_slug ), $htmlContent , 'ujic-create ujic-subscribers' );
|
799 |
|
800 |
}
|
801 |
+
|
802 |
+
/**
|
803 |
+
* Secure against Cross-Site Request Forgery
|
804 |
+
*
|
805 |
+
* @since 2.0.7
|
806 |
+
*/
|
807 |
+
public function ujic_secure( $secure, $secure_filed, $posts ) {
|
808 |
+
if ( ! isset( $posts[$secure_filed] )
|
809 |
+
|| ! wp_verify_nonce( $posts[$secure_filed], $secure )
|
810 |
+
) {
|
811 |
+
wp_die( __( 'Cheatin’ huh?', 'ujicountdown' ) );
|
812 |
+
}
|
813 |
+
}
|
814 |
|
815 |
}
|
classes/class-uji-countdown-front.php
CHANGED
File without changes
|
classes/class-uji-countdown.php
CHANGED
@@ -361,11 +361,14 @@ class Uji_Countdown extends Uji_Countdown_Admin
|
|
361 |
*/
|
362 |
public function ins_ujic_db( $posts ) {
|
363 |
global $wpdb;
|
364 |
-
|
|
|
|
|
|
|
365 |
$options = array();
|
366 |
$default = $this->ujic_option();
|
367 |
foreach ( $posts as $name => $val ) {
|
368 |
-
$options[$name] = (!empty( $val ) ) ? $val : $default[$name];
|
369 |
}
|
370 |
$title = $options['ujic_name'];
|
371 |
$style = $options['ujic_style'];
|
@@ -383,11 +386,14 @@ class Uji_Countdown extends Uji_Countdown_Admin
|
|
383 |
*/
|
384 |
public function upd_ujic_db( $posts, $id ) {
|
385 |
global $wpdb;
|
|
|
|
|
|
|
386 |
|
387 |
$options = array();
|
388 |
$default = $this->ujic_option();
|
389 |
foreach ( $posts as $name => $val ) {
|
390 |
-
$options[$name] = (!empty( $val ) ) ? $val : $default[$name];
|
391 |
}
|
392 |
$title = $options['ujic_name'];
|
393 |
$style = $options['ujic_style'];
|
361 |
*/
|
362 |
public function ins_ujic_db( $posts ) {
|
363 |
global $wpdb;
|
364 |
+
|
365 |
+
//2.0.7 Fix Cross-Site Request Forgery attacks
|
366 |
+
self::ujic_secure( 'ujic_secure', 'ujic_secure_form', $posts );
|
367 |
+
|
368 |
$options = array();
|
369 |
$default = $this->ujic_option();
|
370 |
foreach ( $posts as $name => $val ) {
|
371 |
+
$options[$name] = (!empty( $val ) ) ? esc_attr($val) : $default[$name];
|
372 |
}
|
373 |
$title = $options['ujic_name'];
|
374 |
$style = $options['ujic_style'];
|
386 |
*/
|
387 |
public function upd_ujic_db( $posts, $id ) {
|
388 |
global $wpdb;
|
389 |
+
|
390 |
+
//2.0.7 Fix Cross-Site Request Forgery attacks
|
391 |
+
self::ujic_secure( 'ujic_secure', 'ujic_secure_form', $posts );
|
392 |
|
393 |
$options = array();
|
394 |
$default = $this->ujic_option();
|
395 |
foreach ( $posts as $name => $val ) {
|
396 |
+
$options[$name] = (!empty( $val ) ) ? esc_attr($val) : $default[$name];
|
397 |
}
|
398 |
$title = $options['ujic_name'];
|
399 |
$style = $options['ujic_style'];
|
classes/class-uji-widget.php
CHANGED
@@ -1,18 +1,20 @@
|
|
1 |
<?php
|
2 |
/**
|
|
|
3 |
*
|
4 |
-
*
|
5 |
-
*
|
6 |
-
*
|
7 |
-
*
|
8 |
-
*
|
9 |
-
*
|
10 |
*/
|
11 |
|
12 |
-
|
|
|
|
|
13 |
|
14 |
-
|
15 |
-
|
16 |
/**
|
17 |
* Uji Countdown Init
|
18 |
*
|
@@ -20,12 +22,13 @@ class ujic_Widget extends WP_Widget {
|
|
20 |
*
|
21 |
* @var string
|
22 |
*/
|
23 |
-
public function
|
24 |
$widget_ops = array(
|
25 |
'classname' => 'uji_Widget',
|
26 |
'description' => 'Uji Countdown widget.'
|
27 |
);
|
28 |
-
|
|
|
29 |
|
30 |
//actions
|
31 |
add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
|
@@ -202,10 +205,17 @@ class ujic_Widget extends WP_Widget {
|
|
202 |
);
|
203 |
|
204 |
$instance = wp_parse_args( (array) $instance, $defaults );
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
<!-- Widget Title: Text Input -->
|
207 |
<p>
|
208 |
-
<label for="<?php echo $this->get_field_id( 'UJI_title' ); ?>"><?php _e( 'Title (optional):',
|
209 |
<input type="text" name="<?php echo $this->get_field_name( 'UJI_title' ); ?>" value="<?php echo $instance['UJI_title']; ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_title' ); ?>" />
|
210 |
</p>
|
211 |
|
@@ -214,7 +224,7 @@ class ujic_Widget extends WP_Widget {
|
|
214 |
|
215 |
<?php if ( $this->ujic_forms() ): ?>
|
216 |
|
217 |
-
<label for="<?php echo $this->get_field_id( 'UJI_style' ); ?>"><?php _e( 'Select a Style:',
|
218 |
<select name="<?php echo $this->get_field_name( 'UJI_style' ); ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_style' ); ?>">
|
219 |
<?php
|
220 |
echo $this->ujic_forms( $instance['UJI_style'] );
|
@@ -223,7 +233,7 @@ class ujic_Widget extends WP_Widget {
|
|
223 |
|
224 |
<?php else: ?>
|
225 |
|
226 |
-
<h4 style="color: firebrick"><?php _e( 'Please create new timer style first.',
|
227 |
|
228 |
<?php endif; ?>
|
229 |
|
@@ -231,16 +241,16 @@ class ujic_Widget extends WP_Widget {
|
|
231 |
|
232 |
<!-- Widget Date: Text Input -->
|
233 |
<p>
|
234 |
-
<label for="<?php echo $this->get_field_id( 'UJI_date' ); ?>"><?php _e( 'Expire Date:',
|
235 |
-
<input type="text" name="<?php echo $this->get_field_name( 'UJI_date' ); ?>" value="<?php echo $instance['UJI_date']; ?>" style="background: url('<?php echo UJICOUNTDOWN_URL ?>/assets/
|
236 |
</p>
|
237 |
|
238 |
<!-- Widget Select Time: Select Input -->
|
239 |
<p>
|
240 |
-
<label><?php _e( 'Select the Time:',
|
241 |
<div style="display: block;">
|
242 |
<div style="display: inline-block; margin: 0 5px 0 5px">
|
243 |
-
<h4 style="margin:0"><?php _e( 'Hour:',
|
244 |
<select name="<?php echo $this->get_field_name( 'UJI_hours' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_hours' ); ?>">
|
245 |
<?php
|
246 |
echo $this->ujic_sel_datetime( 23, $instance['UJI_hours'] );
|
@@ -249,7 +259,7 @@ class ujic_Widget extends WP_Widget {
|
|
249 |
</div>
|
250 |
:
|
251 |
<div style="display: inline-block; margin: 0 5px 0 5px">
|
252 |
-
<h4 style="margin:0"><?php _e( 'Minute:',
|
253 |
<select name="<?php echo $this->get_field_name( 'UJI_minutes' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_minutes' ); ?>">
|
254 |
<?php
|
255 |
echo $this->ujic_sel_datetime( 59, $instance['UJI_minutes'] );
|
@@ -258,40 +268,40 @@ class ujic_Widget extends WP_Widget {
|
|
258 |
</div>
|
259 |
</div>
|
260 |
</p>
|
261 |
-
<h4><?php _e( 'After Expiry:',
|
262 |
<!-- Widget Hide: Checkbox Input -->
|
263 |
<p>
|
264 |
-
<label for="<?php echo $this->get_field_id( 'UJI_hide' ); ?>"><?php _e( 'Hide Countdown:',
|
265 |
<input class="ujic_exp" id="<?php echo $this->get_field_id( 'UJI_hide' ); ?>" name="<?php echo $this->get_field_name( 'UJI_hide' ); ?>" type="checkbox" value="hide" <?php checked( $instance['UJI_hide'], 'hide' ) ?> />
|
266 |
</p>
|
267 |
|
268 |
<!-- Widget Go to Link: Select Input -->
|
269 |
<p>
|
270 |
-
<label for="<?php echo $this->get_field_id( 'UJI_url' ); ?>"><?php _e( 'Or go to this link:',
|
271 |
-
<small><?php _e( 'Select URL to send after expire',
|
272 |
<input class="widefat ujic_link" id="<?php echo $this->get_field_id( 'UJI_url' ); ?>" name="<?php echo $this->get_field_name( 'UJI_url' ); ?>" type="text" value="<?php echo $instance['UJI_url']; ?>" />
|
273 |
</p>
|
274 |
|
275 |
<!-- Widget Select Reccuring Time -->
|
276 |
-
<h4><?php _e( 'Reccuring Time:',
|
277 |
|
278 |
<p style="display:block; float: none;">
|
279 |
-
<span style="float:left; display: block; line-height: 28px; min-width: 55px; margin-right: 4px;"
|
280 |
<select name="<?php echo $this->get_field_name( 'UJI_rectype' ); ?>" id="<?php echo $this->get_field_id( 'UJI_rectype' ); ?>">
|
281 |
<?php
|
282 |
echo $this->ujic_times($instance['UJI_rectype']);
|
283 |
?>
|
284 |
</select>
|
285 |
<div style="display:block; float: none;">
|
286 |
-
<span style="float:left; display: block; line-height: 28px; min-width: 55px; margin-right: 4px;"
|
287 |
-
<span style="display: inline-block; line-height: 28px; margin-left: 4px;"> leave it empty for unlimited </span>
|
288 |
</div>
|
289 |
</p>
|
290 |
|
291 |
<!-- Widget Campaign name -->
|
292 |
-
<h4><?php _e( 'Subscription:',
|
293 |
<p>
|
294 |
-
<label for="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>"><?php _e( 'Campaign Name:',
|
295 |
<input class="widefat ujic_subscr" id="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>" name="<?php echo $this->get_field_name( 'UJI_subscr' ); ?>" type="text" value="<?php echo $instance['UJI_subscr']; ?>" />
|
296 |
</p>
|
297 |
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Uji Countdown Widget
|
4 |
*
|
5 |
+
* Handles front-end/shorcodes Widgets
|
6 |
+
*
|
7 |
+
* @author WPmanage
|
8 |
+
* @category Widget
|
9 |
+
* @package Uji-Countdown/Classes
|
10 |
+
* @version 2.0
|
11 |
*/
|
12 |
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
14 |
+
exit;
|
15 |
+
}
|
16 |
|
17 |
+
class ujic_Widget extends WP_Widget {
|
|
|
18 |
/**
|
19 |
* Uji Countdown Init
|
20 |
*
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
+
public function __construct() {
|
26 |
$widget_ops = array(
|
27 |
'classname' => 'uji_Widget',
|
28 |
'description' => 'Uji Countdown widget.'
|
29 |
);
|
30 |
+
//WP 4.3.0
|
31 |
+
parent::__construct( 'uji_Widget', 'Uji Countdown', $widget_ops );
|
32 |
|
33 |
//actions
|
34 |
add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
|
205 |
);
|
206 |
|
207 |
$instance = wp_parse_args( (array) $instance, $defaults );
|
208 |
+
|
209 |
+
?>
|
210 |
+
|
211 |
+
<p style="font-size:11px">
|
212 |
+
<strong>Only one timer on page is allowed. </strong><br>Check the <a href="http://www.wpmanage.com/uji-countdown" target="_blank">Pro version</a> for multiple countdown timers on the same page.
|
213 |
+
<p>
|
214 |
+
|
215 |
+
|
216 |
<!-- Widget Title: Text Input -->
|
217 |
<p>
|
218 |
+
<label for="<?php echo $this->get_field_id( 'UJI_title' ); ?>"><?php _e( 'Title (optional):', 'ujicountdown' ); ?></label>
|
219 |
<input type="text" name="<?php echo $this->get_field_name( 'UJI_title' ); ?>" value="<?php echo $instance['UJI_title']; ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_title' ); ?>" />
|
220 |
</p>
|
221 |
|
224 |
|
225 |
<?php if ( $this->ujic_forms() ): ?>
|
226 |
|
227 |
+
<label for="<?php echo $this->get_field_id( 'UJI_style' ); ?>"><?php _e( 'Select a Style:', 'ujicountdown' ); ?></label>
|
228 |
<select name="<?php echo $this->get_field_name( 'UJI_style' ); ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_style' ); ?>">
|
229 |
<?php
|
230 |
echo $this->ujic_forms( $instance['UJI_style'] );
|
233 |
|
234 |
<?php else: ?>
|
235 |
|
236 |
+
<h4 style="color: firebrick"><?php _e( 'Please create new timer style first.', 'ujicountdown' ); ?></h4>
|
237 |
|
238 |
<?php endif; ?>
|
239 |
|
241 |
|
242 |
<!-- Widget Date: Text Input -->
|
243 |
<p>
|
244 |
+
<label for="<?php echo $this->get_field_id( 'UJI_date' ); ?>"><?php _e( 'Expire Date:', 'ujicountdown' ); ?></label>
|
245 |
+
<input type="text" name="<?php echo $this->get_field_name( 'UJI_date' ); ?>" value="<?php echo $instance['UJI_date']; ?>" style="background: url('<?php echo UJICOUNTDOWN_URL ?>/assets/images/data-picker.png') no-repeat scroll right top; display:block; height: 26px; width: 180px;" class="widefat ujic_date" id="<?php echo $this->get_field_id( 'UJI_date' ); ?>" />
|
246 |
</p>
|
247 |
|
248 |
<!-- Widget Select Time: Select Input -->
|
249 |
<p>
|
250 |
+
<label><?php _e( 'Select the Time:', 'ujicountdown' ); ?></label>
|
251 |
<div style="display: block;">
|
252 |
<div style="display: inline-block; margin: 0 5px 0 5px">
|
253 |
+
<h4 style="margin:0"><?php _e( 'Hour:', 'ujicountdown' ); ?> </h4>
|
254 |
<select name="<?php echo $this->get_field_name( 'UJI_hours' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_hours' ); ?>">
|
255 |
<?php
|
256 |
echo $this->ujic_sel_datetime( 23, $instance['UJI_hours'] );
|
259 |
</div>
|
260 |
:
|
261 |
<div style="display: inline-block; margin: 0 5px 0 5px">
|
262 |
+
<h4 style="margin:0"><?php _e( 'Minute:', 'ujicountdown' ); ?> </h4>
|
263 |
<select name="<?php echo $this->get_field_name( 'UJI_minutes' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_minutes' ); ?>">
|
264 |
<?php
|
265 |
echo $this->ujic_sel_datetime( 59, $instance['UJI_minutes'] );
|
268 |
</div>
|
269 |
</div>
|
270 |
</p>
|
271 |
+
<h4><?php _e( 'After Expiry:', 'ujicountdown' ); ?> </h4>
|
272 |
<!-- Widget Hide: Checkbox Input -->
|
273 |
<p>
|
274 |
+
<label for="<?php echo $this->get_field_id( 'UJI_hide' ); ?>"><?php _e( 'Hide Countdown:', 'ujicountdown' ); ?></label>
|
275 |
<input class="ujic_exp" id="<?php echo $this->get_field_id( 'UJI_hide' ); ?>" name="<?php echo $this->get_field_name( 'UJI_hide' ); ?>" type="checkbox" value="hide" <?php checked( $instance['UJI_hide'], 'hide' ) ?> />
|
276 |
</p>
|
277 |
|
278 |
<!-- Widget Go to Link: Select Input -->
|
279 |
<p>
|
280 |
+
<label for="<?php echo $this->get_field_id( 'UJI_url' ); ?>"><?php _e( 'Or go to this link:', 'ujicountdown' ); ?></label><br />
|
281 |
+
<small><?php _e( 'Select URL to send after expire', 'ujicountdown' ); ?></small>
|
282 |
<input class="widefat ujic_link" id="<?php echo $this->get_field_id( 'UJI_url' ); ?>" name="<?php echo $this->get_field_name( 'UJI_url' ); ?>" type="text" value="<?php echo $instance['UJI_url']; ?>" />
|
283 |
</p>
|
284 |
|
285 |
<!-- Widget Select Reccuring Time -->
|
286 |
+
<h4><?php _e( 'Reccuring Time:', 'ujicountdown' ); ?> </h4>
|
287 |
|
288 |
<p style="display:block; float: none;">
|
289 |
+
<span style="float:left; display: block; line-height: 28px; min-width: 55px; margin-right: 4px;"><?php _e( 'Every:', 'ujicountdown' ); ?> </span><input class="small-text" style="float:left; padding: 3px 5px;" id="<?php echo $this->get_field_id( 'UJI_recurring' ); ?>" name="<?php echo $this->get_field_name( 'UJI_recurring' ); ?>" type="text" value="<?php echo $instance['UJI_recurring']; ?>" />
|
290 |
<select name="<?php echo $this->get_field_name( 'UJI_rectype' ); ?>" id="<?php echo $this->get_field_id( 'UJI_rectype' ); ?>">
|
291 |
<?php
|
292 |
echo $this->ujic_times($instance['UJI_rectype']);
|
293 |
?>
|
294 |
</select>
|
295 |
<div style="display:block; float: none;">
|
296 |
+
<span style="float:left; display: block; line-height: 28px; min-width: 55px; margin-right: 4px;"><?php _e( 'Repeats:', 'ujicountdown' ); ?> </span><input class="small-text" style="float:left; padding: 3px 5px;" id="<?php echo $this->get_field_id( 'UJI_repeats' ); ?>" name="<?php echo $this->get_field_name( 'UJI_repeats' ); ?>" type="text" value="<?php echo $instance['UJI_repeats']; ?>" />
|
297 |
+
<span style="display: inline-block; line-height: 28px; margin-left: 4px;"> <?php _e( 'leave it empty for unlimited', 'ujicountdown' ); ?> </span>
|
298 |
</div>
|
299 |
</p>
|
300 |
|
301 |
<!-- Widget Campaign name -->
|
302 |
+
<h4><?php _e( 'Subscription:', 'ujicountdown' ); ?> </h4>
|
303 |
<p>
|
304 |
+
<label for="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>"><?php _e( 'Campaign Name:', 'ujicountdown' ); ?></label><br />
|
305 |
<input class="widefat ujic_subscr" id="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>" name="<?php echo $this->get_field_name( 'UJI_subscr' ); ?>" type="text" value="<?php echo $instance['UJI_subscr']; ?>" />
|
306 |
</p>
|
307 |
|
css/uji-countdown.css
CHANGED
File without changes
|
js/jquery.countdown.js
CHANGED
File without changes
|
js/uji-countdown.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
(function(a){a(function(){var V=window.ujiCount;var G=V.uji_style;var K=V.uji_plugin;var s="ujiCountdown";var I=V.expire;var d=V.exp_days;var p=V.Years;var R=V.Months;var H=V.Weeks;var X=V.Days;var N=V.Hours;var z=V.Minutes;var f=V.Seconds;var W=V.Year;var E=V.Month;var Q=V.Week;var e=V.Day;var i=V.Hour;var x=V.Minute;var b=V.Second;var m=V.ujic_txt_size;var U=V.ujic_col_dw;var q=V.ujic_col_up;var M=V.ujic_col_txt;var c=V.ujic_col_sw;var r=V.ujic_col_lab;var o=V.ujic_lab_sz;var A=V.ujic_y;var J=V.ujic_o;var C=V.ujic_w;var S=V.ujic_d;var P=V.ujic_h;var L=V.ujic_m;var D=V.ujic_s;var h=V.ujic_thick;var y=(V.ujic_txt=="true")?true:false;var g=(V.ujic_ani=="true")?true:false;var v=(V.ujic_url)?((V.ujic_url.substr(0,7)!=="http://"&&V.ujic_url.substr(0,8)!=="https://")?"http://"+V.ujic_url:V.ujic_url):"";var w=(v!="")?true:false;var u=V.ujic_goof;var O=V.uji_center;var n=V.uji_time;var k=V.uji_hide;var j=(V.ujic_rtl=="true")?true:false;var T=new Date(""+I+"");var F="";F+=(A=="true")?"Y":"";F+=(J=="true")?"O":"";F+=(C=="true")?"W":"";F+=(S=="true")?"D":"";F+=(P=="true")?"H":"";F+=(L=="true")?"M":"";F+=(D=="true")?"S":"";var t=[];if(A=="true"){t.push("uji_year")}if(J=="true"){t.push("uji_mont")}if(C=="true"){t.push("uji_week")}if(S=="true"){t.push("uji_days")}if(P=="true"){t.push("uji_hour")}if(L=="true"){t.push("uji_minu")}if(D=="true"){t.push("uji_secu")}a.countdown.regionalOptions.uji={labels:[""+p+"",""+R+"",""+H+"",""+X+"",""+N+"",""+z+"",""+f+""],labels1:[""+W+"",""+E+"",""+Q+"",""+e+"",""+i+"",""+x+"",""+b+""],compactLabels:["A","L","S","Z"],format:F,whichLabels:null,timeSeparator:":",isRTL:false};a.countdown.setDefaults(a.countdown.regionalOptions.uji);if(u){var l=u.replace(/\s+/g,"+");a("head").append('<link href="
|
1 |
+
(function(a){a(function(){var V=window.ujiCount;var G=V.uji_style;var K=V.uji_plugin;var s="ujiCountdown";var I=V.expire;var d=V.exp_days;var p=V.Years;var R=V.Months;var H=V.Weeks;var X=V.Days;var N=V.Hours;var z=V.Minutes;var f=V.Seconds;var W=V.Year;var E=V.Month;var Q=V.Week;var e=V.Day;var i=V.Hour;var x=V.Minute;var b=V.Second;var m=V.ujic_txt_size;var U=V.ujic_col_dw;var q=V.ujic_col_up;var M=V.ujic_col_txt;var c=V.ujic_col_sw;var r=V.ujic_col_lab;var o=V.ujic_lab_sz;var A=V.ujic_y;var J=V.ujic_o;var C=V.ujic_w;var S=V.ujic_d;var P=V.ujic_h;var L=V.ujic_m;var D=V.ujic_s;var h=V.ujic_thick;var y=(V.ujic_txt=="true")?true:false;var g=(V.ujic_ani=="true")?true:false;var v=(V.ujic_url)?((V.ujic_url.substr(0,7)!=="http://"&&V.ujic_url.substr(0,8)!=="https://")?"http://"+V.ujic_url:V.ujic_url):"";var w=(v!="")?true:false;var u=V.ujic_goof;var O=V.uji_center;var n=V.uji_time;var k=V.uji_hide;var j=(V.ujic_rtl=="true")?true:false;var T=new Date(""+I+"");var F="";F+=(A=="true")?"Y":"";F+=(J=="true")?"O":"";F+=(C=="true")?"W":"";F+=(S=="true")?"D":"";F+=(P=="true")?"H":"";F+=(L=="true")?"M":"";F+=(D=="true")?"S":"";var t=[];if(A=="true"){t.push("uji_year")}if(J=="true"){t.push("uji_mont")}if(C=="true"){t.push("uji_week")}if(S=="true"){t.push("uji_days")}if(P=="true"){t.push("uji_hour")}if(L=="true"){t.push("uji_minu")}if(D=="true"){t.push("uji_secu")}a.countdown.regionalOptions.uji={labels:[""+p+"",""+R+"",""+H+"",""+X+"",""+N+"",""+z+"",""+f+""],labels1:[""+W+"",""+E+"",""+Q+"",""+e+"",""+i+"",""+x+"",""+b+""],compactLabels:["A","L","S","Z"],format:F,whichLabels:null,timeSeparator:":",isRTL:false};a.countdown.setDefaults(a.countdown.regionalOptions.uji);if(u){var l=u.replace(/\s+/g,"+");a("head").append('<link href="https://fonts.googleapis.com/css?family='+l+'" rel="stylesheet" type="text/css">')}a("#"+s).countdown({until:T,ujic_id:""+s+"",serverSync:B,isRTL:j,text_size:""+m+"",color_down:""+U+"",color_up:""+q+"",color_txt:""+M+"",color_sw:""+c+"",color_lab:""+r+"",lab_sz:""+o+"",ujic_txt:y,animate_sec:g,ujic_hide:k,alwaysExpire:w,expiryUrl:v,ujic_goof:""+u+""});function B(){var Z=null;Z=new Date(n);var Y=new Date(Z.getUTCFullYear(),Z.getUTCMonth(),Z.getUTCDate(),Z.getUTCHours(),Z.getUTCMinutes(),Z.getUTCSeconds());Z=Y;return Z}})}(jQuery));
|
js/uji-newsletter.js
CHANGED
File without changes
|
lang/index.php
CHANGED
File without changes
|
lang/uji-countdown-de_DE.mo
CHANGED
File without changes
|
lang/uji-countdown-de_DE.po
CHANGED
File without changes
|
lang/uji-countdown-en_EN.mo
CHANGED
File without changes
|
lang/uji-countdown-en_EN.po
CHANGED
File without changes
|
lang/uji-countdown-en_US.mo
CHANGED
File without changes
|
lang/uji-countdown-en_US.pot
CHANGED
File without changes
|
lang/uji-countdown-es_ES.mo
CHANGED
File without changes
|
lang/uji-countdown-es_ES.po
CHANGED
File without changes
|
lang/uji-countdown-fr_FR.mo
CHANGED
File without changes
|
lang/uji-countdown-fr_FR.po
CHANGED
File without changes
|
lang/uji-countdown-hu_HU.mo
CHANGED
File without changes
|
lang/uji-countdown-hu_HU.po
CHANGED
File without changes
|
lang/uji-countdown-it_IT.mo
CHANGED
File without changes
|
lang/uji-countdown-it_IT.po
CHANGED
File without changes
|
lang/uji-countdown-nl_NL.mo
CHANGED
File without changes
|
lang/uji-countdown-nl_NL.po
CHANGED
File without changes
|
lang/uji-countdown-ro_RO.mo
CHANGED
File without changes
|
lang/uji-countdown-ro_RO.po
CHANGED
File without changes
|
lang/uji-countdown-ru_RU.mo
CHANGED
File without changes
|
lang/uji-countdown-ru_RU.po
CHANGED
File without changes
|
ujicountdown.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Uji Countdown
|
4 |
Plugin URI: http://www.wpmanage.com/uji-countdown
|
5 |
Description: HTML5 Customizable Countdown.
|
6 |
-
Version: 2.0.
|
7 |
Text Domain: uji-countdown
|
8 |
Domain Path: /lang
|
9 |
Author: Wpmanage.com
|
@@ -16,7 +16,7 @@ Copyright 2016 WPmanage (email : info@wpmanage.com)
|
|
16 |
defined( 'WPINC' ) || exit;
|
17 |
|
18 |
define( 'UJIC_NAME', 'Uji Countdown' );
|
19 |
-
define( 'UJIC_VERS', '2.0.
|
20 |
define( 'UJIC_FOLD', 'uji-countdown' );
|
21 |
define( 'UJICOUNTDOWN', trailingslashit( dirname(__FILE__) ) );
|
22 |
define( 'UJICOUNTDOWN_URL', plugin_dir_url( __FILE__ ) );
|
3 |
Plugin Name: Uji Countdown
|
4 |
Plugin URI: http://www.wpmanage.com/uji-countdown
|
5 |
Description: HTML5 Customizable Countdown.
|
6 |
+
Version: 2.0.7
|
7 |
Text Domain: uji-countdown
|
8 |
Domain Path: /lang
|
9 |
Author: Wpmanage.com
|
16 |
defined( 'WPINC' ) || exit;
|
17 |
|
18 |
define( 'UJIC_NAME', 'Uji Countdown' );
|
19 |
+
define( 'UJIC_VERS', '2.0.7' );
|
20 |
define( 'UJIC_FOLD', 'uji-countdown' );
|
21 |
define( 'UJICOUNTDOWN', trailingslashit( dirname(__FILE__) ) );
|
22 |
define( 'UJICOUNTDOWN_URL', plugin_dir_url( __FILE__ ) );
|
uninstall.php
CHANGED
File without changes
|
views/admin.php
CHANGED
File without changes
|
views/index.php
CHANGED
File without changes
|
views/public.php
CHANGED
File without changes
|