示例#1
0
function ajaxsearchpro_deactivate_fulltext()
{
    global $wpdb;
    $fulltext = wpdreams_fulltext::getInstance();
    $indexes = array('posts' => array('asp_title', 'asp_content', 'asp_excerpt', 'asp_title_content', 'asp_title_excerpt', 'asp_content_excerpt', 'asp_title_content_excerpt'));
    $blogs = wpdreams_get_blog_list(0, 'all');
    if (is_multisite() && is_array($blogs) && count($blogs)) {
        foreach ($blogs as $k => $blog) {
            switch_to_blog($blog['blog_id']);
            $fulltext->removeIndexes($indexes);
        }
        restore_current_blog();
    } else {
        $fulltext->removeIndexes($indexes);
    }
    update_option('asp_fulltext_indexed', 0);
    print "<div class='psuccessMsg'>Indexes removed!</div>";
    die;
}
示例#2
0
 /**
  *  Checks if fulltext is available
  */
 function fulltext()
 {
     global $wpdb;
     $fulltext = wpdreamsFulltext::getInstance();
     $tables = array('posts');
     $blogs = wpdreams_get_blog_list(0, 'all');
     update_option('asp_fulltext', $fulltext->isFulltextAvailable());
     update_option('asp_fulltext_indexed', 0);
 }
 /**
  * The search function
  *
  * @return array of results
  */
 protected function do_search()
 {
     global $wpdb;
     if (isset($wpdb->base_prefix)) {
         $_prefix = $wpdb->base_prefix;
     } else {
         $_prefix = $wpdb->prefix;
     }
     $options = $this->options;
     $searchData = $this->searchData;
     $s = $this->s;
     $_s = $this->_s;
     $blogresults = array();
     if (isset($searchData['searchinblogtitles']) && $searchData['searchinblogtitles'] == 1 && is_multisite()) {
         $blog_list = wpdreams_get_blog_list(0, 'all');
         foreach ($blog_list as $bk => $blog) {
             $_det = get_blog_details($blog['blog_id']);
             $blog_list[$bk]['name'] = $_det->blogname;
             $blog_list[$bk]['siteurl'] = $_det->siteurl;
             $blog_list[$bk]['match'] = 0;
         }
         if (isset($search) && $searchData['exactonly'] != 1) {
             $_s = explode(" ", $s);
             foreach ($_s as $keyword) {
                 foreach ($blog_list as $bk => $blog) {
                     if ($blog_list[$bk]['match'] == 1) {
                         continue;
                     }
                     $pos = strpos(strtolower($blog['name']), $keyword);
                     if ($pos !== false) {
                         $blog_list[$bk]['match'] = 1;
                     }
                 }
             }
         }
         foreach ($blog_list as $bk => $blog) {
             if ($blog_list[$bk]['match'] == 1) {
                 continue;
             }
             $pos = strpos(strtolower($blog['name']), $s);
             if ($pos !== false) {
                 $blog_list[$bk]['match'] = 1;
             }
         }
         foreach ($blog_list as $bk => $blog) {
             if ($blog_list[$bk]['match'] == 1) {
                 $_blogres = new stdClass();
                 switch_to_blog($blog['blog_id']);
                 $_blogres->title = $blog['name'];
                 $_blogres->link = get_bloginfo('siteurl');
                 $_blogres->content = get_bloginfo('description');
                 $_blogres->author = "";
                 $_blogres->date = "";
                 $_blogres->content_type = "blog";
                 $blogresults[] = $_blogres;
             }
         }
         if ($searchData['blogtitleorderby'] == 'asc') {
             $blogresults = array_reverse($blogresults);
         }
         restore_current_blog();
     }
     $this->results = $blogresults;
     return $blogresults;
 }
