Index: kernel/db/db_event_handler.php =================================================================== --- kernel/db/db_event_handler.php (revision 16046) +++ kernel/db/db_event_handler.php (working copy) @@ -829,7 +829,7 @@ */ protected function _passListParams($event, $skip_var) { - $param_names = array_diff(Array ('page', 'per_page', 'sort_by'), Array ($skip_var)); + $param_names = array_diff(Array ('page', 'per_page', 'sort_by', 'keywords'), Array ($skip_var)); $list_helper = $this->Application->recallObject('ListHelper'); /* @var $list_helper ListHelper */ @@ -861,6 +861,12 @@ $event->SetRedirectParam('sort_by', $value); } break; + + case 'keywords': + if ( $value ) { + $event->SetRedirectParam('keywords', urlencode(kUtil::unescape($value, kUtil::ESCAPE_HTML))); + } + break; } } } Index: kernel/db/db_tag_processor.php =================================================================== --- kernel/db/db_tag_processor.php (revision 16046) +++ kernel/db/db_tag_processor.php (working copy) @@ -754,6 +754,13 @@ unset($params['per_page']); } + // process keywords + $keywords = array_key_exists('keywords', $params) ? $params['keywords'] : $this->Application->GetVar('keywords'); + + if ( $keywords ) { + $params['keywords'] = urlencode(kUtil::unescape($keywords, kUtil::ESCAPE_HTML)); + } + if (!array_key_exists('pass', $params)) { $params['pass'] = 'm,' . $prefix_special; } Index: kernel/processors/main_processor.php =================================================================== --- kernel/processors/main_processor.php (revision 16046) +++ kernel/processors/main_processor.php (working copy) @@ -412,9 +412,13 @@ } if (array_key_exists('no_html_escape', $params) && $params['no_html_escape']) { - return kUtil::unescape($ret, kUtil::ESCAPE_HTML); + $ret = kUtil::unescape($ret, kUtil::ESCAPE_HTML); } + if (getArrayValue($params, 'urlencode')) { + $ret = kUtil::escape($ret, kUtil::ESCAPE_URL); + } + return $ret; } @@ -1223,7 +1227,7 @@ function GetUrlHiddenFileds($params) { - $vars = Array ('page', 'per_page', 'sort_by'); + $vars = Array ('page', 'per_page', 'sort_by', 'keywords'); $ret = ''; if (array_key_exists('skip', $params)) {