示例#1
0
 function sf_directory()
 {
     $search_term = "";
     $category_term = "";
     $location_term = "";
     $excerpt_length = "";
     $directory_itens = array();
     $count = 0;
     if (!empty($_REQUEST['search_term'])) {
         $search_term = $_REQUEST['search_term'];
     }
     if (!empty($_REQUEST['item_excerpt'])) {
         $excerpt_length = $_REQUEST['item_excerpt'];
     }
     $tax_query = array();
     $tax_query_category = array();
     $tax_query_location = array();
     if (isset($_REQUEST['location_term']) && $_REQUEST['location_term'] != '' && $_REQUEST['location_term'] != 'All') {
         $location_term = $_REQUEST['location_term'];
         $tax_query_location = array('taxonomy' => 'directory-location', 'field' => 'slug', 'terms' => array($location_term));
         array_push($tax_query, $tax_query_location);
     }
     if (isset($_REQUEST['category_term']) && $_REQUEST['category_term'] != '' && $_REQUEST['category_term'] != 'All') {
         $category_term_array = array();
         $category_term_array = explode(",", $_REQUEST['category_term']);
         $tax_query_category = array('taxonomy' => 'directory-category', 'field' => 'slug', 'terms' => $category_term_array);
         array_push($tax_query, $tax_query_category);
     }
     $search_query_args = array('s' => $search_term, 'post_type' => 'directory', 'post_status' => 'publish', 'posts_per_page' => -1, 'suppress_filters' => false, 'tax_query' => $tax_query, 'meta_query' => array('relation' => 'AND', array('key' => 'sf_directory_address', 'value' => '', 'compare' => '!=')));
     $search_query_args = http_build_query($search_query_args);
     $search_results = get_posts($search_query_args);
     foreach ($search_results as $result) {
         $directory_item = array();
         $directory_item["pin_title"] = $result->post_title;
         $directory_item["pin_content"] = $result->post_content;
         //Get the excerpt
         $content = $result->post_content;
         $words = explode(' ', $content, $excerpt_length + 1);
         $categories = wp_get_post_terms($result->ID, "directory-category");
         $locations = wp_get_post_terms($result->ID, "directory-location");
         $category_list = $location_list = "";
         $c = $l = 0;
         if ($categories) {
             foreach ($categories as $category) {
                 if ($c == 0) {
                     $category_list .= $category->name;
                 } else {
                     $category_list .= ', ' . $category->name;
                 }
             }
         }
         if ($locations) {
             foreach ($locations as $location) {
                 if ($l == 0) {
                     $location_list .= $location->name;
                 } else {
                     $location_list .= ', ' . $location->name;
                 }
             }
         }
         if (count($words) > $excerpt_length) {
             array_pop($words);
             array_push($words, '...');
             $directory_item["pin_short_content"] = implode(' ', $words);
         }
         $pin_img_url = wp_get_attachment_image_src(sf_get_post_meta($result->ID, 'sf_directory_map_pin', true), 'full');
         $img_src = wp_get_attachment_image_src(get_post_thumbnail_id($result->ID), 'thumb-image');
         $directory_item["pin_logo_url"] = $pin_img_url[0];
         $directory_item["pin_thumbnail"] = $img_src[0];
         $directory_item["pin_address"] = sf_get_post_meta($result->ID, 'sf_directory_address', true);
         $directory_item["pin_link"] = esc_url(sf_get_post_meta($result->ID, 'sf_directory_pin_link', true));
         $directory_item["pin_button_text"] = sf_get_post_meta($result->ID, 'sf_directory_pin_button_text', true);
         $directory_item["pin_lat"] = sf_get_post_meta($result->ID, 'sf_directory_lat_coord', true);
         $directory_item["pin_lng"] = sf_get_post_meta($result->ID, 'sf_directory_lng_coord', true);
         $directory_item["categories"] = $category_list;
         $directory_item["locations"] = $location_list;
         $directory_itens['items'][$count] = $directory_item;
         $count++;
     }
     $directory_itens['map_1st_text'] = __("What are you looking for?", "swiftframework");
     $directory_itens['results_text_1'] = __("Found", "swiftframework");
     $directory_itens['results_text_2'] = __("result", "swiftframework");
     $directory_itens['results_text_2plural'] = __("results", "swiftframework");
     $directory_itens['search_text'] = __("Search", "swiftframework");
     $directory_itens_result = new WP_Query($search_query_args);
     //If we get no results, then return error message
     if ($count == 0) {
         $directory_itens['errormsg'] = __("No results found, please try again.", "swiftframework");
     }
     $directory_itens['results'] = $count;
     $directory_itens['locations'] = sf_directory_location_filter();
     $directory_itens['categories'] = sf_directory_category_filter($category_term);
     echo json_encode($directory_itens);
     die;
 }
