public function getSanitizedDynamicSearchAttributes() { $dynamicSearchAttributes = SearchUtil::getDynamicSearchAttributesFromArray(get_class($this->model), $this->getSourceData()); 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 testSanitizeDynamicSearchAttributesByDesignerTypeForSavingModelWithSanitizableItemsNestedNMultipleLevelsDeep() { $language = Yii::app()->getLanguage(); $this->assertEquals($language, 'en'); $searchModel = new AAASearchFormTestModel(new AAA()); $dynamicSearchAttributes = array(0 => array('attributeIndexOrDerivedType' => 'bbb' . FormModelUtil::RELATION_DELIMITER . 'ccc' . FormModelUtil::RELATION_DELIMITER . 'iii' . FormModelUtil::RELATION_DELIMITER . 'date__Date', 'structurePosition' => '1', 'bbb' => array('relatedModelData' => true, 'ccc' => array('relatedModelData' => true, 'iii' => array('relatedModelData' => true, 'date__Date' => array('firstDate' => '5/4/2011', 'type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER))))), 1 => array('attributeIndexOrDerivedType' => 'bbb' . FormModelUtil::RELATION_DELIMITER . 'ccc' . FormModelUtil::RELATION_DELIMITER . 'iii' . FormModelUtil::RELATION_DELIMITER . 'dateTime__DateTime', 'structurePosition' => '1', 'bbb' => array('relatedModelData' => true, 'ccc' => array('relatedModelData' => true, 'iii' => array('relatedModelData' => true, 'date__Date' => array('firstDate' => '5/7/2011', 'type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER)))))); $newArray = SearchUtil::sanitizeDynamicSearchAttributesByDesignerTypeForSavingModel($searchModel, $dynamicSearchAttributes); $compareData = array(0 => array('attributeIndexOrDerivedType' => 'bbb' . FormModelUtil::RELATION_DELIMITER . 'ccc' . FormModelUtil::RELATION_DELIMITER . 'iii' . FormModelUtil::RELATION_DELIMITER . 'date__Date', 'structurePosition' => '1', 'bbb' => array('relatedModelData' => true, 'ccc' => array('relatedModelData' => true, 'iii' => array('relatedModelData' => true, 'date__Date' => array('firstDate' => '2011-05-04', 'type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER))))), 1 => array('attributeIndexOrDerivedType' => 'bbb' . FormModelUtil::RELATION_DELIMITER . 'ccc' . FormModelUtil::RELATION_DELIMITER . 'iii' . FormModelUtil::RELATION_DELIMITER . 'dateTime__DateTime', 'structurePosition' => '1', 'bbb' => array('relatedModelData' => true, 'ccc' => array('relatedModelData' => true, 'iii' => array('relatedModelData' => true, 'date__Date' => array('firstDate' => '2011-05-07', 'type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER)))))); $this->assertEquals($compareData, $newArray); }
protected function resolveAndSanitizeDynamicSearchAttributesByPostData($postData, DynamicSearchForm $searchForm) { if (isset($postData['dynamicClauses'])) { $dynamicSearchAttributes = SearchUtil::getSearchAttributesFromSearchArray($postData['dynamicClauses']); $sanitizedDynamicSearchAttributes = SearchUtil::sanitizeDynamicSearchAttributesByDesignerTypeForSavingModel($searchForm, $dynamicSearchAttributes); $postData['dynamicClauses'] = $sanitizedDynamicSearchAttributes; } return $postData; }