'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 .= '';
}
echo $output;
}
}