示例#2
0
 protected function content($atts, $content = null)
 {
     global $wp, $wp_rewrite;
     $title = $address = $img_file_url = $pin_image = $size = $zoom = $directory_category = $directory_map_filter = $directory_map_results = $directory_map_filter_pos = $color = $saturation = $type = $el_position = $width = $pagination = $item_count = $excerpt_length = $el_class = '';
     extract(shortcode_atts(array('title' => '', 'address' => '', 'directory_category' => '', 'order' => '', 'directory_map_filter' => '', 'directory_map_filter_pos' => '', 'directory_map_results' => '', 'excerpt_length' => '', 'item_count' => '-1', 'pagination' => 'no', 'size' => 200, 'zoom' => 14, 'color' => '', 'saturation' => '', 'type' => 'm', 'pin_image' => '', 'fullscreen' => 'no', 'el_position' => '', 'width' => '1/1', 'el_class' => ''), $atts));
     $output = '';
     $current_url = home_url(add_query_arg(array(), $wp->request));
     $el_class = $this->getExtraClass($el_class);
     $width = spb_translateColumnWidthToSpan($width);
     $ajax_url = admin_url('admin-ajax.php');
     $size = str_replace(array('px', ' '), array('', ''), $size);
     if ($fullscreen == "yes" && $width == "col-sm-12") {
         $fullscreen = true;
     } else {
         $fullscreen = false;
     }
     if ($pin_image != "") {
         $img_url = wp_get_attachment_image_src($pin_image, 'full');
         if (is_array($img_url)) {
             $img_file_url = $img_url[0];
         }
     }
     if ($fullscreen) {
         $output .= "\n\t" . '<div class="spb_gmaps_widget fullscreen-map spb_content_element ' . $width . $el_class . '">';
     } else {
         $output .= "\n\t" . '<div class="spb_gmaps_widget spb_content_element ' . $width . $el_class . '">';
     }
     $output .= "\n\t\t" . '<div class="spb-asset-content">';
     $output .= $title != '' ? "\n\t\t\t" . $this->spb_title($title, '', $fullscreen) : '';
     if ($directory_map_filter_pos == "above" && $directory_map_filter == 'yes') {
         $output .= "\n\t" . '<div class="spb_directory_filter_above container">';
         $dir_placeholder = __("What are you looking for?", 'swift-framework-plugin');
         $category_term = "";
         //Search Text
         if (isset($_POST['dir-search-value'])) {
             $dir_search_val = $_POST['dir-search-value'];
         } else {
             $dir_search_val = "";
         }
         //Location Option
         if (isset($_POST['dir-location'])) {
             $dir_location_val = $_POST['dir-location'];
         } else {
             $dir_location_val = "";
         }
         //Directory Category
         if (isset($_POST['dir-category-id'])) {
             //$dir_location_val = $_POST['dir-category-id'];
             $directory_category = $_POST['dir-category-id'];
         } else {
             $dir_location_val = "";
         }
         //Map Filter
         $output .= '<form action="" method="post" class="directory-search-form" data-url="' . $current_url . '" data-page-base="' . $wp_rewrite->pagination_base . '">';
         $output .= '<div class="filter-search-container">';
         $output .= '<input type="text" name="dir-search-value" id="dir-search-value" value="' . $dir_search_val . '" placeholder="' . $dir_placeholder . '"></div>';
         $output .= '<div class="directory-filter">' . sf_directory_location_filter() . '</div>';
         $output .= '<div class="directory-filter"> ' . sf_directory_category_filter($category_term, $directory_category) . '</div>';
         $output .= '<div class="directory-search-container"><a class="btn read-more-button directorySearch" name="directory-search-button" id="directory-search-button">' . __("Search", 'swift-framework-plugin') . '</a></div>';
         $output .= '</form>';
         $output .= '</div>' . $this->endBlockComment($width);
     }
     $output .= '<div class="spb_map_wrapper">';
     $output .= '<div class="map-directory-canvas" style="width:100%;height:' . $size . 'px;" data-address="' . $address . '" data-zoom="' . $zoom . '" data-maptype="' . $type . '" data-ajaxurl="' . $ajax_url . '" data-excerpt="' . $excerpt_length . '" data-pagination="' . $pagination . '" data-mapcolor="' . $color . '" data-directory-category="' . $directory_category . '" data-directory-map-filter="' . $directory_map_filter . '" data-directory-map-filter-pos="' . $directory_map_filter_pos . '" data-directory-map-results="' . $directory_map_results . '" data-mapsaturation="' . $saturation . '" data-pinimage="' . $img_file_url . '"></div></div>';
     if ($directory_map_filter_pos == "below" && $directory_map_filter == 'yes') {
         $output .= "\n\t" . '<div class="directory-filter-wrap container"><div class="spb_directory_filter_below container">';
         $dir_placeholder = __("What are you looking for?", 'swift-framework-plugin');
         $category_term = "";
         //Search Text
         if (isset($_POST['dir-search-value'])) {
             $dir_search_val = $_POST['dir-search-value'];
         } else {
             $dir_search_val = "";
         }
         //Location Option
         if (isset($_POST['dir-location'])) {
             $dir_location_val = $_POST['dir-location'];
         } else {
             $dir_location_val = "";
         }
         //Map Filter
         $output .= '<form action="" method="post" class="directory-search-form" data-url="' . $current_url . '" data-page-base="' . $wp_rewrite->pagination_base . '">';
         $output .= '<div class="filter-search-container">';
         $output .= '<input type="text" name="dir-search-value" id="dir-search-value" value="' . $dir_search_val . '" placeholder="' . $dir_placeholder . '"></div>';
         $output .= '<div class="directory-filter">' . sf_directory_location_filter() . '</div>';
         $output .= '<div class="directory-filter"> ' . sf_directory_category_filter($category_term, $directory_category) . '</div>';
         $output .= '<div class="directory-search-container"><a class="btn read-more-button directorySearch" name="directory-search-button" id="directory-search-button">' . __("Search", 'swift-framework-plugin') . '</a></div>';
         $output .= '</form>';
         $output .= '</div></div>' . $this->endBlockComment($width);
     }
     if ($fullscreen) {
         $output .= "\n\t\t" . '<div class="directory-results container">';
     } else {
         $output .= "\n\t\t" . '<div class="directory-results">';
     }
     if ($directory_map_results != 'map') {
         // ITEMS OUTPUT
         $items = sf_directory_items($excerpt_length, $pagination, $item_count, $directory_category, $order);
         $output .= $items;
     }
     $output .= "\n\t\t" . '</div>';
     $output .= "\n\t" . '</div></div>';
     if ($fullscreen && $width == "col-sm-12") {
         $output = $this->startRow($el_position, '', true) . $output . $this->endRow($el_position, '', true);
     } else {
         $output = $this->startRow($el_position) . $output . $this->endRow($el_position);
     }
     global $sf_include_maps;
     $sf_include_maps = true;
     return $output;
 }