'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'); ?>