Version Description
Download this release
Release Info
Developer | peterchester |
Plugin | Image Widget |
Version | 2.2 |
Comparing to | |
See all releases |
Code changes from version 2.1 to 2.2
- image-widget.php +85 -54
- readme.txt +6 -1
image-widget.php
CHANGED
@@ -5,10 +5,18 @@ Plugin Name: Image Widget
|
|
5 |
Plugin URI: http://www.shaneandpeter.com/wordpress
|
6 |
Description: This widget accepts a title, a link and an image and displays them. The admin panel is separated from the widget to offer independant control
|
7 |
Author: Shane and Peter, Inc. [Contributors: Kevin Miller, Nick Ohrn]
|
8 |
-
Version: 2.
|
9 |
Author URI: http://www.shaneandpeter.com
|
10 |
*/
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
class sp_image_widget {
|
13 |
|
14 |
var $options = array(
|
@@ -37,6 +45,7 @@ class sp_image_widget {
|
|
37 |
|
38 |
var $is_widget_id = false;
|
39 |
|
|
|
40 |
function sp_image_widget() {
|
41 |
|
42 |
$this->is_admin_page = (isset($_GET['page']) && $_GET['page'] == $this->options['control_options']['id_base']) ? true : false;
|
@@ -46,6 +55,7 @@ class sp_image_widget {
|
|
46 |
add_action('admin_menu', array(&$this, 'admin_menu'));
|
47 |
}
|
48 |
|
|
|
49 |
function admin_head() {
|
50 |
|
51 |
// TODO: Submit this as a patch to Wordpress
|
@@ -72,18 +82,23 @@ class sp_image_widget {
|
|
72 |
<?php
|
73 |
}
|
74 |
|
|
|
75 |
function admin_menu() {
|
76 |
add_management_page($this->options['widget_name'], $this->options['widget_name'], 5, $this->options['control_options']['id_base'], array(&$this, 'control'));
|
77 |
}
|
78 |
|
|
|
79 |
function get_options() {
|
80 |
return get_option('widget_' . $this->options['control_options']['id_base']);
|
81 |
}
|
82 |
|
|
|
83 |
function update_options($options) {
|
84 |
return update_option('widget_' . $this->options['control_options']['id_base'], $options);
|
85 |
}
|
86 |
|
|
|
|
|
87 |
function widget($arguments, $widget_arguments = 1) {
|
88 |
|
89 |
extract($arguments, EXTR_SKIP);
|
@@ -106,41 +121,51 @@ class sp_image_widget {
|
|
106 |
$linktarget = !empty($widget_options['linktarget']);
|
107 |
|
108 |
echo '<div id="'.$this->options['control_options']['id_base'].'-'.$number.'" class="widget '.$this->options['widget_options']['classname'].'">';
|
109 |
-
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
<?= $widget_options['title'] ?>
|
117 |
-
|
118 |
-
<?= $after_title ?>
|
119 |
-
|
120 |
-
<?php endif; ?>
|
121 |
-
|
122 |
-
<?php if (!empty($widget_options['image'])): ?>
|
123 |
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
<?= ($link ? '<a class="' . $this->options['widget_options']['classname'] . '-image-link-p" href="' . $widget_options['link'] . '" target="' . $widget_options['linktarget'] . '">' : '')?>
|
132 |
-
<?= html_entity_decode($widget_options['description']) ?>
|
133 |
-
<?= ($link ? '</a>' : '') ?></p>
|
134 |
-
|
135 |
-
<?php endif; ?>
|
136 |
|
137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
|
139 |
-
|
140 |
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
142 |
}
|
143 |
|
|
|
|
|
144 |
function register() {
|
145 |
|
146 |
if (!$options = $this->get_options()) {
|
@@ -165,6 +190,7 @@ class sp_image_widget {
|
|
165 |
}
|
166 |
|
167 |
|
|
|
168 |
function control($widget_arguments = 1) {
|
169 |
|
170 |
global $wp_registered_sidebars, $wp_registered_widgets;
|
@@ -360,7 +386,7 @@ class sp_image_widget {
|
|
360 |
|
361 |
<div class="wrap">
|
362 |
|
363 |
-
<h2
|
364 |
|
365 |
<?php if (!$first_widget_id): ?>
|
366 |
|
@@ -370,7 +396,7 @@ class sp_image_widget {
|
|
370 |
|
371 |
<?php else: ?>
|
372 |
|
373 |
-
<form name="form_
|
374 |
|
375 |
<p>
|
376 |
Select which Image Widget you would like to edit.
|
@@ -380,19 +406,22 @@ class sp_image_widget {
|
|
380 |
|
381 |
<select id="sp_image_admin_dropdown" name="sp_image_admin_dropdown" style="width: 400px;" >
|
382 |
|
383 |
-
<?php foreach ($dropdown as $_sidebar => $_info):
|
384 |
|
385 |
-
|
386 |
|
387 |
-
|
388 |
|
389 |
-
|
|
|
|
|
|
|
390 |
|
391 |
-
|
392 |
|
393 |
-
|
394 |
|
395 |
-
|
396 |
|
397 |
</select>
|
398 |
|
@@ -402,7 +431,7 @@ class sp_image_widget {
|
|
402 |
sp_image_admin_dropdown.onchange = function() {
|
403 |
widget_num = sp_image_admin_dropdown.options[sp_image_admin_dropdown.selectedIndex].value.split('&');
|
404 |
if (widget_num[0] > 0) {
|
405 |
-
location.href = '
|
406 |
}
|
407 |
}
|
408 |
/* ]]> */
|
@@ -415,20 +444,20 @@ class sp_image_widget {
|
|
415 |
|
416 |
<tr>
|
417 |
<th>
|
418 |
-
<label for="
|
419 |
</th>
|
420 |
<td>
|
421 |
-
<input type="text" id="
|
422 |
</td>
|
423 |
</tr>
|
424 |
|
425 |
<tr>
|
426 |
<th>
|
427 |
-
<label for="
|
428 |
</th>
|
429 |
<td>
|
430 |
-
<input type="text" id="
|
431 |
-
<select id="
|
432 |
<option value="_self"<?php if ($form_options['linktarget']=="_self") { echo " selected"; } ?>>Same Window</option>
|
433 |
<option value="_blank"<?php if ($form_options['linktarget']=="_blank") { echo " selected"; } ?>>New Window</option>
|
434 |
</select>
|
@@ -437,28 +466,28 @@ class sp_image_widget {
|
|
437 |
|
438 |
<tr>
|
439 |
<th>
|
440 |
-
<label for="
|
441 |
</th>
|
442 |
<td>
|
443 |
-
<textarea type="text" id="
|
444 |
</td>
|
445 |
</tr>
|
446 |
<tr>
|
447 |
<th>
|
448 |
-
<label for="
|
449 |
</th>
|
450 |
<td>
|
451 |
-
<input type="file" id="
|
452 |
</td>
|
453 |
</tr>
|
454 |
|
455 |
<tr>
|
456 |
<th>
|
457 |
-
<label
|
458 |
</th>
|
459 |
<td>
|
460 |
<?php if ($form_options['image']): ?>
|
461 |
-
<img src="
|
462 |
<?php endif; ?>
|
463 |
</td>
|
464 |
</tr>
|
@@ -467,10 +496,10 @@ class sp_image_widget {
|
|
467 |
</table>
|
468 |
|
469 |
<p class="submit">
|
470 |
-
<input type="submit" value="Save" id="
|
471 |
</p>
|
472 |
|
473 |
-
|
474 |
|
475 |
</form>
|
476 |
|
@@ -484,8 +513,8 @@ class sp_image_widget {
|
|
484 |
<small>To edit the properties of this widget visit:
|
485 |
<br />
|
486 |
<?php if ($_GET['sidebar']) $_sidebar = $_GET['sidebar']; else $_sidebar = 'sidebar-1'; ?>
|
487 |
-
Manage » <a href="../wp-admin/tools.php?page
|
488 |
-
<input type="hidden" id="widget-sp_image-submit
|
489 |
</p>
|
490 |
|
491 |
<?php
|
@@ -493,6 +522,8 @@ class sp_image_widget {
|
|
493 |
|
494 |
}
|
495 |
|
|
|
|
|
496 |
function ordinalize($number) {
|
497 |
|
498 |
if (in_array(($number % 100), range(11, 13))) {
|
5 |
Plugin URI: http://www.shaneandpeter.com/wordpress
|
6 |
Description: This widget accepts a title, a link and an image and displays them. The admin panel is separated from the widget to offer independant control
|
7 |
Author: Shane and Peter, Inc. [Contributors: Kevin Miller, Nick Ohrn]
|
8 |
+
Version: 2.2
|
9 |
Author URI: http://www.shaneandpeter.com
|
10 |
*/
|
11 |
|
12 |
+
/*
|
13 |
+
Feature Ideas
|
14 |
+
|
15 |
+
* Settings in the widget editor that mirror the Editor view
|
16 |
+
* Size setting in the widget editor
|
17 |
+
|
18 |
+
*/
|
19 |
+
|
20 |
class sp_image_widget {
|
21 |
|
22 |
var $options = array(
|
45 |
|
46 |
var $is_widget_id = false;
|
47 |
|
48 |
+
// Setup Widget
|
49 |
function sp_image_widget() {
|
50 |
|
51 |
$this->is_admin_page = (isset($_GET['page']) && $_GET['page'] == $this->options['control_options']['id_base']) ? true : false;
|
55 |
add_action('admin_menu', array(&$this, 'admin_menu'));
|
56 |
}
|
57 |
|
58 |
+
// Admin Header
|
59 |
function admin_head() {
|
60 |
|
61 |
// TODO: Submit this as a patch to Wordpress
|
82 |
<?php
|
83 |
}
|
84 |
|
85 |
+
// Admin Menu
|
86 |
function admin_menu() {
|
87 |
add_management_page($this->options['widget_name'], $this->options['widget_name'], 5, $this->options['control_options']['id_base'], array(&$this, 'control'));
|
88 |
}
|
89 |
|
90 |
+
// Get Widget Options
|
91 |
function get_options() {
|
92 |
return get_option('widget_' . $this->options['control_options']['id_base']);
|
93 |
}
|
94 |
|
95 |
+
// Set Widget Options
|
96 |
function update_options($options) {
|
97 |
return update_option('widget_' . $this->options['control_options']['id_base'], $options);
|
98 |
}
|
99 |
|
100 |
+
|
101 |
+
// Display Widget Output
|
102 |
function widget($arguments, $widget_arguments = 1) {
|
103 |
|
104 |
extract($arguments, EXTR_SKIP);
|
121 |
$linktarget = !empty($widget_options['linktarget']);
|
122 |
|
123 |
echo '<div id="'.$this->options['control_options']['id_base'].'-'.$number.'" class="widget '.$this->options['widget_options']['classname'].'">';
|
124 |
+
|
125 |
+
|
126 |
+
if (!empty($widget_options['title'])) {
|
127 |
+
echo $before_title;
|
128 |
+
echo $widget_options['title'];
|
129 |
+
echo $after_title;
|
130 |
+
}
|
131 |
+
|
132 |
+
if (!empty($widget_options['image'])) {
|
133 |
|
134 |
+
if ($link) {
|
135 |
+
echo '<a class="' . $this->options['widget_options']['classname'] . '-image-link" href="' . $widget_options['link'] . '" target="' . $widget_options['linktarget'] . '">';
|
136 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
|
138 |
+
echo '<img class="' . $this->options['widget_options']['classname'] . '-image" src="' . $widget_options['image'] . '" alt="image widget" />';
|
139 |
+
|
140 |
+
if ($link) {
|
141 |
+
echo '</a>';
|
142 |
+
}
|
143 |
+
|
144 |
+
}
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
+
if (!empty($widget_options['description'])) {
|
147 |
+
|
148 |
+
echo '<p class="' . $this->options['widget_options']['classname'] . '-description" >';
|
149 |
+
if ($link) {
|
150 |
+
echo '<a class="' . $this->options['widget_options']['classname'] . '-image-link-p" href="' . $widget_options['link'] . '" target="' . $widget_options['linktarget'] . '">';
|
151 |
+
}
|
152 |
+
|
153 |
+
echo html_entity_decode($widget_options['description']);
|
154 |
+
|
155 |
+
if ($link) { echo '</a>'; }
|
156 |
|
157 |
+
echo "</p>";
|
158 |
|
159 |
+
}
|
160 |
+
|
161 |
+
echo $after_widget;
|
162 |
+
|
163 |
+
echo "</div>\n";
|
164 |
+
|
165 |
}
|
166 |
|
167 |
+
|
168 |
+
// Widget Registration
|
169 |
function register() {
|
170 |
|
171 |
if (!$options = $this->get_options()) {
|
190 |
}
|
191 |
|
192 |
|
193 |
+
// Widget Controller
|
194 |
function control($widget_arguments = 1) {
|
195 |
|
196 |
global $wp_registered_sidebars, $wp_registered_widgets;
|
386 |
|
387 |
<div class="wrap">
|
388 |
|
389 |
+
<h2><?php echo $this->admin_menu_header; ?></h2>
|
390 |
|
391 |
<?php if (!$first_widget_id): ?>
|
392 |
|
396 |
|
397 |
<?php else: ?>
|
398 |
|
399 |
+
<form name="form_<?php echo $this->options['control_options']['id_base']; ?>" method="post" action="<?php echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']); ?>" enctype="multipart/form-data">
|
400 |
|
401 |
<p>
|
402 |
Select which Image Widget you would like to edit.
|
406 |
|
407 |
<select id="sp_image_admin_dropdown" name="sp_image_admin_dropdown" style="width: 400px;" >
|
408 |
|
409 |
+
<?php foreach ($dropdown as $_sidebar => $_info):
|
410 |
|
411 |
+
$_widget_count = 1;
|
412 |
|
413 |
+
foreach ($dropdown[$_sidebar] as $_widget):
|
414 |
|
415 |
+
|
416 |
+
echo '<option value="' . $_widget['id'] . '&sidebar=' . $_sidebar . '"';
|
417 |
+
if ($_widget['selected']) { echo ' SELECTED '; }
|
418 |
+
echo '>' . $wp_registered_sidebars[$_sidebar]['name'] . ' » ' . $this->ordinalize($_widget_count) . ' widget</option>';
|
419 |
|
420 |
+
$_widget_count++;
|
421 |
|
422 |
+
endforeach;
|
423 |
|
424 |
+
endforeach; ?>
|
425 |
|
426 |
</select>
|
427 |
|
431 |
sp_image_admin_dropdown.onchange = function() {
|
432 |
widget_num = sp_image_admin_dropdown.options[sp_image_admin_dropdown.selectedIndex].value.split('&');
|
433 |
if (widget_num[0] > 0) {
|
434 |
+
location.href = '<?php echo get_option('home'); ?>/wp-admin/tools.php?page=<?php echo $this->options['control_options']['id_base']; ?>&widget_id=' + sp_image_admin_dropdown.options[sp_image_admin_dropdown.selectedIndex].value;
|
435 |
}
|
436 |
}
|
437 |
/* ]]> */
|
444 |
|
445 |
<tr>
|
446 |
<th>
|
447 |
+
<label for="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][title]"><?php echo _e('Title:') ?></label>
|
448 |
</th>
|
449 |
<td>
|
450 |
+
<input type="text" id="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][title]" name="<?php echo $this->options['control_options']['id_base']; ?>-title" value="<?php echo $form_options['title']; ?>" />
|
451 |
</td>
|
452 |
</tr>
|
453 |
|
454 |
<tr>
|
455 |
<th>
|
456 |
+
<label for="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][link]"><?php echo _e('Link:'); ?></label>
|
457 |
</th>
|
458 |
<td>
|
459 |
+
<input type="text" id="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][link]" name="<?php echo $this->options['control_options']['id_base']; ?>-link" value="<?php echo $form_options['link']; ?>" >
|
460 |
+
<select id="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][linktarget]" name="<?php echo $this->options['control_options']['id_base']; ?>-linktarget">
|
461 |
<option value="_self"<?php if ($form_options['linktarget']=="_self") { echo " selected"; } ?>>Same Window</option>
|
462 |
<option value="_blank"<?php if ($form_options['linktarget']=="_blank") { echo " selected"; } ?>>New Window</option>
|
463 |
</select>
|
466 |
|
467 |
<tr>
|
468 |
<th>
|
469 |
+
<label for="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][description]"><?php echo _e('Description:'); ?></label>
|
470 |
</th>
|
471 |
<td>
|
472 |
+
<textarea type="text" id="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][description]" name="<?php echo $this->options['control_options']['id_base']; ?>-description"><?php echo $form_options['description']; ?></textarea>
|
473 |
</td>
|
474 |
</tr>
|
475 |
<tr>
|
476 |
<th>
|
477 |
+
<label for="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][image]"><?php echo _e('Image:'); ?></label>
|
478 |
</th>
|
479 |
<td>
|
480 |
+
<input type="file" id="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][image]" name="<?php echo $this->options['control_options']['id_base']; ?>-image" />
|
481 |
</td>
|
482 |
</tr>
|
483 |
|
484 |
<tr>
|
485 |
<th>
|
486 |
+
<label><?php echo _e('Preview Image:'); ?></label>
|
487 |
</th>
|
488 |
<td>
|
489 |
<?php if ($form_options['image']): ?>
|
490 |
+
<img src="<?php echo $form_options['image']; ?>" border="0" />
|
491 |
<?php endif; ?>
|
492 |
</td>
|
493 |
</tr>
|
496 |
</table>
|
497 |
|
498 |
<p class="submit">
|
499 |
+
<input type="submit" value="Save" id="<?php echo $this->options['control_options']['id_base']; ?>[<?php echo $number; ?>][submit]" name="<?php echo $this->options['control_options']['id_base']; ?>-submit" value="1" />
|
500 |
</p>
|
501 |
|
502 |
+
<?php echo wp_nonce_field($this->options['control_options']['id_base']); ?>
|
503 |
|
504 |
</form>
|
505 |
|
513 |
<small>To edit the properties of this widget visit:
|
514 |
<br />
|
515 |
<?php if ($_GET['sidebar']) $_sidebar = $_GET['sidebar']; else $_sidebar = 'sidebar-1'; ?>
|
516 |
+
Manage » <a href="../wp-admin/tools.php?page=<?php echo $this->options['control_options']['id_base']; ?>&widget_id=<?php echo $number; ?>&sidebar=<?php echo $_sidebar; ?>"><?php echo $this->options['widget_name']; ?></a></small>
|
517 |
+
<input type="hidden" id="widget-sp_image-submit-<?php echo $number; ?>" name="widget-sp_image[<?php echo $number; ?>][submit]" value="1" />
|
518 |
</p>
|
519 |
|
520 |
<?php
|
522 |
|
523 |
}
|
524 |
|
525 |
+
|
526 |
+
// Widget Positioning Suffixes
|
527 |
function ordinalize($number) {
|
528 |
|
529 |
if (in_array(($number % 100), range(11, 13))) {
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.shaneandpeter.com
|
|
4 |
Tags: widget, image, ad, banner, simple
|
5 |
Requires at least: 2.0
|
6 |
Tested up to: 2.7.1
|
7 |
-
Stable tag: 2.
|
8 |
|
9 |
Simple image widget. Allows for placement of an image in the sidebar without requiring Design access.
|
10 |
|
@@ -33,6 +33,11 @@ If you find any bugs or have any ideas, please mail us.
|
|
33 |
|
34 |
== Changelog ==
|
35 |
|
|
|
|
|
|
|
|
|
|
|
36 |
New in version 2.1
|
37 |
|
38 |
* Link Target
|
4 |
Tags: widget, image, ad, banner, simple
|
5 |
Requires at least: 2.0
|
6 |
Tested up to: 2.7.1
|
7 |
+
Stable tag: 2.2
|
8 |
|
9 |
Simple image widget. Allows for placement of an image in the sidebar without requiring Design access.
|
10 |
|
33 |
|
34 |
== Changelog ==
|
35 |
|
36 |
+
New in version 2.2
|
37 |
+
|
38 |
+
* Fixed missing DIV close tag (Thank you Jesper Goos)
|
39 |
+
* Updated all short tags to proper php tags (Thank you Jonathan Volks from Mannix Marketing)
|
40 |
+
|
41 |
New in version 2.1
|
42 |
|
43 |
* Link Target
|