'widget_image', 'description' => __( "Display an image in your sidebar", 'jetpack' ) );
$control_ops = array( 'width' => 400 );
$this->WP_Widget( 'image', __( 'Image (Jetpack)', 'jetpack' ), $widget_ops, $control_ops );
}
function widget( $args, $instance ) {
extract( $args );
echo $before_widget;
$title = apply_filters( 'widget_title', $instance['title'] );
if ( $title )
echo $before_title . esc_html( $title ) . $after_title;
if ( '' != $instance['img_url'] ) {
$output = '
' . $output . '';
if ( '' != $instance['caption'] )
$output = '[caption align="align' . esc_attr( $instance['align'] ) . '" width="' . esc_attr( $instance['img_width'] ) .'" caption="' . esc_attr( $instance['caption'] ) . '"]' . $output . '[/caption]';
echo '
' . do_shortcode( $output ) . '
';
}
echo "\n" . $after_widget;
}
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = strip_tags( $new_instance['title'] );
$instance['img_url'] = esc_url( $new_instance['img_url'], null, 'display' );
$instance['alt_text'] = strip_tags( $new_instance['alt_text'] );
$instance['img_title'] = strip_tags( $new_instance['img_title'] );
$instance['caption'] = strip_tags( $new_instance['caption'] );
$instance['align'] = $new_instance['align'];
$instance['img_width'] = absint( $new_instance['img_width'] );
$instance['img_height'] = absint( $new_instance['img_height'] );
$instance['link'] = esc_url( $new_instance['link'], null, 'display' );
return $instance;
}
function form( $instance ) {
// Defaults
$instance = wp_parse_args( (array) $instance, array( 'title' => '', 'img_url' => '', 'alt_text' => '', 'img_title' => '', 'caption' => '', 'align' => 'none', 'img_width' => '', 'img_height' => '', 'link' => '' ) );
$title = esc_attr( $instance['title'] );
$img_url = esc_url( $instance['img_url'], null, 'display' );
$alt_text = esc_attr( $instance['alt_text'] );
$img_title = esc_attr( $instance['img_title'] );
$caption = esc_attr( $instance['caption'] );
$align = esc_attr( $instance['align'] );
$img_width = esc_attr( $instance['img_width'] );
$img_height = esc_attr( $instance['img_height'] );
if ( !empty( $instance['img_url'] ) ) {
// Download the url to a local temp file and then process it with getimagesize so we can filter out domains which are blocking us
$tmp_file = download_url( $instance['img_url'], 30 );
if ( ! is_wp_error( $tmp_file ) ) {
$size = getimagesize( $tmp_file );
if ( '' == $instance['img_width'] ) {
$width = $size[0];
$img_width = $width;
} else {
$img_width = absint( $instance['img_width'] );
}
if ( '' == $instance['img_height'] ) {
$height = $size[1];
$img_height = $height;
} else {
$img_height = absint( $instance['img_height'] );
}
unlink( $tmp_file );
}
}
$link = esc_url( $instance['link'], null, 'display' );
echo '
';
$alignments = array(
'none' => __( 'None', 'jetpack' ),
'left' => __( 'Left', 'jetpack' ),
'center' => __( 'Center', 'jetpack' ),
'right' => __( 'Right', 'jetpack' ),
);
echo '';
echo '
' . esc_html__( "If empty, we will attempt to determine the image size.", 'jetpack' ) . '
';
}
} //Class Jetpack_Image_Widget
function jetpack_image_widget_init() {
register_widget( 'Jetpack_Image_Widget' );
}
add_action( 'widgets_init', 'jetpack_image_widget_init' );