Ejemplo n.º 1
0
/**
 * @since 3.4
 */
function awpcp_display_listings($query, $context, $options)
{
    $options = wp_parse_args($options, array('show_intro_message' => false, 'show_menu_items' => false, 'show_category_selector' => false, 'show_pagination' => false, 'before_content' => '', 'before_pagination' => '', 'before_list' => '', 'after_pagination' => '', 'after_content' => ''));
    if (has_action('awpcp_browse_ads_template_action') || has_filter('awpcp_browse_ads_template_filter')) {
        do_action('awpcp_browse_ads_template_action');
        return apply_filters('awpcp_browse_ads_template_filter');
    }
    $results_per_page = absint(awpcp_request_param('results', get_awpcp_option('adresultsperpage', 10)));
    $results_offset = absint(awpcp_request_param('offset', 0));
    if (empty($query['limit']) && $results_per_page) {
        $query['limit'] = $results_per_page;
    }
    if (empty($query['offset']) && $query['limit']) {
        $query['offset'] = $results_offset;
    }
    $listings_collection = awpcp_listings_collection();
    $listings = $listings_collection->find_enabled_listings_with_query($query);
    $listings_count = $listings_collection->count_enabled_listings_with_query($query);
    $before_content = apply_filters('awpcp-content-before-listings-page', $options['before_content'], $context);
    $before_pagination = array();
    if ($options['show_category_selector']) {
        $before_pagination[15]['category-selector'] = awpcp_render_category_selector(array('required' => false));
    }
    if (is_array($options['before_pagination'])) {
        $before_pagination = awpcp_array_merge_recursive($before_pagination, $options['before_pagination']);
    } else {
        $before_pagination[20]['user-content'] = $options['before_pagination'];
    }
    $before_pagination = apply_filters('awpcp-listings-before-content', $before_pagination, $context);
    ksort($before_pagination);
    $before_pagination = awpcp_flatten_array($before_pagination);
    $before_list = apply_filters('awpcp-display-ads-before-list', $options['before_list'], $context);
    if ($listings_count > 0) {
        $pagination_options = array('results' => $results_per_page, 'offset' => $results_offset, 'total' => $listings_count);
        $pagination = $options['show_pagination'] ? awpcp_pagination($pagination_options, awpcp_current_url()) : '';
        $items = awpcp_render_listings_items($listings, $context);
    } else {
        $pagination = '';
        $items = array();
    }
    $after_pagination = array('user-content' => $options['after_pagination']);
    $after_pagination = apply_filters('awpcp-listings-after-content', $after_pagination, $context);
    $after_content = apply_filters('awpcp-content-after-listings-page', $options['after_content'], $context);
    ob_start();
    include AWPCP_DIR . '/templates/frontend/listings.tpl.php';
    $content = ob_get_contents();
    ob_end_clean();
    return $content;
}
 public function __construct($categories = null, $listings = null, $walker = null, $request = null)
 {
     parent::__construct(AWPCP_CAS_LISTINGS_CATEGORIES_MODULE, __('Categories (AWPCP)', 'AWPCP'));
     if (is_null($categories)) {
         $this->categories = awpcp_categories_collection();
     } else {
         $this->categories = $categories;
     }
     if (is_null($listings)) {
         $this->listings = awpcp_listings_collection();
     } else {
         $this->listings = $listings;
     }
     if (is_null($walker)) {
         $this->walker = awpcp_content_aware_sidebars_categories_walker($this->id);
     } else {
         $this->walker = $walker;
     }
     if (is_null($request)) {
         $this->request = awpcp_request();
     } else {
         $this->request = $request;
     }
 }
Ejemplo n.º 3
0
 private function load_items_from_query($query, $filters)
 {
     $listings = awpcp_listings_collection();
     if (isset($filters['show_expired']) && $filters['show_expired']) {
         $this->total_items = $listings->count_expired_listings_with_query($query);
         $this->items = $listings->find_expired_listings_with_query($query);
     } else {
         if (isset($filters['show_awaiting_approval']) && $filters['show_awaiting_approval']) {
             $this->total_items = $listings->count_listings_awaiting_approval_with_query($query);
             $this->items = $listings->find_listings_awaiting_approval_with_query($query);
         } else {
             if ($filters['show_non_verified']) {
                 $this->total_items = $listings->count_successfully_paid_listings_with_query($query);
                 $this->items = $listings->find_successfully_paid_listings_with_query($query);
             } else {
                 if ($filters['show_unpaid']) {
                     $this->total_items = $listings->count_listings_with_query($query);
                     $this->items = $listings->find_listings_with_query($query);
                 } else {
                     $this->total_items = $listings->count_valid_listings_with_query($query);
                     $this->items = $listings->find_valid_listings_with_query($query);
                 }
             }
         }
     }
     $this->set_pagination_args(array('total_items' => $this->total_items, 'per_page' => $this->items_per_page));
 }
