Functions for front-end search indexing

/skin/default/partials/_header.php Highlighted file source
Line 30: <div class="header__search">
Line 32: <form method="get" action="search">
Line 42: <label for="fm-site-search">Search the <?php echo Enc::html(Kohana::config('sprout.site_title')); ?> website</label>
Line 48: <input id="fm-site-search" class="textbox" type="text" name="q" value="<?php echo Enc::html(@$_GET['q']); ?>" placeholder="Enter your search here">
Line 58: <button type="submit" class="button button-block">Search</button>

/sprout/config/routes.php Highlighted file source
Line 59: $config['admin/search/([^/]+)'] = 'AdminController/search/$1';
Line 102: $config['page/front_end_search/([0-9]+)/([^/]+)/([^/]+)'] = 'Sprout\\Controllers\\PageController/frontEndSearch/$1/$2/$3';
Line 105: $config['search(?:/(?:index)?)?'] = 'Sprout\\Controllers\\SearchController/index';
Line 115: $config['tinymce4/image_search'] = 'Tinymce4Controller/imageSearch';
Line 118: $config['tinymce4/library_search'] = 'Tinymce4Controller/librarySearch';
Line 122: $config['tinymce4/video_search'] = 'Tinymce4Controller/videoSearch';
Line 153: $config['advanced_search'] = 'Sprout\\Controllers\\AdvancedSearchController/index';

/sprout/Controllers/Admin/FileAdminController.php Highlighted file source
Line 37: use Sprout\Helpers\FrontEndSearch;
Line 46: use Sprout\Helpers\Search;
Line 60: class FileAdminController extends HasCategoriesAdminController implements FrontEndSearch
Line 121: $list['enable_indexing'] = 'Show in search results';
Line 750: 'class' => 'icon-link-button icon-before icon-search',
Line 1024: Search::selectIndex('file_keywords', $item_id);
Line 1026: $res = Search::clearIndex();
Line 1029: // File is marked as not to be included in search results
Line 1032: $res = Search::indexText($name, 4);
Line 1036: $res = Search::indexHtml($plaintext, 1);
Line 1040: $res = Search::cleanup('files');
Line 1085: * Process the results of a search.
Line 1090: public function frontEndSearch($item_id, $relevancy, $keywords)
Line 1095: // File is marked as not to be included in search results
Line 1130: $view = new View('sprout/search_results_page');
Line 1380: * Does the backend selector search
Line 1382: public function selectorPopupSearch()

/sprout/Controllers/Admin/ManagedAdminController.php Highlighted file source
Line 216: * Initialises the refine bar if it isn't already set, with a search widget for the 'name' field if it exists
Line 217: * Most controllers which need a custom refine bar should call this before adding their own search widgets
Line 817: // Some extra logic for the tag search
Line 879: * Return HTML for a search form
Line 881: public function _getSearchForm()
Line 883: $view = new View("sprout/admin/generic_search");
Line 892: 'title' => 'Search ' . Enc::html($this->friendly_name),
Line 1886: * Return list of records for given search term
Line 1912: * Return list of records for given search term

/sprout/Controllers/Admin/PageAdminController.php Highlighted file source
Line 58: use Sprout\Helpers\Search;
Line 94: $this->refine_bar->addWidget(new RefineWidgetTextbox('_keyword', 'Keyword search'));
Line 125: INNER JOIN ~search_keywords AS k ON pk.keyword_id = k.id WHERE k.name LIKE ?)";
Line 2127: Search::selectIndex('page_keywords', $item_id);
Line 2129: $res = Search::clearIndex();
Line 2132: $res = Search::indexHtml($text, 1);
Line 2135: $res = Search::indexText($name, 4);
Line 2138: $res = Search::cleanup('pages');
Line 2306: $index = array_search ($_POST['dir'], $_SESSION['admin'][$this->controller_name . '_nav']);
Line 2465: $items[] = "<li class=\"action-log\"><a href=\"SITE/admin/search/{$this->controller_name}\">Search pages</a></li>";
Line 2755: 'search_keywords' => 0,

