diff --git a/modules/integration_search/integration_search.view.php b/modules/integration_search/integration_search.view.php index 2b9ec9b5e..1add46f55 100644 --- a/modules/integration_search/integration_search.view.php +++ b/modules/integration_search/integration_search.view.php @@ -115,9 +115,9 @@ class integration_searchView extends integration_search // Set a variable for search keyword $is_keyword = Context::get('is_keyword'); $is_keyword = escape(trim(utf8_normalize_spaces($is_keyword))); - if (mb_strlen($is_keyword, 'UTF-8') > 40) + if (mb_strlen($is_keyword, 'UTF-8') > 250) { - $is_keyword = mb_substr($is_keyword, 0, 40); + $is_keyword = mb_substr($is_keyword, 0, 250); } // Set page variables diff --git a/tests/_data/dbquery/selectTest3.xml b/tests/_data/dbquery/selectTest3.xml new file mode 100644 index 000000000..1f30ace49 --- /dev/null +++ b/tests/_data/dbquery/selectTest3.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/unit/framework/parsers/DBQueryParserTest.php b/tests/unit/framework/parsers/DBQueryParserTest.php index 736765375..02c2c2d57 100644 --- a/tests/unit/framework/parsers/DBQueryParserTest.php +++ b/tests/unit/framework/parsers/DBQueryParserTest.php @@ -70,6 +70,20 @@ class DBQueryParserTest extends \Codeception\TestCase\Test $this->assertEquals([20, '20201021'], $params); } + public function testSelectWithSearch() + { + $query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectTest3.xml'); + $args = array('division' => 1234, 'last_division' => 4567, 's_title' => '"I love you" -"I hate you"', 's_content' => '"I love you" -"I hate you"', 'page' => 3); + $sql = $query->getQueryString('rx_', $args); + $params = $query->getQueryParams(); + + $this->assertEquals('SELECT DISTINCT * FROM `rx_documents` AS `documents` ' . + 'WHERE (`list_order` >= ? AND `list_order` < ?) AND ' . + '((`title` LIKE ? AND `title` NOT LIKE ?) OR (`content` LIKE ? AND `content` NOT LIKE ?)) AND ' . + 'ORDER BY `list_order` ASC LIMIT 40, 20', $sql); + $this->assertEquals(['1234', '4567', 'I love you', 'I hate you', 'I love you', 'I hate you'], $params); + } + public function testJoin1() { $query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectJoinTest1.xml');