function awpcp_update_file_status_ajax_handler()
{
    return new AWPCP_UpdateFileStatusAjaxHandler(awpcp_media_api(), awpcp_files_collection(), awpcp_listings_collection(), awpcp_request(), awpcp_ajax_response());
}
function awpcp_send_listing_to_facebook_helper()
{
    return new AWPCP_SendListingToFacebookHelper(AWPCP_Facebook::instance(), awpcp_send_to_facebook_helper(), awpcp_listings_collection(), awpcp_listings_metadata(), awpcp()->settings);
}
function awpcp_renew_listings_admin_page()
{
    return new AWPCP_RenewListingsAdminPage(awpcp_listings_collection(), awpcp_payments_api(), awpcp_request());
}
Ejemplo n.º 7
0
 public function random_listings_shortcode($attrs)
 {
     wp_enqueue_script('awpcp');
     $attrs = shortcode_atts(array('menu' => true, 'limit' => 10), $attrs);
     $show_menu = awpcp_parse_bool($attrs['menu']);
     $limit = absint($attrs['limit']);
     $random_query = array('context' => 'public-listings', 'fields' => 'ad_id', 'raw' => true);
     $random_listings = awpcp_listings_collection()->find_enabled_listings_with_query($random_query);
     $random_listings_ids = awpcp_get_properties($random_listings, 'ad_id');
     shuffle($random_listings_ids);
     $query = array('id' => array_slice($random_listings_ids, 0, $limit), 'limit' => $limit);
     $options = array('show_menu_items' => $show_menu);
     return awpcp_display_listings($query, 'random-listings-shortcode', $options);
 }
Ejemplo n.º 8
0
 private function handle_custom_listing_actions($action)
 {
     try {
         $listing = awpcp_listings_collection()->get($this->id);
     } catch (AWPCP_Exception $e) {
         awpcp_flash(__("The specified listing doesn't exists.", 'AWPCP'), 'error');
         return $this->index();
     }
     $output = apply_filters("awpcp-custom-admin-listings-table-action-{$action}", null, $listing);
     if (is_null($output)) {
         awpcp_flash("Unknown action: {$action}", 'error');
         return $this->index();
     } else {
         if (is_array($output) && isset($output['redirect'])) {
             return $this->render_page($output['redirect']);
         } else {
             return $output;
         }
     }
 }
function awpcp_listing_payment_transaction_handler()
{
    return new AWPCP_ListingPaymentTransactionHandler(awpcp_listings_collection(), awpcp_listings_api());
}
function awpcp_upload_generated_thumbnail_ajax_handler()
{
    return new AWPCP_UploadGeneratedThumbnailAjaxHandler(awpcp_image_resizer(), awpcp_media_api(), awpcp_listings_collection(), awpcp()->settings, awpcp_request(), awpcp_ajax_response());
}
function awpcp_upload_listing_media_ajax_handler()
{
    return new AWPCP_UploadListingMediaAjaxHandler(awpcp_listings_collection(), awpcp_file_uploader(), awpcp_new_media_manager(), awpcp_request(), awpcp_ajax_response());
}
Ejemplo n.º 12
0
/**
 * @since 3.4
 */
function awpcp_get_browse_category_url_from_id($category_id)
{
    try {
        $category = awpcp_listings_collection()->get($category_id);
        $category_url = url_browsecategory($category);
    } catch (AWPCP_Exception $ex) {
        $category_url = '';
    }
    return $category_url;
}
function awpcp_send_listing_to_facebook_admin_page()
{
    return new AWPCP_SendListingToFacebookAdminPage(awpcp_listings_collection(), AWPCP_Facebook::instance(), awpcp_send_to_facebook_helper(), awpcp_request());
}
Ejemplo n.º 14
0
 public function widget($args, $instance)
 {
     extract($args);
     $title = apply_filters('widget_title', $instance['title']);
     echo $before_widget;
     // do not show empty titles
     echo !empty($title) ? $before_title . $title . $after_title : '';
     echo '<ul class="awpcp-listings-widget-items-list">';
     $items = awpcp_listings_collection()->find_enabled_listings_with_query($this->query($instance));
     echo $this->render($items, $instance);
     echo '</ul>';
     echo $after_widget;
 }