Index: install/english.lang =================================================================== --- install/english.lang (revision 14719) +++ install/english.lang (working copy) @@ -171,6 +171,7 @@ VGVtcGxhdGUgZm9yICJJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMiIEVycm9y R1pJUCBjb21wcmVzc2lvbiBsZXZlbCAwLTk= UGF0aCB0byBXZWJzaXRl + UGVyZm9ybSBFeGFjdCBTZWFyY2g= Q29tbWVudHMgcGVyIHBhZ2U= UXVpY2sgU2VjdGlvbiBQZXJtaXNzaW9uIFJlYnVpbGQ= IlJlY3ljbGUgQmluIiBTZWN0aW9uSWQ= @@ -629,6 +630,7 @@ SW1hZ2UgRmlsZXM= TXVsdGlwbGUgTWVtY2FjaGVkIHNlcnZlcnMgY2FuIGJlIGxpc3RlZCBzZXBhcmF0ZWQgYnkgc2VtaS1jb2xvbiAoOykuIEZvciBleGFtcGxlLCAxOTIuMTY4LjEuMToxMTIxOzE5Mi4xNjguMS4yOjExMjE7MTkyLjE2OC4xLjM6MTEyMQ== SG93IHNvb24gKGluIHNlY29uZHMpIHRoZSBzZWN0aW9uIGNhY2hlIHNob3VsZCBhdXRvLWV4cGlyZSBhZnRlciBpdCdzIGNyZWF0aW9uLiBCeSBkZWZhdWx0IHN5c3RlbSB0ZW5kcyB0byByZWJ1aWxkIHRoZSBjYWNoZSBvbmx5IHdoZW4gaXQncyBwcm9wZXJ0aWVzIG9yIGVsZW1lbnRzIGhhdmUgY2hhbmdlZC4= + U2VhcmNoIGZvciBhbGwgZW50ZXJlZCBrZXl3b3JkcywgaW5zdGVhZCBvZiBhbnkgb25lIG9mIHRoZW0= UE9QMyBTZXJ2ZXIgUG9ydC4gRm9yIGV4LiAiMTEwIiBmb3IgcmVndWxhciBjb25uZWN0aW9uLCAiOTk1IiBmb3Igc2VjdXJlIGNvbm5lY3Rpb24u UE9QMyBTZXJ2ZXIgQWRkcmVzcy4gRm9yIGV4LiB1c2UgInNzbDovL3BvcC5nbWFpbC5jb20iIGZvciBHbWFpbCwgInBvcC5tYWlsLnlhaG9vLmNvbSIgZm9yIFlhaG9vLg== aHR0cHM6Ly93d3cuZG9tYWluLmNvbS9wYXRo Index: install/install_data.sql =================================================================== --- install/install_data.sql (revision 14719) +++ install/install_data.sql (working copy) @@ -132,6 +132,8 @@ INSERT INTO ConfigurationValues VALUES(DEFAULT, 'CategoriesRebuildSerial', '0', 'In-Portal', '', '', '', '', NULL, NULL, 0, 0, 0, NULL); +INSERT INTO ConfigurationValues VALUES (DEFAULT, 'PerformExactSearch', '1', 'In-Portal', 'in-portal:configure_advanced', 'la_section_SettingsWebsite', 'la_config_PerformExactSearch', 'checkbox', '', '', '10.10', '0', '0', 'la_hint_PerformExactSearch'); + INSERT INTO ItemTypes VALUES (1, 'In-Portal', 'c', 'Category', 'Name', 'CreatedById', NULL, NULL, 'la_ItemTab_Categories', 1, 'admin/category/addcategory.php', 'clsCategory', 'Category'); INSERT INTO ItemTypes VALUES (6, 'In-Portal', 'u', 'PortalUser', 'Login', 'PortalUserId', NULL, NULL, '', 0, '', 'clsPortalUser', 'User'); Index: install/upgrades.sql =================================================================== --- install/upgrades.sql (revision 14719) +++ install/upgrades.sql (working copy) @@ -2193,3 +2193,5 @@ UPDATE ConfigurationValues SET DisplayOrder = DisplayOrder + 0.01 WHERE `Section` = 'in-portal:configure_advanced' AND Heading = 'la_section_SettingsWebsite'; + +INSERT INTO ConfigurationValues VALUES (DEFAULT, 'PerformExactSearch', '1', 'In-Portal', 'in-portal:configure_advanced', 'la_section_SettingsWebsite', 'la_config_PerformExactSearch', 'checkbox', '', '', '10.10', '0', '0', 'la_hint_PerformExactSearch'); Index: units/helpers/search_helper.php =================================================================== --- units/helpers/search_helper.php (revision 14719) +++ units/helpers/search_helper.php (working copy) @@ -18,6 +18,20 @@ /** + * Perform Exact Search flag + * + * @var bool + */ + protected $_perform_exact_search = true; + + public function __construct() + { + parent::__construct(); + + $this->_perform_exact_search = $this->Application->ConfigValue('PerformExactSearch'); + } + + /** * Splits search phrase into keyword using quotes,plus and minus sings and spaces as split criteria * * @param string $keyword @@ -50,6 +64,14 @@ $final[$kw] = $res[1][$index]; } + if ($this->_perform_exact_search) { + foreach ($final AS $kw => $plus_minus) { + if (!$plus_minus) { + $final[$kw] = '+'; + } + } + } + return $final; }