Explorar el Código

Fixed issues with the search form and context and page args... not finished

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@911 a333f486-631f-4898-b8df-5754b55c2be0
romainq hace 14 años
padre
commit
88b5b212cf
Se han modificado 2 ficheros con 21 adiciones y 3 borrados
  1. 8 1
      application/cmdbabstract.class.inc.php
  2. 13 2
      application/displayblock.class.inc.php

+ 8 - 1
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;
+		}
 	}
 }
 ?>

+ 13 - 2
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);
 					}