/** * @since 1.0.0 */ public function onFieldsandfiltersPrepareElementFields($context, $item, $isNew, $state) { if ($isNew) { return true; } if ($context == 'com_fieldsandfilters.field' && isset($item->type) && $item->type == $this->_name) { if (!empty($item->values->data) && !is_object($item->values->data)) { $_data = new JRegistry($item->values->data); $_data = new JObject($_data->toObject()); $item->values = $_data; } } elseif ($context == 'com_fieldsandfilters.element') { $data = $item->get('fields', new JObject())->get('data', new JObject()); $fields = FieldsandfiltersFieldsHelper::getFieldsByTypeIDColumnFieldType($item->get('content_type_id'))->get($this->_name); if ($fields) { $fields = is_array($fields) ? $fields : array($fields); while ($field = array_shift($fields)) { $_data = $data->get($field->id, ''); if (empty($_data) || is_object($_data)) { continue; } $_data = new JRegistry($_data); $_data = new JObject($_data->toObject()); $data->set($field->id, $_data); } } } return true; }