Advanced Search

SVN:b1162[5403]
This commit is contained in:
Eric Espié
2018-03-09 13:42:19 +00:00
parent 767507d195
commit 7d95c02b57
7 changed files with 52 additions and 24 deletions

View File

@@ -50,37 +50,60 @@ class CriterionToOQL extends CriterionConversionAbstract
self::OP_ENDS_WITH => 'EndsWithToOql',
self::OP_EMPTY => 'EmptyToOql',
self::OP_NOT_EMPTY => 'NotEmptyToOql',
self::OP_ALL => 'AllToOql',
);
if (array_key_exists($sOperator, $aMappedOperators))
{
$sFct = $aMappedOperators[$sOperator];
return self::$sFct($sRef, $sOperator, $aCriteria['values']);
return self::$sFct($sRef, $sOperator, self::GetValues($aCriteria));
}
$sValue = $aCriteria['values'][0]['value'];
$sValue = self::GetValue(self::GetValues($aCriteria), 0);
return "({$sRef} {$sOperator} '{$sValue}')";
}
private static function GetValues($aCriteria)
{
if (!array_key_exists('values', $aCriteria))
{
return array();
}
return $aCriteria['values'];
}
private static function GetValue($aValues, $iIndex)
{
if (!array_key_exists($iIndex, $aValues))
{
return null;
}
if (!array_key_exists('value', $aValues[$iIndex]))
{
return null;
}
return $aValues[$iIndex]['value'];
}
protected static function ContainsToOql($sRef, $sOperator, $aValues)
{
$sValue = $aValues[0]['value'];
$sValue = self::GetValue($aValues, 0);
return "({$sRef} LIKE '%{$sValue}%')";
}
protected static function StartsWithToOql($sRef, $sOperator, $aValues)
{
$sValue = $aValues[0]['value'];
$sValue = self::GetValue($aValues, 0);
return "({$sRef} LIKE '{$sValue}%')";
}
protected static function EndsWithToOql($sRef, $sOperator, $aValues)
{
$sValue = $aValues[0]['value'];
$sValue = self::GetValue($aValues, 0);
return "({$sRef} LIKE '%{$sValue}')";
}
@@ -95,4 +118,9 @@ class CriterionToOQL extends CriterionConversionAbstract
return "({$sRef} != '')";
}
protected static function AllToOql($sRef, $sOperator, $aValues)
{
return "1";
}
}