source: trunk/www.guidonia.net/wp/wp-content/plugins/simple-tags/2.3/inc/simple-tags.widgets.php@ 44

Last change on this file since 44 was 44, checked in by luciano, 14 years ago
File size: 12.9 KB
Line 
1<?php
2function widget_st_tag_cloud_init() {
3 // Widgets exists ?
4 if ( !function_exists('wp_register_sidebar_widget') || !function_exists('wp_register_widget_control') ) {
5 return;
6 }
7
8 // Simple Tags exists ?
9 if ( !class_exists('SimpleTags') ) {
10 return;
11 }
12
13 function widget_st_tag_cloud( $widget_args, $number = 1 ) {
14 extract($widget_args);
15 $options = get_option('widget_stags_cloud');
16
17 // Use Widgets title and no ST title !!
18 $args = 'title=';
19
20 // Selection
21 $selection = trim(strtolower($options[$number]['selection']));
22 if ( !empty($selection) ) {
23 $args .= '&cloud_selection='.$selection;
24 } else {
25 $args .= '&cloud_selection=count-desc';
26 }
27
28 // Order
29 $order = trim(strtolower($options[$number]['order']));
30 if ( !empty($order) ) {
31 $args .= '&cloud_sort='.$order;
32 } else {
33 $args .= '&cloud_sort=random';
34 }
35
36 // Max tags
37 $max = (int) $options[$number]['max'];
38 if ( $max != 0 ) {
39 $args .= '&number='.$max;
40 }
41
42 // Size Mini
43 $smini = (int) $options[$number]['smini'];
44 if ( $smini != 0 ) {
45 $args .= '&smallest='.$smini;
46 }
47
48 // Size Maxi
49 $smax = (int) $options[$number]['smax'];
50 if ( $smax != 0 ) {
51 $args .= '&largest='.$smax;
52 }
53
54 // Unit
55 $unity = trim($options[$number]['unit']);
56 if ( !empty($unity) ) {
57 $args .= '&unit='.$unity;
58 }
59
60 // Format
61 $format = trim($options[$number]['format']);
62 if ( !empty($format) ) {
63 $args .= '&format='.$format;
64 }
65
66 // Use color ?
67 $color = (int) $options[$number]['color'];
68 if ( $color == 0 ) {
69 $args .= '&color=false';
70 }
71
72 // Color mini
73 $cmini = trim($options[$number]['cmini']);
74 if ( !empty($cmini) ) {
75 $args .= '&mincolor='.$cmini;
76 }
77
78 // Color Max
79 $cmax = trim($options[$number]['cmax']);
80 if ( !empty($cmax) ) {
81 $args .= '&maxcolor='.$cmax;
82 }
83
84 // Xformat
85 $xformat = trim($options[$number]['xformat']);
86 if ( !empty($xformat) ) {
87 $args .= '&xformat='.$xformat;
88 }
89
90 // Use custom title with Widgets Title
91 $title = trim($options[$number]['title']);
92
93 echo $before_widget;
94 echo $before_title . $title . $after_title;
95 st_tag_cloud($args);
96 echo $after_widget;
97 }
98
99 function widget_st_tag_cloud_control( $number ) {
100 // Get actual options
101 $options = $newoptions = get_option('widget_stags_cloud');
102 if ( !is_array($options) ) {
103 $options = $newoptions = array();
104 }
105
106 // Post to new options array
107 if ( isset($_POST['widget-stags-submit-'.$number]) ) {
108 $newoptions[$number]['title'] = strip_tags(stripslashes($_POST['widget-stags-title-'.$number]));
109 $newoptions[$number]['max'] = (int) stripslashes($_POST['widget-stags-max-'.$number]);
110 $newoptions[$number]['selection'] = stripslashes($_POST['widget-stags-selection-'.$number]);
111 $newoptions[$number]['order'] = stripslashes($_POST['widget-stags-order-'.$number]);
112 $newoptions[$number]['smini'] = (int) stripslashes($_POST['widget-stags-smini-'.$number]);
113 $newoptions[$number]['smax'] = (int) stripslashes($_POST['widget-stags-smax-'.$number]);
114 $newoptions[$number]['unit'] = stripslashes($_POST['widget-stags-unit-'.$number]);
115 $newoptions[$number]['format'] = stripslashes($_POST['widget-stags-format-'.$number]);
116 $newoptions[$number]['color'] = (int) stripslashes($_POST['widget-stags-color-'.$number]);
117 $newoptions[$number]['cmini'] = stripslashes($_POST['widget-stags-cmini-'.$number]);
118 $newoptions[$number]['cmax'] = stripslashes($_POST['widget-stags-cmax-'.$number]);
119 $newoptions[$number]['xformat'] = stripslashes($_POST['widget-stags-xformat-'.$number]);
120 }
121
122 // Update if new options
123 if ( $options != $newoptions ) {
124 $options = $newoptions;
125 update_option('widget_stags_cloud', $options);
126 }
127
128 // Prepare data for display
129 $title = htmlspecialchars($options[$number]['title'], ENT_QUOTES);
130 $max = htmlspecialchars($options[$number]['max'], ENT_QUOTES);
131 $selection = htmlspecialchars($options[$number]['selection'], ENT_QUOTES);
132 $order = htmlspecialchars($options[$number]['order'], ENT_QUOTES);
133 $smini = htmlspecialchars($options[$number]['smini'], ENT_QUOTES);
134 $smax = htmlspecialchars($options[$number]['smax'], ENT_QUOTES);
135 $unit = htmlspecialchars($options[$number]['unit'], ENT_QUOTES);
136 $format = htmlspecialchars($options[$number]['format'], ENT_QUOTES);
137 $color = htmlspecialchars($options[$number]['color'], ENT_QUOTES);
138 $cmini = htmlspecialchars($options[$number]['cmini'], ENT_QUOTES);
139 $cmax = htmlspecialchars($options[$number]['cmax'], ENT_QUOTES);
140 $xformat= htmlspecialchars($options[$number]['xformat'], ENT_QUOTES);
141 ?>
142 <div>
143 <p><?php _e('Empty field will use default value.', 'simpletags'); ?></p>
144
145 <label for="widget-stags-title-<?php echo $number; ?>" style="line-height:35px;display:block;">
146 <?php _e('Title:', 'simpletags'); ?><br />
147 <input style="width: 100% !important;" type="text" id="widget-stags-title-<?php echo $number; ?>" name="widget-stags-title-<?php echo $number; ?>" value="<?php echo $title; ?>" />
148 </label>
149
150 <label for="widget-stags-max-<?php echo $number; ?>" style="line-height:35px;display:block;">
151 <?php _e('Max tags to display: (default: 45)', 'simpletags'); ?>
152 <input size="20" type="text" id="widget-stags-max-<?php echo $number; ?>" name="widget-stags-max-<?php echo $number; ?>" value="<?php echo $max; ?>" />
153 </label>
154
155 <label for="widget-stags-selection-<?php echo $number; ?>" style="line-height:35px;display:block;">
156 <?php _e('Tags selection:', 'simpletags'); ?>
157 <select id="widget-stags-selection-<?php echo $number; ?>" name="widget-stags-selection-<?php echo $number; ?>">
158 <option <?php if ( $selection == 'name-asc' ) echo 'selected="selected"'; ?> value="name-asc"><?php _e('Alphabetical', 'simpletags'); ?></option>
159 <option <?php if ( $selection == 'name-desc' ) echo 'selected="selected"'; ?> value="name-desc"><?php _e('Inverse Alphabetical', 'simpletags'); ?></option>
160 <option <?php if ( $selection == 'count-desc' ) echo 'selected="selected"'; ?> value="count-desc"><?php _e('Most popular (default)', 'simpletags'); ?></option>
161 <option <?php if ( $selection == 'count-asc' ) echo 'selected="selected"'; ?> value="count-asc"><?php _e('Least used', 'simpletags'); ?></option>
162 <option <?php if ( $selection == 'random' ) echo 'selected="selected"'; ?> value="random"><?php _e('Random', 'simpletags'); ?></option>
163 </select>
164 </label>
165
166 <label for="widget-stags-order-<?php echo $number; ?>" style="line-height:35px;display:block;">
167 <?php _e('Order tags display:', 'simpletags'); ?>
168 <select id="widget-stags-order-<?php echo $number; ?>" name="widget-stags-order-<?php echo $number; ?>">
169 <option <?php if ( $order == 'name-asc' ) echo 'selected="selected"'; ?> value="name-asc"><?php _e('Alphabetical', 'simpletags'); ?></option>
170 <option <?php if ( $order == 'name-desc' ) echo 'selected="selected"'; ?> value="name-desc"><?php _e('Inverse Alphabetical', 'simpletags'); ?></option>
171 <option <?php if ( $order == 'count-desc' ) echo 'selected="selected"'; ?> value="count-desc"><?php _e('Most popular', 'simpletags'); ?></option>
172 <option <?php if ( $order == 'count-asc' ) echo 'selected="selected"'; ?> value="count-asc"><?php _e('Least used', 'simpletags'); ?></option>
173 <option <?php if ( $order == 'random' ) echo 'selected="selected"'; ?> value="random"><?php _e('Random (default)', 'simpletags'); ?></option>
174 </select>
175 </label>
176
177 <label for="widget-stags-smini-<?php echo $number; ?>" style="line-height:35px;display:block;">
178 <?php _e('Font size mini: (default: 8)', 'simpletags'); ?>
179 <input size="20" type="text" id="widget-stags-smini-<?php echo $number; ?>" name="widget-stags-smini-<?php echo $number; ?>" value="<?php echo $smini; ?>" />
180 </label>
181
182 <label for="widget-stags-smax-<?php echo $number; ?>" style="line-height:35px;display:block;">
183 <?php _e('Font size max: (default: 22)', 'simpletags'); ?>
184 <input size="20" type="text" id="widget-stags-smax-<?php echo $number; ?>" name="widget-stags-smax-<?php echo $number; ?>" value="<?php echo $smax; ?>" />
185 </label>
186
187 <label for="widget-stags-unit-<?php echo $number; ?>" style="line-height:35px;display:block;">
188 <?php _e('Unit font size:', 'simpletags'); ?>
189 <select id="widget-stags-unit-<?php echo $number; ?>" name="widget-stags-unit-<?php echo $number; ?>">
190 <option <?php if ( $unit == 'pt' ) echo 'selected="selected"'; ?> value="pt"><?php _e('Point (default)', 'simpletags'); ?></option>
191 <option <?php if ( $unit == 'px' ) echo 'selected="selected"'; ?> value="px"><?php _e('Pixel', 'simpletags'); ?></option>
192 <option <?php if ( $unit == 'em' ) echo 'selected="selected"'; ?> value="em"><?php _e('Em', 'simpletags'); ?></option>
193 <option <?php if ( $unit == '%' ) echo 'selected="selected"'; ?> value="%"><?php _e('Pourcent', 'simpletags'); ?></option>
194 </select>
195 </label>
196
197 <label for="widget-stags-format-<?php echo $number; ?>" style="line-height:35px;display:block;">
198 <?php _e('Format:', 'simpletags'); ?>
199 <select id="widget-stags-format-<?php echo $number; ?>" name="widget-stags-format-<?php echo $number; ?>">
200 <option <?php if ( $format == 'flat' ) echo 'selected="selected"'; ?> value="flat"><?php _e('Flat (default)', 'simpletags'); ?></option>
201 <option <?php if ( $format == 'list' ) echo 'selected="selected"'; ?> value="list"><?php _e('List (UL/LI)', 'simpletags'); ?></option>
202 </select>
203 </label>
204
205 <label for="widget-stags-color-<?php echo $number; ?>" style="line-height:35px;display:block;">
206 <input type="checkbox" id="widget-stags-color-<?php echo $number; ?>" name="widget-stags-color-<?php echo $number; ?>" <?php if ( $color == 1 ) echo 'checked="checked"'; ?> value="1" />
207 <?php _e('Use auto color cloud:', 'simpletags'); ?>
208 </label>
209
210 <label for="widget-stags-cmini-<?php echo $number; ?>" style="line-height:35px;display:block;">
211 <?php _e('Font color mini: (default: #CCCCCC)', 'simpletags'); ?>
212 <input type="text" id="widget-stags-cmini-<?php echo $number; ?>" name="widget-stags-cmini-<?php echo $number; ?>" value="<?php echo $cmini; ?>" />
213 </label>
214
215 <label for="widget-stags-cmax-<?php echo $number; ?>" style="line-height:35px;display:block;">
216 <?php _e('Font color max: (default: #000000)', 'simpletags'); ?>
217 <input type="text" id="widget-stags-cmax-<?php echo $number; ?>" name="widget-stags-cmax-<?php echo $number; ?>" value="<?php echo $cmax; ?>" />
218 </label>
219
220 <label for="widget-stags-xformat-<?php echo $number; ?>" style="line-height:35px;display:block;">
221 <?php _e('Extended format: (advanced usage)', 'simpletags'); ?><br />
222 <input style="width: 100% !important;" type="text" id="widget-stags-xformat-<?php echo $number; ?>" name="widget-stags-xformat-<?php echo $number; ?>" value="<?php echo $xformat; ?>" />
223 </label>
224
225 <input type="hidden" name="widget-stags-submit-<?php echo $number; ?>" id="widget-stags-submit-<?php echo $number; ?>" value="1" />
226 </div>
227 <?php
228 }
229
230 function st_tag_cloud_setup() {
231 $options = $newoptions = get_option('widget_stags_cloud');
232 if ( isset($_POST['stags_cloud-number-submit']) ) {
233 $newoptions['number'] = (int) $_POST['stags_cloud-number'];
234 if ( $newoptions['number'] > 9 ) {
235 $newoptions['number'] = 9;
236 } elseif ( $newoptions['number'] < 1 ) {
237 $newoptions['number'] = 1;
238 }
239 }
240 if ( $options != $newoptions ) {
241 $options = $newoptions;
242 update_option('widget_stags_cloud', $options);
243 widget_st_tag_cloud_register($options['number']);
244 }
245 }
246
247 function st_tag_cloud_page() {
248 $options = get_option('widget_stags_cloud');
249 ?>
250 <div class="wrap">
251 <form method="post">
252 <h2><?php _e('Tag Cloud Widgets', 'simpletags'); ?></h2>
253 <p style="line-height: 30px;"><?php _e('How many tag cloud widgets would you like?', 'simpletags'); ?>
254 <select id="stags_cloud-number" name="stags_cloud-number" value="<?php echo $options['number']; ?>">
255 <?php for ( $i = 1; $i < 10; ++$i ) echo "<option value='$i' ".($options['number']==$i ? "selected='selected'" : '').">$i</option>"; ?>
256 </select>
257 <span class="submit"><input type="submit" name="stags_cloud-number-submit" id="stags_cloud-number-submit" value="<?php echo attribute_escape(__('Save', 'simpletags')); ?>" /></span></p>
258 </form>
259 </div>
260 <?php
261 }
262
263 function widget_st_tag_cloud_register() {
264 $options = get_option('widget_stags_cloud');
265
266 $number = (int) $options['number'];
267 if ( $number < 1 ) {
268 $number = 1;
269 } elseif ( $number > 9 ) {
270 $number = 9;
271 }
272
273 for ( $i = 1; $i <= 9; $i++ ) {
274 wp_register_sidebar_widget('widget_stags-'.$i, sprintf(__('Extended Tag Cloud %d', 'simpletags'), $i), $i <= $number ? 'widget_st_tag_cloud' : '', array('classname' => 'widget_stags_cloud'), $i);
275 wp_register_widget_control('widget_stags-'.$i, sprintf(__('Extended Tag Cloud %d', 'simpletags'), $i), $i <= $number ? 'widget_st_tag_cloud_control' : '', array('width' => 460, 'height' => 520), $i);
276 }
277
278 add_action('sidebar_admin_setup', 'st_tag_cloud_setup');
279 add_action('sidebar_admin_page', 'st_tag_cloud_page');
280 }
281
282 // Launch Widgets
283 widget_st_tag_cloud_register();
284}
285
286// Initialize !
287widget_st_tag_cloud_init();
288?>
Note: See TracBrowser for help on using the repository browser.