From 908b442b264c2faec57bc3ed248332cbb49704b2 Mon Sep 17 00:00:00 2001 From: Guillaume Lajarige Date: Wed, 25 Nov 2015 11:16:30 +0000 Subject: [PATCH] Core : Added CloneWithAlias function to DBSearch class. It creates a new DBObjectSearch from a DBSearch with a new alias. SVN:trunk[3826] --- core/dbsearch.class.php | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/core/dbsearch.class.php b/core/dbsearch.class.php index 72bf2400c..a779c1268 100644 --- a/core/dbsearch.class.php +++ b/core/dbsearch.class.php @@ -135,8 +135,8 @@ abstract class DBSearch * serialize a search */ abstract public function ApplyParameters($aArgs); - - public function serialize($bDevelopParams = false, $aContextParams = null) + + public function serialize($bDevelopParams = false, $aContextParams = null) { $sOql = $this->ToOql($bDevelopParams, $aContextParams); return base64_encode(serialize(array($sOql, $this->GetInternalParams(), $this->m_aModifierProperties))); @@ -155,7 +155,23 @@ abstract class DBSearch return $oRetFilter; } - abstract public function ToOQL($bDevelopParams = false, $aContextParams = null); + /** + * Create a new DBObjectSearch from $oSearch with a new alias $sAlias + * + * Note : This has not be tested with UNION queries. + * + * @param DBSearch $oSearch + * @param string $sAlias + * @return DBObjectSearch + */ + static public function CloneWithAlias(DBSearch $oSearch, $sAlias) + { + $oSearchWithAlias = new DBObjectSearch($oSearch->GetClass(), $sAlias); + $oSearchWithAlias = $oSearchWithAlias->Intersect($oSearch); + return $oSearchWithAlias; + } + + abstract public function ToOQL($bDevelopParams = false, $aContextParams = null); static protected $m_aOQLQueries = array();