Microweber\Traits\ExtendedSave::extended_save_custom_fields PHP Метод

extended_save_custom_fields() публичный Метод

public extended_save_custom_fields ( $params )
    public function extended_save_custom_fields($params)
    {
        if ($this->extended_save_has_permission()) {
            event_trigger('mw.database.extended_save_custom_fields', $params);
            $data_to_save = $params;
            if (isset($data_to_save['custom_fields'])) {
                $custom_fields = $data_to_save['custom_fields'];
                if (is_array($custom_fields) and !empty($custom_fields)) {
                    foreach ($custom_fields as $k => $v) {
                        $save_cat_item = array();
                        $save_cat_item['rel_type'] = $data_to_save['table'];
                        $save_cat_item['rel_id'] = $data_to_save['id'];
                        if (isset($v['name']) and !isset($v['type'])) {
                            if ($v['name'] == 'price') {
                                $v['type'] = 'price';
                            }
                        }
                        if (isset($v['type'])) {
                            $save_cat_item['type'] = $v['type'];
                            if (isset($v['name'])) {
                                $save_cat_item['name'] = $v['name'];
                            }
                            $check = $save_cat_item;
                            $check['single'] = true;
                            $check = $this->app->fields_manager->get_all($check);
                            if (isset($check['id'])) {
                                $save_cat_item['id'] = $check['id'];
                            }
                            $save_cat_item = array_merge($save_cat_item, $v);
                            $save_field = $this->app->fields_manager->save($save_cat_item);
                        }
                    }
                }
            }
        }
    }