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;
 }