/**
  * Build facets UI
  *
  * @param array $facets
  * @param $localization_options array
  *
  * @return string
  */
 public static function Build($facets, $localization_options)
 {
     $html = '';
     if (!empty($facets)) {
         $facet_element = OptionLocalization::get_term($localization_options, 'facets_element');
         $facet_title = OptionLocalization::get_term($localization_options, 'facets_title');
         foreach ($facets as $facet) {
             $html .= "<div class='wpsolr_facet_title'>" . sprintf($facet_title, $facet['name']) . "</div>";
             self::displayFacetHierarchy($facet_element, $html, $facet, !empty($facet['items']) ? $facet['items'] : array());
         }
         $is_facet_selected = false;
         $html = sprintf("<div><label class='wdm_label'>%s</label>\n                                    <input type='hidden' name='sel_fac_field' id='sel_fac_field' data-wpsolr-facets-selected=''>\n                                    <div class='wdm_ul' id='wpsolr_section_facets'><div class='select_opt %s' id='wpsolr_remove_facets'>%s</div>", OptionLocalization::get_term($localization_options, 'facets_header'), self::WPSOLR_FACET_CHECKBOX_CLASS . (!$is_facet_selected ? ' checked' : ''), OptionLocalization::get_term($localization_options, 'facets_element_all_results')) . $html;
         $html .= '</div></div>';
     }
     return $html;
 }
 /**
  * Build facets UI
  *
  * @param array $facets
  * @param $localization_options array
  *
  * @return string
  */
 public static function Build($facets, $localization_options)
 {
     $html = '';
     if (!empty($facets)) {
         $wpsolr_facet_checkbox_class = 'wpsolr_facet_checkbox';
         $facet_element = OptionLocalization::get_term($localization_options, 'facets_element');
         $facet_title = OptionLocalization::get_term($localization_options, 'facets_title');
         $is_facet_selected = false;
         foreach ($facets as $facet) {
             $html .= "<lh >" . sprintf($facet_title, $facet['name']) . "</lh><br>";
             $facet_id = $facet['id'];
             foreach ($facet['items'] as $item) {
                 $item_name = $item['name'];
                 $item_display_name = $item['name'];
                 $item_count = $item['count'];
                 $item_selected = isset($item['selected']) ? $item['selected'] : false;
                 if (strcasecmp($facet_id, 'type') == null) {
                     //special case type here .. as we can use the post type name for a nicer output
                     $post_type_object = get_post_type_object($item_name);
                     if ($post_type_object != null && $post_type_object->labels != null && $post_type_object->labels->singular_name != null) {
                         $item_display_name = $post_type_object->labels->singular_name;
                     }
                 }
                 // Check if one facet item is selected (once only).
                 if ($item_selected && !$is_facet_selected) {
                     $is_facet_selected = true;
                 }
                 $facet_class = $wpsolr_facet_checkbox_class . ($item_selected ? ' checked' : '');
                 $html .= "<div class='select_opt {$facet_class}' id='{$facet_id}:{$item_name}'>" . sprintf($facet_element, $item_display_name, $item_count) . "</div>";
             }
         }
         $html = sprintf("<div><label class='wdm_label'>%s</label>\n                                    <input type='hidden' name='sel_fac_field' id='sel_fac_field' data-wpsolr-facets-selected=''>\n                                    <div class='wdm_ul' id='wpsolr_section_facets'><div class='select_opt %s' id='wpsolr_remove_facets'>%s</div>", OptionLocalization::get_term($localization_options, 'facets_header'), $wpsolr_facet_checkbox_class . (!$is_facet_selected ? ' checked' : ''), OptionLocalization::get_term($localization_options, 'facets_element_all_results')) . $html;
         $html .= '</div></div>';
     }
     return $html;
 }
