'aladdin_image', 'description' => __('Display Custom Images with CSS3 hover effects.', 'aladdin' )); /* Widget control settings. */ $control_ops = array( 'width' => 250, 'height' => 250, 'id_base' => 'aladdin_image_widget'); /* Create the widget. */ parent::__construct( 'aladdin_image_widget', __('Al Images (Aladdin)', 'aladdin' ), $widget_ops, $control_ops ); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); } /** * Widget styles * * @since Aladdin 1.0.0 * */ public function enqueue_styles() { wp_enqueue_style( 'aladdin-image', get_template_directory_uri() . '/inc/css/image.css'); wp_enqueue_script( 'aladdin-image-script', get_template_directory_uri() . '/inc/js/image-widget.js', array('jquery'), '20151012', true ); } /** * Widget scripts * * @since Aladdin 1.0.0 * */ public function enqueue_scripts( $hook_suffix ) { if ( 'widgets.php' !== $hook_suffix ) { return; } wp_enqueue_media(); wp_enqueue_script( 'aladdin-upload-image', get_template_directory_uri() . '/inc/js/meta-box-image.js', array('jquery') ); } /** * Widget output * * @since Aladdin 1.0.0 * */ function widget( $args, $instance ) { // Widget output extract($args); $sidebar_id = ( isset($args['id']) ? $args['id'] : '' ); // Set up some default widget settings. $instance = wp_parse_args( (array) $instance, $this->defaults( $instance ) ); $instance = wp_parse_args( (array) $instance, $this->defaults_for_count($instance, $instance['count']) ); preg_match_all('!\d+!', $instance['columns'], $matches); $width = $this->get_width($sidebar_id, absint(implode(' ', $matches[0])), $instance['padding_right'], $instance['padding_left']); $tags = array( 'a' => array( 'href' => array(), 'title' => array() ), 'ul' => array(), 'li' => array(), 'br' => array(), 'em' => array(), 'strong' => array(), ); //print the widget for the sidebar echo $before_widget; if(trim($instance['title']) !== '') echo $before_title.esc_html($instance['title']).$after_title; $pos_class = ''; if( 0 != $instance['is_has_description'] ) { $pos_class = (($instance['is_right']) == 1 ? ' right' : ' left'); } ?>

array( 'href' => array(), 'title' => array() ), 'ul' => array(), 'li' => array(), 'br' => array(), 'em' => array(), 'strong' => array(), ); // Save widget options $instance['count'] = absint($new_instance['count']); $instance['count'] = ($instance['count'] > 0 ? $instance['count'] : 1); $instance['title'] = esc_html($new_instance['title']); $possible_values = array('column-1', 'column-2', 'column-3', 'column-4'); $instance['columns'] = ( in_array( $new_instance['columns'], $possible_values ) ? $new_instance['columns'] : 'column-1'); $possible_values = array('post-thumbnail', 'thumbnail', 'large', 'full'); $instance['image_size'] = ( in_array( $new_instance['image_size'], $possible_values ) ? $new_instance['image_size'] : 'post-thumbnail'); if( isset($new_instance['is_background']) ) $instance['is_background'] = 1; if( isset($new_instance['is_step']) ) $instance['is_step'] = 1; if( isset($new_instance['is_hover_all'])) $instance['is_hover_all'] = 1; if( isset($new_instance['is_has_description'])) $instance['is_has_description'] = 1; if( isset($new_instance['is_right'])) $instance['is_right'] = 1; if( isset($new_instance['is_margin_0'])) $instance['is_margin_0'] = 1; $instance['padding_right'] = 0; $instance['padding_left'] = 0; $instance['padding_top'] = ( 1 == $new_instance['is_margin_0'] ? 0 : 20); $instance['padding_bottom'] = ( 1 == $new_instance['is_margin_0'] ? 0 : 20); $instance['padding_top'] = absint($instance['padding_top']); $instance['padding_bottom'] = absint($instance['padding_bottom']); $instance['main_title'] = esc_html($new_instance['main_title']); $instance['main_description'] = wp_kses( $new_instance['main_description'], $tags ); for( $i = 0; $i < $new_instance['count']; $i++ ) { $instance['title_'.$i] = esc_html($new_instance['title_'.$i]); $instance['text_'.$i] = wp_kses( $new_instance['text_'.$i], $tags ); $instance['image_'.$i] = absint($new_instance['image_'.$i]); $instance['link_'.$i] = esc_url_raw($new_instance['link_'.$i]); $img = wp_get_attachment_image_src( $new_instance['image_'.$i], $new_instance['image_size']); $instance['image_link_'.$i] = esc_url_raw($img[0]); $possible_values = array('effect-1', 'effect-2', 'effect-3', 'effect-4', 'effect-5', 'effect-6', 'effect-7', 'effect-8', 'effect-9', 'effect-10', 'effect-11', 'effect-12', 'effect-14', 'effect-15', 'effect-16', 'effect-17', 'effect-18', 'effect-19', 'effect-20', ); $instance['effect_id_'.$i] = ( in_array( $new_instance['effect_id_'.$i], $possible_values ) ? $new_instance['effect_id_'.$i] : 'effect-1'); if( isset($new_instance['is_animate_'.$i]) ) $instance['is_animate_'.$i] = 1; if( isset($new_instance['is_animate_once_'.$i]) ) $instance['is_animate_once'.$i] = 1; if( isset($new_instance['is_zoom_'.$i]) ) $instance['is_zoom_'.$i] = 1; if( isset($new_instance['is_link_'.$i]) ) $instance['is_link_'.$i] = 1; $instance['link_caption_'.$i] = esc_html($new_instance['link_caption_'.$i]); } return $instance; } function form( $instance ) { // Output admin widget options form // Set up some default widget settings. $instance = wp_parse_args( (array) $instance, $this->defaults( $instance ) ); $instance = wp_parse_args( (array) $instance, $this->defaults_for_count($instance, $instance['count']) ); aladdin_echo_input_text( $this, 'title', $instance, __( 'Title: ', 'aladdin' ), 0); aladdin_echo_section_start( __( 'Main options', 'aladdin' ), $this->get_field_id( 'is_background' ) ); esc_html_e('Image Size:', 'aladdin'); ?>
get_field_id( 'image_'.$i ) . $i ); ?>



