PluginProbe
CoolClock / 4.1
CoolClock v4.1
4.3.8 trunk 0.1 2.0 2.9.8 3.0 3.1 3.2 3.3 4.0 4.1 4.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7
coolclock / includes / class-coolclock.php

class-coolclock.php in CoolClock 4.1, at includes/class-coolclock.php

166 lines 4.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * CoolClock Class
5 */
6
7 class CoolClock {
8
9 static $plugin_version = '4.0.99';
10
11 static $script_version = '3.1.0';
12
13 private static $plugin_url;
14
15 private static $plugin_basename;
16
17 private static $min = '.min';
18
19 static $add_script = false;
20
21 static $add_moreskins = false;
22
23 private static $done_excanvas = false;
24
25 static $defaults = array (
26 'skin' => 'swissRail',
27 'radius' => 100,
28 'noseconds' => false, // Hide seconds
29 'gmtoffset' => '', // GMT offset
30 'showdigital' => '', // Show digital time or date
31 'scale' => 'linear', // Define type of clock linear/logarithmic/log reversed
32 'digitalcolor' => '#333'
33 );
34
35 static $showdigital_options = array (
36 '' => '',
37 'digital12' => 'showDigital'
38 );
39
40 static $advanced = false;
41
42 static $advanced_defaults = array (
43 'subtext' => '',
44 'align' => 'center'
45 );
46
47 static $default_skins = ['swissRail','chunkySwiss','chunkySwissOnBlack'];
48
49 static $more_skins = ['fancy','machine','simonbaird_com','classic','modern','simple','securephp','Tes2','Lev','Sand','Sun','Tor','Cold','Babosa','Tumb','Stone','Disc','watermelon','mister'];
50
51 static $advanced_skins = [];
52
53 static $advanced_skins_config = [];
54
55 static $clock_types = array (
56 'linear' => '',
57 'logClock' => 'logClock',
58 'logClockRev' => 'logClockRev'
59 );
60
61 /**
62 * MAIN
63 */
64
65 public static function canvas( $atts ) {
66 extract( $atts );
67
68 $output = '';
69
70 if ( ! self::$done_excanvas ){
71 $output .= '<!--[if lte IE 8]>';
72 $output .= '<script type=\'text/javascript\' src=\'' . self::$plugin_url . 'js/excanvas' . self::$min . '.js\'></script>';
73 $output .= '<![endif]-->' . PHP_EOL;
74 self::$done_excanvas = true;
75 }
76
77 $output .= '<div class="coolclock';
78
79 // align class ans style
80 $output .= ( $align ) ? ' align' . $align : '';
81 $output .= '" style="width:' . 2 * $radius . 'px;max-width:100%;height:auto">';
82 // canvas parameters
83 $output .= '<canvas class="CoolClock:' . $skin . ':' . $radius . ':';
84 $output .= ( $noseconds == 'true' || $noseconds == '1' ) ? 'noSeconds:' : ':';
85 $output .= $gmtoffset;
86
87 // show digital
88 if ( $showdigital == 'true' || $showdigital == '1' )
89 $showdigital = 'digital12'; // backward compat
90
91 if ( isset(self::$showdigital_options[$showdigital]) )
92 $output .= ':'.self::$showdigital_options[$showdigital];
93 else
94 $output .= ':';
95
96 // set type
97 if ( isset(self::$clock_types[$scale]) )
98 $output .= ':'.self::$clock_types[$scale];
99 else
100 $output .= ':';
101
102 // set font
103 if ( isset($font) )
104 $output .= ':'.$font;
105 else
106 $output .= ':';
107
108 // set font color
109 if ( isset($digitalcolor) )
110 $output .= ':'.$digitalcolor;
111 else
112 $output .= ':';
113
114 $output .= '"></canvas>';
115 $output .= ( $subtext ) ? '<div style="width:100%;text-align:center;padding-bottom:10px">' . $subtext . '</div></div>' : '</div>';
116
117 return $output;
118 }
119
120 public static function enqueue_scripts() {
121 if ( ! self::$add_script )
122 return;
123
124 wp_enqueue_script( 'coolclock', self::$plugin_url . 'js/coolclock' . self::$min . '.js', array('jquery'), self::$script_version, true );
125
126 if ( self::$add_moreskins )
127 wp_enqueue_script( 'coolclock-moreskins', self::$plugin_url . 'js/moreskins' . self::$min . '.js', array('coolclock'), self::$script_version, true );
128
129 if ( is_array( self::$advanced_skins_config ) && !empty( self::$advanced_skins_config ) ) {
130 $script = 'jQuery.extend(CoolClock.config.skins, {' . PHP_EOL;
131 // loop through plugin custom skins
132 foreach (self::$advanced_skins_config as $key => $value)
133 $script .= $key.':{'.$value.'},' . PHP_EOL;
134 $script .= '});';
135
136 if ( self::$add_moreskins )
137 wp_add_inline_script( 'coolclock-moreskins', $script );
138 else
139 wp_add_inline_script( 'coolclock', $script );
140 }
141 }
142
143 public static function textdomain() {
144 load_plugin_textdomain( 'coolclock', false, dirname(self::$plugin_basename).'/languages' );
145 }
146
147 public static function register_widget() {
148 register_widget("CoolClock_Widget");
149 }
150
151 /**
152 * INIT
153 */
154
155 public function __construct( $file ) {
156 // VARS
157 self::$plugin_url = plugins_url( '/', $file );
158 self::$plugin_basename = plugin_basename( $file );
159
160 if ( defined('WP_DEBUG') && WP_DEBUG ) {
161 self::$min = '';
162 }
163 }
164
165 }
166