From ddd52554f18e45da8e2b62d60354410eafc65aba Mon Sep 17 00:00:00 2001 From: Romain Quetiez Date: Thu, 21 Oct 2010 14:28:40 +0000 Subject: [PATCH] Fixed issues with the search form and context and page args... not finished SVN:trunk[911] --- application/cmdbabstract.class.inc.php | 9 ++++++++- application/displayblock.class.inc.php | 15 +++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index e9c46abf5..e49a5a372 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -1616,7 +1616,14 @@ EOF */ public static function MapContextParam($sContextParam) { - return $sContextParam; + if ($sContextParam == 'menu') + { + return null; + } + else + { + return $sContextParam; + } } } ?> diff --git a/application/displayblock.class.inc.php b/application/displayblock.class.inc.php index 91467bd67..a620b3b67 100644 --- a/application/displayblock.class.inc.php +++ b/application/displayblock.class.inc.php @@ -325,18 +325,29 @@ class DisplayBlock $aFilterCodes = array_keys(MetaModel::GetClassFilterDefs($sClass)); foreach($oAppContext->GetNames() as $sContextParam) { - eval("\$sParamCode = $sClass::MapContextParam('$sFilterCode');"); //Map context parameter to the value/filter code depending on the class + eval("\$sParamCode = $sClass::MapContextParam('$sContextParam');"); //Map context parameter to the value/filter code depending on the class + if (!is_null($sParamCode)) + { + $sParamValue = $oAppContext->GetCurrentValue($sContextParam, null); + if (!is_null($sParamValue)) + { + $aExtraParams[$sParamCode] = $sParamValue; + } + } } foreach($aFilterCodes as $sFilterCode) { $sExternalFilterValue = utils::ReadParam($sFilterCode, ''); + $condition = null; if (isset($aExtraParams[$sFilterCode])) { $condition = $aExtraParams[$sFilterCode]; } - else if ($bDoSearch && $sExternalFilterValue != "") +// else if ($bDoSearch && $sExternalFilterValue != "") + if ($bDoSearch && $sExternalFilterValue != "") { // Search takes precedence over context params... + unset($aExtraParams[$sFilterCode]); $condition = trim($sExternalFilterValue); }