get_field_id( 'text_'.$i ) . $i ); aladdin_echo_input_textarea( $this, 'text_'.$i, $instance, __( 'Text: ', 'aladdin' )); aladdin_echo_input_text( $this, 'link_'.$i, $instance, __( 'Link: ', 'aladdin' )); aladdin_echo_input_checkbox( $this, 'is_animate_'.$i, $instance, __( 'Animate', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_animate_once_'.$i, $instance, __( 'Once', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_zoom_'.$i, $instance, __( 'Transparent', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_link_'.$i, $instance, __( 'Display Link', 'aladdin')); aladdin_echo_input_text( $this, 'link_caption_'.$i, $instance, __( 'Button caption: ', 'aladdin' ), 0); aladdin_echo_section_end(); aladdin_echo_section_main_end(); } ?>
__('Image', 'aladdin'), 'count' => '1', 'columns' => 'column-1', 'image_size' => 'full', 'is_background' => ( isset( $instance['title'] ) ? '' : 1 ), 'is_step' => '', 'is_hover_all' => '', 'is_margin_0' => ( isset( $instance['title'] ) ? '' : 1 ), 'title_0' => __('Title', 'aladdin'), 'image_0' => '', 'image_link_0' => get_template_directory_uri() . '/img/header.jpg', 'text_0' => '', 'link_0' => '#', 'effect_id_0' => 'effect-1', 'is_animate_0' => '', 'is_animate_once_0' => ( isset( $instance['title'] ) ? '' : 1 ), 'is_zoom_0' => '', 'is_link_0' => ( isset( $instance['title'] ) ? '' : 1 ), 'link_caption_0' => __('More Info', 'aladdin'), 'padding_right' => '0', 'padding_left' => '0', 'padding_top' => '0', 'padding_bottom' => '0', 'is_has_description' => 0, 'main_description' => __( 'Description...', 'aladdin' ), 'main_title' => __( 'Title...', 'aladdin' ), 'is_right' => ($instance == null ? 1 : ''), ); return $defaults; } /** * Return array Defaults * * @param int $count count of fields * @since Aladdin 1.0.0 */ function defaults_for_count( $instance, $count ){ $defaults = array(); for( $i = 1; $i < $count; $i++ ) { $defaults['title_'.$i] = __('Title', 'aladdin'); $defaults['text_'.$i] = ''; $defaults['link_'.$i] = '#'; $defaults['image_'.$i] = ''; $defaults['image_link_'.$i] = get_template_directory_uri() . '/img/header.jpg'; $defaults['effect_id_'.$i] = 'effect-1'; $defaults['is_animate_'.$i] = ''; $defaults['is_animate_once_'.$i] = ( ! isset($instance['effect_id_'.$i]) ? 1 : ''); $defaults['is_zoom_'.$i] = ''; $defaults['is_link_'.$i] = ( ! isset($instance['effect_id_'.$i]) ? 1 : ''); $defaults['link_caption_'.$i] = __('Read more...', 'aladdin'); } return $defaults; } /* widget column width * @param int $sidebar_id sidebar id. * @param int $columns number of $columns. * @param int $i1 widget left margin. * @param int $i2 widget right margin. * @return int width. * @since Aladdin 1.0.0 */ function get_width( $sidebar_id, $columns, $i1 = 0, $i2 = 0 ) { if($columns <= 0) $columns = 1; $width = aladdin_get_sidebar_width($sidebar_id); $width = ($width - $width*$i1/100 - $width*$i2/100)/$columns; return $width; } } /** * Register widget * * @since Aladdin 1.0.0 */ function aladdin_register_image_widgets() { register_widget( 'aladdin_image' ); } add_action( 'widgets_init', 'aladdin_register_image_widgets' );