public function save($data) { if (!is_array($data)) { $data = parse_params($data); } if (!isset($data['id'])) { if (!isset($data['field_name'])) { return array('error' => "You must set 'field' parameter"); } if (!isset($data['field_value'])) { return array('error' => "You must set 'value' parameter"); } } if (!isset($data['rel_type']) and isset($data['content_id'])) { $data['rel_type'] = 'content'; $data['rel_id'] = $data['content_id']; } if (isset($data['field_name']) and isset($data['rel_id']) and isset($data['rel_type'])) { $is_existing_data = array(); $is_existing_data['field_name'] = $data['field_name']; $is_existing_data['rel_id'] = $data['rel_id']; $is_existing_data['rel_type'] = $data['rel_type']; $is_existing_data['one'] = true; $is_existing = $this->get($is_existing_data); if (is_array($is_existing) and isset($is_existing['id'])) { $data['id'] = $is_existing['id']; } } if (isset($data['content_id'])) { $data['rel_id'] = intval($data['content_id']); } if (isset($data['field_value']) and is_array($data['field_value'])) { $data['field_value'] = json_encode($data['field_value']); } if (!isset($data['rel_type'])) { $data['rel_type'] = 'content'; } if (isset($data['rel_type']) and $data['rel_type'] == 'content') { if (isset($data['rel_id'])) { $data['content_id'] = $data['rel_id']; } } $save = parent::save($data); return $save; }