function afterFind($type, &$data) { if (!empty($data) and is_array($data)) { $fresh_models = false; $_items = array_values($data); if ($data === $_items and !empty($_items[0][$this->alias])) { //this is a modeled data array $fresh_models = true; $this->_get_params_fields(); } $models_list = array_merge(array($this->alias), array_keys($this->hasOne), array_keys($this->belongsTo)); foreach ($data as $k => $record) { if ($fresh_models) { $models_list = array_keys($record); } foreach ($models_list as $model) { if (!empty($data[$k][$model])) { if (isset($data[$k][$model]['extras'])) { $extras = new Base64($data[$k][$model]['extras']); $data[$k][$model]['extras'] = $extras->decode(); } foreach ($this->params_fields as $params_field) { if (isset($data[$k][$model][$params_field])) { $params = new Parameter($data[$k][$model][$params_field]); $data[$k][$model][$params_field] = $params->toArray(); } } if (!in_array($model, array('TagItem', 'Tag')) and !empty($this->hasMany['TagItem']) and isset($data[$k]['Tag'])) { $tags = !is_null(Arr::getVal($data[$k]['Tag'], array('[n]', 'title'))) ? Arr::getVal($data[$k]['Tag'], array('[n]', 'title')) : array(); $data[$k][$model]['tags'] = implode(',', $tags); } } } } } }