Version Description
- Fix javascript bugs in the widget admin UI. ( thanks for filing this @joo-joo )
- Fix notices in php error log.
- Add widget description filter $args and $instance ( thanks @jeffreyzinn )
- Fixed localization and renamed key to 'image-widget'
Download this release
Release Info
| Developer | peterchester |
| Plugin | |
| Version | 3.3.4 |
| Comparing to | |
| See all releases | |
Code changes from version 3.3.3 to 3.3.4
- image-widget.js +0 -198
- image-widget.php +21 -30
- lang/{SP_Image_Widget-de_DE.mo → Image_Widget-de_DE.mo} +0 -0
- lang/{SP_Image_Widget-de_DE.po → Image_Widget-de_DE.po} +0 -0
- lang/{SP_Image_Widget-fr_FR.mo → Image_Widget-fr_FR.mo} +0 -0
- lang/{SP_Image_Widget-fr_FR.po → Image_Widget-fr_FR.po} +0 -0
- lang/{SP_Image_Widget-ja.mo → Image_Widget-ja.mo} +0 -0
- lang/{SP_Image_Widget-ja.po → Image_Widget-ja.po} +0 -0
- lang/{SP_Image_Widget-pl_PL.mo → Image_Widget-pl_PL.mo} +0 -0
- lang/{SP_Image_Widget-pl_PL.po → Image_Widget-pl_PL.po} +0 -0
- lang/{SP_Image_Widget-pt_BR.mo → Image_Widget-pt_BR.mo} +0 -0
- lang/{SP_Image_Widget-pt_BR.po → Image_Widget-pt_BR.po} +0 -0
- lang/{SP_Image_Widget-ro_RO.mo → Image_Widget-ro_RO.mo} +0 -0
- lang/{SP_Image_Widget-ro_RO.po → Image_Widget-ro_RO.po} +0 -0
- lang/{sp_image_widget-sv_SE.mo → Image_Widget-sv_SE.mo} +0 -0
- lang/{sp_image_widget-sv_SE.po → Image_Widget-sv_SE.po} +0 -0
- readme.txt +12 -5
- resources/js/image-widget-upload-fixer.js +79 -0
- resources/js/image-widget.js +123 -0
- views/widget-admin.php +21 -21
- views/widget.php +1 -1
image-widget.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
| 1 |
-
(function($){
|
| 2 |
-
|
| 3 |
-
window.set_active_widget = function(instance_id) {
|
| 4 |
-
self.IW_instance = instance_id;
|
| 5 |
-
}
|
| 6 |
-
|
| 7 |
-
function image_widget_send_to_editor(h) {
|
| 8 |
-
// ignore content returned from media uploader and use variables passed to window instead
|
| 9 |
-
|
| 10 |
-
// store attachment id in hidden field
|
| 11 |
-
$( '#widget-'+self.IW_instance+'-image' ).val( self.IW_img_id );
|
| 12 |
-
|
| 13 |
-
// display attachment preview
|
| 14 |
-
$( '#display-widget-'+self.IW_instance+'-image' ).html( self.IW_html );
|
| 15 |
-
|
| 16 |
-
// change width & height fields in widget to match image
|
| 17 |
-
$( '#widget-'+self.IW_instance+'-width' ).val($( '#display-widget-'+self.IW_instance+'-image img').attr('width'));
|
| 18 |
-
$( '#widget-'+self.IW_instance+'-height' ).val($( '#display-widget-'+self.IW_instance+'-image img').attr('height'));
|
| 19 |
-
|
| 20 |
-
// set alignment in widget
|
| 21 |
-
$( '#widget-'+self.IW_instance+'-align' ).val(self.IW_align);
|
| 22 |
-
|
| 23 |
-
// set title in widget
|
| 24 |
-
$( '#widget-'+self.IW_instance+'-title' ).val(self.IW_title);
|
| 25 |
-
|
| 26 |
-
// set caption in widget
|
| 27 |
-
$( '#widget-'+self.IW_instance+'-description' ).val(self.IW_caption);
|
| 28 |
-
|
| 29 |
-
// set alt text in widget
|
| 30 |
-
$( '#widget-'+self.IW_instance+'-alt' ).val(self.IW_alt);
|
| 31 |
-
|
| 32 |
-
// set link in widget
|
| 33 |
-
$( '#widget-'+self.IW_instance+'-link' ).val(self.IW_url);
|
| 34 |
-
|
| 35 |
-
// close thickbox
|
| 36 |
-
tb_remove();
|
| 37 |
-
|
| 38 |
-
// change button text
|
| 39 |
-
$('#add_image-widget-'+self.IW_instance+'-image').html($('#add_image-widget-'+self.IW_instance+'-image').html().replace(/Add Image/g, 'Change Image'));
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
function changeImgWidth(instance) {
|
| 43 |
-
var width = $( '#widget-'+instance+'-width' ).val();
|
| 44 |
-
var height = Math.round(width / imgRatio(instance));
|
| 45 |
-
changeImgSize(instance,width,height);
|
| 46 |
-
}
|
| 47 |
-
|
| 48 |
-
function changeImgHeight(instance) {
|
| 49 |
-
var height = $( '#widget-'+instance+'-height' ).val();
|
| 50 |
-
var width = Math.round(height * imgRatio(instance));
|
| 51 |
-
changeImgSize(instance,width,height);
|
| 52 |
-
}
|
| 53 |
-
|
| 54 |
-
function imgRatio(instance) {
|
| 55 |
-
var width_old = $( '#display-widget-'+instance+'-image img').attr('width');
|
| 56 |
-
var height_old = $( '#display-widget-'+instance+'-image img').attr('height');
|
| 57 |
-
var ratio = width_old / height_old;
|
| 58 |
-
return ratio;
|
| 59 |
-
}
|
| 60 |
-
|
| 61 |
-
function changeImgSize(instance,width,height) {
|
| 62 |
-
if (isNaN(width) || width < 1) {
|
| 63 |
-
$( '#widget-'+instance+'-width' ).val('');
|
| 64 |
-
width = 'none';
|
| 65 |
-
} else {
|
| 66 |
-
$( '#widget-'+instance+'-width' ).val(width);
|
| 67 |
-
width = width + 'px';
|
| 68 |
-
}
|
| 69 |
-
$( '#display-widget-'+instance+'-image img' ).css({
|
| 70 |
-
'width':width
|
| 71 |
-
});
|
| 72 |
-
|
| 73 |
-
if (isNaN(height) || height < 1) {
|
| 74 |
-
$( '#widget-'+instance+'-height' ).val('');
|
| 75 |
-
height = 'none';
|
| 76 |
-
} else {
|
| 77 |
-
$( '#widget-'+instance+'-height' ).val(height);
|
| 78 |
-
height = height + 'px';
|
| 79 |
-
}
|
| 80 |
-
$( '#display-widget-'+instance+'-image img' ).css({
|
| 81 |
-
'height':height
|
| 82 |
-
});
|
| 83 |
-
}
|
| 84 |
-
|
| 85 |
-
function changeImgAlign(instance) {
|
| 86 |
-
var align = $( '#widget-'+instance+'-align' ).val();
|
| 87 |
-
$( '#display-widget-'+instance+'-image img' ).attr(
|
| 88 |
-
'class', (align == 'none' ? '' : 'align'+align)
|
| 89 |
-
);
|
| 90 |
-
}
|
| 91 |
-
|
| 92 |
-
function imgHandler(event) {
|
| 93 |
-
event.preventDefault();
|
| 94 |
-
window.send_to_editor = image_widget_send_to_editor;
|
| 95 |
-
tb_show("Add an Image", event.target.href, false);
|
| 96 |
-
}
|
| 97 |
-
|
| 98 |
-
$(document).ready(function() {
|
| 99 |
-
// Use new style event handling since $.fn.live() will be deprecated
|
| 100 |
-
if ( typeof $.fn.on !== 'undefined' ) {
|
| 101 |
-
$("#wpbody").on("click", ".thickbox-image-widget", imgHandler);
|
| 102 |
-
}
|
| 103 |
-
else {
|
| 104 |
-
$("a.thickbox-image-widget").live('click', imgHandler);
|
| 105 |
-
}
|
| 106 |
-
|
| 107 |
-
// Modify thickbox link to fit window. Adapted from wp-admin\js\media-upload.dev.js.
|
| 108 |
-
$('a.thickbox-image-widget').each( function() {
|
| 109 |
-
var href = $(this).attr('href'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width;
|
| 110 |
-
if ( ! href ) return;
|
| 111 |
-
href = href.replace(/&width=[0-9]+/g, '');
|
| 112 |
-
href = href.replace(/&height=[0-9]+/g, '');
|
| 113 |
-
$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 ) );
|
| 114 |
-
});
|
| 115 |
-
});
|
| 116 |
-
|
| 117 |
-
})(jQuery);
|
| 118 |
-
|
| 119 |
-
/* Fix browser upload */
|
| 120 |
-
|
| 121 |
-
jQuery(document).ready(function() {
|
| 122 |
-
|
| 123 |
-
jQuery('form#image-form').submit(function(){
|
| 124 |
-
var wp_ref = jQuery("input[name='_wp_http_referer']").val();
|
| 125 |
-
// _wp_http_referer only contains the widget_sp_image if the
|
| 126 |
-
// previous action was pressing the add image link in an Image Widget
|
| 127 |
-
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/indexOf
|
| 128 |
-
if( wp_ref.indexOf('widget_sp_image') != -1 ) {
|
| 129 |
-
var parsed_url = parse_url(wp_ref);
|
| 130 |
-
var nw_action_url = jQuery('form#image-form').attr('action');
|
| 131 |
-
|
| 132 |
-
// make sure the widget_sp_image is not part of the form action url
|
| 133 |
-
// so we will add it to fix the context
|
| 134 |
-
if( nw_action_url.indexOf('widget_sp_image') == -1 ) {
|
| 135 |
-
nw_action_url = nw_action_url + '&' + parsed_url.query;
|
| 136 |
-
jQuery('form#image-form').attr('action', nw_action_url);
|
| 137 |
-
}
|
| 138 |
-
}
|
| 139 |
-
return true;
|
| 140 |
-
});
|
| 141 |
-
});
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
/*
|
| 145 |
-
* Thanks to http://github.com/kvz/phpjs/raw/master/functions/url/parse_url.js
|
| 146 |
-
*/
|
| 147 |
-
function parse_url (str, component) {
|
| 148 |
-
// http://kevin.vanzonneveld.net
|
| 149 |
-
// + original by: Steven Levithan (http://blog.stevenlevithan.com)
|
| 150 |
-
// + reimplemented by: Brett Zamir (http://brett-zamir.me)
|
| 151 |
-
// + input by: Lorenzo Pisani
|
| 152 |
-
// + input by: Tony
|
| 153 |
-
// + improved by: Brett Zamir (http://brett-zamir.me)
|
| 154 |
-
// % note: Based on http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
|
| 155 |
-
// % note: blog post at http://blog.stevenlevithan.com/archives/parseuri
|
| 156 |
-
// % note: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
|
| 157 |
-
// % note: Does not replace invalid characters with '_' as in PHP, nor does it return false with
|
| 158 |
-
// % note: a seriously malformed URL.
|
| 159 |
-
// % note: Besides function name, is essentially the same as parseUri as well as our allowing
|
| 160 |
-
// % note: an extra slash after the scheme/protocol (to allow file:/// as in PHP)
|
| 161 |
-
// * example 1: parse_url('http://username:password@hostname/path?arg=value#anchor');
|
| 162 |
-
// * returns 1: {scheme: 'http', host: 'hostname', user: 'username', pass: 'password', path: '/path', query: 'arg=value', fragment: 'anchor'}
|
| 163 |
-
var key = ['source', 'scheme', 'authority', 'userInfo', 'user', 'pass', 'host', 'port',
|
| 164 |
-
'relative', 'path', 'directory', 'file', 'query', 'fragment'],
|
| 165 |
-
ini = (this.php_js && this.php_js.ini) || {},
|
| 166 |
-
mode = (ini['phpjs.parse_url.mode'] &&
|
| 167 |
-
ini['phpjs.parse_url.mode'].local_value) || 'php',
|
| 168 |
-
parser = {
|
| 169 |
-
php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
| 170 |
-
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
| 171 |
-
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this)
|
| 172 |
-
};
|
| 173 |
-
|
| 174 |
-
var m = parser[mode].exec(str),
|
| 175 |
-
uri = {},
|
| 176 |
-
i = 14;
|
| 177 |
-
while (i--) {
|
| 178 |
-
if (m[i]) {
|
| 179 |
-
uri[key[i]] = m[i];
|
| 180 |
-
}
|
| 181 |
-
}
|
| 182 |
-
|
| 183 |
-
if (component) {
|
| 184 |
-
return uri[component.replace('PHP_URL_', '').toLowerCase()];
|
| 185 |
-
}
|
| 186 |
-
if (mode !== 'php') {
|
| 187 |
-
var name = (ini['phpjs.parse_url.queryKey'] &&
|
| 188 |
-
ini['phpjs.parse_url.queryKey'].local_value) || 'queryKey';
|
| 189 |
-
parser = /(?:^|&)([^&=]*)=?([^&]*)/g;
|
| 190 |
-
uri[name] = {};
|
| 191 |
-
uri[key[12]].replace(parser, function ($0, $1, $2) {
|
| 192 |
-
if ($1) {uri[name][$1] = $2;}
|
| 193 |
-
});
|
| 194 |
-
}
|
| 195 |
-
delete uri.source;
|
| 196 |
-
return uri;
|
| 197 |
-
}
|
| 198 |
-
/* /wp-admin/media-upload.php?type=image&widget_id=widget_sp_image-11& */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
image-widget.php
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
/*
|
| 3 |
Plugin Name: Image Widget
|
| 4 |
Plugin URI: http://wordpress.org/extend/plugins/image-widget/
|
| 5 |
-
Description: Simple image widget that uses native
|
| 6 |
Author: Modern Tribe, Inc.
|
| 7 |
-
Version: 3.3.
|
| 8 |
Author URI: http://tri.be
|
| 9 |
*/
|
| 10 |
|
|
@@ -23,8 +23,6 @@ add_action('widgets_init', 'tribe_load_image_widget');
|
|
| 23 |
**/
|
| 24 |
class Tribe_Image_Widget extends WP_Widget {
|
| 25 |
|
| 26 |
-
var $pluginDomain = 'sp_image_widget';
|
| 27 |
-
|
| 28 |
/**
|
| 29 |
* SP Image Widget constructor
|
| 30 |
*
|
|
@@ -32,33 +30,26 @@ class Tribe_Image_Widget extends WP_Widget {
|
|
| 32 |
*/
|
| 33 |
function Tribe_Image_Widget() {
|
| 34 |
$this->loadPluginTextDomain();
|
| 35 |
-
$widget_ops = array( 'classname' => 'widget_sp_image', 'description' => __( 'Showcase a single image with a Title, URL, and a Description',
|
| 36 |
$control_ops = array( 'id_base' => 'widget_sp_image' );
|
| 37 |
-
$this->WP_Widget('widget_sp_image', __('Image Widget',
|
| 38 |
-
$this
|
|
|
|
| 39 |
|
|
|
|
| 40 |
global $pagenow;
|
| 41 |
-
if (
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
wp_enqueue_style( 'thickbox' );
|
| 46 |
-
wp_enqueue_script( 'tribe-image-widget' );
|
| 47 |
-
add_action( 'admin_head-widgets.php', array( $this, 'admin_head' ) );
|
| 48 |
-
}
|
| 49 |
-
elseif ( 'media-upload.php' == $pagenow || 'async-upload.php' == $pagenow ) {
|
| 50 |
-
wp_enqueue_script( 'fix-browser-upload' );
|
| 51 |
-
add_filter( 'image_send_to_editor', array( $this,'image_send_to_editor'), 1, 8 );
|
| 52 |
-
add_filter( 'gettext', array( $this, 'replace_text_in_thickbox' ), 1, 3 );
|
| 53 |
-
add_filter( 'media_upload_tabs', array( $this, 'media_upload_tabs' ) );
|
| 54 |
-
}
|
| 55 |
}
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
|
|
|
| 62 |
}
|
| 63 |
|
| 64 |
function fix_async_upload_image() {
|
|
@@ -69,7 +60,7 @@ class Tribe_Image_Widget extends WP_Widget {
|
|
| 69 |
}
|
| 70 |
|
| 71 |
function loadPluginTextDomain() {
|
| 72 |
-
load_plugin_textdomain(
|
| 73 |
}
|
| 74 |
|
| 75 |
/**
|
|
@@ -136,7 +127,7 @@ class Tribe_Image_Widget extends WP_Widget {
|
|
| 136 |
function replace_text_in_thickbox($translated_text, $source_text, $domain) {
|
| 137 |
if ( $this->is_sp_widget_context() ) {
|
| 138 |
if ('Insert into Post' == $source_text) {
|
| 139 |
-
return __('Insert Into Widget',
|
| 140 |
}
|
| 141 |
}
|
| 142 |
return $translated_text;
|
|
@@ -229,7 +220,7 @@ class Tribe_Image_Widget extends WP_Widget {
|
|
| 229 |
$instance['link'] = $new_instance['link'];
|
| 230 |
$instance['image'] = $new_instance['image'];
|
| 231 |
$instance['imageurl'] = $this->get_image_url($new_instance['image'],$new_instance['width'],$new_instance['height']); // image resizing not working right now
|
| 232 |
-
if( $_SERVER["HTTPS"] == "on" ) {
|
| 233 |
$instance['imageurl'] = str_replace('http://', 'https://', $instance['imageurl']);
|
| 234 |
}
|
| 235 |
$instance['linktarget'] = $new_instance['linktarget'];
|
| 2 |
/*
|
| 3 |
Plugin Name: Image Widget
|
| 4 |
Plugin URI: http://wordpress.org/extend/plugins/image-widget/
|
| 5 |
+
Description: Simple image widget that uses native WordPress upload thickbox to add image widgets to your site.
|
| 6 |
Author: Modern Tribe, Inc.
|
| 7 |
+
Version: 3.3.4
|
| 8 |
Author URI: http://tri.be
|
| 9 |
*/
|
| 10 |
|
| 23 |
**/
|
| 24 |
class Tribe_Image_Widget extends WP_Widget {
|
| 25 |
|
|
|
|
|
|
|
| 26 |
/**
|
| 27 |
* SP Image Widget constructor
|
| 28 |
*
|
| 30 |
*/
|
| 31 |
function Tribe_Image_Widget() {
|
| 32 |
$this->loadPluginTextDomain();
|
| 33 |
+
$widget_ops = array( 'classname' => 'widget_sp_image', 'description' => __( 'Showcase a single image with a Title, URL, and a Description', 'image_widget' ) );
|
| 34 |
$control_ops = array( 'id_base' => 'widget_sp_image' );
|
| 35 |
+
$this->WP_Widget('widget_sp_image', __('Image Widget', 'image_widget'), $widget_ops, $control_ops);
|
| 36 |
+
add_action( 'admin_init', array( $this, 'admin_setup' ) );
|
| 37 |
+
}
|
| 38 |
|
| 39 |
+
function admin_setup() {
|
| 40 |
global $pagenow;
|
| 41 |
+
if ( 'widgets.php' == $pagenow ) {
|
| 42 |
+
wp_enqueue_style( 'thickbox' );
|
| 43 |
+
wp_enqueue_script( 'tribe-image-widget', plugins_url('resources/js/image-widget.js', __FILE__), array('thickbox'), FALSE, TRUE );
|
| 44 |
+
add_action( 'admin_head-widgets.php', array( $this, 'admin_head' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
}
|
| 46 |
+
elseif ( 'media-upload.php' == $pagenow || 'async-upload.php' == $pagenow ) {
|
| 47 |
+
wp_enqueue_script( 'tribe-image-widget-fix-uploader', plugins_url('resources/js/image-widget-upload-fixer.js', __FILE__), array('jquery'), FALSE, TRUE );
|
| 48 |
+
add_filter( 'image_send_to_editor', array( $this,'image_send_to_editor'), 1, 8 );
|
| 49 |
+
add_filter( 'gettext', array( $this, 'replace_text_in_thickbox' ), 1, 3 );
|
| 50 |
+
add_filter( 'media_upload_tabs', array( $this, 'media_upload_tabs' ) );
|
| 51 |
+
}
|
| 52 |
+
$this->fix_async_upload_image();
|
| 53 |
}
|
| 54 |
|
| 55 |
function fix_async_upload_image() {
|
| 60 |
}
|
| 61 |
|
| 62 |
function loadPluginTextDomain() {
|
| 63 |
+
load_plugin_textdomain( 'image_widget', false, trailingslashit(basename(dirname(__FILE__))) . 'lang/');
|
| 64 |
}
|
| 65 |
|
| 66 |
/**
|
| 127 |
function replace_text_in_thickbox($translated_text, $source_text, $domain) {
|
| 128 |
if ( $this->is_sp_widget_context() ) {
|
| 129 |
if ('Insert into Post' == $source_text) {
|
| 130 |
+
return __('Insert Into Widget', 'image_widget' );
|
| 131 |
}
|
| 132 |
}
|
| 133 |
return $translated_text;
|
| 220 |
$instance['link'] = $new_instance['link'];
|
| 221 |
$instance['image'] = $new_instance['image'];
|
| 222 |
$instance['imageurl'] = $this->get_image_url($new_instance['image'],$new_instance['width'],$new_instance['height']); // image resizing not working right now
|
| 223 |
+
if( isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" ) {
|
| 224 |
$instance['imageurl'] = str_replace('http://', 'https://', $instance['imageurl']);
|
| 225 |
}
|
| 226 |
$instance['linktarget'] = $new_instance['linktarget'];
|
lang/{SP_Image_Widget-de_DE.mo → Image_Widget-de_DE.mo}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-de_DE.po → Image_Widget-de_DE.po}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-fr_FR.mo → Image_Widget-fr_FR.mo}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-fr_FR.po → Image_Widget-fr_FR.po}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-ja.mo → Image_Widget-ja.mo}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-ja.po → Image_Widget-ja.po}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-pl_PL.mo → Image_Widget-pl_PL.mo}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-pl_PL.po → Image_Widget-pl_PL.po}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-pt_BR.mo → Image_Widget-pt_BR.mo}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-pt_BR.po → Image_Widget-pt_BR.po}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-ro_RO.mo → Image_Widget-ro_RO.mo}
RENAMED
|
File without changes
|
lang/{SP_Image_Widget-ro_RO.po → Image_Widget-ro_RO.po}
RENAMED
|
File without changes
|
lang/{sp_image_widget-sv_SE.mo → Image_Widget-sv_SE.mo}
RENAMED
|
File without changes
|
lang/{sp_image_widget-sv_SE.po → Image_Widget-sv_SE.po}
RENAMED
|
File without changes
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
| 4 |
Tags: widget, image, ad, banner, simple, upload, sidebar, admin, thickbox, resize
|
| 5 |
Requires at least: 3.0
|
| 6 |
Tested up to: 3.3.1
|
| 7 |
-
Stable tag: 3.3.
|
| 8 |
|
| 9 |
== Description ==
|
| 10 |
|
|
@@ -72,9 +72,16 @@ function my_template_filter($template) {
|
|
| 72 |
|
| 73 |
== Changelog ==
|
| 74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
= 3.3.3 =
|
| 76 |
|
| 77 |
-
* Romanian translation courtesy of Alexander Ovsov at Web Geek Science.
|
| 78 |
|
| 79 |
= 3.3.2 =
|
| 80 |
|
|
@@ -132,13 +139,13 @@ function my_template_filter($template) {
|
|
| 132 |
|
| 133 |
* Added Portuguese translation courtesy of Gustavo Machado
|
| 134 |
|
| 135 |
-
= 3.2.1 =
|
| 136 |
|
| 137 |
* Fix image widget public declaration bug.
|
| 138 |
|
| 139 |
= 3.2 =
|
| 140 |
|
| 141 |
-
* Abstract views for widget output and widget admin.
|
| 142 |
* Support theme override of the widget output! Now you can layout the widget however you'd like.
|
| 143 |
* Added filter to override template call.
|
| 144 |
|
|
@@ -218,7 +225,7 @@ Thank you @smurkas, @squigie and @laurie!!! Special thanks to Cameron Clark fro
|
|
| 218 |
|
| 219 |
= 3.0 =
|
| 220 |
|
| 221 |
-
* Completely remodeled the plugin to use the native
|
| 222 |
* Removed externalized widget admin.
|
| 223 |
|
| 224 |
= 2.2.2 =
|
| 4 |
Tags: widget, image, ad, banner, simple, upload, sidebar, admin, thickbox, resize
|
| 5 |
Requires at least: 3.0
|
| 6 |
Tested up to: 3.3.1
|
| 7 |
+
Stable tag: 3.3.4
|
| 8 |
|
| 9 |
== Description ==
|
| 10 |
|
| 72 |
|
| 73 |
== Changelog ==
|
| 74 |
|
| 75 |
+
= 3.3.4 =
|
| 76 |
+
|
| 77 |
+
* Fix javascript bugs in the widget admin UI. ( thanks for filing this @joo-joo )
|
| 78 |
+
* Fix notices in php error log.
|
| 79 |
+
* Add widget description filter $args and $instance ( thanks @jeffreyzinn )
|
| 80 |
+
* Fixed localization and renamed key to 'image-widget'
|
| 81 |
+
|
| 82 |
= 3.3.3 =
|
| 83 |
|
| 84 |
+
* Romanian translation courtesy of Alexander Ovsov at Web Geek Science (http://webhostinggeeks.com).
|
| 85 |
|
| 86 |
= 3.3.2 =
|
| 87 |
|
| 139 |
|
| 140 |
* Added Portuguese translation courtesy of Gustavo Machado
|
| 141 |
|
| 142 |
+
= 3.2.1 =
|
| 143 |
|
| 144 |
* Fix image widget public declaration bug.
|
| 145 |
|
| 146 |
= 3.2 =
|
| 147 |
|
| 148 |
+
* Abstract views for widget output and widget admin.
|
| 149 |
* Support theme override of the widget output! Now you can layout the widget however you'd like.
|
| 150 |
* Added filter to override template call.
|
| 151 |
|
| 225 |
|
| 226 |
= 3.0 =
|
| 227 |
|
| 228 |
+
* Completely remodeled the plugin to use the native WordPress uploader and be compatible with Wordpress 2.8 plugin architecture.
|
| 229 |
* Removed externalized widget admin.
|
| 230 |
|
| 231 |
= 2.2.2 =
|
resources/js/image-widget-upload-fixer.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
jQuery(document).ready(function() {
|
| 2 |
+
|
| 3 |
+
jQuery('form#image-form').submit(function(){
|
| 4 |
+
var wp_ref = jQuery("input[name='_wp_http_referer']").val();
|
| 5 |
+
// _wp_http_referer only contains the widget_sp_image if the
|
| 6 |
+
// previous action was pressing the add image link in an Image Widget
|
| 7 |
+
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/indexOf
|
| 8 |
+
if( wp_ref.indexOf('widget_sp_image') != -1 ) {
|
| 9 |
+
var parsed_url = parse_url(wp_ref);
|
| 10 |
+
var nw_action_url = jQuery('form#image-form').attr('action');
|
| 11 |
+
|
| 12 |
+
// make sure the widget_sp_image is not part of the form action url
|
| 13 |
+
// so we will add it to fix the context
|
| 14 |
+
if( nw_action_url.indexOf('widget_sp_image') == -1 ) {
|
| 15 |
+
nw_action_url = nw_action_url + '&' + parsed_url.query;
|
| 16 |
+
jQuery('form#image-form').attr('action', nw_action_url);
|
| 17 |
+
}
|
| 18 |
+
}
|
| 19 |
+
return true;
|
| 20 |
+
});
|
| 21 |
+
});
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
/*
|
| 25 |
+
* Thanks to http://github.com/kvz/phpjs/raw/master/functions/url/parse_url.js
|
| 26 |
+
*/
|
| 27 |
+
function parse_url (str, component) {
|
| 28 |
+
// http://kevin.vanzonneveld.net
|
| 29 |
+
// + original by: Steven Levithan (http://blog.stevenlevithan.com)
|
| 30 |
+
// + reimplemented by: Brett Zamir (http://brett-zamir.me)
|
| 31 |
+
// + input by: Lorenzo Pisani
|
| 32 |
+
// + input by: Tony
|
| 33 |
+
// + improved by: Brett Zamir (http://brett-zamir.me)
|
| 34 |
+
// % note: Based on http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
|
| 35 |
+
// % note: blog post at http://blog.stevenlevithan.com/archives/parseuri
|
| 36 |
+
// % note: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
|
| 37 |
+
// % note: Does not replace invalid characters with '_' as in PHP, nor does it return false with
|
| 38 |
+
// % note: a seriously malformed URL.
|
| 39 |
+
// % note: Besides function name, is essentially the same as parseUri as well as our allowing
|
| 40 |
+
// % note: an extra slash after the scheme/protocol (to allow file:/// as in PHP)
|
| 41 |
+
// * example 1: parse_url('http://username:password@hostname/path?arg=value#anchor');
|
| 42 |
+
// * returns 1: {scheme: 'http', host: 'hostname', user: 'username', pass: 'password', path: '/path', query: 'arg=value', fragment: 'anchor'}
|
| 43 |
+
var key = ['source', 'scheme', 'authority', 'userInfo', 'user', 'pass', 'host', 'port',
|
| 44 |
+
'relative', 'path', 'directory', 'file', 'query', 'fragment'],
|
| 45 |
+
ini = (this.php_js && this.php_js.ini) || {},
|
| 46 |
+
mode = (ini['phpjs.parse_url.mode'] &&
|
| 47 |
+
ini['phpjs.parse_url.mode'].local_value) || 'php',
|
| 48 |
+
parser = {
|
| 49 |
+
php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
| 50 |
+
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
| 51 |
+
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this)
|
| 52 |
+
};
|
| 53 |
+
|
| 54 |
+
var m = parser[mode].exec(str),
|
| 55 |
+
uri = {},
|
| 56 |
+
i = 14;
|
| 57 |
+
while (i--) {
|
| 58 |
+
if (m[i]) {
|
| 59 |
+
uri[key[i]] = m[i];
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
if (component) {
|
| 64 |
+
return uri[component.replace('PHP_URL_', '').toLowerCase()];
|
| 65 |
+
}
|
| 66 |
+
if (mode !== 'php') {
|
| 67 |
+
var name = (ini['phpjs.parse_url.queryKey'] &&
|
| 68 |
+
ini['phpjs.parse_url.queryKey'].local_value) || 'queryKey';
|
| 69 |
+
parser = /(?:^|&)([^&=]*)=?([^&]*)/g;
|
| 70 |
+
uri[name] = {};
|
| 71 |
+
uri[key[12]].replace(parser, function ($0, $1, $2) {
|
| 72 |
+
if ($1) {uri[name][$1] = $2;}
|
| 73 |
+
});
|
| 74 |
+
}
|
| 75 |
+
delete uri.source;
|
| 76 |
+
return uri;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
/* /wp-admin/media-upload.php?type=image&widget_id=widget_sp_image-11& */
|
resources/js/image-widget.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
var imageWidget;
|
| 2 |
+
|
| 3 |
+
(function($){
|
| 4 |
+
|
| 5 |
+
imageWidget = {
|
| 6 |
+
|
| 7 |
+
sendToEditor : function(h) {
|
| 8 |
+
// ignore content returned from media uploader and use variables passed to window instead
|
| 9 |
+
|
| 10 |
+
// store attachment id in hidden field
|
| 11 |
+
$( '#widget-'+self.IW_instance+'-image' ).val( self.IW_img_id );
|
| 12 |
+
|
| 13 |
+
// display attachment preview
|
| 14 |
+
$( '#display-widget-'+self.IW_instance+'-image' ).html( self.IW_html );
|
| 15 |
+
|
| 16 |
+
// change width & height fields in widget to match image
|
| 17 |
+
$( '#widget-'+self.IW_instance+'-width' ).val($( '#display-widget-'+self.IW_instance+'-image img').attr('width'));
|
| 18 |
+
$( '#widget-'+self.IW_instance+'-height' ).val($( '#display-widget-'+self.IW_instance+'-image img').attr('height'));
|
| 19 |
+
|
| 20 |
+
// set alignment in widget
|
| 21 |
+
$( '#widget-'+self.IW_instance+'-align' ).val(self.IW_align);
|
| 22 |
+
|
| 23 |
+
// set title in widget
|
| 24 |
+
$( '#widget-'+self.IW_instance+'-title' ).val(self.IW_title);
|
| 25 |
+
|
| 26 |
+
// set caption in widget
|
| 27 |
+
$( '#widget-'+self.IW_instance+'-description' ).val(self.IW_caption);
|
| 28 |
+
|
| 29 |
+
// set alt text in widget
|
| 30 |
+
$( '#widget-'+self.IW_instance+'-alt' ).val(self.IW_alt);
|
| 31 |
+
|
| 32 |
+
// set link in widget
|
| 33 |
+
$( '#widget-'+self.IW_instance+'-link' ).val(self.IW_url);
|
| 34 |
+
|
| 35 |
+
// close thickbox
|
| 36 |
+
tb_remove();
|
| 37 |
+
|
| 38 |
+
// change button text
|
| 39 |
+
$('#add_image-widget-'+self.IW_instance+'-image').html($('#add_image-widget-'+self.IW_instance+'-image').html().replace(/Add Image/g, 'Change Image'));
|
| 40 |
+
},
|
| 41 |
+
|
| 42 |
+
changeImgWidth : function(instance) {
|
| 43 |
+
var width = $( '#widget-'+instance+'-width' ).val();
|
| 44 |
+
var height = Math.round(width / imageWidget.imgRatio(instance));
|
| 45 |
+
imageWidget.changeImgSize(instance,width,height);
|
| 46 |
+
},
|
| 47 |
+
|
| 48 |
+
changeImgHeight : function(instance) {
|
| 49 |
+
var height = $( '#widget-'+instance+'-height' ).val();
|
| 50 |
+
var width = Math.round(height * imageWidget.imgRatio(instance));
|
| 51 |
+
imageWidget.changeImgSize(instance,width,height);
|
| 52 |
+
},
|
| 53 |
+
|
| 54 |
+
imgRatio : function(instance) {
|
| 55 |
+
var width_old = $( '#display-widget-'+instance+'-image img').attr('width');
|
| 56 |
+
var height_old = $( '#display-widget-'+instance+'-image img').attr('height');
|
| 57 |
+
var ratio = width_old / height_old;
|
| 58 |
+
return ratio;
|
| 59 |
+
},
|
| 60 |
+
|
| 61 |
+
changeImgSize : function(instance,width,height) {
|
| 62 |
+
if (isNaN(width) || width < 1) {
|
| 63 |
+
$( '#widget-'+instance+'-width' ).val('');
|
| 64 |
+
width = 'none';
|
| 65 |
+
} else {
|
| 66 |
+
$( '#widget-'+instance+'-width' ).val(width);
|
| 67 |
+
width = width + 'px';
|
| 68 |
+
}
|
| 69 |
+
$( '#display-widget-'+instance+'-image img' ).css({
|
| 70 |
+
'width':width
|
| 71 |
+
});
|
| 72 |
+
|
| 73 |
+
if (isNaN(height) || height < 1) {
|
| 74 |
+
$( '#widget-'+instance+'-height' ).val('');
|
| 75 |
+
height = 'none';
|
| 76 |
+
} else {
|
| 77 |
+
$( '#widget-'+instance+'-height' ).val(height);
|
| 78 |
+
height = height + 'px';
|
| 79 |
+
}
|
| 80 |
+
$( '#display-widget-'+instance+'-image img' ).css({
|
| 81 |
+
'height':height
|
| 82 |
+
});
|
| 83 |
+
},
|
| 84 |
+
|
| 85 |
+
changeImgAlign : function(instance) {
|
| 86 |
+
var align = $( '#widget-'+instance+'-align' ).val();
|
| 87 |
+
$( '#display-widget-'+instance+'-image img' ).attr(
|
| 88 |
+
'class', (align == 'none' ? '' : 'align'+align)
|
| 89 |
+
);
|
| 90 |
+
},
|
| 91 |
+
|
| 92 |
+
imgHandler : function(event) {
|
| 93 |
+
event.preventDefault();
|
| 94 |
+
window.send_to_editor = imageWidget.sendToEditor;
|
| 95 |
+
tb_show("Add an Image", event.target.href, false);
|
| 96 |
+
},
|
| 97 |
+
|
| 98 |
+
setActiveWidget : function(instance_id) {
|
| 99 |
+
self.IW_instance = instance_id;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
};
|
| 103 |
+
|
| 104 |
+
$(document).ready(function() {
|
| 105 |
+
// Use new style event handling since $.fn.live() will be deprecated
|
| 106 |
+
if ( typeof $.fn.on !== 'undefined' ) {
|
| 107 |
+
$("#wpbody").on("click", ".thickbox-image-widget", imageWidget.imgHandler);
|
| 108 |
+
}
|
| 109 |
+
else {
|
| 110 |
+
$("a.thickbox-image-widget").live('click', imageWidget.imgHandler);
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
// Modify thickbox link to fit window. Adapted from wp-admin\js\media-upload.dev.js.
|
| 114 |
+
$('a.thickbox-image-widget').each( function() {
|
| 115 |
+
var href = $(this).attr('href'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width;
|
| 116 |
+
if ( ! href ) return;
|
| 117 |
+
href = href.replace(/&width=[0-9]+/g, '');
|
| 118 |
+
href = href.replace(/&height=[0-9]+/g, '');
|
| 119 |
+
$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 ) );
|
| 120 |
+
});
|
| 121 |
+
});
|
| 122 |
+
|
| 123 |
+
})(jQuery);
|
views/widget-admin.php
CHANGED
|
@@ -7,17 +7,17 @@
|
|
| 7 |
if ( !defined('ABSPATH') )
|
| 8 |
die('-1');
|
| 9 |
?>
|
| 10 |
-
<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:',
|
| 11 |
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['title'])); ?>" /></p>
|
| 12 |
|
| 13 |
-
<p><label for="<?php echo $this->get_field_id('image'); ?>"><?php _e('Image:',
|
| 14 |
<?php
|
| 15 |
-
$media_upload_iframe_src = "media-upload.php?type=image&widget_id=".$this->id; //NOTE #1: the widget id is added here to allow uploader to only return array if this is used with image widget so that all other uploads are not harmed.
|
| 16 |
$image_upload_iframe_src = apply_filters('image_upload_iframe_src', "$media_upload_iframe_src");
|
| 17 |
-
$image_title = __(($instance['image'] ? 'Change Image' : 'Add Image'),
|
| 18 |
?><br />
|
| 19 |
-
<a href="<?php echo $image_upload_iframe_src; ?>&TB_iframe=true" id="add_image-<?php echo $this->get_field_id('image'); ?>" class="thickbox-image-widget" title='<?php echo $image_title; ?>' onClick="
|
| 20 |
-
<div id="display-<?php echo $this->get_field_id('image'); ?>"><?php
|
| 21 |
if ($instance['imageurl']) {
|
| 22 |
echo "<img src=\"{$instance['imageurl']}\" alt=\"{$instance['title']}\" style=\"";
|
| 23 |
if ($instance['width'] && is_numeric($instance['width'])) {
|
|
@@ -37,29 +37,29 @@ if ($instance['imageurl']) {
|
|
| 37 |
<input id="<?php echo $this->get_field_id('image'); ?>" name="<?php echo $this->get_field_name('image'); ?>" type="hidden" value="<?php echo $instance['image']; ?>" />
|
| 38 |
</p>
|
| 39 |
|
| 40 |
-
<p><label for="<?php echo $this->get_field_id('description'); ?>"><?php _e('Caption:',
|
| 41 |
<textarea rows="8" class="widefat" id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>"><?php echo format_to_edit($instance['description']); ?></textarea></p>
|
| 42 |
|
| 43 |
-
<p><label for="<?php echo $this->get_field_id('link'); ?>"><?php _e('Link:',
|
| 44 |
<input class="widefat" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['link'])); ?>" /><br />
|
| 45 |
<select name="<?php echo $this->get_field_name('linktarget'); ?>" id="<?php echo $this->get_field_id('linktarget'); ?>">
|
| 46 |
-
<option value="_self"<?php selected( $instance['linktarget'], '_self' ); ?>><?php _e('Stay in Window',
|
| 47 |
-
<option value="_blank"<?php selected( $instance['linktarget'], '_blank' ); ?>><?php _e('Open New Window',
|
| 48 |
</select></p>
|
| 49 |
|
| 50 |
-
<p><label for="<?php echo $this->get_field_id('width'); ?>"><?php _e('Width:',
|
| 51 |
-
<input id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['width'])); ?>" onchange="changeImgWidth('<?php echo $this->id; ?>')" /></p>
|
| 52 |
|
| 53 |
-
<p><label for="<?php echo $this->get_field_id('height'); ?>"><?php _e('Height:',
|
| 54 |
-
<input id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['height'])); ?>" onchange="changeImgHeight('<?php echo $this->id; ?>')" /></p>
|
| 55 |
|
| 56 |
-
<p><label for="<?php echo $this->get_field_id('align'); ?>"><?php _e('Align:',
|
| 57 |
-
<select name="<?php echo $this->get_field_name('align'); ?>" id="<?php echo $this->get_field_id('align'); ?>" onchange="changeImgAlign('<?php echo $this->id; ?>')">
|
| 58 |
-
<option value="none"<?php selected( $instance['align'], 'none' ); ?>><?php _e('none',
|
| 59 |
-
<option value="left"<?php selected( $instance['align'], 'left' ); ?>><?php _e('left',
|
| 60 |
-
<option value="center"<?php selected( $instance['align'], 'center' ); ?>><?php _e('center',
|
| 61 |
-
<option value="right"<?php selected( $instance['align'], 'right' ); ?>><?php _e('right',
|
| 62 |
</select></p>
|
| 63 |
|
| 64 |
-
<p><label for="<?php echo $this->get_field_id('alt'); ?>"><?php _e('Alternate Text:',
|
| 65 |
<input id="<?php echo $this->get_field_id('alt'); ?>" name="<?php echo $this->get_field_name('alt'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['alt'])); ?>" /></p>
|
| 7 |
if ( !defined('ABSPATH') )
|
| 8 |
die('-1');
|
| 9 |
?>
|
| 10 |
+
<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'image_widget'); ?></label>
|
| 11 |
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['title'])); ?>" /></p>
|
| 12 |
|
| 13 |
+
<p><label for="<?php echo $this->get_field_id('image'); ?>"><?php _e('Image:', 'image_widget'); ?></label>
|
| 14 |
<?php
|
| 15 |
+
$media_upload_iframe_src = "media-upload.php?type=image&post_id=0&widget_id=".$this->id; //NOTE #1: the widget id is added here to allow uploader to only return array if this is used with image widget so that all other uploads are not harmed.
|
| 16 |
$image_upload_iframe_src = apply_filters('image_upload_iframe_src', "$media_upload_iframe_src");
|
| 17 |
+
$image_title = __(($instance['image'] ? 'Change Image' : 'Add Image'), 'image_widget');
|
| 18 |
?><br />
|
| 19 |
+
<a href="<?php echo $image_upload_iframe_src; ?>&TB_iframe=true" id="add_image-<?php echo $this->get_field_id('image'); ?>" class="thickbox-image-widget" title='<?php echo $image_title; ?>' onClick="imageWidget.setActiveWidget('<?php echo $this->id; ?>');return false;" style="text-decoration:none"><img src='images/media-button-image.gif' alt='<?php echo $image_title; ?>' align="absmiddle" /> <?php echo $image_title; ?></a>
|
| 20 |
+
<div id="display-<?php echo $this->get_field_id('image'); ?>"><?php
|
| 21 |
if ($instance['imageurl']) {
|
| 22 |
echo "<img src=\"{$instance['imageurl']}\" alt=\"{$instance['title']}\" style=\"";
|
| 23 |
if ($instance['width'] && is_numeric($instance['width'])) {
|
| 37 |
<input id="<?php echo $this->get_field_id('image'); ?>" name="<?php echo $this->get_field_name('image'); ?>" type="hidden" value="<?php echo $instance['image']; ?>" />
|
| 38 |
</p>
|
| 39 |
|
| 40 |
+
<p><label for="<?php echo $this->get_field_id('description'); ?>"><?php _e('Caption:', 'image_widget'); ?></label>
|
| 41 |
<textarea rows="8" class="widefat" id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>"><?php echo format_to_edit($instance['description']); ?></textarea></p>
|
| 42 |
|
| 43 |
+
<p><label for="<?php echo $this->get_field_id('link'); ?>"><?php _e('Link:', 'image_widget'); ?></label>
|
| 44 |
<input class="widefat" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['link'])); ?>" /><br />
|
| 45 |
<select name="<?php echo $this->get_field_name('linktarget'); ?>" id="<?php echo $this->get_field_id('linktarget'); ?>">
|
| 46 |
+
<option value="_self"<?php selected( $instance['linktarget'], '_self' ); ?>><?php _e('Stay in Window', 'image_widget'); ?></option>
|
| 47 |
+
<option value="_blank"<?php selected( $instance['linktarget'], '_blank' ); ?>><?php _e('Open New Window', 'image_widget'); ?></option>
|
| 48 |
</select></p>
|
| 49 |
|
| 50 |
+
<p><label for="<?php echo $this->get_field_id('width'); ?>"><?php _e('Width:', 'image_widget'); ?></label>
|
| 51 |
+
<input id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['width'])); ?>" onchange="imageWidget.changeImgWidth('<?php echo $this->id; ?>')" /></p>
|
| 52 |
|
| 53 |
+
<p><label for="<?php echo $this->get_field_id('height'); ?>"><?php _e('Height:', 'image_widget'); ?></label>
|
| 54 |
+
<input id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['height'])); ?>" onchange="imageWidget.changeImgHeight('<?php echo $this->id; ?>')" /></p>
|
| 55 |
|
| 56 |
+
<p><label for="<?php echo $this->get_field_id('align'); ?>"><?php _e('Align:', 'image_widget'); ?></label>
|
| 57 |
+
<select name="<?php echo $this->get_field_name('align'); ?>" id="<?php echo $this->get_field_id('align'); ?>" onchange="imageWidget.changeImgAlign('<?php echo $this->id; ?>')">
|
| 58 |
+
<option value="none"<?php selected( $instance['align'], 'none' ); ?>><?php _e('none', 'image_widget'); ?></option>
|
| 59 |
+
<option value="left"<?php selected( $instance['align'], 'left' ); ?>><?php _e('left', 'image_widget'); ?></option>
|
| 60 |
+
<option value="center"<?php selected( $instance['align'], 'center' ); ?>><?php _e('center', 'image_widget'); ?></option>
|
| 61 |
+
<option value="right"<?php selected( $instance['align'], 'right' ); ?>><?php _e('right', 'image_widget'); ?></option>
|
| 62 |
</select></p>
|
| 63 |
|
| 64 |
+
<p><label for="<?php echo $this->get_field_id('alt'); ?>"><?php _e('Alternate Text:', 'image_widget'); ?></label>
|
| 65 |
<input id="<?php echo $this->get_field_id('alt'); ?>" name="<?php echo $this->get_field_name('alt'); ?>" type="text" value="<?php echo esc_attr(strip_tags($instance['alt'])); ?>" /></p>
|
views/widget.php
CHANGED
|
@@ -40,7 +40,7 @@ if ( !empty( $image ) ) {
|
|
| 40 |
if ( $link ) { echo '</a>'; }
|
| 41 |
}
|
| 42 |
if ( !empty( $description ) ) {
|
| 43 |
-
$text = apply_filters( 'widget_text', $description );
|
| 44 |
echo '<div class="'.$this->widget_options['classname'].'-description" >';
|
| 45 |
echo wpautop( $text );
|
| 46 |
echo "</div>";
|
| 40 |
if ( $link ) { echo '</a>'; }
|
| 41 |
}
|
| 42 |
if ( !empty( $description ) ) {
|
| 43 |
+
$text = apply_filters( 'widget_text', $description, $args, $instance );
|
| 44 |
echo '<div class="'.$this->widget_options['classname'].'-description" >';
|
| 45 |
echo wpautop( $text );
|
| 46 |
echo "</div>";
|
