public function getSanitizedDynamicSearchAttributes() { $dynamicSearchAttributes = SearchUtil::getDynamicSearchAttributesFromGetArray(get_class($this->model)); if ($dynamicSearchAttributes == null) { return array(); } return SearchUtil::sanitizeDynamicSearchAttributesByDesignerTypeForSavingModel($this->model, $dynamicSearchAttributes); }
public function getSanitizedDynamicSearchAttributes() { $searchArray = SearchUtil::getDynamicSearchAttributesFromGetArray(get_class($this->model)); if (!empty($searchArray)) { return SearchUtil::sanitizeDynamicSearchAttributesByDesignerTypeForSavingModel($this->model, $searchArray); } elseif ($this->model->dynamicClauses != null) { return $this->model->dynamicClauses; } else { return array(); } }
public function testGetDynamicSearchAttributesFromGetArray() { //Test without any dynamic search $_GET['testing'] = array('a' => null); $newArray = SearchUtil::getDynamicSearchAttributesFromGetArray('testing'); $this->assertNull($newArray); //Test with dynamic search $_GET['testing'] = array('a' => null, 'dynamicClauses' => array(array('b' => 'c')), 'dynamicStructure' => '1 and 2'); $newArray = SearchUtil::getDynamicSearchAttributesFromGetArray('testing'); $compareData = array(array('b' => 'c')); $this->assertEquals($compareData, $newArray); //Test with dynamic search and an undefined sub-array $_GET['testing'] = array('a' => null, 'dynamicClauses' => array(array('b' => 'c'), 'undefined', array('d' => 'simpleDimple')), 'dynamicStructure' => '1 and 2'); $newArray = SearchUtil::getDynamicSearchAttributesFromGetArray('testing'); $compareData = array(0 => array('b' => 'c'), 2 => array('d' => 'simpleDimple')); $this->assertEquals($compareData, $newArray); //Test with an empty value being converted to null, also tests nested empty values $_GET['testing'] = array('a' => null, 'dynamicClauses' => array(array('b' => 'c'), 'undefined', array('d' => ''), array('e' => array('f' => array('g' => ''))), array('e' => array('f' => ''))), 'dynamicStructure' => '1 and 2'); $newArray = SearchUtil::getDynamicSearchAttributesFromGetArray('testing'); $compareData = array(0 => array('b' => 'c'), 2 => array('d' => null), array('e' => array('f' => array('g' => null))), array('e' => array('f' => null))); $this->assertEquals($compareData, $newArray); $this->assertTrue($newArray[2]['d'] === null); $this->assertTrue($newArray[3]['e']['f']['g'] === null); $this->assertTrue($newArray[4]['e']['f'] === null); }