示例#4
0
        function getType()
        {
            parent::getType();
            global $wpdb;
            $this->processData();
            $this->types = wpdreams_get_blog_list(0, 'all');
            echo "\r\n      <div class='wpdreamsBlogselect'>\r\n        <fieldset>\r\n          <legend>" . $this->label . "</legend>";
            echo '<div class="sortablecontainer"><p>Available blogs</p><ul id="sortable' . self::$_instancenumber . '" class="connectedSortable">';
            if ($this->types != null && is_array($this->types)) {
                foreach ($this->types as $k => $v) {
                    if ($this->selected == null || !in_array($v['blog_id'], $this->selected)) {
                        $_temp = get_blog_details($v['blog_id']);
                        echo '<li class="ui-state-default" bid="' . $v['blog_id'] . '">' . $_temp->blogname . '</li>';
                    }
                }
            }
            echo "</ul></div>";
            echo '<div class="sortablecontainer"><p>Drag here the blogs you want to use!</p><ul id="sortable_conn' . self::$_instancenumber . '" class="connectedSortable">';
            if ($this->selected != null && is_array($this->selected)) {
                foreach ($this->selected as $k => $v) {
                    $echo = "";
                    foreach ($this->types as $_type) {
                        if ($_type['blog_id'] == $v) {
                            $_temp = get_blog_details($v);
                            $echo = $_temp->blogname;
                            break;
                        }
                    }
                    echo '<li class="ui-state-default" bid="' . $v . '">' . $echo . '</li>';
                }
            }
            echo "</ul></div>";
            echo "\r\n         <input isparam=1 type='hidden' value='" . $this->data . "' name='" . $this->name . "'>";
            echo "\r\n         <input type='hidden' value='wpdreamsBlogselect' name='classname-" . $this->name . "'>";
            ?>
            <script>
                (function ($) {
                    $(document).ready(function () {
                        $("#sortable<?php 
            echo self::$_instancenumber;
            ?>
, #sortable_conn<?php 
            echo self::$_instancenumber;
            ?>
").sortable({
                            connectWith: ".connectedSortable"
                        }, {
                            update: function (event, ui) {
                                parent = $(ui.item).parent();
                                while (!parent.hasClass('wpdreamsBlogselect')) {
                                    parent = $(parent).parent();
                                }
                                var items = $('ul[id*=sortable_conn] li', parent);
                                var hidden = $('input[name=<?php 
            echo $this->name;
            ?>
]', parent);
                                var val = "";
                                items.each(function () {
                                    val += "|" + $(this).attr('bid');
                                });
                                val = val.substring(1);
                                hidden.val(val);
                            }
                        }).disableSelection();
                    });
                }(jQuery));
            </script>
            <?php 
            echo "\r\n        </fieldset>\r\n      </div>";
        }
示例#5
0
        function getType()
        {
            parent::getType();
            global $wpdb;
            $this->processData();
            $this->types = wpdreams_get_blog_list(0, 'all');
            echo "\r\n      <div class='wpdreamsBlogselect' id='wpdreamsBlogselect" . self::$_instancenumber . "'>\r\n        <fieldset>\r\n          <legend>" . $this->label . "</legend>";
            echo "<div style='text-aling:left; margin: 10px 38px;'><label>Use all blogs? <input type='checkbox' class='use-all-blogs' " . $this->useall . "></label></div>";
            echo "<div class='bs-cont'>";
            if ($this->useall != "") {
                echo "<div class='bs-overlay'></div>";
            } else {
                echo "<div class='bs-overlay hiddend'></div>";
            }
            echo '<div class="sortablecontainer"><p>Available blogs</p><ul id="sortable' . self::$_instancenumber . '" class="connectedSortable">';
            if ($this->types != null && is_array($this->types)) {
                foreach ($this->types as $k => $v) {
                    if ($this->selected == null || !in_array($v['blog_id'], $this->selected)) {
                        $_temp = get_blog_details($v['blog_id']);
                        echo '<li class="ui-state-default" bid="' . $v['blog_id'] . '">' . $_temp->blogname . '</li>';
                    }
                }
            }
            echo "</ul></div>";
            echo '<div class="sortablecontainer"><p>Drag here the blogs you want to use!</p><ul id="sortable_conn' . self::$_instancenumber . '" class="connectedSortable">';
            if ($this->selected != null && count($this->selected) > 0) {
                foreach ($this->selected as $k => $v) {
                    $echo = "";
                    foreach ($this->types as $_type) {
                        if ($_type['blog_id'] == $v) {
                            $_temp = get_blog_details($v);
                            $echo = $_temp->blogname;
                            break;
                        }
                    }
                    echo '<li class="ui-state-default" bid="' . $v . '">' . $echo . '</li>';
                }
            }
            echo "</ul></div><div class='clear'></div>";
            echo "</div>";
            echo "\r\n         <input isparam=1 type='hidden' value='" . $this->data . "' name='" . $this->name . "'>";
            echo "\r\n         <input type='hidden' value='wpdreamsBlogselect' name='classname-" . $this->name . "'>";
            ?>
            <script>
                (function ($) {
                    $(document).ready(function () {
	                    var selector = "#sortable<?php 
            echo self::$_instancenumber;
            ?>
, #sortable_conn<?php 
            echo self::$_instancenumber;
            ?>
";

                        $(selector).sortable({
                            connectWith: ".connectedSortable"
                        }, {
                            update: function (event, ui) {
                            }
                        }).disableSelection();

	                    $(selector).on('sortupdate', function(event, ui) {
		                    if (typeof(ui)!='undefined')
			                    parent = $(ui.item).parent();
		                    else
			                    parent = $(event.target);
		                    while (!parent.hasClass('wpdreamsBlogselect')) {
			                    parent = $(parent).parent();
		                    }
		                    var items = $('ul[id*=sortable_conn] li', parent);
		                    var hidden = $('input[name=<?php 
            echo $this->name;
            ?>
]', parent);
		                    var checkbox = $('.use-all-blogs', parent);
		                    var val = "";
		                    items.each(function () {
			                    val += "|" + $(this).attr('bid');
		                    });
		                    if (checkbox.prop('checked')) {
			                    val = val.substring(1) + "xxx1";
			                    $('.bs-overlay', parent).removeClass('hiddend');
		                    } else {
			                    val = val.substring(1);
			                    $('.bs-overlay', parent).addClass('hiddend');
		                    }
		                    hidden.val(val);
	                    });

	                    $("#wpdreamsBlogselect<?php 
            echo self::$_instancenumber;
            ?>
 input.use-all-blogs").click(function(){
		                    $(selector).trigger("sortupdate");
	                    });
                    });
                }(jQuery));
            </script>
            <?php 
            echo "\r\n        </fieldset>\r\n      </div>";
        }
