Index: trunk/core/units/general/helpers/search_helper.php =================================================================== diff -u -N -r6751 -r6756 --- trunk/core/units/general/helpers/search_helper.php (.../search_helper.php) (revision 6751) +++ trunk/core/units/general/helpers/search_helper.php (.../search_helper.php) (revision 6756) @@ -123,7 +123,7 @@ $custom_filter = $this->processCustomFilters($event); if(!$search_keyword && $custom_filter === false) { - $this->OnSearchReset($event); + $this->resetSearch($event); return true; } @@ -143,9 +143,9 @@ $object =& $event->getObject(); foreach ($search_fields as $search_field) { - $custom_keyword = isset($custom_filter[$search_field]) ? $custom_filter[$search_field]['submit_value'] : false; + $custom_search = isset($custom_filter[$search_field]); - $filter_data = $this->getSearchClause($object, $search_field, $search_keyword, $custom_keyword); + $filter_data = $this->getSearchClause($object, $search_field, $search_keyword, $custom_search); if ($filter_data) { $search_filter[$search_field] = $filter_data; @@ -160,10 +160,10 @@ * @param kDBList $object * @param string $search_field * @param string $search_keyword what we are searching (false, when building custom filter clause) - * @param string $custom_filter all custom filter + * @param string $custom_search already found using custom filter * @return Array */ - function getSearchClause(&$object, $field_name, $search_keyword, $custom_keyword) + function getSearchClause(&$object, $field_name, $search_keyword, $custom_search) { $search_keywords = $this->splitKeyword($search_keyword); @@ -177,11 +177,7 @@ case 'kOptionsFormatter': $search_keys = Array(); - if ($custom_keyword !== false) { - // if keyword passed through advanced search filter (e.g. on Visits lists section) - array_push($search_keys, $this->Conn->qstr($custom_keyword)); - } - else { + if ($custom_search === false) { // if keywords passed through simple search filter (on each grid) $use_phrases = getArrayValue($object->Fields[$field_name], 'use_phrases'); $field_options = $object->GetFieldOptions($field_name); @@ -450,9 +446,22 @@ return $value_ts; } + /** + * Resets current search + * + * @param kEvent $event + */ + function resetSearch(&$event) + { + $this->Application->RemoveVar($event->getPrefixSpecial().'_search_filter'); + $this->Application->RemoveVar($event->getPrefixSpecial().'_search_keyword'); + + $this->Application->RemoveVar($event->getPrefixSpecial().'_custom_filter'); + } + } ?> \ No newline at end of file Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r6751 -r6756 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6751) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6756) @@ -1554,10 +1554,8 @@ */ function OnSearchReset(&$event) { - $this->Application->RemoveVar($event->getPrefixSpecial().'_search_filter'); - $this->Application->RemoveVar($event->getPrefixSpecial().'_search_keyword'); - - $this->Application->RemoveVar($event->getPrefixSpecial().'_custom_filter'); + $search_helper =& $this->Application->recallObject('SearchHelper'); + $search_helper->resetSearch($event); } /**