Jelajahi Sumber

Internal: query arguments could be array values, making it easier to build dynamic IN() clauses

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4006 a333f486-631f-4898-b8df-5754b55c2be0
romainq 9 tahun lalu
induk
melakukan
43d294e036
2 mengubah file dengan 10 tambahan dan 2 penghapusan
  1. 4 1
      core/metamodel.class.php
  2. 6 1
      core/oql/expression.class.inc.php

+ 4 - 1
core/metamodel.class.php

@@ -2488,7 +2488,10 @@ abstract class MetaModel
 				{
 					$aScalarArgs[$sArgName] = null;
 				}
-				// otherwise... could be an array coming from the extra params...
+				elseif (is_array($value))
+				{
+					$aScalarArgs[$sArgName] = $value;
+				}
 			}
 		}
 		// Add standard magic arguments

+ 6 - 1
core/oql/expression.class.inc.php

@@ -648,7 +648,12 @@ class VariableExpression extends UnaryExpression
 		}
 		elseif (array_key_exists($this->m_sName, $aArgs))
 		{
-			return CMDBSource::Quote($aArgs[$this->m_sName]);
+			$res = CMDBSource::Quote($aArgs[$this->m_sName]);
+			if (is_array($res))
+			{
+				$res = implode(', ', $res);
+			}
+			return $res;
 		}
 		elseif (($iPos = strpos($this->m_sName, '->')) !== false)
 		{