Index: branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php =================================================================== diff -u -r6893 -r6897 --- branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6893) +++ branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6897) @@ -695,26 +695,6 @@ } /** - * Adds filters found in session to object - * - * @param kEvent $event - * @param string $session_var variable name in session, where filter is stored - * @param string $filter_class filter class, e.g. FLT_SYSTEM, FLT_NORMAL, etc. - */ - function addStoredFilter(&$event, $session_var, $filter_class) - { - $filter_data = $this->Application->RecallVar($event->getPrefixSpecial().'_'.$session_var); - if ($filter_data) { - $object =& $event->getObject(); - $filter_data = unserialize($filter_data); - foreach ($filter_data as $filter_field => $filter_params) { - $filter_type = ($filter_params['type'] == 'having') ? HAVING_FILTER : WHERE_FILTER; - $object->addFilter($filter_field, $filter_params['value'], $filter_type, $filter_sub_type); - } - } - } - - /** * Add filters found in session * * @param kEvent $event @@ -723,13 +703,17 @@ { $object =& $event->getObject(); + $main_wid = $this->Application->GetTopmostWid($event->Prefix); + if ($main_wid) $main_wid = '_'.$main_wid; + // add search filter $filter_data = $this->Application->RecallVar($event->getPrefixSpecial().'_search_filter'); if ($filter_data) { $filter_data = unserialize($filter_data); foreach ($filter_data as $filter_field => $filter_params) { $filter_type = ($filter_params['type'] == 'having') ? HAVING_FILTER : WHERE_FILTER; - $object->addFilter($filter_field, $filter_params['value'], $filter_type, FLT_SEARCH); + $filter_value = str_replace(WID_MARK, $main_wid, $filter_params['value']); + $object->addFilter($filter_field, $filter_value, $filter_type, FLT_SEARCH); } } @@ -744,7 +728,8 @@ list ($filter_type, $field_options) = each($field_options); if ($field_options['value']) { $filter_type = ($field_options['sql_filter_type'] == 'having') ? HAVING_FILTER : WHERE_FILTER; - $object->addFilter($field_name, $field_options['value'], $filter_type, FLT_CUSTOM); + $filter_value = str_replace(WID_MARK, $main_wid, $field_options['value']); + $object->addFilter($field_name, $filter_value, $filter_type, FLT_CUSTOM); } } }