mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
#247 Missing query argument (CSV export failing, or Emailed URL not working for lists)
SVN:trunk[758]
This commit is contained in:
@@ -507,19 +507,21 @@ class DBObjectSearch
|
|||||||
return $this->m_oSearchCondition->Render($this->m_aParams, false);
|
return $this->m_oSearchCondition->Render($this->m_aParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function serialize()
|
public function serialize($bDevelopParams = false, $aContextParams = null)
|
||||||
{
|
{
|
||||||
$sOql = $this->ToOql();
|
$sOql = $this->ToOql($bDevelopParams, $aContextParams);
|
||||||
return base64_encode($sOql);
|
return base64_encode(serialize(array($sOql, $this->m_aParams)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static public function unserialize($sValue)
|
static public function unserialize($sValue)
|
||||||
{
|
{
|
||||||
$sOql = base64_decode($sValue);
|
$aData = unserialize(base64_decode($sValue));
|
||||||
|
$sOql = $aData[0];
|
||||||
|
$aParams = $aData[1];
|
||||||
// We've tried to use gzcompress/gzuncompress, but for some specific queries
|
// We've tried to use gzcompress/gzuncompress, but for some specific queries
|
||||||
// it was not working at all (See Trac #193)
|
// it was not working at all (See Trac #193)
|
||||||
// gzuncompress was issuing a warning "data error" and the return object was null
|
// gzuncompress was issuing a warning "data error" and the return object was null
|
||||||
return self::FromOQL($sOql);
|
return self::FromOQL($sOql, $aParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SImple BUt Structured Query Languag - SubuSQL
|
// SImple BUt Structured Query Languag - SubuSQL
|
||||||
@@ -600,23 +602,28 @@ class DBObjectSearch
|
|||||||
return $aRes;
|
return $aRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function ToOQL(&$aParams = null)
|
public function ToOQL($bDevelopParams = false, $aContextParams = null)
|
||||||
{
|
{
|
||||||
// Currently unused, but could be useful later
|
// Currently unused, but could be useful later
|
||||||
$bRetrofitParams = false;
|
$bRetrofitParams = false;
|
||||||
|
|
||||||
if (is_null($aParams))
|
if ($bDevelopParams)
|
||||||
{
|
{
|
||||||
// Leave it as is, the rendering will be made with parameters in clear
|
if (is_null($aContextParams))
|
||||||
|
{
|
||||||
|
$aParams = array_merge($this->m_aParams);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$aParams = array_merge($aContextParams, $this->m_aParams);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (count($this->m_aParams) > 0)
|
// Leave it as is, the rendering will be made with parameters in clear
|
||||||
{
|
$aParams = null;
|
||||||
$aParams = array_merge($aParams, $this->m_aParams);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sSelectedClasses = implode(', ', array_keys($this->m_aSelectedClasses));
|
$sSelectedClasses = implode(', ', array_keys($this->m_aSelectedClasses));
|
||||||
$sRes = 'SELECT '.$sSelectedClasses.' FROM';
|
$sRes = 'SELECT '.$sSelectedClasses.' FROM';
|
||||||
|
|
||||||
@@ -739,14 +746,14 @@ class DBObjectSearch
|
|||||||
|
|
||||||
// Do not filter out depending on user rights
|
// Do not filter out depending on user rights
|
||||||
// In particular when we are currently in the process of evaluating the user rights...
|
// In particular when we are currently in the process of evaluating the user rights...
|
||||||
static public function FromOQL_AllData($sQuery)
|
static public function FromOQL_AllData($sQuery, $aParams = null)
|
||||||
{
|
{
|
||||||
$oRes = self::FromOQL($sQuery);
|
$oRes = self::FromOQL($sQuery, $aParams);
|
||||||
$oRes->AllowAllData();
|
$oRes->AllowAllData();
|
||||||
return $oRes;
|
return $oRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
static public function FromOQL($sQuery)
|
static public function FromOQL($sQuery, $aParams = null)
|
||||||
{
|
{
|
||||||
if (empty($sQuery)) return null;
|
if (empty($sQuery)) return null;
|
||||||
|
|
||||||
@@ -861,6 +868,11 @@ class DBObjectSearch
|
|||||||
$oResultFilter->m_oSearchCondition = $oResultFilter->OQLExpressionToCondition($sQuery, $oConditionTree, $aAliases);
|
$oResultFilter->m_oSearchCondition = $oResultFilter->OQLExpressionToCondition($sQuery, $oConditionTree, $aAliases);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!is_null($aParams))
|
||||||
|
{
|
||||||
|
$oResultFilter->m_aParams = $aParams;
|
||||||
|
}
|
||||||
|
|
||||||
if ($bOQLCacheEnabled)
|
if ($bOQLCacheEnabled)
|
||||||
{
|
{
|
||||||
self::$m_aOQLQueries[$sQuery] = clone $oResultFilter;
|
self::$m_aOQLQueries[$sQuery] = clone $oResultFilter;
|
||||||
|
|||||||
@@ -109,11 +109,11 @@ class ValueSetObjects extends ValueSetDefinition
|
|||||||
|
|
||||||
if ($this->m_bAllowAllData)
|
if ($this->m_bAllowAllData)
|
||||||
{
|
{
|
||||||
$oFilter = DBObjectSearch::FromOQL_AllData($this->m_sFilterExpr, $aArgs);
|
$oFilter = DBObjectSearch::FromOQL_AllData($this->m_sFilterExpr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$oFilter = DBObjectSearch::FromOQL($this->m_sFilterExpr, $aArgs);
|
$oFilter = DBObjectSearch::FromOQL($this->m_sFilterExpr);
|
||||||
}
|
}
|
||||||
if (!$oFilter) return false;
|
if (!$oFilter) return false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user