aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/search/fulltext_sphinx.php
diff options
context:
space:
mode:
authorTristan Darricau <tristan.darricau@sensiolabs.com>2015-10-12 13:38:42 +0200
committerTristan Darricau <tristan.darricau@sensiolabs.com>2015-10-12 13:38:42 +0200
commita5ab2eb564eeb33d9cd97a4c21b2fb8f340f9120 (patch)
treef8b8cd5c09de0d860ed4a94b030131125cb54363 /phpBB/phpbb/search/fulltext_sphinx.php
parentb7fe324ed70ca1a10ce64470e2286bfea23c1bef (diff)
parent1164cc38a243fb2c5b41cc8882956890ff2eecd2 (diff)
downloadforums-a5ab2eb564eeb33d9cd97a4c21b2fb8f340f9120.tar
forums-a5ab2eb564eeb33d9cd97a4c21b2fb8f340f9120.tar.gz
forums-a5ab2eb564eeb33d9cd97a4c21b2fb8f340f9120.tar.bz2
forums-a5ab2eb564eeb33d9cd97a4c21b2fb8f340f9120.tar.xz
forums-a5ab2eb564eeb33d9cd97a4c21b2fb8f340f9120.zip
Merge branch '3.1.x'
* 3.1.x: [ticket/14098] Add core events to the search backends
Diffstat (limited to 'phpBB/phpbb/search/fulltext_sphinx.php')
-rw-r--r--phpBB/phpbb/search/fulltext_sphinx.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/phpBB/phpbb/search/fulltext_sphinx.php b/phpBB/phpbb/search/fulltext_sphinx.php
index 937292fd38..372a2792cf 100644
--- a/phpBB/phpbb/search/fulltext_sphinx.php
+++ b/phpBB/phpbb/search/fulltext_sphinx.php
@@ -359,6 +359,23 @@ class fulltext_sphinx
$non_unique = array('sql_query_pre' => true, 'sql_attr_uint' => true, 'sql_attr_timestamp' => true, 'sql_attr_str2ordinal' => true, 'sql_attr_bool' => true);
$delete = array('sql_group_column' => true, 'sql_date_column' => true, 'sql_str2ordinal_column' => true);
+
+ /**
+ * Allow adding/changing the Sphinx configuration data
+ *
+ * @event core.search_sphinx_modify_config_data
+ * @var array config_data Array with the Sphinx configuration data
+ * @var array non_unique Array with the Sphinx non-unique variables to delete
+ * @var array delete Array with the Sphinx variables to delete
+ * @since 3.1.7-RC1
+ */
+ $vars = array(
+ 'config_data',
+ 'non_unique',
+ 'delete',
+ );
+ extract($this->phpbb_dispatcher->trigger_event('core.search_sphinx_modify_config_data', compact($vars)));
+
foreach ($config_data as $section_name => $section_data)
{
$section = $config_object->get_section_by_name($section_name);
@@ -534,6 +551,41 @@ class fulltext_sphinx
$this->sphinx->SetFilter('topic_id', array($topic_id));
}
+ /**
+ * Allow modifying the Sphinx search options
+ *
+ * @event core.search_sphinx_keywords_modify_options
+ * @var string type Searching type ('posts', 'topics')
+ * @var string fields Searching fields ('titleonly', 'msgonly', 'firstpost', 'all')
+ * @var string terms Searching terms ('all', 'any')
+ * @var int sort_days Time, in days, of the oldest possible post to list
+ * @var string sort_key The sort type used from the possible sort types
+ * @var int topic_id Limit the search to this topic_id only
+ * @var array ex_fid_ary Which forums not to search on
+ * @var string post_visibility Post visibility data
+ * @var array author_ary Array of user_id containing the users to filter the results to
+ * @var string author_name The username to search on
+ * @var object sphinx The Sphinx searchd client object
+ * @since 3.1.7-RC1
+ */
+ $sphinx = $this->sphinx;
+ $vars = array(
+ 'type',
+ 'fields',
+ 'terms',
+ 'sort_days',
+ 'sort_key',
+ 'topic_id',
+ 'ex_fid_ary',
+ 'post_visibility',
+ 'author_ary',
+ 'author_name',
+ 'sphinx',
+ );
+ extract($this->phpbb_dispatcher->trigger_event('core.search_sphinx_keywords_modify_options', compact($vars)));
+ $this->sphinx = $sphinx;
+ unset($sphinx);
+
$search_query_prefix = '';
switch ($fields)