'coolclock', 'description' => __('Add an analog clock to your sidebar.', 'coolclock') ), array( 'width' => 300, 'id_base' => 'coolclock-widget' ) ); } /** @see WP_Widget::widget -- do not rename this */ public function widget( $args, $instance ) { extract( $args ); $defaults = array_merge( array('title'=>'','custom_skin'=>''), CoolClock::$defaults, CoolClock::$advanced_defaults ); // backward compat if ( isset($instance['digitalcolor']) && !isset($instance['fontcolor']) ) $instance['fontcolor'] = $instance['digitalcolor']; $title = !empty($instance['title']) ? apply_filters( 'widget_title', $instance['title'] ) : ''; $number = $this->number; // set footer script flags CoolClock::$add_script = true; // Print output echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; // set skin $instance['skin'] = CoolClock::parse_skin( !empty( $instance['skin'] ) ? $instance['skin'] : $defaults['skin'], !empty( $instance['custom_skin'] ) ? $instance['custom_skin'] : '' ); // radius, used in wrapper style and coolclock fields $instance['radius'] = !empty( $instance['radius'] ) && is_numeric( $instance['radius'] ) ? (int) $instance['radius'] : $defaults['radius']; if ( 10 > $instance['radius'] ) $instance['radius'] = 10; // absolute minimum size 20x20 $align = !empty( $instance['align'] ) ? $instance['align'] : $defaults['align']; $styles = array( 'width' => 2 * $instance['radius'] . 'px', 'height' => 'auto', ); if ( in_array( $align, array('left','center') ) ) { $styles['margin-right'] = 'auto'; if ( 'left' == $align ) $styles['margin-left'] = '0'; } if ( in_array( $align, array('right','center') ) ) { $styles['margin-left'] = 'auto'; if ( 'right' == $align ) $styles['margin-right'] = '0'; } $styles = apply_filters( 'coolclock_container_styles', $styles, $instance, $defaults ); // Build output // begin wrapper $output = '
'; // add canvas $output .= CoolClock::canvas( $instance ); // end wrapper $output .= '
'; // Print filtered output echo apply_filters( 'coolclock_widget', $output, $args, $instance ); echo $after_widget; } /** @see WP_Widget::update -- do not rename this */ public function update( $new_instance, $old_instance ) { // parse custom skin code $skin_array = !empty($new_instance['custom_skin']) ? CoolClock::skin_array( wp_strip_all_tags( $new_instance['custom_skin'] ) ) : array(); $instance['title'] = !empty($new_instance['title']) ? wp_strip_all_tags( $new_instance['title'] ) : ''; $instance['skin'] = !empty($new_instance['skin']) ? wp_strip_all_tags( $new_instance['skin'] ) : ''; $instance['custom_skin'] = !empty($skin_array) ? wp_json_encode( $skin_array ) : ''; $instance['radius'] = ( empty($new_instance['radius']) || (int) $new_instance['radius'] < 5 ) ? 5 : (int) $new_instance['radius']; $instance['noseconds'] = !empty($new_instance['noseconds']) ? '1' : ''; $instance['gmtoffset'] = isset($new_instance['gmtoffset']) && $new_instance['gmtoffset'] !== '' ? (float) $new_instance['gmtoffset'] : ''; $instance['showdigital'] = !empty($new_instance['showdigital']) ? wp_strip_all_tags( $new_instance['showdigital'] ) : ''; $instance['fontcolor'] = !empty($new_instance['fontcolor']) ? CoolClock::colorval( $new_instance['fontcolor'] ) : ''; $instance['scale'] = !empty($new_instance['scale']) ? wp_strip_all_tags( $new_instance['scale'] ) : ''; $instance['align'] = !empty($new_instance['align']) ? wp_strip_all_tags( $new_instance['align'] ) : ''; $instance['subtext'] = wp_kses( $new_instance['subtext'], CoolClock::$allowed_tags ); return apply_filters( 'coolclock_widget_update_advanced', $instance, $new_instance ); } /** @see WP_Widget::form -- do not rename this */ public function form( $instance ) { $output = ''; $advanced = ''; // backward compat if ( isset($instance['digitalcolor']) && !isset($instance['fontcolor']) ) $instance['fontcolor'] = $instance['digitalcolor']; $defaults = array_merge( array('title'=>'','custom_skin'=>''), CoolClock::$defaults, CoolClock::$advanced_defaults ); $instance = wp_parse_args( (array) $instance, $defaults ); $title = esc_attr( $instance['title'] ); $subtext = esc_attr( $instance['subtext'] ); $custom_skin = esc_attr( $instance['custom_skin'] ); // Translatable skin names go here $skin_names = array ( 'swissrail' => __('Swiss Rail','coolclock'), 'chunkyswiss' => __('Chunky Swiss','coolclock'), 'chunkyswissonblack' => __('Chunky Swiss White','coolclock'), 'fancy' => __('Fancy','coolclock'), 'machine' => __('Machine','coolclock'), 'simonbaird_com' => __('SimonBaird.com','coolclock'), 'classic' => __('Classic by Bonstio','coolclock'), 'modern' => __('Modern by Bonstio','coolclock'), 'simple' => __('Simple by Bonstio','coolclock'), 'securephp' => __('SecurePHP','coolclock'), 'tes2' => __('Tes2','coolclock'), 'lev' => __('Lev','coolclock'), 'sand' => __('Sand','coolclock'), 'sun' => __('Sun','coolclock'), 'tor' => __('Tor','coolclock'), 'cold' => __('Cold','coolclock'), 'babosa' => __('Babosa','coolclock'), 'tumb' => __('Tumb','coolclock'), 'stone' => __('Stone','coolclock'), 'disc' => __('Disc','coolclock'), 'watermelon' => __('Watermelon by Yoo Nhe','coolclock'), 'mister' => __('Mister by Carl Lister','coolclock'), 'minimal' => __('Minimal','coolclock') ); // Translatable type names go here $type_names = array ( 'linear' => __('Linear','coolclock'), 'logclock' => __('Logarithmic','coolclock'), 'logclockrev' => __('Logarithmic reversed','coolclock') ); // Translatable show digital options go here $showdigital_names = array ( '' => translate('No'), 'digital12' => __('time (am/pm)','coolclock'), 'digital24' => __('time (24h)','coolclock'), 'date' => __('date','coolclock'), 'digital12+' => __('time + seconds (am/pm)','coolclock'), 'digital24+' => __('time + seconds (24h)','coolclock'), 'text' => __('custom text','coolclock') ); // Misc translations $stray = array( 'extra_settings' => __('Extra settings for the CoolClock widget.', 'coolclock') ); // Title $output .= '

'; $output .= '

'; // Clock settings $output .= '

' . __('Clock', 'coolclock') . '

'; $output .= '

' . __('CoolClock widget instructions »', 'coolclock') . '

'; $output .= '

'; $output .= '

'; // Custom skin field $output .= '

'; $output .= ' '; $output .= '' . sprintf( __('(set Skin to Custom above, then add %s here)', 'coolclock'), '' . __('parameters in JSON format', 'coolclock') . '' ) . '

'; // Radius $output .= '

'; $output .= '

'; // Second hand $output .= '

' : '"false" />'; $output .= '

'; // Align $output .= '

'; $output .= '

'; // Subtext $output .= '

'; $output .= ' ' . __('(basic HTML allowed)', 'coolclock') . '

'; $output .= '
'; $output .= '

' . translate('Advanced') . '

'; // Use GMT offset $output .= '

'; $output .= ' ' . __('(leave blank for visitor local time)', 'coolclock') . '

'; // Scale $output .= '

'; $output .= '

'; // Show digital if ( $instance['showdigital'] == 'true' || $instance['showdigital'] == '1' ) $instance['showdigital'] = 'digital12'; // backward compat $output .= '

'; $output .= '

'; $output .= '

'; $output .= ' ' . __('(use a valid HTML color code or name)', 'coolclock') . '

'; $advanced .= '

' . __('More digital font options »', 'coolclock') . '

' . __('Background') . '

' . __('Available in the Advanced extension »', 'coolclock') . '

'; // Advanced filter $output .= apply_filters( 'coolclock_widget_form_advanced', $advanced, $this, $instance, $defaults ); $output .= '
'; if ( class_exists( 'CoolClockAdvanced' ) && isset(CoolClockAdvanced::$plugin_version) && version_compare( CoolClockAdvanced::$plugin_version, '7.1', '<' ) ) { // add an upgrade notice $output .= '
' . __('Please upgrade the CoolClock - Advanced extension.', 'coolclock') . ' '. ' ' . __('Please log in with your account credentials here.', 'coolclock') . '' . __('You can download the new version using the link in the downloads list.', 'coolclock') . '
'; } echo $output; } }