1<?php 2 3namespace RainLoop\Providers\Filters\Classes; 4 5class FilterCondition 6{ 7 /** 8 * @var string 9 */ 10 private $sField; 11 12 /** 13 * @var string 14 */ 15 private $sType; 16 17 /** 18 * @var string 19 */ 20 private $sValue; 21 22 /** 23 * @var string 24 */ 25 private $sValueSecond; 26 27 public function __construct() 28 { 29 $this->Clear(); 30 } 31 32 public function Clear() 33 { 34 $this->sField = \RainLoop\Providers\Filters\Enumerations\ConditionField::FROM; 35 $this->sType = \RainLoop\Providers\Filters\Enumerations\ConditionType::EQUAL_TO; 36 $this->sValue = ''; 37 $this->sValueSecond = ''; 38 } 39 40 /** 41 * @return string 42 */ 43 public function Field() 44 { 45 return $this->sField; 46 } 47 48 /** 49 * @return string 50 */ 51 public function Type() 52 { 53 return $this->sType; 54 } 55 56 /** 57 * @return string 58 */ 59 public function Value() 60 { 61 return $this->sValue; 62 } 63 64 /** 65 * @return string 66 */ 67 public function ValueSecond() 68 { 69 return $this->sValueSecond; 70 } 71 72 /** 73 * @param array $aData 74 * 75 * @return array 76 */ 77 public function FromJSON($aData) 78 { 79 if (\is_array($aData)) 80 { 81 $this->sField = isset($aData['Field']) ? $aData['Field'] : 82 \RainLoop\Providers\Filters\Enumerations\ConditionField::FROM; 83 84 $this->sType = isset($aData['Type']) ? $aData['Type'] : 85 \RainLoop\Providers\Filters\Enumerations\ConditionType::EQUAL_TO; 86 87 $this->sValue = isset($aData['Value']) ? (string) $aData['Value'] : ''; 88 $this->sValueSecond = isset($aData['ValueSecond']) ? (string) $aData['ValueSecond'] : ''; 89 90 return true; 91 } 92 93 return false; 94 } 95 96 /** 97 * @param bool $bAjax = false 98 * 99 * @return array 100 */ 101 public function ToSimpleJSON($bAjax = false) 102 { 103 return array( 104 'Field' => $this->Field(), 105 'Type' => $this->Type(), 106 'Value' => $this->Value(), 107 'ValueSecond' => $this->ValueSecond() 108 ); 109 } 110 111 /** 112 * @return array 113 */ 114 public static function CollectionFromJSON($aCollection) 115 { 116 $aResult = array(); 117 if (\is_array($aCollection) && 0 < \count($aCollection)) 118 { 119 foreach ($aCollection as $aItem) 120 { 121 if (\is_array($aItem) && 0 < \count($aItem)) 122 { 123 $oItem = new \RainLoop\Providers\Filters\Classes\FilterCondition(); 124 if ($oItem->FromJSON($aItem)) 125 { 126 $aResult[] = $oItem; 127 } 128 } 129 } 130 } 131 132 return $aResult; 133 } 134} 135