Microweber\Providers\FieldsManager::make_default PHP Метод

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

public make_default ( $rel, $rel_id, $fields_csv_str )
    public function make_default($rel, $rel_id, $fields_csv_str)
    {
        global $_mw_made_default_fields_register;
        if (!defined('SKIP_CF_ADMIN_CHECK')) {
            define('SKIP_CF_ADMIN_CHECK', 1);
        }
        // return false;
        $id = $this->app->user_manager->is_admin();
        if ($id == false) {
            //return false;
        }
        $function_cache_id = false;
        $args = func_get_args();
        foreach ($args as $k => $v) {
            $function_cache_id = $function_cache_id . serialize($k) . serialize($v);
        }
        $function_cache_id = 'fields_' . __FUNCTION__ . crc32($function_cache_id);
        //$is_made = $this->app->option_manager->get($function_cache_id, 'make_default_custom_fields');
        $make_field = array();
        $make_field['rel_type'] = $rel;
        $make_field['rel_id'] = $rel_id;
        $is_made = $this->get_all($make_field);
        if (isset($_mw_made_default_fields_register[$function_cache_id])) {
            return;
        }
        if (is_array($is_made) and !empty($is_made)) {
            return;
        }
        $_mw_made_default_fields_register[$function_cache_id] = true;
        $table_custom_field = $this->table;
        if (isset($rel)) {
            $rel = $this->app->database_manager->escape_string($rel);
            $rel = $this->app->database_manager->assoc_table_name($rel);
            $rel_id = $this->app->database_manager->escape_string($rel_id);
            if (strstr($fields_csv_str, ',')) {
                $fields_csv_str = explode(',', $fields_csv_str);
                $fields_csv_str = array_trim($fields_csv_str);
            } else {
                $fields_csv_str = array($fields_csv_str);
            }
            $pos = 0;
            if (is_array($fields_csv_str)) {
                foreach ($fields_csv_str as $field_type) {
                    $ex = array();
                    $ex['type'] = $field_type;
                    $ex['rel_type'] = $rel;
                    $ex['rel_id'] = $rel_id;
                    $ex = $this->get_all($ex);
                    if ($ex == false or is_array($ex) == false) {
                        $make_field = array();
                        $make_field['rel_type'] = $rel;
                        $make_field['rel_id'] = $rel_id;
                        $make_field['position'] = $pos;
                        $make_field['name'] = ucfirst($field_type);
                        $make_field['value'] = '';
                        $make_field['type'] = $field_type;
                        $this->save($make_field);
                        ++$pos;
                    }
                }
                if ($pos > 0) {
                    $this->app->cache_manager->delete('custom_fields/global');
                }
            }
        }
    }