function fun_search_indexed_data()
{
    $ad_url = admin_url();
    // Retrieve search form page url
    $get_page_info = WPSolrSearchSolrClient::get_search_page();
    $url = get_permalink($get_page_info->ID);
    // Filter the search page url. Used for multi-language search forms.
    $url = apply_filters(WpSolrFilters::WPSOLR_FILTER_SEARCH_PAGE_URL, $url, $get_page_info->ID);
    // Load localization options
    $localization_options = OptionLocalization::get_options();
    $wdm_typehead_request_handler = !empty($_GET['nofacet']) ? 'wdm_return_solr_rows' : 'wdm_return_facet_solr_rows';
    echo "<div class='cls_search' style='width:100%'> <form action='{$url}' method='get'  class='search-frm' >";
    echo '<input type="hidden" value="' . $wdm_typehead_request_handler . '" id="path_to_fold">';
    echo '<input type="hidden" value="' . $ad_url . '" id="path_to_admin">';
    echo '<input type="hidden" value="' . WPSOLR_Global::getQuery()->get_wpsolr_query() . '" id="search_opt">';
    $ajax_nonce = wp_create_nonce("nonce_for_autocomplete");
    echo $form = '
        <div class="ui-widget">
	<input type="hidden"  id="ajax_nonce" value="' . $ajax_nonce . '">
        <input type="text" placeholder="' . OptionLocalization::get_term($localization_options, 'search_form_edit_placeholder') . '" value="' . esc_attr(WPSOLR_Global::getQuery()->get_wpsolr_query()) . '" name="search" id="search_que" class="' . WPSOLR_Option::OPTION_SEARCH_SUGGEST_CLASS_DEFAULT . ' sfl2" autocomplete="off"/>
	<input type="submit" value="' . OptionLocalization::get_term($localization_options, 'search_form_button_label') . '" id="searchsubmit" style="position:relative;width:auto">
	<input type="hidden" value="' . WPSOLR_Global::getOption()->get_search_after_autocomplete_block_submit() . '" id="is_after_autocomplete_block_submit">
	<input type="hidden" value="' . WPSOLR_Global::getQuery()->get_wpsolr_paged() . '" id="paginate">
<div style="clear:both"></div>
        </div>
        </form>';
    echo '</div>';
    echo "<div class='cls_results'>";
    if (is_page(WPSolrSearchSolrClient::_SEARCH_PAGE_SLUG)) {
        try {
            try {
                $final_result = WPSOLR_Global::getSolrClient()->display_results(WPSOLR_Global::getQuery());
            } catch (Exception $e) {
                $message = $e->getMessage();
                echo "<span class='infor'>{$message}</span>";
                die;
            }
            if ($final_result[2] == 0) {
                echo "<span class='infor'>" . sprintf(OptionLocalization::get_term($localization_options, 'results_header_no_results_found'), WPSOLR_Global::getQuery()->get_wpsolr_query()) . "</span>";
            } else {
                echo '<div class="wdm_resultContainer">
                    <div class="wdm_list">';
                // Display the sort list
                $selected_sort_values = WPSOLR_Global::getOption()->get_sortby_items_as_array();
                if (isset($selected_sort_values) && $selected_sort_values != '') {
                    $term = OptionLocalization::get_term($localization_options, 'sort_header');
                    $sort_select = "<label class='wdm_label'>{$term}</label><select class='select_field'>";
                    // Add options
                    $sort_options = WPSolrSearchSolrClient::get_sort_options();
                    foreach ($selected_sort_values as $sort_code) {
                        $sort_label = OptionLocalization::get_term($localization_options, $sort_code);
                        $selected = $sort_code === WPSOLR_Global::getQuery()->get_wpsolr_sort() ? 'selected' : '';
                        $sort_select .= "<option value='{$sort_code}' {$selected}>{$sort_label}</option>";
                    }
                    $sort_select .= "</select>";
                    echo '<div>' . $sort_select . '</div>';
                }
                // Display facets UI
                echo '<div id="res_facets">' . WPSOLR_UI_Facets::Build(WPSOLR_Data_Facets::get_data(WPSOLR_Global::getQuery()->get_filter_query_fields_group_by_name(), WPSOLR_Global::getOption()->get_facets_to_display(), $final_result[1]), $localization_options) . '</div>';
                echo '</div>
                    <div class="wdm_results">';
                if ($final_result[0] != '0') {
                    echo $final_result[0];
                }
                $ui_result_rows = $final_result[3];
                if (WPSOLR_Global::getOption()->get_search_is_display_results_info() && $ui_result_rows != 0) {
                    echo '<div class="res_info">' . $final_result[4] . '</div>';
                }
                if ($ui_result_rows != 0) {
                    $img = plugins_url('images/gif-load.gif', __FILE__);
                    echo '<div class="loading_res"><img src="' . $img . '"></div>';
                    echo "<div class='results-by-facets'>";
                    foreach ($ui_result_rows as $resarr) {
                        echo $resarr;
                    }
                    echo "</div>";
                    echo "<div class='paginate_div'>";
                    $total = $final_result[2];
                    $number_of_res = WPSOLR_Global::getOption()->get_search_max_nb_results_by_page();
                    if ($total > $number_of_res) {
                        $pages = ceil($total / $number_of_res);
                        echo '<ul id="pagination-flickr" class="wdm_ul">';
                        for ($k = 1; $k <= $pages; $k++) {
                            echo "<li ><a class='paginate' href='javascript:void(0)' id='{$k}'>{$k}</a></li>";
                        }
                    }
                    echo '</ul></div>';
                }
                echo '</div>';
                echo '</div><div style="clear:both;"></div>';
            }
        } catch (Exception $e) {
            echo sprintf('The search could not be performed. An error occured while trying to connect to the Apache Solr server. <br/><br/>%s<br/>', $e->getMessage());
        }
    }
    echo '</div>';
}
</h4></div>

					<?php 
    foreach (OptionLocalization::get_section_terms($section) as $term_code => $term_content) {
        ?>

						<div class='wdm_row'>
							<div class='col_left'>
								<?php 
        echo $term_content[0];
        ?>
							</div>
							<div class='col_right'>

								<?php 
        $term_localized = OptionLocalization::get_term($options, $term_code);
        echo "<textarea id='message_user_without_capabilities_shown_no_results' name='wdm_solr_localization_data[terms][{$term_code}]'\n\t\t\t\t\t\t          rows='4' cols='100'>{$term_localized}</textarea >";
        ?>

							</div>
						</div>

						<?php 
    }
    ?>
				</div>
				<div style="clear:both"></div>
				<?php 
}
?>
function my_enqueue()
{
    if (!WPSOLR_Global::getOption()->get_search_is_prevent_loading_front_end_css()) {
        wp_enqueue_style('solr_auto_css', plugins_url('css/bootstrap.min.css', __FILE__));
        wp_enqueue_style('solr_frontend', plugins_url('css/style.css', __FILE__));
    }
    wp_enqueue_script('solr_auto_js1', plugins_url('js/bootstrap-typeahead.js', __FILE__), array('jquery'), false, true);
    // Url utilities to manipulate the url parameters
    wp_enqueue_script('urljs', plugins_url('bower_components/jsurl/url.min.js', __FILE__), array('jquery'), false, true);
    wp_enqueue_script('autocomplete', plugins_url('js/autocomplete_solr.js', __FILE__), array('solr_auto_js1', 'urljs'), false, true);
    wp_localize_script('autocomplete', 'wp_localize_script_autocomplete', array('ajax_url' => admin_url('admin-ajax.php'), 'is_show_url_parameters' => WPSOLR_Global::getOption()->get_search_is_ajax_with_url_parameters(), 'is_url_redirect' => WPSOLR_Global::getOption()->get_search_is_use_current_theme_search_template(), 'SEARCH_PARAMETER_SEARCH' => WPSOLR_Query_Parameters::SEARCH_PARAMETER_SEARCH, 'SEARCH_PARAMETER_Q' => WPSOLR_Query_Parameters::SEARCH_PARAMETER_Q, 'SEARCH_PARAMETER_FQ' => WPSOLR_Query_Parameters::SEARCH_PARAMETER_FQ, 'SEARCH_PARAMETER_SORT' => WPSOLR_Query_Parameters::SEARCH_PARAMETER_SORT, 'SEARCH_PARAMETER_PAGE' => WPSOLR_Query_Parameters::SEARCH_PARAMETER_PAGE, 'SORT_CODE_BY_RELEVANCY_DESC' => WPSolrSearchSolrClient::SORT_CODE_BY_RELEVANCY_DESC));
    /*
     * Infinite scroll: load javascript if option is set.
     */
    if (WPSOLR_Global::getOption()->get_search_is_infinitescroll()) {
        // Get localization options
        $localization_options = OptionLocalization::get_options();
        wp_register_script('infinitescroll', plugins_url('/js/jquery.infinitescroll.js', __FILE__), array('jquery'), '1.0', true);
        wp_enqueue_script('infinitescroll');
        // loadingtext for translation
        // loadimage custom loading image url
        wp_localize_script('infinitescroll', 'wp_localize_script_infinitescroll', array('ajax_url' => admin_url('admin-ajax.php'), 'loadimage' => plugins_url('/images/infinitescroll.gif', __FILE__), 'loadingtext' => OptionLocalization::get_term($localization_options, 'infinitescroll_loading'), 'SEARCH_PARAMETER_Q' => WPSOLR_Query_Parameters::SEARCH_PARAMETER_Q));
    }
}
 /**
  *
  * @param WPSOLR_Query $wpsolr_query
  *
  * @return array Array of html
  */
 public function display_results(WPSOLR_Query $wpsolr_query)
 {
     $output = array();
     $search_result = array();
     // Load options
     $localization_options = OptionLocalization::get_options();
     $resultset = $this->execute_wpsolr_query($wpsolr_query);
     $found = $resultset->getNumFound();
     // No results: try a new query if did you mean is activated
     if ($found === 0 && WPSOLR_Global::getOption()->get_search_is_did_you_mean()) {
         // Add spellcheck to current solarium query
         $spell_check = $this->solarium_query->getSpellcheck();
         $spell_check->setCount(10);
         $spell_check->setCollate(true);
         $spell_check->setExtendedResults(true);
         $spell_check->setCollateExtendedResults(true);
         // Excecute the query modified
         $resultset = $this->execute_solarium_query();
         // Parse spell check results
         $spell_check_results = $resultset->getSpellcheck();
         if ($spell_check_results && !$spell_check_results->getCorrectlySpelled()) {
             $collations = $spell_check_results->getCollations();
             $queryTermsCorrected = $wpsolr_query->get_wpsolr_query();
             // original query
             foreach ($collations as $collation) {
                 foreach ($collation->getCorrections() as $input => $correction) {
                     $queryTermsCorrected = str_replace($input, is_array($correction) ? $correction[0] : $correction, $queryTermsCorrected);
                 }
             }
             if ($queryTermsCorrected != $wpsolr_query->get_wpsolr_query()) {
                 $err_msg = sprintf(OptionLocalization::get_term($localization_options, 'results_header_did_you_mean'), $queryTermsCorrected) . '<br/>';
                 $search_result[] = $err_msg;
                 // Execute query with spelled terms
                 $this->solarium_query->setQuery($queryTermsCorrected);
                 try {
                     $resultset = $this->execute_solarium_query();
                     $found = $resultset->getNumFound();
                 } catch (Exception $e) {
                     // Sometimes, the spelling query returns errors
                     // java.lang.StringIndexOutOfBoundsException: String index out of range: 15\n\tat java.lang.AbstractStringBuilder.charAt(AbstractStringBuilder.java:203)\n\tat
                     // java.lang.StringBuilder.charAt(StringBuilder.java:72)\n\tat org.apache.solr.spelling.SpellCheckCollator.getCollation(SpellCheckCollator.java:164)\n\tat
                     $found = 0;
                 }
             } else {
                 $search_result[] = 0;
             }
         } else {
             $search_result[] = 0;
         }
     } else {
         $search_result[] = 0;
     }
     // Retrieve facets from resultset
     $facets_to_display = WPSOLR_Global::getOption()->get_facets_to_display();
     if (count($facets_to_display)) {
         foreach ($facets_to_display as $facet) {
             $fact = strtolower($facet);
             if (WpSolrSchema::_FIELD_NAME_CATEGORIES === $fact) {
                 $fact = WpSolrSchema::_FIELD_NAME_CATEGORIES_STR;
             }
             $facet_res = $resultset->getFacetSet()->getFacet("{$fact}");
             foreach ($facet_res as $value => $count) {
                 $output[$facet][] = array($value, $count);
             }
         }
         $search_result[] = $output;
     } else {
         $search_result[] = 0;
     }
     $search_result[] = $found;
     $results = array();
     $highlighting = $resultset->getHighlighting();
     $i = 1;
     $cat_arr = array();
     $are_comments_indexed = WPSOLR_Global::getOption()->get_index_are_comments_indexed();
     foreach ($resultset as $document) {
         $id = $document->id;
         $title = $document->title;
         $content = '';
         $image_url = wp_get_attachment_image_src(get_post_thumbnail_id($id));
         $no_comments = $document->numcomments;
         if ($are_comments_indexed) {
             $comments = $document->comments;
         }
         $date = date('m/d/Y', strtotime($document->displaydate));
         if (property_exists($document, 'categories_str')) {
             $cat_arr = $document->categories_str;
         }
         $cat = implode(',', $cat_arr);
         $auth = $document->author;
         $url = get_permalink($id);
         $highlightedDoc = $highlighting->getResult($document->id);
         $cont_no = 0;
         $comm_no = 0;
         if ($highlightedDoc) {
             foreach ($highlightedDoc as $field => $highlight) {
                 if ($field == WpSolrSchema::_FIELD_NAME_TITLE) {
                     $title = implode(' (...) ', $highlight);
                 } else {
                     if ($field == WpSolrSchema::_FIELD_NAME_CONTENT) {
                         $content = implode(' (...) ', $highlight);
                     } else {
                         if ($field == WpSolrSchema::_FIELD_NAME_COMMENTS) {
                             $comments = implode(' (...) ', $highlight);
                             $comm_no = 1;
                         }
                     }
                 }
             }
         }
         $msg = '';
         $msg .= "<div id='res{$i}'><div class='p_title'><a href='{$url}'>{$title}</a></div>";
         $image_fragment = '';
         // Display first image
         if (is_array($image_url) && count($image_url) > 0) {
             $image_fragment .= "<img class='wdm_result_list_thumb' src='{$image_url['0']}' />";
         }
         if (empty($content)) {
             // Set a default value for content if no highlighting returned.
             $post_to_show = get_post($id);
             if (isset($post_to_show)) {
                 // Excerpt first, or content.
                 $content = !empty($post_to_show->post_excerpt) ? $post_to_show->post_excerpt : $post_to_show->post_content;
                 if (isset($ind_opt['is_shortcode_expanded']) && strpos($content, '[solr_search_shortcode]') === false) {
                     // Expand shortcodes which have a plugin active, and are not the search form shortcode (else pb).
                     global $post;
                     $post = $post_to_show;
                     $content = do_shortcode($content);
                 }
                 // Remove shortcodes tags remaining, but not their content.
                 // strip_shortcodes() does nothing, probably because shortcodes from themes are not loaded in admin.
                 // Credit: https://wordpress.org/support/topic/stripping-shortcodes-keeping-the-content.
                 // Modified to enable "/" in attributes
                 $content = preg_replace("~(?:\\[/?)[^\\]]+/?\\]~s", '', $content);
                 # strip shortcodes, keep shortcode content;
                 // Strip HTML and PHP tags
                 $content = strip_tags($content);
                 if (isset($res_opt['highlighting_fragsize']) && is_numeric($res_opt['highlighting_fragsize'])) {
                     // Cut content at the max length defined in options.
                     $content = substr($content, 0, $res_opt['highlighting_fragsize']);
                 }
             }
         }
         // Format content text a little bit
         $content = str_replace('&nbsp;', '', $content);
         $content = str_replace('  ', ' ', $content);
         $content = ucfirst(trim($content));
         $content .= '...';
         //if ( $cont_no == 1 ) {
         if (false) {
             $msg .= "<div class='p_content'>{$image_fragment} {$content} - <a href='{$url}'>Content match</a></div>";
         } else {
             $msg .= "<div class='p_content'>{$image_fragment} {$content}</div>";
         }
         if ($comm_no == 1) {
             $msg .= "<div class='p_comment'>" . $comments . "-<a href='{$url}'>Comment match</a></div>";
         }
         // Groups bloc - Bottom right
         $wpsolr_groups_message = apply_filters(WpSolrFilters::WPSOLR_FILTER_SOLR_RESULTS_DOCUMENT_GROUPS_INFOS, get_current_user_id(), $document);
         if (isset($wpsolr_groups_message)) {
             // Display groups of this user which owns at least one the document capability
             $message = $wpsolr_groups_message['message'];
             $msg .= "<div class='p_misc'>{$message}";
             $msg .= "</div>";
             $msg .= '<br/>';
         }
         // Informative bloc - Bottom right
         $msg .= "<div class='p_misc'>";
         if (WPSOLR_Global::getOption()->get_is_display_author()) {
             $msg .= "<span class='pauthor'>" . sprintf(OptionLocalization::get_term($localization_options, 'results_row_by_author'), $auth) . "</span>";
         }
         if (WPSOLR_Global::getOption()->get_is_display_category()) {
             $msg .= empty($cat) ? "" : "<span class='pcat'>" . sprintf(OptionLocalization::get_term($localization_options, 'results_row_in_category'), $cat) . "</span>";
         }
         if (WPSOLR_Global::getOption()->get_is_display_date()) {
             $msg .= "<span class='pdate'>" . sprintf(OptionLocalization::get_term($localization_options, 'results_row_on_date'), $date) . "</span>";
         }
         if (WPSOLR_Global::getOption()->get_is_display_comments()) {
             $msg .= empty($no_comments) ? "" : "<span class='pcat'>" . sprintf(OptionLocalization::get_term($localization_options, 'results_row_number_comments'), $no_comments) . "</span>";
         }
         $msg .= "</div>";
         // End of snippet bloc
         $msg .= "</div><hr>";
         array_push($results, $msg);
         $i = $i + 1;
     }
     //  $msg.='</div>';
     if (count($results) < 0) {
         $search_result[] = 0;
     } else {
         $search_result[] = $results;
     }
     $fir = $wpsolr_query->get_start() + 1;
     $last = $wpsolr_query->get_start() + $wpsolr_query->get_nb_results_by_page();
     if ($last > $found) {
         $last = $found;
     }
     $search_result[] = "<span class='infor'>" . sprintf(OptionLocalization::get_term($localization_options, 'results_header_pagination_numbers'), $fir, $last, $found) . "</span>";
     return $search_result;
 }