예제 #1
0
 public function get($args = array())
 {
     global $WPIMLoop;
     /**
      * Detect which view, and load the appropriate one
      */
     $default = array('inventory_id' => NULL, 'category_id' => NULL, 'product_id' => NULL, 'category' => NULL, 'order' => 'inventory_number', 'inventory_search' => NULL, 'page' => 0, 'page_size' => self::$config->get('page_size', 20));
     if (!is_array($args)) {
         parse_str($args, $args);
     }
     self::$args = wp_parse_args($args, $default);
     foreach (self::$args as $key => $value) {
         if (self::request($key)) {
             self::$args[$key] = self::request($key);
         }
     }
     if (!self::$args['category_id'] && self::$args['category']) {
         self::$args['category_id'] = self::$args['category'];
         unset(self::$args['category']);
     }
     if (self::$args['category_id'] && !(int) self::$args['category_id']) {
         $WPIMCategory = new WPIMCategory();
         $category = $WPIMCategory->get_id_from_name(self::$args['category_id']);
         if ($category) {
             self::$args['category_id'] = $category;
         }
     }
     foreach (self::$filters as $filter => $field) {
         if (self::request($filter)) {
             self::$args[$field] = self::request($filter);
         }
     }
     if (self::$args['category_id'] && stripos(self::$args['category_id'], ',')) {
         self::$args['category_id'] = explode(',', self::$args['category_id']);
     }
     if (self::$args['product_id'] && stripos(self::$args['product_id'], ',')) {
         self::$args['product_id'] = explode(',', self::$args['product_id']);
     }
     if (self::$args['order'] && stripos(self::$args['order'], ',')) {
         self::$args['order'] = explode(',', self::$args['order']);
     }
     self::$loop = new WPIMLoop(self::$args);
     wpinventory_set_loop(self::$loop);
     self::store_page_state(self::$args['inventory_id']);
     if (self::$args['inventory_id']) {
         return self::display_detail();
     } else {
         return self::display_listing();
     }
 }
예제 #2
0
 function widget($args, $instance)
 {
     extract($args);
     $page_id = !empty($instance['page_id']) ? $instance['page_id'] : NULL;
     echo $before_widget;
     if ($instance['title']) {
         echo $before_title . $instance['title'] . $after_title;
     }
     if (!$page_id) {
         echo '<!-- Page not set in widget.  Defaulting to current page / post -->';
         global $post;
         $page_id = $post->ID;
     }
     $number = (int) $instance['number'];
     $number = max(1, min(10, $number));
     $args = array('category_id' => $instance['category_id'], 'page_size' => $number, 'order' => 'inventory_date_added DESC');
     $custom_loop = new WPIMLoop();
     $custom_loop->set_single(TRUE);
     $custom_loop->load_items($args);
     wpinventory_set_loop($custom_loop);
     wpinventory_get_template_part('widget-latest-items-loop');
     echo $after_widget;
 }