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); } } } Index: branches/unlabeled/unlabeled-1.3.4/core/kernel/constants.php =================================================================== diff -u -r6753 -r6897 --- branches/unlabeled/unlabeled-1.3.4/core/kernel/constants.php (.../constants.php) (revision 6753) +++ branches/unlabeled/unlabeled-1.3.4/core/kernel/constants.php (.../constants.php) (revision 6897) @@ -35,6 +35,8 @@ define('ptCATEGORY', 0); define('ptSYSTEM', 1); + define('WID_MARK', '&|wid|&'); // replace this sequence inside filters to _main_wid + $application =& kApplication::Instance(); $spacer_url = $application->BaseURL().'core/admin_templates/img/spacer.gif'; define('SPACER_URL', $spacer_url); Index: branches/unlabeled/unlabeled-1.4.2/core/units/general/helpers/search_helper.php =================================================================== diff -u -r6895 -r6897 --- branches/unlabeled/unlabeled-1.4.2/core/units/general/helpers/search_helper.php (.../search_helper.php) (revision 6895) +++ branches/unlabeled/unlabeled-1.4.2/core/units/general/helpers/search_helper.php (.../search_helper.php) (revision 6897) @@ -103,6 +103,13 @@ } $table_name = ($sql_filter_type == 'where') ? $table_name : ''; + + // replace wid inside table name to WID_MARK constant value + $is_temp_table = preg_match('/(.*)'.TABLE_PREFIX.'ses_'.$this->Application->GetSID().'(_[\d]+){0,1}_edit_(.*)/', $table_name, $regs); + if ($is_temp_table) { + $table_name = $regs[1].TABLE_PREFIX.'ses_'.$this->Application->GetSID().($regs[2] ? WID_MARK : '').'_edit_'.$regs[3]; + } + return Array ('field_name' => $field_name, 'field_type' => $field_type, 'table_name' => $table_name, 'sql_filter_type' => $sql_filter_type); }