diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 36e44f757..984f1dce5 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -87,6 +87,8 @@ class Settings { /* {{{ */ var $_stopWordsFile = null; // enable/disable lucene fulltext search var $_enableFullSearch = true; + // fulltext search engine + var $_fullSearchEngine = 'lucene'; // contentOffsetDirTo var $_contentOffsetDir = "1048576"; // Maximum number of sub-directories per parent directory @@ -347,6 +349,7 @@ class Settings { /* {{{ */ $this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]); $this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]); $this->_enableFullSearch = Settings::boolVal($tab["enableFullSearch"]); + $this->_fullSearchEngine = strval($tab["fullSearchEngine"]); $this->_stopWordsFile = strval($tab["stopWordsFile"]); $this->_sortUsersInList = strval($tab["sortUsersInList"]); $this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]); @@ -619,6 +622,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector); $this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector); $this->setXMLAttributValue($node, "enableFullSearch", $this->_enableFullSearch); + $this->setXMLAttributValue($node, "fullSearchEngine", $this->_fullSearchEngine); $this->setXMLAttributValue($node, "expandFolderTree", $this->_expandFolderTree); $this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile); $this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList); diff --git a/inc/inc.Settings.php b/inc/inc.Settings.php index e8bdc86e9..a766e0811 100644 --- a/inc/inc.Settings.php +++ b/inc/inc.Settings.php @@ -88,4 +88,28 @@ if (get_magic_quotes_gpc()) { } unset($process); } + +if($settings->_enableFullSearch) { + if($settings->_fullSearchEngine == 'sqlitefts') { + $indexconf = array( + 'Indexer' => 'SeedDMS_SQLiteFTS_Indexer', + 'Search' => 'SeedDMS_SQLiteFTS_Search', + 'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument' + ); + + require_once('SeedDMS/SQLiteFTS.php'); + } else { + $indexconf = array( + 'Indexer' => 'SeedDMS_Lucene_Indexer', + 'Search' => 'SeedDMS_Lucene_Search', + 'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument' + ); + + if(!empty($settings->_luceneClassDir)) + require_once($settings->_luceneClassDir.'/Lucene.php'); + else + require_once('SeedDMS/Lucene.php'); + } +} + ?> diff --git a/op/op.Settings.php b/op/op.Settings.php index 611a8eb4a..920bd6740 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -67,6 +67,7 @@ if ($action == "saveSettings") $settings->_enableEmail =getBoolValue("enableEmail"); $settings->_enableUsersView = getBoolValue("enableUsersView"); $settings->_enableFullSearch = getBoolValue("enableFullSearch"); + $settings->_fullSearchEngine = $_POST["fullSearchEngine"]; $settings->_enableClipboard = getBoolValue("enableClipboard"); $settings->_enableDropUpload = getBoolValue("enableDropUpload"); $settings->_enableFolderTree = getBoolValue("enableFolderTree"); diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 048e88839..41869356b 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -161,6 +161,15 @@ if(!is_writeable($settings->_configFilePath)) {