示例#6
0
 function ajaxsearchpro_search($forceMulti = false, $dontGroup = false)
 {
     global $wpdb;
     global $switched;
     global $search;
     $multi_posts = array();
     // Posts/Custom Posts arranged by Multisite id
     $perf_options = get_option('asp_performance');
     $caching_options = w_boolean_def(get_option('asp_caching'), get_option('asp_caching_def'));
     if (w_isset_def($perf_options['enabled'], 1)) {
         $performance = new wpd_Performance('asp_performance_stats');
         $performance->start_measuring();
     }
     /*print "in ajaxsearchpro_search();";
       print_r(array()); return;  */
     $s = $_POST['aspp'];
     $s = apply_filters('asp_search_phrase_before_cleaning', $s);
     $s = stripcslashes($s);
     $s = trim($s);
     $s = preg_replace('/\\s+/', ' ', $s);
     $s = apply_filters('asp_search_phrase_after_cleaning', $s);
     $id = (int) $_POST['asid'];
     $stat = get_option("asp_stat");
     if (isset($wpdb->base_prefix)) {
         $_prefix = $wpdb->base_prefix;
     } else {
         $_prefix = $wpdb->prefix;
     }
     if ($stat == 1) {
         require_once ABSPATH . 'wp-admin/includes/upgrade.php';
         $in = $wpdb->query($wpdb->prepare("UPDATE " . $_prefix . "ajaxsearchpro_statistics SET num=num+1, last_date=%d WHERE (keyword='%s' AND search_id=%d)", time(), strip_tags($s), $id));
         if ($in == false) {
             $wpdb->query($wpdb->prepare("INSERT INTO " . $_prefix . "ajaxsearchpro_statistics (search_id, keyword, num, last_date) VALUES (%d, '%s', 1, %d)", $id, strip_tags($s), time()));
         }
     }
     $def_data = get_option('asp_defaults');
     $search = $wpdb->get_row("SELECT * FROM " . $_prefix . "ajaxsearchpro WHERE id=" . $id, ARRAY_A);
     $search['data'] = json_decode($search['data'], true);
     $search['data'] = array_merge($def_data, $search['data']);
     //var_dump(current_user_can("manage_options")); die();
     // See if we post the preview data through
     if (!empty($_POST['asp_preview_options']) && current_user_can("manage_options")) {
         //$search['data'] = array_merge($search['data'], unserialize(base64_decode($_POST['asp_preview_options'])));
         $search['data'] = array_merge($search['data'], unserialize(base64_decode($_POST['asp_preview_options'])));
     }
     $sd = $search['data'];
     $search['data']['image_options'] = array('image_cropping' => w_isset_def($caching_options['image_cropping'], 1), 'show_images' => $search['data']['show_images'], 'image_bg_color' => $search['data']['image_bg_color'], 'image_transparency' => $search['data']['image_transparency'], 'image_crop_location' => w_isset_def($search['data']['image_crop_location'], "c"), 'apply_content_filter' => w_isset_def($search['data']['image_apply_content_filter'], 0), 'image_width' => $search['data']['image_width'], 'image_height' => $search['data']['image_height'], 'image_source1' => $search['data']['image_source1'], 'image_source2' => $search['data']['image_source2'], 'image_source3' => $search['data']['image_source3'], 'image_source4' => $search['data']['image_source4'], 'image_source5' => $search['data']['image_source5'], 'image_default' => $search['data']['image_default'], 'image_custom_field' => $search['data']['image_custom_field']);
     if (isset($_POST['asp_get_as_array'])) {
         $search['data']['image_options']['show_images'] = 0;
     }
     // ----------------- Recalculate image width/height ---------------
     switch ($search['data']['resultstype']) {
         case "horizontal":
             /* Same width as height */
             $search['data']['image_options']['image_width'] = wpdreams_width_from_px($search['data']['hreswidth']);
             $search['data']['image_options']['image_height'] = wpdreams_width_from_px($search['data']['hreswidth']);
             break;
         case "polaroid":
             $search['data']['image_options']['image_width'] = intval($search['data']['preswidth']);
             $search['data']['image_options']['image_height'] = intval($search['data']['preswidth']);
             break;
         case "isotopic":
             $search['data']['image_options']['image_width'] = intval($search['data']['i_item_width'] * 1.5);
             $search['data']['image_options']['image_height'] = intval($search['data']['i_item_height'] * 1.5);
             break;
     }
     if (isset($search['data']['selected-imagesettings'])) {
         $search['data']['settings-imagesettings'] = $search['data']['selected-imagesettings'];
     }
     /*if (isset($search) && $search['data']['exactonly']!=1) {
         $_s = explode(" ", $s);
       }*/
     if (isset($_POST['options'])) {
         if (is_array($_POST['options'])) {
             $search['options'] = $_POST['options'];
         } else {
             parse_str($_POST['options'], $search['options']);
         }
     }
     $blogresults = array();
     $allbuddypresults = array('repliesresults' => array(), 'groupresults' => array(), 'userresults' => array(), 'activityresults' => array());
     $alltermsresults = array();
     $allpageposts = array();
     $pageposts = array();
     $repliesresults = array();
     $allcommentsresults = array();
     $commentsresults = array();
     $userresults = array();
     $attachment_results = array();
     $search['data']['selected-blogs'] = w_isset_def($search['data']['selected-blogs'], array(0 => get_current_blog_id()));
     if ($search['data']['selected-blogs'] === "all") {
         if (is_multisite()) {
             $search['data']['selected-blogs'] = wpdreams_get_blog_list(0, "all", true);
         } else {
             $search['data']['selected-blogs'] = array(0 => get_current_blog_id());
         }
     }
     if (count($search['data']['selected-blogs']) <= 0) {
         $search['data']['selected-blogs'] = array(0 => get_current_blog_id());
     }
     do_action('asp_before_search', $s);
     if (is_array($caching_options) && w_isset_def($caching_options['caching'], 0) && ASP_DEBUG != 1) {
         $filename = ASP_PATH . DIRECTORY_SEPARATOR . "cache" . DIRECTORY_SEPARATOR . md5(json_encode($search['options']) . $s . $_POST['asp_inst_id']) . ".wp";
         $textcache = new wpdreamsTextCache($filename, w_isset_def($caching_options['cachinginterval'], 3600) * 60);
         $cache_content = $textcache->getCache();
         if ($cache_content != false) {
             $cache_content = apply_filters('asp_cached_content', $cache_content);
             do_action('asp_after_search', $s, json_decode($cache_content, true));
             print "cached(" . date("F d Y H:i:s.", filemtime($filename)) . ")";
             print_r($cache_content);
             die;
         }
     }
     // True if only CPT search in the index table is active
     $search_only_it_posts = w_isset_def($search['data']['search_engine'], 'regular') != 'regular' && w_isset_def($search['data']['return_categories'], 0) == 0 && w_isset_def($search['data']['return_terms'], '') == '' && w_isset_def($search['data']['return_attachments'], 0) == 0;
     if (is_multisite() && $search_only_it_posts) {
         // Save huge amounts of server resources by not swapping all the blogs around
         if ($_POST['asid'] == "") {
             $_dposts = new wpdreams_searchDemo(array());
             $dpageposts = $_dposts->search($s);
             $allpageposts = array_merge($allpageposts, $dpageposts);
         } else {
             $search['options']['switch_on_preprocess'] = 1;
             $search['options']['dont_group'] = $dontGroup;
             $params = array('id' => $id, 'data' => $search['data'], 'options' => $search['options']);
             $_posts = new asp_searchIndexTable($params);
             $pageposts = $_posts->search($s);
             do_action('asp_after_pagepost_results', $s, $pageposts);
             $allpageposts = array_merge($allpageposts, $pageposts);
         }
     } else {
         // Regularly swap through blogs
         foreach ($search['data']['selected-blogs'] as $blog) {
             if (is_multisite()) {
                 switch_to_blog($blog);
             }
             aspDebug::start('search-blog-' . $blog);
             if ($_POST['asid'] == "") {
                 $_dposts = new wpdreams_searchDemo(array());
                 $dpageposts = $_dposts->search($s);
                 $allpageposts = array_merge($allpageposts, $dpageposts);
             } else {
                 $search['options']['dont_group'] = $dontGroup;
                 $params = array('id' => $id, 'data' => $search['data'], 'options' => $search['options']);
                 $_terms = new wpdreams_searchTerms($params);
                 $termsresults = $_terms->search($s);
                 $alltermsresults = array_merge($alltermsresults, $termsresults);
                 // For exact matches the regular engine is used
                 if (w_isset_def($search['data']['search_engine'], 'regular') == 'regular' || isset($params['options']['set_exactonly'])) {
                     $_posts = new wpdreams_searchContent($params);
                 } else {
                     $_posts = new asp_searchIndexTable($params);
                 }
                 $pageposts = $_posts->search($s);
                 //var_dump($pageposts);die();
                 $allpageposts = array_merge($allpageposts, $pageposts);
                 if ($forceMulti) {
                     foreach ($pageposts as $kk => $vv) {
                         $pageposts[$kk]->blogid = $blog;
                     }
                     $multi_posts[$blog] = $pageposts;
                 }
                 do_action('asp_after_pagepost_results', $s, $pageposts);
                 $_comments = new wpdreams_searchComments($params);
                 $commentsresults = $_comments->search($s);
                 $allcommentsresults = array_merge($allcommentsresults, $commentsresults);
                 if (w_isset_def($search['data']['return_attachments'], 0)) {
                     $_attachments = new wpdreams_searchAttachments($params);
                     $attachment_results = array_merge($attachment_results, $_attachments->search($s));
                 }
                 do_action('asp_after_attachment_results', $s, $attachment_results);
             }
         }
     }
     do_action('asp_after_comments_results', $s, $commentsresults);
     $_buddyp = new wpdreams_searchBuddyPress($params);
     $buddypresults = $_buddyp->search($s);
     // !!! returns array for each result (group, user, reply) !!!
     foreach ($buddypresults as $k => $v) {
         $allbuddypresults[$k] = array_merge($allbuddypresults[$k], $v);
     }
     do_action('asp_after_buddypress_results', $s, $buddypresults);
     if (w_isset_def($search['data']['user_search'], 0)) {
         $_users = new wpdreams_searchUsers($params);
         $userresults = $_users->search($s);
     }
     do_action('asp_after_user_results', $s, $userresults);
     aspDebug::stop('search-blog-' . $blog);
     if (is_multisite()) {
         restore_current_blog();
     }
     $_blogs = new wpdreams_searchBlogs($params);
     $blogresults = $_blogs->search($s);
     $alltermsresults = apply_filters('asp_terms_results', $alltermsresults, $id);
     $allpageposts = apply_filters('asp_pagepost_results', $allpageposts, $id);
     $allcommentsresults = apply_filters('asp_comment_results', $allcommentsresults, $id);
     $buddypresults = apply_filters('asp_buddyp_results', $buddypresults, $id);
     $blogresults = apply_filters('asp_blog_results', $blogresults, $id);
     $userresults = apply_filters('asp_user_results', $userresults, $id);
     $attachment_results = apply_filters('asp_attachment_results', $attachment_results, $id);
     /* Remove the results in polaroid mode */
     if ($search['data']['resultstype'] == 'polaroid' && $search['data']['pifnoimage'] == 'removeres') {
         foreach ($allpageposts as $_k => $_v) {
             if ($_v->image == null || $_v->image == '') {
                 unset($allpageposts[$_k]);
             }
         }
         foreach ($allcommentsresults as $_k => $_v) {
             if ($_v->image == null || $_v->image == '') {
                 unset($allcommentsresults[$_k]);
             }
         }
         foreach ($buddypresults as $_k => $_v) {
             if ($_v->image == null || $_v->image == '') {
                 unset($buddypresults[$_k]);
             }
         }
         foreach ($blogresults as $_k => $_v) {
             if ($_v->image == null || $_v->image == '') {
                 unset($blogresults[$_k]);
             }
         }
     }
     // Results as array, unordered
     $results_arr = array('terms' => $alltermsresults, 'blogs' => $blogresults, 'bp_activities' => $allbuddypresults['activityresults'], 'comments' => $allcommentsresults, 'bp_groups' => $allbuddypresults['groupresults'], 'bp_users' => $userresults, 'post_page_cpt' => $allpageposts, 'attachments' => $attachment_results);
     $results_order = w_isset_def($search['data']['results_order'], 'terms|blogs|bp_activities|comments|bp_groups|bp_users|post_page_cpt|attachments');
     if (strpos($results_order, 'attachments') === false) {
         $results_order .= "|attachments";
     }
     // These keys are in the right order
     $results_order_arr = explode('|', $results_order);
     // Grouping again, respecting ordering
     if ($search['data']['resultstype'] == 'vertical' && ($search['data']['groupby'] == 1 || $search['data']['groupby'] == 2) && !$forceMulti) {
         $results = $allpageposts;
         $results['items'] = array();
         $results['grouped'] = 1;
         // CPM
         if (count($allpageposts) > 0) {
             $i = 9000 + strpos($results_order, 'post_page_cpt');
             $results['items'][$i] = array();
             $results['items'][$i]['data'] = $allpageposts;
             $results['items'][$i]['digdeeper'] = 1;
         }
         // Term results
         if (count($alltermsresults) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($alltermsresults) . ")" : "";
             $i = 9000 + strpos($results_order, 'terms');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("Term group header", w_isset_def($search['data']['term_group_text'], 'Terms')) . $num;
             $results['items'][$i]['data'] = $alltermsresults;
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         // Blog results
         if (count($blogresults) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($blogresults) . ")" : "";
             $i = 9000 + strpos($results_order, 'blogs');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("Blog results group header", $search['data']['blogresultstext']) . $num;
             $results['items'][$i]['data'] = $blogresults;
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         // Activity results
         if (count($allbuddypresults['activityresults']) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($allbuddypresults['activityresults']) . ")" : "";
             $i = 9000 + strpos($results_order, 'bp_activities');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("BuddyPress activity group header", $search['data']['bbpressreplytext']) . $num;
             $results['items'][$i]['data'] = $allbuddypresults['activityresults'];
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         // Comments results
         if (count($allcommentsresults) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($allcommentsresults) . ")" : "";
             $i = 9000 + strpos($results_order, 'comments');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("Group by comments header", $search['data']['commentstext']) . $num;
             $results['items'][$i]['data'] = $allcommentsresults;
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         // Buddypress groups
         if (count($allbuddypresults['groupresults']) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($allbuddypresults['groupresults']) . ")" : "";
             $i = 9000 + strpos($results_order, 'bp_groups');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("BuddyPress group header", $search['data']['bbpressgroupstext']) . $num;
             $results['items'][$i]['data'] = $allbuddypresults['groupresults'];
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         // Users
         if (count($userresults) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($userresults) . ")" : "";
             $i = 9000 + strpos($results_order, 'bp_users');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("User group header", $search['data']['bbpressuserstext']) . $num;
             $results['items'][$i]['data'] = $userresults;
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         // Attachments
         if (count($attachment_results) > 0) {
             $num = $search['data']['showpostnumber'] == 1 ? " (" . count($attachment_results) . ")" : "";
             $i = 9000 + strpos($results_order, 'attachments');
             $results['items'][$i] = array();
             $results['items'][$i]['name'] = asp_icl_t("Attachment group header", w_isset_def($search['data']['attachment_group_text'], 'Attachments')) . $num;
             $results['items'][$i]['data'] = $attachment_results;
             $results['items'][$i]['digdeeper'] = 0;
             $results['grouped'] = 1;
         }
         if (isset($results['items']) && count($results['items']) > 0) {
             ksort($results['items']);
         } else {
             $results = array();
         }
     } else {
         $results = array();
         foreach ($results_order_arr as $rk => $rv) {
             $results = array_merge($results, $results_arr[$rv]);
         }
     }
     if (count($results) <= 0 && $search['data']['keywordsuggestions']) {
         $keywords = array();
         $types = array();
         if ($sd['searchinposts'] == 1) {
             $types[] = "post";
         }
         if ($sd['searchinpages'] == 1) {
             $types[] = "page";
         }
         if (isset($sd['selected-customtypes']) && count($sd['selected-customtypes']) > 0) {
             $types = array_merge($types, $sd['selected-customtypes']);
         }
         foreach (w_isset_def($search['data']['selected-keyword_suggestion_source'], array('google')) as $source) {
             $remaining_count = w_isset_def($sd['keyword_suggestion_count'], 10) - count($keywords);
             if ($remaining_count <= 0) {
                 break;
             }
             $taxonomy = "";
             // Check if this is a taxonomy
             if (strpos($source, 'xtax_') !== false) {
                 $taxonomy = str_replace('xtax_', '', $source);
                 $source = "terms";
             }
             //$class_name = "wpd_" . $source . "KeywordSuggest";
             $t = new wpd_keywordSuggest($source, array('maxCount' => $remaining_count, 'maxCharsPerWord' => w_isset_def($sd['keyword_suggestion_length'], 50), 'postTypes' => $types, 'lang' => $sd['keywordsuggestionslang'], 'overrideUrl' => '', 'taxonomy' => $taxonomy));
             $keywords = array_merge($keywords, $t->getKeywords($s));
         }
         if ($keywords != false) {
             $results['keywords'] = $keywords;
             $results['nores'] = 1;
             $results = apply_filters('asp_only_keyword_results', $results);
         }
     } else {
         if (count($results > 0)) {
             $results = apply_filters('asp_only_non_keyword_results', $results);
         }
     }
     $results = apply_filters('asp_results', $results, $id);
     do_action('asp_after_search', $s, $results, $id);
     //
     if (w_isset_def($perf_options['enabled'], 1)) {
         $performance->stop_measuring();
         //$performance->dump_data();
     }
     // If preview, we need the details
     if (isset($_POST['action']) && $_POST['action'] == "ajaxsearchpro_preview") {
         print "wassup!";
         require_once ASP_PATH . "backend" . DIRECTORY_SEPARATOR . "settings" . DIRECTORY_SEPARATOR . "types.inc.php";
         parse_str($_POST['formdata'], $preview_params);
         $preview_params = wpdreams_parse_params($preview_params);
         $preview_params = wp_parse_args($preview_params, $search['data']);
         $html_results = asp_generate_html_results($results, $preview_params, $search['data']['resultstype']);
     } else {
         $html_results = asp_generate_html_results($results, $search['data'], $search['data']['resultstype']);
     }
     if (is_array($caching_options) && w_isset_def($caching_options['caching'], 0) && ASP_DEBUG != 1) {
         $cache_content = $textcache->setCache('!!ASPSTART!!' . $html_results . "!!ASPEND!!");
     }
     // Override from hooks.php
     if (isset($_POST['asp_get_as_array'])) {
         if ($forceMulti) {
             $results['_multi'] = $results;
         }
         return $results;
     }
     /* Clear output buffer, possible warnings */
     print "!!ASPSTART!!";
     //var_dump($results);die();
     //print_r(json_encode($results));
     print_r($html_results);
     print "!!ASPEND!!";
     die;
 }
示例#7
0
 function fulltext()
 {
     global $wpdb;
     $fulltext = wpdreams_fulltext::getInstance();
     $tables = array('posts');
     $blogs = wpdreams_get_blog_list(0, 'all');
     update_option('asp_fulltext', 0);
     update_option('asp_fulltext_indexed', 0);
     if (is_multisite() && is_array($blogs) && count($blogs)) {
         foreach ($blogs as $k => $blog) {
             switch_to_blog($blog['blog_id']);
             if ($fulltext->check($tables)) {
                 update_option('asp_fulltext', 1);
             }
         }
         restore_current_blog();
     } else {
         if ($fulltext->check($tables)) {
             update_option('asp_fulltext', 1);
         }
     }
 }