function prepare_setting()

in web/wp-content/plugins/acf-extended/includes/admin/settings.php [597:685]


    function prepare_setting($setting){
    
        $setting = wp_parse_args($setting, array(
            'label'         => '',
            'name'          => '',
            'type'          => '',
            'description'   => '',
            'category'      => '',
            'format'        => '',
            'default'       => '',
            'updated'       => '',
            'diff'          => false,
        ));
        
        $name = $setting['name'];
        $type = $setting['type'];
        
        // setting doesn't exist in default acf settings
        // probably an older version of acf
        if(!isset($this->defaults[ $name ])){
            return false;
        }
        
        $format = $setting['format'];
        $default = $this->defaults[ $name ];
        $updated = $this->updated[ $name ];
        
        $vars = array(
            'default' => $this->defaults[ $name ],
            'updated' => $this->updated[ $name ]
        );
    
        foreach($vars as $v => $var){
        
            $result = $var;
        
            if($type === 'true_false'){
            
                $result = $var ? '<span class="dashicons dashicons-saved"></span>' : '<span class="dashicons dashicons-no-alt"></span>';
            
            }elseif($type === 'text'){
            
                $result = '<span class="dashicons dashicons-no-alt"></span>';
    
                if($format === 'array' && empty($var) && $v === 'updated' && $default !== $updated){
                    $var = array('(empty)');
                }
            
                if(!empty($var)){
                
                    if(!is_array($var)){
                        $var = explode(',', $var);
                    }
                
                    foreach($var as $k => &$r){
                        if(is_array($r)){
                            $encode = json_encode($r);
                            $r = '<div class="acfe-settings-text"><code>' . $encode . '</code></div>';
                        }else{
                            
                            if(!is_numeric($k)){
                                $r = "{$k} = {$r}";
                            }
                            
                            $r = '<div class="acf-js-tooltip acfe-settings-text" title="' . $r . '"><code>' . $r . '</code></div>';
                        }
                    }
                
                    $result = implode('', $var);
                
                }
            
            }
        
            $setting[$v] = $result;
        
        }
    
        // Local Changes
        if($default !== $updated){
        
            $setting['updated'] .= '<span style="color:#888; margin-left:7px;vertical-align: 6px;font-size:11px;">(Local code)</span>';
            $setting['diff'] = true;
        
        }
        
        return $setting;
        
    }