}
}
-
-
/**
* Plugin for Sphinx search backend.
*
* @link http://laconi.ca/
* @link http://twitter.com/
*/
-
class SphinxSearchPlugin extends Plugin
{
/**
{
if (common_config('sphinx', 'enabled')) {
if (!class_exists('SphinxClient')) {
- throw new ServerException('Sphinx PHP extension must be installed.');
+ // TRANS: Server exception.
+ throw new ServerException(_m('Sphinx PHP extension must be installed.'));
}
$engine = new SphinxSearch($target, $table);
if ($engine->is_connected()) {
// Sphinx disabled or disconnected
return true;
}
+
+ /**
+ * Provide plugin version information.
+ *
+ * This data is used when showing the version page.
+ *
+ * @param array &$versions array of version data arrays; see EVENTS.txt
+ *
+ * @return boolean hook value
+ */
+ function onPluginVersion(&$versions)
+ {
+ $url = 'http://status.net/wiki/Plugin:SphinxSearch';
+
+ $versions[] = array('name' => 'SphinxSearch',
+ 'version' => STATUSNET_VERSION,
+ 'author' => 'Brion Vibber',
+ 'homepage' => $url,
+ 'rawdescription' =>
+ // TRANS: Plugin description.
+ _m('Plugin for Sphinx search backend.'));
+
+ return true;
+ }
}
function sphinx_index_update($sn)
{
$base = sphinx_base();
-
+
$baseIndexes = array('notice', 'profile');
$params = array();
-
+
if (have_option('rotate')) {
$params[] = '--rotate';
}
foreach ($baseIndexes as $index) {
$params[] = "{$sn->dbname}_{$index}";
}
-
+
$params = implode(' ', $params);
$cmd = "$base/bin/indexer --config $base/etc/sphinx.conf $params";
-
+
print "$cmd\n";
system($cmd);
}
if (preg_match('!^.*?://.*?:.*?@.*?/(.*?)$!', common_config('db', 'database'), $matches)) {
return $matches[1];
}
- throw new ServerException("Sphinx search could not identify database name");
+
+ // TRANS: Server exception thrown when a database name cannot be identified.
+ throw new ServerException(_m("Sphinx search could not identify database name."));
}
}