Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r6093 -r6428 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6093) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6428) @@ -364,7 +364,14 @@ { $object = &$event->getObject(); $top_prefix = $this->Application->GetTopmostPrefix($event->Prefix); - return $this->Application->GetVar($top_prefix.'_mode') == 't'; + + return ( + $this->Application->GetVar(rtrim($top_prefix.'_'.$event->Special, '_')) == 't' + || + $this->Application->GetVar(rtrim($top_prefix.'.'.$event->Special, '.')) == 't' + || + $this->Application->GetVar($top_prefix.'_mode') == 't' + ); } /** @@ -1480,8 +1487,17 @@ if(!$field_type) $field_type = 'string'; // default LIKE filter for all fields without type $filter_value = ''; - $table_name = ($filter_type == 'where') ? '`'.$object->TableName.'`.' : ''; + if (preg_match('/(.*)\.(.*)/', $search_field, $regs)) { + $table_name = '`'.$regs[1].'`.'; + $search_field = $regs[2]; + } + elseif ($filter_type == 'where') { + $table_name = '`'.$object->TableName.'`.'; + } + + $table_name = ($filter_type == 'where') ? $table_name : ''; + // get field clause by formatter name and/or parameters $formatter = getArrayValue($object->Fields[$search_field],'formatter'); switch($formatter)