'aladdin_items_category', 'description' => __('Display Items from the Category or latest posts.', 'aladdin' )); /* Widget control settings. */ $control_ops = array( 'width' => 250, 'height' => 250, 'id_base' => 'aladdin_items_category_widget'); /* Create the widget. */ parent::__construct( 'aladdin_items_category_widget', __('Al Items from Category (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 ) ); preg_match_all('!\d+!', $instance['columns'], $matches); $width = $this->get_width($sidebar_id, absint(implode(' ', $matches[0])), $instance['padding_right'], $instance['padding_left']); global $post; $not_in = array(); if( is_singular() ) { $not_in []= $post->ID; } $not_in = array_merge ( $not_in, get_option( 'sticky_posts' ) ); $args = array(); $tax = 'category'; if( '0' != $instance['category'] ) { $args = array( array( 'taxonomy' => $tax, 'terms' => array( $instance['category'] ), 'field' => 'term_id', 'operator' => 'IN', ), ); } $query = new WP_Query( array( 'order' => 'DESC', 'posts_per_page' => $instance['count'], 'no_found_rows' => true, 'post_status' => 'publish', 'post__not_in' => $not_in, 'post_type' => array('post','jehanne_theme'), 'tax_query' => $args, ) ); if ( $query->have_posts() ) : $tmp_content_width = $GLOBALS['content_width']; $GLOBALS['content_width'] = $width; //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'); } ?>

name);?>

have_posts() ) : $query->the_post(); ?>
0 ? $new_instance['count'] : 1); $instance['title'] = esc_html($new_instance['title']); $instance['category'] = absint($new_instance['category']); $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_zoom']) ) $instance['is_zoom'] = 1; if( isset($new_instance['is_animate']) ) $instance['is_animate'] = 1; if( isset($new_instance['is_animate_once']) ) $instance['is_animate_once'] = 1; if( isset($new_instance['is_link']) ) $instance['is_link'] = 1; $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'); $instance['effect_id'] = ( in_array( $new_instance['effect_id'], $possible_values ) ? $new_instance['effect_id'] : 'effect-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); if( isset($new_instance['is_link']) ) $instance['is_link'] = 1; return $instance; } /** * Widget form * * @since Aladdin 1.0.0 * * @param array $instance Array of widget options. */ function form( $instance ) { // Output admin widget options form // Set up some default widget settings. $instance = wp_parse_args( (array) $instance, $this->defaults( $instance ) ); aladdin_echo_input_text( $this, 'title', $instance, __( 'Title: ', 'aladdin' ), 0); $tax = 'category'; $terms = get_terms( $tax ); if ( $terms && ! is_wp_error( $terms ) ) : esc_html_e('Category:', 'aladdin'); ?>
get_field_id( 'is_link' )); aladdin_echo_input_checkbox( $this, 'is_margin_0', $instance, __( 'No Margins', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_link', $instance, __( 'Display Button', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_has_description', $instance, __( 'Display description block', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_step', $instance, __( 'Step Animation', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_zoom', $instance, __( 'Transparent', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_animate', $instance, __( 'Animate', 'aladdin')); aladdin_echo_input_checkbox( $this, 'is_animate_once', $instance, __( 'Once', 'aladdin')); if( $instance['is_has_description'] != 0 ) { aladdin_echo_input_checkbox( $this, 'is_right', $instance, __( 'Right', 'aladdin')); } aladdin_echo_section_end(); } /** * Return array Defaults * * @since Aladdin 1.0.0 */ function defaults( $instance ){ $defaults = array('title' => __('Recent Posts', 'aladdin'), 'category' => '0', 'count' => '4', 'columns' => 'column-4', 'image_size' => 'post-thumbnail', 'is_step' => '', 'is_margin_0' => '', 'effect_id' => 'effect-1', 'is_animate' => '', 'is_zoom' => '', 'is_animate_once' => ($instance == null ? 1 : ''), 'link_caption' => __('More Info', 'aladdin'), 'padding_right' => '0', 'padding_left' => '0', 'padding_top' => '20', 'padding_bottom' => '20', 'is_has_description' => 0, 'is_right' => '', 'is_link' => '1', ); 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_items_cat_widgets() { register_widget( 'aladdin_items_category' ); } add_action( 'widgets_init', 'aladdin_register_items_cat_widgets' );