/sprout/Controllers/AdvancedSearchController.php Highlighted file source
Line 22: use Sprout\Helpers\FrontEndSearch;
Line 26: use Sprout\Helpers\Search;
Line 27: use Sprout\Helpers\SearchHandler;
Line 36: class AdvancedSearchController extends Controller implements FrontEndEntrance
Line 64: return array('form' => 'Search form');
Line 69: * Does the actual search
Line 73: Navigation::setPageNodeMatcher(new TreenodeFrontendMatcher('advanced_search', 'form'));
Line 75: $view = $this->doSearch();
Line 78: $page_title = 'Search';
Line 95: * Does the actual search. Returns HTML
Line 97: private function doSearch()
Line 102: $config_handlers = Register::getSearchHandlers();
Line 105: if (! $ch instanceof SearchHandler) throw new Exception("Invalid SearchHandler registered");
Line 134: $srchform = new View('sprout/advanced_search_form');
Line 155: $search_handlers = array();
Line 176: $search_handlers[] = $ch;
Line 180: // Do the search
Line 181: Search::queryAnd($_GET['q_type'] == 'and');
Line 182: $search_result = Search::query($_GET['q'], $search_handlers, $_GET['page'] - 1);
Line 184: if (! $search_result) {
Line 188: list ($res, $keywords, $num_results, $num_pages) = $search_result;
Line 191: return $srchform . '<p>No results were found matching your search terms.</p>';
Line 195: // Instantiate search handlers
Line 197: foreach ($search_handlers as $handler) {
Line 201: if (! $ctlr instanceof FrontEndSearch) throw new Exception("Search handler {$class} does not implement FrontEndSearch");
Line 206: $srchform = new View('sprout/advanced_search_form');
Line 218: $out .= '<div class="search-result">';
Line 219: $out .= $ctlr->frontEndSearch($row['record_id'], $row['relevancy'], $keywords);
Line 223: $out .= Search::paginate($_GET['page'], $num_pages, 'search-paginate');

/sprout/Controllers/DbToolsController.php Highlighted file source
Line 113: [ 'url' => 'dbtools/fileTypesIndexingSupport', 'name' => 'File indexing support', 'desc' => 'List of file types which can be indexed for full-text search' ],
Line 116: [ 'url' => 'dbtools/exceptionLog', 'name' => 'Exception log', 'desc' => 'Browse and search exceptions' ],
Line 450: if (!empty($_GET['search'])) {
Line 452: $params[] = $_GET['search'];
Line 505: // Search for end-of-statement
Line 991: * Returns a list of file types which can be indexed for fulltext search
Line 2255: * Browse and search exceptions

/sprout/Controllers/SearchController.php Highlighted file source
Line 20: use Sprout\Helpers\FrontEndSearch;
Line 23: use Sprout\Helpers\Search;
Line 24: use Sprout\Helpers\SearchHandler;
Line 29: * Performs site-wide searches
Line 31: class SearchController extends Controller
Line 40: * Performs a site-wide search for the 'q' term specified via the query string.
Line 41: * Basically a wrapper for the Search::query() method
Line 42: * @get string q The search query
Line 44: * @return void Outputs HTML directly, containing the search results
Line 48: $config_handlers = Register::getSearchHandlers();
Line 56: $search_handlers = array();
Line 59: $search_handlers[] = new SearchHandler($ch[0], $ch[1]);
Line 60: } else if ($ch instanceof SearchHandler) {
Line 61: $search_handlers[] = $ch;
Line 63: throw new Exception("Invalid SearchHandler registered");
Line 70: $search_result = Search::query($_GET['q'], $search_handlers, $_GET['page'] - 1);
Line 72: $search_result = null;
Line 75: if (! $search_result) {
Line 78: $page_view->page_title = 'Search';
Line 79: $page_view->main_content = '<div class="site-search-form">' . new View('sprout/search_form') . '</div>';
Line 85: list ($res, $keywords, $num_results, $num_pages) = $search_result;
Line 88: $out = '<p>No results were found which match your search terms.</p>';
Line 91: // Instantiate search handlers
Line 93: foreach ($search_handlers as $handler) {
Line 97: if (! $ctlr instanceof FrontEndSearch) throw new Exception("Search handler {$class} does not implement FrontEndSearch");
Line 107: $resp = $ctlr->frontEndSearch($row['record_id'], $row['relevancy'], $keywords);
Line 110: $out .= '<div class="search-result">' . $resp . '</div>';
Line 115: $out .= Search::paginate($_GET['page'], $num_pages, 'search-paginate');
Line 118: $page_view->page_title = 'Search';
Line 119: $page_view->browser_title = Navigation::buildBrowserTitle('Search');
Line 120: $page_view->main_content = '<div class="site-search-form">' . new View('sprout/search_form') . '</div>' . $out;

/sprout/Controllers/Tinymce4Controller.php Highlighted file source
Line 47: * Initialises a new search toolbar
Line 59: $view->is_search = false;
Line 60: $view->search_url = "tinymce4/{$type}_search";
Line 65: $view->search_label = 'Search for an image';
Line 68: $view->search_label = 'Search for a video';
Line 71: $view->search_label = 'Search';
Line 77: if (isset($_GET['search'])) {
Line 78: $view->search_query = $_GET['search'];
Line 80: $view->search_query = '';
Line 160: * Show image search results
Line 162: public function imageSearch()
Line 165: $key = trim(@$_GET['search']);
Line 178: $view->toolbar->is_search = true;
Line 180: $view->search_key = $key;
Line 181: $view->link_attrs = array('search' => $key);
Line 201: $_GET['search'] = (string) @$_GET['search'];
Line 224: } else if (!empty($_GET['search'])) {
Line 225: $up_url = 'SITE/tinymce4/image_search?search=' . Enc::url($_GET['search']);
Line 273: * Search rte libraries
Line 275: public function librarySearch()
Line 279: $key = trim(@$_GET['search']);
Line 291: $res = $inst->search($key);
Line 299: $view = new View('sprout/tinymce4/library_search');
Line 301: $view->toolbar->is_search = true;
Line 308: $outer->page_title = 'Insert link - ' . $inst->getName() . ' - Search';
Line 310: $view->toolbar->search_params = array('lib' => $_GET['lib']);
Line 313: $outer->page_title = 'Insert link - Search';
Line 364: $view->toolbar->search_url .= '&lib=' . $class_name;
Line 451: * Show video search results
Line 453: public function videoSearch()
Line 456: $key = trim(@$_GET['search']);
Line 469: $view->toolbar->is_search = true;
Line 471: $view->search_key = $key;
Line 472: $view->link_attrs = ['search' => $key];

/sprout/core/Kohana.php Highlighted file source
Line 909: * @param string directory to search in
Line 932: // Search path
Line 933: $search = $directory.'/'.$filename.$ext;
Line 935: if (isset(self::$internal_cache['find_file_paths'][$search]))
Line 936: return self::$internal_cache['find_file_paths'][$search];
Line 956: // Search in reverse, for merging
Line 961: if (is_file($path.$search))
Line 964: $found[] = $path.$search;
Line 972: if (is_file($path.$search))
Line 975: $found = $path.$search;
Line 977: // Stop searching
Line 1006: return self::$internal_cache['find_file_paths'][$search] = $found;
Line 1012: * @param string directory to search
Line 1014: * @param string full path to search (used for recursion, *never* set this manually)
Line 1051: // Append sub-directory search
Line 1124: * @param array array to search

/sprout/Helpers/Form.php Highlighted file source
Line 731: $search_label = "Search for {$options['single']} to add it to the list:";
Line 732: $search_field_id = Enc::id("autofill-{$name}-search");
Line 755: $out .= '<div class="autofill-search">';
Line 756: $out .= '<div class="autofill-heading"><label for="' . $search_field_id . '">' . Enc::html($search_label) . '</label></div>';
Line 759: $name . '_search',
Line 760: ['-wrapper-class' => 'white', 'id' => $search_field_id]

/sprout/Helpers/Register.php Highlighted file source
Line 24: * incl. widgets, search handlers, tabs, etc.
Line 46: private static $search_handlers = [];
Line 625: * Register search handler
Line 628: * FrontEndSearch interface. Must be fully namespaced.
Line 630: * @param array $where Optional list of where clauses @see SearchHandler->addWhere()
Line 633: public static function searchHandler($class, $table, $where = [])
Line 635: $handler = new SearchHandler($table, $class);
Line 643: self::$search_handlers[] = $handler;
Line 648: * Return list of SearchHandler objects
Line 650: * @return array List of SearchHandler instances
Line 652: public static function getSearchHandlers()
Line 654: $handlers = self::$search_handlers;
Line 656: $conf = Kohana::config('sprout.search_handlers');

/sprout/Helpers/Search.php Highlighted file source
Line 22: * Functions for front-end search indexing
Line 24: class Search
Line 130: $q = "SELECT name, id FROM ~search_keywords WHERE " . $where;
Line 134: // If the search_keywords records do not exist, they will be added
Line 139: $word_ids[$word] = Pdb::insert('search_keywords', ['name' => $word]);
Line 186: * Set the 'query_and' parameter, which defines the handling of search terms
Line 195: * Does a query for a term, against a set of search handlers
Line 197: * @param string $q The keyword(s) to search for.
Line 198: * @param array $search_handlers Search handlers to use. Expects an array of SearchHandler objects.
Line 203: * [1] array The list of keywords used for the search
Line 209: public static function query($query, $search_handlers, $page = 0, $num_per_page = null)
Line 216: if ($num_per_page == 0) $num_per_page = Kohana::config('sprout.search_per_page');
Line 219: if (count($search_handlers) == 0) throw new Exception("No search handlers provided");
Line 246: foreach ($search_handlers as $handler) {
Line 256: $joins[] = "INNER JOIN ~search_keywords AS keywords ON keywords.id = records.keyword_id";

/sprout/Helpers/SearchHandler.php Highlighted file source
Line 20: * Defines a table which can be searched against using the front-end search
Line 22: class SearchHandler
Line 34: * FrontEndSearch interface. Must be fully namespaced.
Line 85: * Sets the controller name, e.g. PageController. The specified controller must implement the FrontEndSearch interface.
Line 95: * Gets all where clauses which should be added to the search query
Line 103: * Adds a where clause to this search handler.
Line 114: * Gets all joins which should be added to the search query
Line 122: * Adds a join to this search handler.
Line 133: * Gets all having clauses which should be added to the search query
Line 141: * Adds a having clause to this search handler.

/sprout/sprout_load.php Highlighted file source
Line 46: Register::searchHandler('Sprout\\Controllers\\PageController', 'page_keywords', ['main.active = 1', 'main.show_in_nav = 1']);
Line 48: Register::frontEndController('Sprout\\Controllers\\AdvancedSearchController', 'Advanced search');

/sprout/views/admin/file_selector_popup.php Highlighted file source
Line 43: <!-- Search existing -->
Line 44: <form action="SITE/admin/call/file/selectorPopupSearch" method="get" id="file-selector-search">
Line 48: <h3 class="popup-subtitle">Search existing files</h3>
Line 62: <button type="submit" class="button icon-after icon-search button-green button-regular">Search</button>
Line 70: <div class="file-selector-search-wrapper">

/sprout/views/advanced_search_form.php Highlighted file source
Line 34: <form action="SITE/advanced_search" method="get">
Line 42: <?= Form::multiradio('q_type', [], Constants::$search_modifiers); ?>
Line 59: <?= Form::multiradio('tag_type', [], Constants::$search_modifiers); ?>
Line 67: <button type="submit" class="button submit">Search</button>

/sprout/views/components/fb_google_map.php Highlighted file source
Line 23: <div class="fb-google-map--search">
Line 29: echo Form::text('fb-google-map--search-name', ['-wrapper-class' => 'white', 'placeholder' => 'Search...', 'id' => 'fb-google-map--search-name', 'class' => 'fb-google-map--search-name']);
Line 33: <button type="button" class="button button-blue icon-after icon-search fb-google-map--search-go">Search</button>

/sprout/views/dbtools/db_struct.php Highlighted file source
Line 13: Form::nextFieldDetails('Search', true);
Line 14: echo Form::text('search');
Line 19: <button class="button icon-before icon-search" type="submit">Search</button>
Line 24: <h3><?= empty($_GET['search']) ? 'All' : 'Matching' ; ?> tables</h3>
Line 42: $suf = !empty($_GET['search']) ? '&search=' . $_GET['search'] : '';

/sprout/views/search_form.php Highlighted file source
Line 19: <form action="SITE/search" method="get">
Line 24: <label for="fm-site-search">Search the <?php echo Enc::html(Kohana::config('sprout.site_title')); ?> website</label>
Line 27: <input id="fm-site-search" class="textbox" type="text" name="q" value="<?php echo Enc::html(@$_GET['q']); ?>" placeholder="Enter your search here">
Line 31: <span class="-vis-hidden">Search</span>
Line 32: <div class="bg-icon bg-icon--search"></div>

/sprout/views/tinymce4/toolbar.php Highlighted file source
Line 37: <form method="get" action="SITE/<?php echo Enc::html($search_url); ?>">
Line 38: <?php if (isset($search_params)) echo Fb::hiddenFields($search_params); ?>
Line 40: <label class="emu-mce-label" for="mceu_img_search_input"><?php echo Enc::html($search_label); ?></label>
Line 43: <input id="mceu_img_search_input" class="textbox" type="text" name="search" value="<?php echo Enc::html($search_query); ?>">
Line 47: <input class="button button-small" type="submit" value="Search" style="vertical-align: top;">
Line 49: <?php if ($is_search): ?>

/sprout/Widgets/AdvancedSearchFormWidget.php Highlighted file source
Line 21: * Shows a box for searching documents
Line 23: class AdvancedSearchFormWidget extends Widget
Line 25: protected $friendly_name = "Advanced Search Form";
Line 26: protected $friendly_desc = 'An advanced search form for the site search';
Line 37: $out = '<form action="SITE/advanced_search" method="get">';
Line 58: $out .= '<p><input type="submit" value="Search" class="button"></p>';
A total of 277 lines in 35 files were found