WordPress.org

Plugin Directory

Changeset 620797


Ignore:
Timestamp:
11/03/12 23:29:12 (18 months ago)
Author:
eskapism
Message:

version 1.1

Location:
simple-fields
Files:
8 added
7 edited
15 copied

Legend:

Unmodified
Added
Removed
  • simple-fields/tags/1.1/class_simple_fields_field.php

    r614081 r620797  
    4545    function edit_output($saved_value, $options) { 
    4646        return "<p>Please add method " . __METHOD__ . "().</p>"; 
     47    } 
     48 
     49    /** 
     50     * Called when saving fields, i.e. when clicking the Publish-button on a edit post screen 
     51     * Was is returned from this method will be what is saved in the database, 
     52     * so this is the place to change from array (the default) to for example a single string value 
     53     * that is good for sorting. 
     54     *  
     55     * Override this in the fields class to modify the value being saved. 
     56     * 
     57     * @param array $values The values that we receive from the post screen.  
     58     *                      It's the same names as the ones that has been added with $this->get_options_name() 
     59     * @return mixed, array or string of values to save in db 
     60     */ 
     61    function edit_save($values = NULL) { 
     62        return $values; 
    4763    } 
    4864     
  • simple-fields/tags/1.1/field_types/field_date_v2.php

    r618615 r620797  
    1010    class simple_fields_field_date_v2 extends simple_fields_field { 
    1111     
    12         public $key = "date_v2", $name = "Date v2"; 
     12        public $key = "date_v2", $name = "Date & Time Picker"; 
    1313         
    1414        function __construct() { 
     15 
    1516            parent::__construct(); 
    1617             
    17             // add some styling in the admin head 
    18             add_action('admin_head', array($this, 'action_admin_head')); 
     18            add_action('simple_fields_admin_head', array($this, 'action_admin_head'));     
     19            add_action('simple_fields_enqueue_scripts', array($this, 'enqueue_scripts')); 
     20 
     21        } 
     22 
     23        /** 
     24         * Load scripts and styles 
     25         */ 
     26        function enqueue_scripts() { 
     27            // https://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css 
     28 
     29            // Load jquery styles using method found here: 
     30            // http://snippets.webaware.com.au/snippets/load-a-nice-jquery-ui-theme-in-wordpress/ 
     31            global $wp_scripts; 
     32            wp_enqueue_script('jquery-ui-datepicker'); 
     33            $ui = $wp_scripts->query('jquery-ui-core'); 
     34            $url = "https://ajax.aspnetcdn.com/ajax/jquery.ui/{$ui->ver}/themes/smoothness/jquery.ui.all.css"; 
     35            wp_enqueue_style('jquery-ui-smoothness', $url, false, $ui->ver); 
     36 
     37            wp_enqueue_script("jquery-ui-datepicker"); 
     38 
     39            // Language files 
     40            $url = "https://ajax.aspnetcdn.com/ajax/jquery.ui/{$ui->ver}/i18n/jquery-ui-i18n.min.js"; 
     41            wp_enqueue_script('jquery-ui-18n', $url, false, $ui->ver); 
     42 
     43            // Timepicker 
     44            wp_enqueue_script("jquery-timepicker", SIMPLE_FIELDS_URL . "js/jquery-ui-timepicker-addon.js", array("jquery-ui-datepicker")); 
     45            wp_enqueue_style("jquery-timepicker", SIMPLE_FIELDS_URL . "js/jquery-ui-timepicker-addon.css", array("jquery-ui-smoothness")); 
     46 
    1947        } 
    2048         
     
    2553            ?> 
    2654            <style> 
     55                .simple-fields-fieldgroups-field-type-date_v2-gui-date { 
     56                    width: 10em; 
     57                } 
    2758            </style> 
    2859            <?php 
    2960        } 
    3061         
     62 
     63 
    3164        /** 
    3265         * Output options for the date field 
     
    4376            $out = ""; 
    4477 
     78            // Type: date & time, only date, only time 
     79            $out .= sprintf(' 
     80                <div class="simple-fields-field-group-one-field-row"> 
     81                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     82                        <p> 
     83                            <label>%1$s</label> 
     84                        </p> 
     85                    </div> 
     86                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     87                        <p> 
     88                            <select name="%2$s"> 
     89                                <option value="date" %6$s> 
     90                                    %3$s 
     91                                </option> 
     92                                <option value="time" %7$s> 
     93                                    %4$s 
     94                                </option> 
     95                                <option value="datetime" %8$s> 
     96                                    %5$s 
     97                                </option> 
     98                            </select> 
     99                        </p> 
     100                    </div> 
     101                </div> 
     102                ', 
     103                _x("Show picker as", "Date v2 field type", "simple-fields"), 
     104                $this->get_options_name("show_as"),  
     105                _x("Only Date", "Date v2 field type", "simple-fields"), // 3 
     106                _x("Only Time", "Date v2 field type", "simple-fields"),     // 4 
     107                _x("Both Date & Time", "Date v2 field type", "simple-fields"),  // 5 
     108                isset($existing_vals["show_as"]) && $existing_vals["show_as"] == "date" ? " selected " : "",    // 6 
     109                isset($existing_vals["show_as"]) && $existing_vals["show_as"] == "time" ? " selected " : "",    // 7 
     110                isset($existing_vals["show_as"]) && $existing_vals["show_as"] == "datetime" ? " selected " : ""     // 8 
     111            ); 
     112 
    45113            // Show on click or always 
    46114            $out .= sprintf(' 
    47                 <div class="simple-fields-field-group-one-field-row-col-first"> 
    48                     <p> 
    49                         <label>%1$s</label> 
    50                     </p> 
    51                 </div> 
    52                 <div class="simple-fields-field-group-one-field-row-col-second"> 
    53                     <p> 
    54                         <label> 
    55                             <input type="radio" name="%2$s" value="always" %5$s> 
    56                             %3$s 
    57                         </label> 
    58                         <label> 
    59                             <input type="radio" name="%2$s" value="on_click" %6$s> 
    60                             %4$s 
    61                         </label> 
    62                     </p> 
     115                <div class="simple-fields-field-group-one-field-row"> 
     116                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     117                        <p> 
     118                            <label>%1$s</label> 
     119                        </p> 
     120                    </div> 
     121                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     122                        <p> 
     123                            <label> 
     124                                <input type="radio" name="%2$s" value="always" %5$s> 
     125                                %3$s 
     126                            </label> 
     127                            <label> 
     128                                <input type="radio" name="%2$s" value="on_click" %6$s> 
     129                                %4$s 
     130                            </label> 
     131                        </p> 
     132                    </div> 
    63133                </div> 
    64134                ', 
     
    67137                _x("Always", "Date v2 field type", "simple-fields"),    // 3 
    68138                _x("On click", "Date v2 field type", "simple-fields"),  // 4 
    69                 isset($existing_vals["show"]) && $existing_vals["show"] == "always" ? " checked " : "",     // 5 
     139                ( (isset($existing_vals["show"]) && $existing_vals["show"] == "always") || !isset($existing_vals["show"]) ) ? " checked " : "",     // 5 
    70140                isset($existing_vals["show"]) && $existing_vals["show"] == "on_click" ? " checked " : ""    // 6 
    71141            ); 
    72142 
    73             // Show on click or always 
     143 
     144            // Default date 
     145            //  - No date 
     146            //  - Todays date 
    74147            $out .= sprintf(' 
    75                 <div class="simple-fields-field-group-one-field-row-col-first"> 
    76                     <p> 
    77                         <label>%1$s</label> 
    78                     </p> 
    79                 </div> 
    80                 <div class="simple-fields-field-group-one-field-row-col-second"> 
    81                     <p> 
    82                         <label> 
    83                             <input type="radio" name="%2$s" value="always" %5$s> 
    84                             %3$s 
    85                         </label> 
    86                         <label> 
    87                             <input type="radio" name="%2$s" value="on_click" %6$s> 
    88                             %4$s 
    89                         </label> 
    90                     </p> 
     148                <div class="simple-fields-field-group-one-field-row"> 
     149                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     150                        <p> 
     151                            <label>%1$s</label> 
     152                        </p> 
     153                    </div> 
     154                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     155                        <p> 
     156                            <label> 
     157                                <input type="radio" name="%2$s" value="today" %6$s> 
     158                                %4$s 
     159                            </label> 
     160                            <label> 
     161                                <input type="radio" name="%2$s" value="no_date" %5$s> 
     162                                %3$s 
     163                            </label> 
     164                        </p> 
     165                    </div> 
    91166                </div> 
    92167                ', 
    93                 _x("Show", "Date v2 field type", "simple-fields"), 
    94                 $this->get_options_name("show"),  
    95                 _x("Always", "Date v2 field type", "simple-fields"),    // 3 
    96                 _x("On click", "Date v2 field type", "simple-fields"),  // 4 
    97                 isset($existing_vals["show"]) && $existing_vals["show"] == "always" ? " checked " : "",     // 5 
    98                 isset($existing_vals["show"]) && $existing_vals["show"] == "on_click" ? " checked " : ""    // 6 
     168                _x("Default date", "Date v2 field type", "simple-fields"), 
     169                $this->get_options_name("default_date"),  
     170                _x("No date", "Date v2 field type", "simple-fields"),   // 3 
     171                _x("Todays date", "Date v2 field type", "simple-fields"),   // 4 
     172                ((isset($existing_vals["default_date"]) && $existing_vals["default_date"] == "no_date") || !isset($existing_vals["default_date"])) ? " checked " : "",  // 5 
     173                isset($existing_vals["default_date"]) && $existing_vals["default_date"] == "today" ? " checked " : ""   // 6 
    99174            ); 
    100175 
    101176 
     177            // Date format 
     178            // No longer, since jquery datepicker uses locale for that (which is better/smarter, I think) 
     179            // http://docs.jquery.com/UI/Datepicker/formatDate 
     180            /* 
     181            $out .= sprintf(' 
     182                <div class="simple-fields-field-group-one-field-row"> 
     183                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     184                        <p> 
     185                            <label>%1$s</label> 
     186                        </p> 
     187                    </div> 
     188                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     189                        <p> 
     190                            <select name="%2$s"> 
     191                                <option value="MM d, yy" %4$s>%3$s</option> 
     192                                <option value="yy-mm-dd" %6$s>%5$s</option> 
     193                                <option value="mm/dd/yy" %8$s>%7$s</option> 
     194                            </select> 
     195                        </p> 
     196                    </div> 
     197                </div> 
     198                ', 
     199                _x("Date format", "Date v2 field type", "simple-fields"), 
     200                $this->get_options_name("date_format"),  
     201                date("F j, Y"), // 3 - MM d, yy 
     202                isset($existing_vals["date_format"]) && $existing_vals["date_format"] == "MM d, yy" ? " selected " : "", 
     203                date("Y-m-d") . " (ISO 8601)",  // 4 - yy-mm-dd 
     204                isset($existing_vals["date_format"]) && $existing_vals["date_format"] == "yy-mm-dd" ? " selected " : "", 
     205                date("m-d-Y"), // default 11/01/2012    5 - mm/dd/yy, 
     206                isset($existing_vals["date_format"]) && $existing_vals["date_format"] == "mm/dd/yy" ? " selected " : "" 
     207            ); 
     208            */ 
     209 
    102210            return $out; 
    103211 
    104212        } 
    105213         
     214        /** 
     215         * Output datepicker and timepicker on post edit screen 
     216         */ 
    106217        function edit_output($saved_values, $options) { 
     218 
     219 
     220            if (isset($saved_values[0])) { 
     221                $saved_values["saved_date_time"] = $saved_values[0]; 
     222            } else { 
     223                $saved_values["saved_date_time"] = ""; 
     224            } 
     225 
     226            // When to show: always or on_click 
     227            $str_target_elm = ""; 
     228            $showButtonPanel = "false"; 
     229            if ($options["show"] === "always") { 
     230                $str_target_elm = '<div id="%1$s"></div>'; 
     231            } elseif ("on_click" === $options["show"]) { 
     232                $str_target_elm = '<input class="%9$s" type="text" id="%1$s" name="%2$s" value="">'; 
     233                $showButtonPanel = "true"; 
     234            } 
     235 
     236            // if new field = use default date 
     237            $str_saved_unixtime = ""; 
     238            $str_set_date = ""; 
     239            $str_unixtime_to_set = ""; 
     240            if (isset($options["use_defaults"]) && $options["use_defaults"]) { 
     241                if ($options["default_date"] === "today") { 
     242                    $str_unixtime_to_set = time() * 1000; 
     243                    $str_iso_to_set = date("Y-m-d H:i"); 
     244                } elseif ($options["default_date"] === "no_date") { 
     245                     
     246                } 
     247            } else { 
     248                $str_saved_unixtime = $saved_values["saved_date_time"]; 
     249                // convert saved values to unixtime 
     250                // echo "Saved value: $str_saved_unixtime"; 
     251                if (preg_match('!^\d{2}:\d{2}$!', $str_saved_unixtime)) { 
     252                    // if only time, then make it a full date to be able to create javascript date object 
     253                    //$str_saved_unixtime = "2000-01-01 $str_saved_unixtime"; 
     254                    $str_iso_to_set = "1970-01-01 $str_saved_unixtime"; 
     255                } else { 
     256                    $str_iso_to_set = $saved_values["saved_date_time"]; 
     257                } 
     258                $str_unixtime_to_set = strtotime($str_saved_unixtime); 
     259                //sf_d( date("Y-m-d H:i", $str_unixtime_to_set) ); 
     260                //sf_d( $str_iso_to_set ); 
     261                $str_unixtime_to_set = $str_unixtime_to_set * 1000; 
     262            } 
     263 
     264            // Set Date Format 
     265            $str_date_format = "ISO_8601"; 
     266            if (isset($options["date_format"])) $str_date_format = $options["date_format"]; 
     267            // echo "date_format:";sf_d($str_date_format); 
     268 
     269            // First day. 0 = sunday, 1 = monday 
     270            // Use same as in wordpress 
     271            // $str_first_day = get_option("start_of_week", 1); 
     272 
     273            // Type to show 
     274            // name of method to use/call. 
     275            $method_name = "datepicker"; 
     276            $altFieldTimeOnly = "false"; 
     277            $show_as = $options["show_as"]; 
     278            $alt_format = "yy-mm-dd"; 
     279            if ("datetime" === $show_as) { 
     280                $method_name = "datetimepicker"; 
     281            } else if ("time" === $show_as) { 
     282                $method_name = "timepicker"; 
     283                // $altFieldTimeOnly = "true"; 
     284                $altFieldTimeOnly = "false"; 
     285                $alt_format = " "; 
     286            } 
     287 
     288            $locale = substr(get_locale(), 0, 2); 
     289            // $locale = "sv"; 
     290 
     291            if ($str_unixtime_to_set) { 
     292                // If saved value exists then set date to this value on load 
     293                // The display: none-thingie is added beause the date picker get shown by setDate-method 
     294                // Unsure if bug or feature, but annoying anyway. 
     295                $str_set_date = ' 
     296                    var date_saved = new Date("'.$str_iso_to_set.'"); 
     297                    $( "#%1$s" ).'.$method_name.'("setDate", date_saved); 
     298                    $( "#ui-datepicker-div" ).css("display","none"); 
     299                '; 
     300            } 
     301 
    107302            $output = sprintf( 
    108                 '<div class="%1$s"></div>', 
    109                 @$this->get_class_name($options["appearance"]) 
     303                ' 
     304                    '.$str_target_elm.' 
     305                    <input type="hidden" id="%3$s" name="%4$s" value="%6$s"> 
     306                    <script> 
     307                        jQuery(function($) { 
     308                             
     309                            // Init picker 
     310                            $( "#%1$s" ).%10$s({ 
     311                                altField: "#%3$s", 
     312                                altFormat: "%14$s", 
     313                                altTimeFormat: "HH:mm", 
     314                                altFieldTimeOnly: %12$s, // was buggy when true, overwrite org field with full date instead of just time 
     315                                showButtonPanel: %13$s, 
     316                                showWeek: true, 
     317                                dateFormat: "%7$s", 
     318                                changeYear: true, 
     319                                changeMonth: true, 
     320                                xshowOn: "both", 
     321                                autoSizeType: true 
     322                                %5$s 
     323                            }); 
     324 
     325                            // Set locale 
     326                            if (typeof jQuery.datepicker.regional["%11$s"] == "object") { 
     327                                $("#%1$s").datepicker("option", $.datepicker.regional["%11$s"]); 
     328                            } else { 
     329                                $("#%1$s").datepicker("option", $.datepicker.regional[""]); 
     330                            } 
     331 
     332                            '.$str_set_date.' 
     333                        }); 
     334                    </script> 
     335                ', 
     336                $this->get_options_id("gui_selected_date"), 
     337                $this->get_options_name("gui_selected_date"), 
     338                $this->get_options_id("saved_date_time"), 
     339                $this->get_options_name("saved_date_time"), 
     340                "", // 5 
     341                $str_saved_unixtime, // 6 
     342                $str_date_format, 
     343                "", // 8, was firstDay 
     344                $this->get_class_name("gui-date"), // 9 
     345                $method_name, // 10 
     346                $locale, // 11 
     347                $altFieldTimeOnly, // 12 
     348                $showButtonPanel, // 13 
     349                $alt_format // 14 
    110350            ); 
    111351 
    112352            return $output; 
    113353 
    114         }            
    115  
    116     } 
     354        } // end options output 
     355 
     356        /** 
     357         * Change so saved value is a single one, instead of array, so we can sort by the unixtime in wp_query etc. 
     358         * Lets go with ISO_8601 instead of unix time. Standards rule, and we can save just time too. Hooray! 
     359         * http://en.wikipedia.org/wiki/ISO_8601#General_principles  
     360         * They are sortable too = good. 
     361         * http://stackoverflow.com/questions/9576860/sort-iso-iso-8601-dates-forward-or-backwards 
     362         * http://en.wikipedia.org/wiki/Lexicographical_order 
     363         */ 
     364        function edit_save($values) { 
     365             
     366            /* 
     367                // echo "Saving these values for field:";sf_d($values); 
     368                Array 
     369                ( 
     370                    # datum 
     371                    [saved_date_time] => 1970-01-01 
     372 
     373                    # tid 
     374                    [saved_date_time] => 01:00 
     375 
     376                    # datum + tid 
     377                    [saved_date_time] => 1970-01-01 01:00 
     378                ) 
     379            */ 
     380            if ( is_array($values) && isset($values["saved_date_time"]) && !empty($values["saved_date_time"]) ) { 
     381                 
     382 
     383                // Determine format 
     384                // Bah! Format is in ISO 8601 
     385                /* 
     386                $saved_date_time = $values["saved_date_time"]; 
     387                if (preg_match('!^\d{4}-\d{2}-\d{2}$!', $saved_date_time)) { 
     388                    // echo "date"; [saved_date_time] => 1970-01-01 
     389                    // just date, so append with some time 
     390                } else if (preg_match('!^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$!', $saved_date_time)) { 
     391                    // [saved_date_time] => 1970-01-01 01:00 
     392                    // echo "date + time"; 
     393 
     394                } else if (preg_match('!^\d{2}:\d{2}$!', $saved_date_time)) { 
     395                    // [saved_date_time] => 01:00 
     396                    // time, so prefix with 1970-01-01 (I've got to append with something!) 
     397                    // echo "time"; 
     398                } 
     399                */ 
     400 
     401                // echo "<br>end"; 
     402 
     403                return trim($values["saved_date_time"]); 
     404 
     405            } else { 
     406                return ""; 
     407            } 
     408 
     409        } 
     410 
     411        /** 
     412         * Add Extended Return Values and then return the values 
     413         */ 
     414        function return_values($values, $parsed_options_for_this_field) { 
     415 
     416            // @todo: what if no value? 
     417            foreach ($values as $key => $one_value) { 
     418                 
     419                $one_value_unix = strtotime($one_value); 
     420                 
     421                // Detect full date or just time 
     422                if (preg_match('!^\d{4}-\d{2}-\d{2}$!', $one_value)) { 
     423                    // echo "date"; [saved_date_time] => 1970-01-01 
     424                    $arr_extended = array( 
     425                        "type" => "date", 
     426                        "date_unixtime" => $one_value_unix, 
     427                        "ISO_8601" => date("c", $one_value_unix), 
     428                        "RFC_2822" => date("r", $one_value_unix), 
     429                        "Y-m-d" => date("Y-m-d", $one_value_unix), 
     430                        "date_format" => date_i18n(get_option('date_format'), $one_value_unix) 
     431                    ); 
     432 
     433                } else if (preg_match('!^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$!', $one_value)) { 
     434 
     435                    // [saved_date_time] => 1970-01-01 01:00 
     436                    $arr_extended = array( 
     437                        "type" => "datetime", 
     438                        "date_unixtime" => $one_value_unix, 
     439                        "ISO_8601" => date("c", $one_value_unix), 
     440                        "RFC_2822" => date("r", $one_value_unix), 
     441                        "Y-m-d" => date("Y-m-d", $one_value_unix), 
     442                        "Y-m-d H:i" => date("Y-m-d H:i", $one_value_unix), 
     443                        "date_format" => date_i18n(get_option('date_format'), $one_value_unix), 
     444                        "date_time_format" => date_i18n(get_option('date_format') . " " . get_option('time_format'), $one_value_unix) 
     445                        // http://codex.wordpress.org/Function_Reference/date_i18n 
     446                        // echo date_i18n( $dateformatstring, $unixtimestamp, $gmt ) 
     447                    ); 
     448 
     449                } else if (preg_match('!^\d{2}:\d{2}$!', $one_value)) { 
     450                    // [saved_date_time] => 01:00 
     451                    $arr_extended = array( 
     452                        "type" => "time", 
     453                        "ISO_8601" => date("H:i", $one_value_unix), 
     454                        "time_format" => date_i18n(get_option('time_format'), $one_value_unix) 
     455                    ); 
     456 
     457                } 
     458 
     459                $values[$key] = $arr_extended; 
     460            } 
     461 
     462            return $values; 
     463 
     464        } 
     465 
     466    } // end class 
    117467 
    118468    simple_fields::register_field_type("simple_fields_field_date_v2"); 
  • simple-fields/tags/1.1/functions.php

    r618615 r620797  
    11131113 
    11141114                // If the type is among the registered_field_types then use it 
    1115                 if (isset($sf->registered_field_types[$one_field_group_field["type"]]) && isset($saved_values[0]) && is_array($saved_values[0])) { 
     1115                //if (isset($sf->registered_field_types[$one_field_group_field["type"]]) && isset($saved_values[0]) && is_array($saved_values[0])) { 
     1116                if ( isset($sf->registered_field_types[$one_field_group_field["type"]]) && isset($saved_values[0]) ) { 
    11161117 
    11171118                    // Use the custom field object to output this value, since we can't guess how the data is supposed to be used 
     
    12371238} 
    12381239 
    1239 /* 
    1240 @todo: add simple_fields_fieldgroup_values() as smart alias to  
    1241 simple_fields_get_post_group_values($post_id, $field_group_name_or_id, $use_name = true, $return_format = 1) { 
    1242 use slug and fewer args 
    1243 */ 
  • simple-fields/tags/1.1/readme.txt

    r618615 r620797  
    55Requires at least: 3.3.1 
    66Tested up to: 3.4.2 
    7 Stable tag: 1.0.6 
     7Stable tag: 1.1 
    88 
    99Add more advanced custom fields types to your edit post page. Field can be of several types, including textarea, checkbox, radio buttons, files and color picker. 
     
    164164 
    165165== Changelog == 
     166 
     167#### Version 1.1 
     168- Added: new field type "Date and Time Picker". It's a better version of the Date field. With this new field type you can choose to have a date picker, time picker, or a picker with both date and time. The saved values are stored in ISO 8601-format in the database, so they should be fine to sort posts by when using wp_query. 
     169- Addded: action "simple_fields_admin_head". Use it to add content to the head of admin pages that use simple fields, i.e. the edit post screen. This action is better than admin_head because it's only fired on pages that use simple fields, so all other admin pages will be faster since they don't have to parse any unnecessary. 
     170- Added: action "simple_fields_enqueue_scripts". Same as above, but used to enqueue scripts. 
     171- Fixed: don't output debug info when calling the_excerpt() 
     172- Changed: some GUI changes, like moving the description to below the labels on edit post screen. It became to inconsistent to have the description at different places for different field types. 
     173- Changed: only load styles and scripts on screens that use simple fields. Should speed up other parts of WordPress a little bit. 
    166174 
    167175#### Version 1.0.6 
  • simple-fields/tags/1.1/scripts.js

    r618615 r620797  
    11 
    2 jscolor.bindClass = "simple-fields-field-type-color"; 
     2 
     3 
     4 
     5if (typeof jscolor != "undefined") { 
     6    jscolor.bindClass = "simple-fields-field-type-color"; 
     7} 
     8 
    39var simple_fields_datepicker_args = { "clickInput": true }; 
    410var simple_fields_tinymce_iframes = []; 
     
    1622})(); 
    1723 
     24// Self invoking function for our JS stuff 
    1825(function($) { 
    1926 
     
    295302                 
    296303                simple_fields_metabox_tinymce_attach(); 
    297                 $response.effect("highlight", 1000); 
     304                //$response.effect("highlight", 1000); 
    298305                // add jscolor to possibly new fields 
    299306                jscolor.init(); 
     
    469476    }); 
    470477     
    471     /**  
     478    /** 
    472479     * in dialog: click on a post = update input in field group and then close dialog 
    473480     */ 
     
    492499    }); 
    493500     
    494     /**  
     501    /** 
    495502     * Field type post: link clear = clear post id and name 
    496503     */ 
     
    505512     
    506513    /** 
    507      * ondomready stuff 
     514     * ondomready 
    508515     */ 
    509516    $(function() { 
     
    615622        }); 
    616623 
    617          
    618         // attach TinyMCE to textareas 
    619         simple_fields_metabox_tinymce_attach(); 
    620          
     624             
    621625        // Media browser: make sure search and filter works by adding hidden inputs 
    622626        // would have been best to do this in PHP, but I can't find any filter for it 
     
    633637                "simple_fields_dummy": 1, 
    634638                "simple_fields_action": "select_file" 
    635             } 
     639            }; 
    636640             
    637641            var match = window.location.search.match(/simple_fields_file_field_unique_id=([\w]+)/); 
     
    645649        } 
    646650         
    647         // type date 
    648         $('input.simple-fields-field-type-date').datePicker(); 
    649      
    650          
    651      
    652          
    653     }); 
     651        if (sfstrings.page_type == "post") { 
     652     
     653            // attach TinyMCE to textareas 
     654            simple_fields_metabox_tinymce_attach(); 
     655 
     656            // type date 
     657            $('input.simple-fields-field-type-date').datePicker(); 
     658 
     659        } 
     660 
     661         
     662    }); // end domready 
    654663 
    655664 
  • simple-fields/tags/1.1/simple_fields.php

    r618615 r620797  
    44Plugin URI: http://simple-fields.com 
    55Description: Add groups of textareas, input-fields, dropdowns, radiobuttons, checkboxes and files to your edit post screen. 
    6 Version: 1.0.6 
     6Version: 1.1 
    77Author: Pär Thernström 
    88Author URI: http://eskapism.se/ 
     
    5555        define( "SIMPLE_FIELDS_URL", plugins_url(basename(dirname(__FILE__))). "/"); 
    5656        define( "SIMPLE_FIELDS_NAME", "Simple Fields"); 
    57         define( "SIMPLE_FIELDS_VERSION", "1.0.6"); 
     57        define( "SIMPLE_FIELDS_VERSION", "1.1"); 
    5858 
    5959        load_plugin_textdomain( 'simple-fields', null, basename(dirname(__FILE__)).'/languages/'); 
     
    7474        // Load field types 
    7575        require( dirname(__FILE__) . "/field_types/field_divider.php" ); 
    76         //require( dirname(__FILE__) . "/field_types/field_date_v2.php" ); 
     76        require( dirname(__FILE__) . "/field_types/field_date_v2.php" ); 
    7777 
    7878        $this->plugin_foldername_and_filename = basename(dirname(__FILE__)) . "/" . basename(__FILE__); 
     
    8282        add_action( 'admin_init', array($this, 'admin_init') ); 
    8383        add_action( 'admin_init', array($this, 'check_upgrade_stuff') ); 
     84        add_action( 'admin_enqueue_scripts', array($this, 'admin_enqueue_scripts') ); 
    8485        add_action( 'admin_menu', array($this, "admin_menu") ); 
    8586        add_action( 'admin_head', array($this, 'admin_head') ); 
     
    188189    } 
    189190 
    190     function admin_init() { 
    191  
    192         // @todo: only enqueue scripts when we need them = on a page that uses simple fields 
    193         wp_enqueue_script("jquery"); 
    194         wp_enqueue_script("jquery-ui-core"); 
    195         wp_enqueue_script("jquery-ui-sortable"); 
    196         wp_enqueue_script("jquery-ui-dialog"); 
    197         wp_enqueue_style('wp-jquery-ui-dialog'); 
    198         wp_enqueue_script("jquery-effects-highlight"); 
    199         wp_enqueue_script("thickbox"); 
    200         wp_enqueue_style("thickbox"); 
    201         wp_enqueue_script("jscolor", SIMPLE_FIELDS_URL . "jscolor/jscolor.js"); // color picker for type color 
    202         wp_enqueue_script("simple-fields-date", SIMPLE_FIELDS_URL . "datepicker/date.js"); // date picker for type date 
    203         wp_enqueue_script("jquery-datepicker", SIMPLE_FIELDS_URL . "datepicker/jquery.datePicker.js"); // date picker for type date 
    204         wp_enqueue_style('jquery-datepicker', SIMPLE_FIELDS_URL.'datepicker/datePicker.css', false, SIMPLE_FIELDS_VERSION); 
    205  
    206         wp_enqueue_style('simple-fields-styles', SIMPLE_FIELDS_URL.'styles.css', false, SIMPLE_FIELDS_VERSION); 
     191    /** 
     192     * Enqueue styles and scripts, but on on pages that use simple fields 
     193     * Should speed up the loading of other pages a bit 
     194     */ 
     195    function admin_enqueue_scripts($hook) { 
     196 
     197        // pages to load on = admin/settings page for SF + edit post 
     198        $is_on_simple_fields_page = FALSE; 
     199        $page_type = ""; 
     200 
     201        $current_screen = get_current_screen(); 
     202        #sf_d($current_screen);  
     203        #sf_d($hook); 
     204        if ($current_screen->base == "post" && in_array($current_screen->base, $this->get_post_connector_attached_types())) { 
     205            $is_on_simple_fields_page = TRUE; 
     206            $page_type = "post"; 
     207        } elseif ($current_screen->base === "media-upload") { 
     208            $is_on_simple_fields_page = TRUE; 
     209            $page_type = "media-upload"; 
     210        } elseif ($current_screen->id === "settings_page_simple-fields-options") { 
     211            $is_on_simple_fields_page = TRUE; 
     212            $page_type = "settings"; 
     213        } 
     214         
     215        if (!$is_on_simple_fields_page) return; 
     216 
     217        if ("settings" === $page_type) { 
     218 
     219            // Settings page 
     220            wp_enqueue_style('simple-fields-styles', SIMPLE_FIELDS_URL.'styles.css', false, SIMPLE_FIELDS_VERSION); 
     221 
     222 
     223        } else { 
     224 
     225            // Edit post etc. 
     226            wp_enqueue_script("jquery-ui-core"); 
     227            wp_enqueue_script("jquery-ui-sortable"); 
     228            wp_enqueue_script("jquery-ui-dialog"); 
     229            wp_enqueue_style('wp-jquery-ui-dialog'); 
     230            wp_enqueue_script("jquery-effects-highlight"); 
     231            wp_enqueue_script("thickbox"); 
     232            wp_enqueue_style("thickbox"); 
     233            wp_enqueue_script("jscolor", SIMPLE_FIELDS_URL . "jscolor/jscolor.js"); // color picker for type color 
     234            wp_enqueue_script("simple-fields-date", SIMPLE_FIELDS_URL . "datepicker/date.js"); // date picker for type date 
     235            wp_enqueue_script("sf-jquery-datepicker", SIMPLE_FIELDS_URL . "datepicker/jquery.datePicker.js"); // date picker for type date 
     236            wp_enqueue_style('sf-jquery-datepicker', SIMPLE_FIELDS_URL.'datepicker/datePicker.css', false, SIMPLE_FIELDS_VERSION); 
     237 
     238            wp_enqueue_style('simple-fields-styles-post', SIMPLE_FIELDS_URL.'styles-edit-post.css', false, SIMPLE_FIELDS_VERSION); 
     239     
     240        } 
     241 
     242        // Common scripts 
    207243        wp_register_script('simple-fields-scripts', SIMPLE_FIELDS_URL.'scripts.js', false, SIMPLE_FIELDS_VERSION); 
    208244        wp_localize_script('simple-fields-scripts', 'sfstrings', array( 
     245            'page_type' => $page_type, 
    209246            'txtDelete' => __('Delete', 'simple-fields'), 
    210247            'confirmDelete' => __('Delete this field?', 'simple-fields'), 
     
    226263        wp_enqueue_script('simple-fields-scripts'); 
    227264 
     265        // Hook for plugins 
     266        do_action("simple_fields_enqueue_scripts", $this); 
     267 
     268    } 
     269 
     270    /** 
     271     * Stuff that is being runned only when in admin (i.e. not on front of site) 
     272     */ 
     273    function admin_init() { 
     274 
    228275        define( "SIMPLE_FIELDS_FILE", menu_page_url("simple-fields-options", false) ); 
    229276 
     
    307354     */ 
    308355    function save_postdata($post_id = null, $post = null) { 
    309      
     356 
    310357        // verify this came from the our screen and with proper authorization, 
    311358        // because save_post can be triggered at other times 
     
    356403            // Save info about the fact that this post have been saved. This info is used to determine if a post should get default values or not. 
    357404            update_post_meta($post_id, "_simple_fields_been_saved", "1"); 
    358      
     405 
    359406            // Loop through each fieldgroups 
     407#sf_d($fieldgroups); 
    360408            foreach ($fieldgroups as $one_field_group_id => $one_field_group_fields) { 
    361409                 
    362410                // Loop through each field in each field group 
    363411#simple_fields::debug("one_field_group_fields", $one_field_group_fields); 
     412#sf_d($one_field_group_fields); 
    364413                foreach ($one_field_group_fields as $one_field_id => $one_field_values) { 
    365414 
     
    385434                    // save entered value for each added group 
    386435                    $num_in_set = 0; 
     436 
    387437                    foreach ($one_field_values as $one_field_value) { 
    388438                     
     
    391441 
    392442                        if (array_key_exists($field_type, $this->registered_field_types)) { 
    393                             // Custom field type                             
    394                             // @todo: callback to filter this, from fields class or hook 
    395443                             
     444                            // Custom field type     
     445                            $custom_field_value = $this->registered_field_types[$field_type]->edit_save($custom_field_value); 
     446                            /* 
     447                             
     448                            Date field: 
     449                            Array 
     450                            ( 
     451                                [date_unixtime] => 1351983600000 
     452                            ) 
     453                             
     454                            Map field: 
     455                            Array 
     456                            ( 
     457                                [lat] => 59.312089 
     458                                [lng] => 18.074117 
     459                                [name] => Monki Skrapan 
     460                                [formatted_address] => Götgatan 78, Stockholm, Sverige 
     461                                [address_components] => [{\"long_name\":\"78\",\"short_name\":\"78\",\"types\":[\"street_number\"]},{\"long_name\":\"Götgatan\",\"short_name\":\"Götgatan\",\"types\":[\"route\"]},{\"long_name\":\"Södermalm\",\"short_name\":\"Södermalm\",\"types\":[\"sublocality\",\"political\"]},{\"long_name\":\"Stockholm\",\"short_name\":\"Stockholm\",\"types\":[\"locality\",\"political\"]},{\"long_name\":\"Stockholms län\",\"short_name\":\"Stockholms län\",\"types\":[\"administrative_area_level_2\",\"political\"]},{\"long_name\":\"SE\",\"short_name\":\"SE\",\"types\":[\"country\",\"political\"]},{\"long_name\":\"11830\",\"short_name\":\"11830\",\"types\":[\"postal_code\"]}] 
     462                            ) 
     463                            */ 
     464                            //echo "xxx save value for custom field type"; sf_d($custom_field_value); 
     465 
    396466                        } else { 
    397467                            // core/legacy field type 
     
    480550                    $field_class .= " simple-fields-fieldgroups-field-slug-" . $field["slug"]; 
    481551                } 
    482      
     552                 
     553                // Fetch saved value for field from db/post meta 
     554                // Returned value is: 
     555                //  - string if core fields 
     556                //  - array if field type extension, unless the field extension overrides this 
    483557                $custom_field_key = "_simple_fields_fieldGroupID_{$field_group_id}_fieldID_{$field_id}_numInSet_{$num_in_set}"; 
    484                 $saved_value = get_post_meta($post_id, $custom_field_key, true); // empty string if does not exist 
     558                $saved_value = get_post_meta($post_id, $custom_field_key, true); 
    485559                 
    486560                $description = ""; 
     
    493567                // <div class="simple-fields-metabox-field simple-fields-fieldgroups-field-1-1 simple-fields-fieldgroups-field-type-text" data-fieldgroup_id="1" data-field_id="1" data-num_in_set="0"> 
    494568                ?> 
    495                 <div class="simple-fields-metabox-field <?php echo $field_class ?>"  
     569                <div class="simple-fields-metabox-field sf-cf <?php echo $field_class ?>"  
    496570                    data-fieldgroup_id=<?php echo $field_group_id ?> 
    497571                    data-field_id="<?php echo $field_id ?>" 
     
    516590 
    517591                        echo "<div class='simple-fields-metabox-field-first'>"; 
     592                        echo $description; 
    518593                        echo "</div>"; 
    519594                        echo "<div class='simple-fields-metabox-field-second'>"; 
    520595                        echo "<input $str_checked id='$field_unique_id' type='checkbox' name='$field_name' value='1' />"; 
    521596                        echo "<label class='simple-fields-for-checkbox' for='$field_unique_id'> " . $field["name"] . "</label>"; 
    522                         echo $description; 
    523597                        echo "</div>"; 
    524598         
     
    527601                        echo "<div class='simple-fields-metabox-field-first'>"; 
    528602                        echo "<label>" . $field["name"] . "</label>"; 
     603                        echo $description; 
    529604                        echo "</div>"; 
    530605 
     
    533608                        $radio_checked_by_default_num = @$radio_options["checked_by_default_num"]; 
    534609     
    535                         echo $description; 
    536610 
    537611                        $loopNum = 0; 
     
    564638                        echo "<div class='simple-fields-metabox-field-first'>"; 
    565639                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     640                        echo $description; 
    566641                        echo "</div>"; 
    567642 
     
    579654                        } 
    580655                        echo "</select>"; 
    581                         echo $description; 
    582656                        echo "</div>"; 
    583657     
     
    601675                        $class = ""; 
    602676                        if ($description) { 
    603                             $class = "simple-fields-metabox-field-file-with-description"; 
     677                            //$class = "simple-fields-metabox-field-file-with-description"; 
    604678                        } 
    605679                        echo "<div class='simple-fields-metabox-field-file $class'>"; 
     
    607681                            echo "<div class='simple-fields-metabox-field-first'>"; 
    608682                            echo "<label>{$field["name"]}</label>"; 
     683                            echo $description; 
     684                            //echo $description; 
    609685                            echo "</div>"; 
    610686 
     
    630706                            echo "</div>"; 
    631707 
    632                             echo $description; 
    633708 
    634709                            echo "</div>"; // second 
     
    637712     
    638713                    } elseif ("image" == $field["type"]) { 
    639      
     714                         
     715                        // @todo: does this field type exist?? 
    640716                        $text_value_esc = esc_html($saved_value); 
    641717                        echo "<label>".__('image', 'simple-fields')."</label>"; 
    642                         echo $description; 
     718                        //echo $description; 
    643719                        echo "<input class='text' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
    644720                         
     
    675751                        echo "<div class='simple-fields-metabox-field-first'>"; 
    676752                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     753                        echo $description; 
    677754                        echo "</div>"; 
    678755 
     
    705782                        } 
    706783                         
    707                         echo $description; 
    708784 
    709785                        echo "</div>"; 
     
    712788         
    713789                        $text_value_esc = esc_html($saved_value); 
     790                         
    714791                        echo "<div class='simple-fields-metabox-field-first'>"; 
    715792                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     793                        echo $description; 
    716794                        echo "</div>"; 
     795 
    717796                        echo "<div class='simple-fields-metabox-field-second'>"; 
    718797                        echo "<input class='text' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
     798                        echo "</div>"; 
     799         
     800                    } elseif ("color" == $field["type"]) { 
     801                         
     802                        $text_value_esc = esc_html($saved_value); 
     803                         
     804                        echo "<div class='simple-fields-metabox-field-first'>"; 
     805                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
    719806                        echo $description; 
    720807                        echo "</div>"; 
    721          
    722                     } elseif ("color" == $field["type"]) { 
     808                         
     809                        echo "<div class='simple-fields-metabox-field-second'>"; 
     810                        echo "<input class='text simple-fields-field-type-color {pickerClosable:true}' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
     811                        echo "</div>"; 
     812     
     813                    } elseif ("date" == $field["type"]) { 
     814     
     815                        // $datef = __( 'M j, Y @ G:i' ); // same format as in meta-boxes.php 
     816                        // echo date_i18n( $datef, strtotime( current_time('mysql') ) ); 
    723817                         
    724818                        $text_value_esc = esc_html($saved_value); 
     819                         
    725820                        echo "<div class='simple-fields-metabox-field-first'>"; 
    726821                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
    727                         echo "</div>"; 
    728                         echo "<div class='simple-fields-metabox-field-second'>"; 
    729                         echo "<input class='text simple-fields-field-type-color {pickerClosable:true}' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
    730822                        echo $description; 
    731823                        echo "</div>"; 
    732      
    733                     } elseif ("date" == $field["type"]) { 
    734      
    735                         // $datef = __( 'M j, Y @ G:i' ); // same format as in meta-boxes.php 
    736                         // echo date_i18n( $datef, strtotime( current_time('mysql') ) ); 
    737                          
    738                         $text_value_esc = esc_html($saved_value); 
    739                         echo "<div class='simple-fields-metabox-field-first'>"; 
    740                         echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
    741                         echo "</div>"; 
     824                         
    742825                        echo "<div class='simple-fields-metabox-field-second'>"; 
    743826                        echo "<input class='text simple-fields-field-type-date' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
    744                         echo $description; 
    745827                        echo "</div>"; 
    746828     
     
    756838                        echo "<div class='simple-fields-metabox-field-first'>"; 
    757839                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     840                        echo $description; 
    758841                        echo "</div>"; 
    759842 
     
    771854                        echo "</select>"; 
    772855 
    773                         echo $description; 
    774856 
    775857                        echo "</div>"; 
     
    785867                        echo "<div class='simple-fields-metabox-field-first'>"; 
    786868                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     869                        echo $description; 
    787870                        echo "</div>"; 
    788871 
    789872                        echo "<div class='simple-fields-metabox-field-second'>"; 
    790873     
    791                         echo $description; 
    792874 
    793875                        $arr_selected_cats = (array) $saved_value; 
     
    826908 
    827909                        echo "<div class='simple-fields-metabox-field-first'>"; 
    828  
    829910                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     911                        echo $description; 
    830912                        echo "</div>"; 
    831913 
     
    849931                        echo "<input type='hidden' name='additional_arguments' id='additional_arguments' value='".$type_post_options['additional_arguments']."' />"; 
    850932                         
    851                         echo $description; 
    852933 
    853934                        echo "</div>"; 
     
    863944                        echo "<div class='simple-fields-metabox-field-first'>"; 
    864945                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     946                        echo $description; 
    865947                        echo "</div>"; 
    866948 
     
    896978                        echo "</select>"; 
    897979 
    898                         echo $description; 
    899980                         
    900981                        echo "</div>"; 
     
    916997 
    917998                            // Always output label and description, for consistency 
     999                            echo "<div class='simple-fields-metabox-field-first'>"; 
    9181000                            echo "<label>" . $field["name"] . "</label>"; 
    9191001                            echo $description; 
     1002                            echo "</div>"; 
    9201003                             
     1004                            echo "<div class='simple-fields-metabox-field-second'>"; 
     1005 
     1006                            // if use_defaults is set then pass that arg to custom field types too 
     1007                            if ($use_defaults) $custom_field_type_options["use_defaults"] = $use_defaults; 
     1008 
    9211009                            // Get and output the edit-output from the field type 
    922                             echo $custom_field_type->edit_output( (array) $saved_value, $custom_field_type_options); 
     1010                            // Return as array if field type has not specified other 
     1011                            // xxx 
     1012                            $custom_field_type_saved_value = $saved_value; 
     1013                            #echo "saved value"; sf_d($custom_field_type_saved_value); 
     1014                            // always return array, or just sometimes? 
     1015                            // if a field has saved a value as a single value it will be returned as the value at position [0] 
     1016                            $custom_field_type_saved_value = (array) $custom_field_type_saved_value; 
     1017                            echo $custom_field_type->edit_output($custom_field_type_saved_value, $custom_field_type_options); 
     1018 
     1019                            echo "</div>"; 
    9231020 
    9241021                        } 
     
    9521049     */ 
    9531050    function admin_head() { 
    954      
     1051 
     1052        // Only run code if on a SF page 
     1053        $current_screen = get_current_screen(); 
     1054        if ($current_screen->base == "post" && in_array($current_screen->base, $this->get_post_connector_attached_types())) { 
     1055            $is_on_simple_fields_page = TRUE; 
     1056            $page_type = "post"; 
     1057        } 
     1058        if (!is_on_simple_fields_page) return; 
     1059 
    9551060        // Add meta box to post 
    9561061        global $post, $sf; 
    9571062     
     1063        // Tell pluings etc that they can output stuff now 
     1064        do_action("simple_fields_admin_head", $this); 
     1065 
    9581066        if ($post) { 
    9591067     
     
    22792387     
    22802388            <div class="clear"></div> 
    2281      
     2389             
     2390            <!--  
    22822391            <div class="simple-fields-bonny-plugins-inner-sidebar"> 
    22832392                <h3>Keep this plugin alive</h3> 
     
    22932402                                         
    22942403            </div> 
     2404            --> 
    22952405     
    22962406        <div class="simple-fields-settings-wrap"> 
     
    30933203     */ 
    30943204    function maybe_add_debug_info() { 
     3205 
    30953206        global $sf; 
    30963207        $options = $sf->get_options(); 
     
    30993210            // 1 = debug for admins only, 2 = debug for all 
    31003211            if ( ($options["debug_type"] === 1 && current_user_can("edit_themes")) ||  $options["debug_type"] === 2) { 
    3101                  
     3212 
    31023213                // enqueu jquery because that is used to show/hide the debug box 
    31033214                wp_enqueue_script("jquery"); 
     
    31083219     
    31093220        } 
    3110     } 
    3111      
    3112     // Outputs the names of the post connectors attached to the post you view + outputs the values 
     3221 
     3222    } 
     3223     
     3224    /**  
     3225     * Outputs the names of the post connectors attached to the post you view + outputs the values 
     3226     */ 
    31133227    function simple_fields_content_debug_output($the_content) { 
     3228 
     3229        // we only want to appen the debug code when being used from get_the_content or the_content 
     3230        // but for example get_the_excerpt is also using filter the_content which leads to problems 
     3231        // so check that we are somewhere inside the right functions 
     3232        $is_inside_righ_function = FALSE; 
     3233        $arr_trace = debug_backtrace(); 
     3234        $arr_trace_count = count($arr_trace); 
     3235 
     3236        for ($i = 0; $i < $arr_trace_count; $i++) { 
     3237            if ( isset($arr_trace[$i]["function"]) && in_array($arr_trace[$i]["function"], array("the_content", "get_the_content"))) { 
     3238                $is_inside_righ_function = TRUE; 
     3239                break; 
     3240            } 
     3241        } 
     3242 
     3243        if (!$is_inside_righ_function) { 
     3244 
     3245            // Don't do the debug, since we're not in the_content 
     3246            return $the_content; 
     3247 
     3248        } 
     3249 
    31143250         
    31153251        $output = ""; 
  • simple-fields/tags/1.1/styles.css

    r617428 r620797  
     1/** 
     2 * Styles used in Simple Fields Admin 
     3 */ 
     4 
     5.sf-cf:before, .sf-cf:after { content:""; display:table; } 
     6.sf-cf:after { clear:both; } 
     7.sf-cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */ 
     8 
     9.sf_box_debug { 
     10    padding: .5em; 
     11    background-color: lightyellow; 
     12} 
     13 
    114ul.simple-fields-edit-field-groups-added-fields { 
    2     /*border-top: 1px solid #DFDFDF;*/ 
    3     /*padding-top: 2em;*/ 
    415    margin-top: 0; 
    516    position: relative; 
    617} 
    7 ul.simple-fields-edit-field-groups-added-fields li { 
    8     position: relative; 
    9     padding: 1em 2em; 
    10     margin: 0; 
    11     background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(white)); 
    12     background-image: -webkit-linear-gradient(top, whiteSmoke, white); 
    13     background-image:    -moz-linear-gradient(top, whiteSmoke, white); 
    14     background-image:     -ms-linear-gradient(top, whiteSmoke, white); 
    15     background-image:      -o-linear-gradient(top, whiteSmoke, white); 
    16     border-top: 2px solid #eee; 
    17     margin-bottom: 2em; 
    18 } 
    19 ul.simple-fields-edit-field-groups-added-fields li li { 
    20     background-image: none; 
    21 } 
     18    ul.simple-fields-edit-field-groups-added-fields li { 
     19        position: relative; 
     20        padding: 1em 2em; 
     21        margin: 0; 
     22        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(#fcfcfc)); 
     23        background-image: -webkit-linear-gradient(top, whiteSmoke, #fcfcfc); 
     24        background-image:    -moz-linear-gradient(top, whiteSmoke, #fcfcfc); 
     25        background-image:     -ms-linear-gradient(top, whiteSmoke, #fcfcfc); 
     26        background-image:      -o-linear-gradient(top, whiteSmoke, #fcfcfc); 
     27        border-top: 2px solid #eee; 
     28        margin-bottom: 2em; 
     29    } 
     30    ul.simple-fields-edit-field-groups-added-fields li li { 
     31        background-image: none; 
     32    } 
    2233 
    2334 
     
    3647.simple-fields-field-group-one-field-row { 
    3748    margin-bottom: .75em; 
    38     /*overflow: auto;*/ 
    3949} 
    4050 
     
    5868 
    5969.simple-fields-field-group-one-field-row-col-first { 
    60     /* background-color: rgba(255, 0, 0, .1); */ 
    6170    padding-right: 4em; 
    6271} 
    6372.simple-fields-field-group-one-field-row-col-second { 
    64     /* background-color: rgba(0, 255, 0, .1); */ 
    6573    width: 80%; 
    6674} 
     
    7179} 
    7280#simple-fields-field-group-existing-fields .description { 
    73     margin-left: 12.5em; 
     81    /*margin-left: 12.5em;*/ 
     82    margin-left: 16%; 
    7483} 
    7584 
     
    103112} 
    104113 
    105 .simple-fields-field-group-one-field-row-description { 
    106 } 
    107  
    108 .simple-fields-field-group-one-field-row p input[type=text], 
    109 .simple-fields-field-group-one-field-row p textarea 
    110 { 
    111     /*width: 100%;*/ 
    112 } 
    113114.simple-fields-field-group-one-field-row p textarea { 
    114115    height: 8em; 
    115116} 
    116117 
     118/* @todo: these just a tad to un-specific... */ 
    117119div.delete a { 
    118120    color: #BC0B0B; 
     
    154156     margin-top: 2em; 
    155157} 
    156 .simple-fields-edit-post-connectors { 
    157 } 
    158 .simple-fields-edit-field-groups { 
    159 } 
    160158 
    161159.simple-fields-edit-field-groups ul, 
     
    184182.simple-fields-field-type-options-dropdown-handle, 
    185183.simple-fields-post-connector-addded-fields-handle, 
    186 .simple-fields-field-group-one-field-handle, 
    187 .simple-fields-metabox-field-group-handle 
     184.simple-fields-field-group-one-field-handle 
    188185 { 
    189186    width: 16px; 
     
    234231ul#simple-fields-post-connector-added-fields li { 
    235232    margin-bottom: 2em; 
    236     background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(white)); 
    237     background-image: -webkit-linear-gradient(top, whiteSmoke, white); 
    238     background-image:    -moz-linear-gradient(top, whiteSmoke, white); 
    239     background-image:     -ms-linear-gradient(top, whiteSmoke, white); 
    240     background-image:      -o-linear-gradient(top, whiteSmoke, white); 
     233    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(#fcfcfc)); 
     234    background-image: -webkit-linear-gradient(top, whiteSmoke, #fcfcfc); 
     235    background-image:    -moz-linear-gradient(top, whiteSmoke, #fcfcfc); 
     236    background-image:     -ms-linear-gradient(top, whiteSmoke, #fcfcfc); 
     237    background-image:      -o-linear-gradient(top, whiteSmoke, #fcfcfc); 
    241238    border-top: 2px solid #eee; 
    242239} 
     
    251248} 
    252249 
    253 .simple-fields-post-type-defaults, 
    254 .simple-fields-edit-post-connectors 
    255  { 
    256      
    257 } 
    258250 
    259251#simple-fields-post-edit-side-field-settings-select-connector-please-save { 
     
    261253} 
    262254 
    263  
    264 .simple-fields-metabox-field, 
    265 .simple-fields-metabox-field-add 
    266  { 
    267     margin-top: 1em; 
    268     margin-bottom: 1em; 
    269     margin-right: 11px; 
    270 } 
    271  
    272 .simple-fields-metabox-field-add-bottom { 
    273     display: none; 
    274 } 
    275 .simple-fields-meta-box-field-group-wrapper-has-fields-added .simple-fields-metabox-field-add-bottom { 
    276     display: block; 
    277 } 
    278  
    279 .simple-fields-metabox-field label { 
    280     /*font-weight: bold; 
    281     display: block;*/ 
    282 } 
    283 .simple-fields-metabox-field .simple-fields-for-radiobutton, 
    284 .simple-fields-metabox-field .simple-fields-for-checkbox { 
    285     display: inline; 
    286     font-weight: normal; 
    287 } 
    288 .simple-fields-metabox-field-radiobutton { 
    289     display: block; 
    290     margin-top: .5em; 
    291     margin-bottom: .5em; 
    292 } 
    293 ul.simple-fields-metabox-field-group-fields li { 
    294     position: relative; 
    295 } 
    296  
    297 ul.simple-fields-metabox-field-group-fields-repeatable li { 
    298     margin-top: 1em; 
    299     padding-top: .5em; 
    300     padding-bottom: .5em; 
    301     padding-left: 11px; 
    302     background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(white)); 
    303     background-image: -webkit-linear-gradient(top, whiteSmoke, white); 
    304     background-image:    -moz-linear-gradient(top, whiteSmoke, white); 
    305     background-image:     -ms-linear-gradient(top, whiteSmoke, white); 
    306     background-image:      -o-linear-gradient(top, whiteSmoke, white); 
    307     border-top: 2px solid #eee; 
    308     padding: .5em 1.5em; 
    309     margin: 0 0 0 0; 
    310 } 
    311 ul.simple-fields-metabox-field-group-fields-repeatable li.hover { 
    312     background-color: #fffcf1; 
    313 } 
    314 ul.simple-fields-metabox-field-group-fields-repeatable li.active { 
    315     background-color: #fff7db; 
    316 } 
    317  
    318 .simple-fields-metabox-field-group-handle { 
    319     display: none; 
    320 } 
    321 .simple-fields-metabox-field-group-fields-repeatable .simple-fields-metabox-field-group-handle { 
    322     display: block; 
    323     margin-left: -16px; 
    324     margin-top: 10px; 
    325     opacity: 0; 
    326 } 
    327  
    328 .simple-fields-metabox-field-group:hover .simple-fields-metabox-field-group-handle { 
    329     opacity: 1; 
    330 } 
    331  
    332 .simple-fields-metabox-field-group input.text { 
    333     border: 1px solid #dfdfdf; 
    334     -moz-border-radius: 4px; 
    335     -webkit-border-radius: 4px; 
    336     border-radius: 4px; 
    337 } 
    338 .simple-fields-metabox-field-group input.text, 
    339 .simple-fields-metabox-field-group textarea 
    340 { 
    341     width: 95%; 
    342 } 
    343  
    344 .simple-fields-metabox-field-group input.simple-fields-field-type-color, 
    345 .simple-fields-metabox-field-group input.simple-fields-field-type-date 
    346  { 
    347     width: 6em; 
    348 } 
    349  
    350 .simple-fields-metabox-field-textarea-tinymce-wrapper { 
    351     width: 100%; 
    352 } 
    353 .simple-fields-metabox-field-textarea-tinymce-wrapper .mce_fullscreen { 
    354     display: none !important; 
    355 } 
    356  
    357 .simple-fields-metabox-field-textarea-tinymce-wrapper .simple-fields-metabox-field-group textarea { 
    358  
    359 } 
    360  
    361 .simple-fields-metabox-field-textarea-tinymce-media { 
    362     padding: 5px; 
    363 } 
    364 .simple-fields-metabox-field-textarea-tinymce-media a { 
    365     padding: 0 0 5px 10px; 
    366 } 
    367  
    368 #post-body .simple-fields-metabox-field-textarea-tinymce-wrapper .wp_themeSkin .mceStatusbar a.mceResize { 
    369     margin: 0; 
    370     top: 0; 
    371 } 
    372  
    373  
    374 /* try to tighten the output */ 
    375 .simple-fields-metabox-field { 
    376     overflow: auto; 
    377 } 
    378 .simple-fields-metabox-field, 
    379 .simple-fields-metabox-field * { 
    380 } 
    381 .simple-fields-metabox-field-first { 
    382     -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; 
    383     /*display: inline-block;*/ 
    384     float: left; 
    385     width: 17%; 
    386     padding-right: 1em; 
    387     min-height: 1px; 
    388     /*border: 1px solid red; 
    389     background-color: lightyellow;*/ 
    390 } 
    391 .simple-fields-metabox-field-second { 
    392     -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; 
    393     float: left; 
    394     width: 83%; 
    395     position: relative; 
    396 } 
    397  
    398 /* when field group is in sidebar then put labels at top */ 
    399 #side-sortables .simple-fields-metabox-field-first { 
    400     float: none; 
    401     width: auto; 
    402 } 
    403 #side-sortables .simple-fields-metabox-field-second { 
    404     width: 90%; 
    405 } 
    406 #side-sortables ul.simple-fields-metabox-field-group-fields-repeatable li { 
    407     padding: .25em .5em; 
    408 } 
    409 #side-sortables .simple-fields-metabox-field, .simple-fields-metabox-field-add { 
    410     margin-right: 0; 
    411 } 
    412 #side-sortables .simple-fields-metabox-field-file-with-description { 
    413     height: 83px; 
    414 } 
    415  
    416  
    417  
    418 .simple_fields_editor_switch { 
    419     display: inline; 
    420     padding: 5px; 
    421 } 
    422 .simple_fields_editor_switch a { 
    423     padding: 0 0 0 2px; 
    424 } 
    425 .simple_fields_editor_switch a.selected { 
    426     color: black; 
    427     text-decoration: none; 
    428     font-weight: bold; 
    429 } 
    430  
    431 .simple-fields-metabox-field-group-delete { 
    432     position: absolute; 
    433     top: 10px; 
    434     right: 10px; 
    435 } 
    436 .simple-fields-metabox-field-group-delete a { 
    437     background: transparent url(bin_closed.png) no-repeat 0 50%; 
    438     display: block; 
    439     opacity: .5; 
    440     width: 16px; 
    441     height: 16px; 
    442 } 
    443 .simple-fields-metabox-field-group-delete a:hover { 
    444     opacity: 1; 
    445 } 
    446  
    447 ul.simple-fields-file-browser-list { 
    448     margin: 1em; 
    449 } 
    450 ul.simple-fields-file-browser-list li { 
    451     border-top: 1px solid #DFDFDF; 
    452     clear: both; 
    453     margin: 0; 
    454     padding-top: 1em; 
    455     padding-bottom: 1em; 
    456 } 
    457 ul.simple-fields-file-browser-list .thumbnail { 
    458     float: left; 
    459 } 
    460 ul.simple-fields-file-browser-list .simple-fields-file-browser-list-file-info { 
    461     float: left; 
    462     margin-left: 1em; 
    463 } 
    464 ul.simple-fields-file-browser-list .thumbnail img { 
    465     width: 46px; 
    466 } 
    467 ul.simple-fields-file-browser-list li p { 
    468     margin: 0; 
    469 } 
    470 ul.simple-fields-file-browser-list h3 { 
    471     margin-top: 0; 
    472     margin-bottom: 0.25em; 
    473 } 
    474  
    475 .simple-fields-metabox-field-file { 
    476     height: 50px; 
    477 } 
    478 .simple-fields-metabox-field-file-with-description { 
    479     height: 70px; 
    480 } 
    481 .simple-fields-metabox-field-file-with-description .simple-fields-metabox-field-description { 
    482     position: absolute; 
    483     left: 0; 
    484     top: 50px; 
    485 } 
    486  
    487 .simple-fields-metabox-field-file-col1 { 
    488     width: 46px; 
    489     height: 46px; 
    490     background-color: #eee; 
    491     border: 1px solid #ddd; 
    492     overflow: hidden; 
    493 } 
    494 .simple-fields-metabox-field-file-col1 img { 
    495     width: 46px; 
    496     display: block; 
    497 } 
    498 .simple-fields-metabox-field-file-col2 { 
    499     margin-left: 56px; 
    500     margin-top: -46px; 
    501 } 
    502  
    503 .simple-fields-metabox-field-description, 
    504 .simple-fields-meta-box-field-group-description 
    505  { 
    506     font-style: italic; 
    507     color: #666; 
    508 } 
    509  
    510 .simple-fields-metabox-field-file-edit, .simple-fields-metabox-field-file-clear, 
    511 .simple-fields-metabox-field-post-clear { 
    512     border-left: 1px solid #555555; 
    513     padding-left: 4px; 
    514     margin-left: 4px; 
    515 } 
    516  
    517 .simple-fields-bonny-plugins-inner-sidebar { 
    518     display: none; 
    519 } 
    520 /*.simple-fields-bonny-plugins-inner-sidebar { 
    521     float: right; 
    522     width: 210px; 
    523     padding-right: 10px; 
    524     padding-left: 10px; 
    525     border-left: 1px solid #E3E3E3; 
    526 } 
    527 .simple-fields-settings-wrap { 
    528     margin-right: -250px; 
    529     float: left; 
    530 } 
    531 */ 
    532  
    533 .simple-fields-meta-box-field-group-field-type-post-dialog { 
    534     margin: 10px; 
    535 } 
    536 .simple-fields-meta-box-field-group-field-type-post-dialog p { 
    537     margin: 0; 
    538 } 
    539  
    540 .simple-fields-meta-box-field-group-field-type-post-dialog-post-types { 
    541     margin-bottom: 10px; 
    542 } 
    543 .simple-fields-meta-box-field-group-field-type-post-dialog-post-types li { 
    544     display: inline; 
    545     margin-right: 5px; 
    546 } 
    547 .simple-fields-meta-box-field-group-field-type-post-dialog-post-types li.selected { 
    548     font-weight: bold; 
    549 } 
    550 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts, 
    551 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts li 
    552  { 
    553     line-height: 1; 
    554     margin: 4px 0 4px 0; 
    555 } 
    556 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts-wrap { 
    557     height: 185px; 
    558     overflow: auto; 
    559     border: 1px solid #DFDFDF; 
    560     padding: 10px; 
    561     margin-bottom: 10px; 
    562 } 
    563  
    564 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts ul { 
    565     margin-left: 20px; 
    566 } 
    567  
    568 .simple-fields-metabox-field-taxonomymeta-terms { 
    569     max-height: 100px; 
    570     overflow: auto; 
    571     margin-top: 5px; 
    572 } 
    573  
    574 ul.simple-fields-metabox-field-group-fields-repeatable .simple-fields-metabox-field-taxonomymeta-terms li { 
    575     line-height: 1; 
    576     background-image: none; 
    577     border: none; 
    578     margin-left: 0; 
    579     padding-left: 0; 
    580 } 
    581  
    582 .simple-fields-metabox-field-taxonomymeta-terms ul.children { 
    583     margin-left: 18px; 
    584     margin-top: 5px; 
    585      
    586 } 
    587 .simple-fields-metabox-field-taxonomymeta-terms label { 
    588     font-weight: normal; 
    589 } 
    590  
    591 .sf_box_debug { 
    592     padding: .5em; 
    593     background-color: lightyellow; 
    594 } 
    595  
  • simple-fields/trunk/class_simple_fields_field.php

    r614081 r620797  
    4545    function edit_output($saved_value, $options) { 
    4646        return "<p>Please add method " . __METHOD__ . "().</p>"; 
     47    } 
     48 
     49    /** 
     50     * Called when saving fields, i.e. when clicking the Publish-button on a edit post screen 
     51     * Was is returned from this method will be what is saved in the database, 
     52     * so this is the place to change from array (the default) to for example a single string value 
     53     * that is good for sorting. 
     54     *  
     55     * Override this in the fields class to modify the value being saved. 
     56     * 
     57     * @param array $values The values that we receive from the post screen.  
     58     *                      It's the same names as the ones that has been added with $this->get_options_name() 
     59     * @return mixed, array or string of values to save in db 
     60     */ 
     61    function edit_save($values = NULL) { 
     62        return $values; 
    4763    } 
    4864     
  • simple-fields/trunk/field_types/field_date_v2.php

    r618615 r620797  
    1010    class simple_fields_field_date_v2 extends simple_fields_field { 
    1111     
    12         public $key = "date_v2", $name = "Date v2"; 
     12        public $key = "date_v2", $name = "Date & Time Picker"; 
    1313         
    1414        function __construct() { 
     15 
    1516            parent::__construct(); 
    1617             
    17             // add some styling in the admin head 
    18             add_action('admin_head', array($this, 'action_admin_head')); 
     18            add_action('simple_fields_admin_head', array($this, 'action_admin_head'));     
     19            add_action('simple_fields_enqueue_scripts', array($this, 'enqueue_scripts')); 
     20 
     21        } 
     22 
     23        /** 
     24         * Load scripts and styles 
     25         */ 
     26        function enqueue_scripts() { 
     27            // https://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css 
     28 
     29            // Load jquery styles using method found here: 
     30            // http://snippets.webaware.com.au/snippets/load-a-nice-jquery-ui-theme-in-wordpress/ 
     31            global $wp_scripts; 
     32            wp_enqueue_script('jquery-ui-datepicker'); 
     33            $ui = $wp_scripts->query('jquery-ui-core'); 
     34            $url = "https://ajax.aspnetcdn.com/ajax/jquery.ui/{$ui->ver}/themes/smoothness/jquery.ui.all.css"; 
     35            wp_enqueue_style('jquery-ui-smoothness', $url, false, $ui->ver); 
     36 
     37            wp_enqueue_script("jquery-ui-datepicker"); 
     38 
     39            // Language files 
     40            $url = "https://ajax.aspnetcdn.com/ajax/jquery.ui/{$ui->ver}/i18n/jquery-ui-i18n.min.js"; 
     41            wp_enqueue_script('jquery-ui-18n', $url, false, $ui->ver); 
     42 
     43            // Timepicker 
     44            wp_enqueue_script("jquery-timepicker", SIMPLE_FIELDS_URL . "js/jquery-ui-timepicker-addon.js", array("jquery-ui-datepicker")); 
     45            wp_enqueue_style("jquery-timepicker", SIMPLE_FIELDS_URL . "js/jquery-ui-timepicker-addon.css", array("jquery-ui-smoothness")); 
     46 
    1947        } 
    2048         
     
    2553            ?> 
    2654            <style> 
     55                .simple-fields-fieldgroups-field-type-date_v2-gui-date { 
     56                    width: 10em; 
     57                } 
    2758            </style> 
    2859            <?php 
    2960        } 
    3061         
     62 
     63 
    3164        /** 
    3265         * Output options for the date field 
     
    4376            $out = ""; 
    4477 
     78            // Type: date & time, only date, only time 
     79            $out .= sprintf(' 
     80                <div class="simple-fields-field-group-one-field-row"> 
     81                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     82                        <p> 
     83                            <label>%1$s</label> 
     84                        </p> 
     85                    </div> 
     86                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     87                        <p> 
     88                            <select name="%2$s"> 
     89                                <option value="date" %6$s> 
     90                                    %3$s 
     91                                </option> 
     92                                <option value="time" %7$s> 
     93                                    %4$s 
     94                                </option> 
     95                                <option value="datetime" %8$s> 
     96                                    %5$s 
     97                                </option> 
     98                            </select> 
     99                        </p> 
     100                    </div> 
     101                </div> 
     102                ', 
     103                _x("Show picker as", "Date v2 field type", "simple-fields"), 
     104                $this->get_options_name("show_as"),  
     105                _x("Only Date", "Date v2 field type", "simple-fields"), // 3 
     106                _x("Only Time", "Date v2 field type", "simple-fields"),     // 4 
     107                _x("Both Date & Time", "Date v2 field type", "simple-fields"),  // 5 
     108                isset($existing_vals["show_as"]) && $existing_vals["show_as"] == "date" ? " selected " : "",    // 6 
     109                isset($existing_vals["show_as"]) && $existing_vals["show_as"] == "time" ? " selected " : "",    // 7 
     110                isset($existing_vals["show_as"]) && $existing_vals["show_as"] == "datetime" ? " selected " : ""     // 8 
     111            ); 
     112 
    45113            // Show on click or always 
    46114            $out .= sprintf(' 
    47                 <div class="simple-fields-field-group-one-field-row-col-first"> 
    48                     <p> 
    49                         <label>%1$s</label> 
    50                     </p> 
    51                 </div> 
    52                 <div class="simple-fields-field-group-one-field-row-col-second"> 
    53                     <p> 
    54                         <label> 
    55                             <input type="radio" name="%2$s" value="always" %5$s> 
    56                             %3$s 
    57                         </label> 
    58                         <label> 
    59                             <input type="radio" name="%2$s" value="on_click" %6$s> 
    60                             %4$s 
    61                         </label> 
    62                     </p> 
     115                <div class="simple-fields-field-group-one-field-row"> 
     116                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     117                        <p> 
     118                            <label>%1$s</label> 
     119                        </p> 
     120                    </div> 
     121                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     122                        <p> 
     123                            <label> 
     124                                <input type="radio" name="%2$s" value="always" %5$s> 
     125                                %3$s 
     126                            </label> 
     127                            <label> 
     128                                <input type="radio" name="%2$s" value="on_click" %6$s> 
     129                                %4$s 
     130                            </label> 
     131                        </p> 
     132                    </div> 
    63133                </div> 
    64134                ', 
     
    67137                _x("Always", "Date v2 field type", "simple-fields"),    // 3 
    68138                _x("On click", "Date v2 field type", "simple-fields"),  // 4 
    69                 isset($existing_vals["show"]) && $existing_vals["show"] == "always" ? " checked " : "",     // 5 
     139                ( (isset($existing_vals["show"]) && $existing_vals["show"] == "always") || !isset($existing_vals["show"]) ) ? " checked " : "",     // 5 
    70140                isset($existing_vals["show"]) && $existing_vals["show"] == "on_click" ? " checked " : ""    // 6 
    71141            ); 
    72142 
    73             // Show on click or always 
     143 
     144            // Default date 
     145            //  - No date 
     146            //  - Todays date 
    74147            $out .= sprintf(' 
    75                 <div class="simple-fields-field-group-one-field-row-col-first"> 
    76                     <p> 
    77                         <label>%1$s</label> 
    78                     </p> 
    79                 </div> 
    80                 <div class="simple-fields-field-group-one-field-row-col-second"> 
    81                     <p> 
    82                         <label> 
    83                             <input type="radio" name="%2$s" value="always" %5$s> 
    84                             %3$s 
    85                         </label> 
    86                         <label> 
    87                             <input type="radio" name="%2$s" value="on_click" %6$s> 
    88                             %4$s 
    89                         </label> 
    90                     </p> 
     148                <div class="simple-fields-field-group-one-field-row"> 
     149                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     150                        <p> 
     151                            <label>%1$s</label> 
     152                        </p> 
     153                    </div> 
     154                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     155                        <p> 
     156                            <label> 
     157                                <input type="radio" name="%2$s" value="today" %6$s> 
     158                                %4$s 
     159                            </label> 
     160                            <label> 
     161                                <input type="radio" name="%2$s" value="no_date" %5$s> 
     162                                %3$s 
     163                            </label> 
     164                        </p> 
     165                    </div> 
    91166                </div> 
    92167                ', 
    93                 _x("Show", "Date v2 field type", "simple-fields"), 
    94                 $this->get_options_name("show"),  
    95                 _x("Always", "Date v2 field type", "simple-fields"),    // 3 
    96                 _x("On click", "Date v2 field type", "simple-fields"),  // 4 
    97                 isset($existing_vals["show"]) && $existing_vals["show"] == "always" ? " checked " : "",     // 5 
    98                 isset($existing_vals["show"]) && $existing_vals["show"] == "on_click" ? " checked " : ""    // 6 
     168                _x("Default date", "Date v2 field type", "simple-fields"), 
     169                $this->get_options_name("default_date"),  
     170                _x("No date", "Date v2 field type", "simple-fields"),   // 3 
     171                _x("Todays date", "Date v2 field type", "simple-fields"),   // 4 
     172                ((isset($existing_vals["default_date"]) && $existing_vals["default_date"] == "no_date") || !isset($existing_vals["default_date"])) ? " checked " : "",  // 5 
     173                isset($existing_vals["default_date"]) && $existing_vals["default_date"] == "today" ? " checked " : ""   // 6 
    99174            ); 
    100175 
    101176 
     177            // Date format 
     178            // No longer, since jquery datepicker uses locale for that (which is better/smarter, I think) 
     179            // http://docs.jquery.com/UI/Datepicker/formatDate 
     180            /* 
     181            $out .= sprintf(' 
     182                <div class="simple-fields-field-group-one-field-row"> 
     183                    <div class="simple-fields-field-group-one-field-row-col-first"> 
     184                        <p> 
     185                            <label>%1$s</label> 
     186                        </p> 
     187                    </div> 
     188                    <div class="simple-fields-field-group-one-field-row-col-second"> 
     189                        <p> 
     190                            <select name="%2$s"> 
     191                                <option value="MM d, yy" %4$s>%3$s</option> 
     192                                <option value="yy-mm-dd" %6$s>%5$s</option> 
     193                                <option value="mm/dd/yy" %8$s>%7$s</option> 
     194                            </select> 
     195                        </p> 
     196                    </div> 
     197                </div> 
     198                ', 
     199                _x("Date format", "Date v2 field type", "simple-fields"), 
     200                $this->get_options_name("date_format"),  
     201                date("F j, Y"), // 3 - MM d, yy 
     202                isset($existing_vals["date_format"]) && $existing_vals["date_format"] == "MM d, yy" ? " selected " : "", 
     203                date("Y-m-d") . " (ISO 8601)",  // 4 - yy-mm-dd 
     204                isset($existing_vals["date_format"]) && $existing_vals["date_format"] == "yy-mm-dd" ? " selected " : "", 
     205                date("m-d-Y"), // default 11/01/2012    5 - mm/dd/yy, 
     206                isset($existing_vals["date_format"]) && $existing_vals["date_format"] == "mm/dd/yy" ? " selected " : "" 
     207            ); 
     208            */ 
     209 
    102210            return $out; 
    103211 
    104212        } 
    105213         
     214        /** 
     215         * Output datepicker and timepicker on post edit screen 
     216         */ 
    106217        function edit_output($saved_values, $options) { 
     218 
     219 
     220            if (isset($saved_values[0])) { 
     221                $saved_values["saved_date_time"] = $saved_values[0]; 
     222            } else { 
     223                $saved_values["saved_date_time"] = ""; 
     224            } 
     225 
     226            // When to show: always or on_click 
     227            $str_target_elm = ""; 
     228            $showButtonPanel = "false"; 
     229            if ($options["show"] === "always") { 
     230                $str_target_elm = '<div id="%1$s"></div>'; 
     231            } elseif ("on_click" === $options["show"]) { 
     232                $str_target_elm = '<input class="%9$s" type="text" id="%1$s" name="%2$s" value="">'; 
     233                $showButtonPanel = "true"; 
     234            } 
     235 
     236            // if new field = use default date 
     237            $str_saved_unixtime = ""; 
     238            $str_set_date = ""; 
     239            $str_unixtime_to_set = ""; 
     240            if (isset($options["use_defaults"]) && $options["use_defaults"]) { 
     241                if ($options["default_date"] === "today") { 
     242                    $str_unixtime_to_set = time() * 1000; 
     243                    $str_iso_to_set = date("Y-m-d H:i"); 
     244                } elseif ($options["default_date"] === "no_date") { 
     245                     
     246                } 
     247            } else { 
     248                $str_saved_unixtime = $saved_values["saved_date_time"]; 
     249                // convert saved values to unixtime 
     250                // echo "Saved value: $str_saved_unixtime"; 
     251                if (preg_match('!^\d{2}:\d{2}$!', $str_saved_unixtime)) { 
     252                    // if only time, then make it a full date to be able to create javascript date object 
     253                    //$str_saved_unixtime = "2000-01-01 $str_saved_unixtime"; 
     254                    $str_iso_to_set = "1970-01-01 $str_saved_unixtime"; 
     255                } else { 
     256                    $str_iso_to_set = $saved_values["saved_date_time"]; 
     257                } 
     258                $str_unixtime_to_set = strtotime($str_saved_unixtime); 
     259                //sf_d( date("Y-m-d H:i", $str_unixtime_to_set) ); 
     260                //sf_d( $str_iso_to_set ); 
     261                $str_unixtime_to_set = $str_unixtime_to_set * 1000; 
     262            } 
     263 
     264            // Set Date Format 
     265            $str_date_format = "ISO_8601"; 
     266            if (isset($options["date_format"])) $str_date_format = $options["date_format"]; 
     267            // echo "date_format:";sf_d($str_date_format); 
     268 
     269            // First day. 0 = sunday, 1 = monday 
     270            // Use same as in wordpress 
     271            // $str_first_day = get_option("start_of_week", 1); 
     272 
     273            // Type to show 
     274            // name of method to use/call. 
     275            $method_name = "datepicker"; 
     276            $altFieldTimeOnly = "false"; 
     277            $show_as = $options["show_as"]; 
     278            $alt_format = "yy-mm-dd"; 
     279            if ("datetime" === $show_as) { 
     280                $method_name = "datetimepicker"; 
     281            } else if ("time" === $show_as) { 
     282                $method_name = "timepicker"; 
     283                // $altFieldTimeOnly = "true"; 
     284                $altFieldTimeOnly = "false"; 
     285                $alt_format = " "; 
     286            } 
     287 
     288            $locale = substr(get_locale(), 0, 2); 
     289            // $locale = "sv"; 
     290 
     291            if ($str_unixtime_to_set) { 
     292                // If saved value exists then set date to this value on load 
     293                // The display: none-thingie is added beause the date picker get shown by setDate-method 
     294                // Unsure if bug or feature, but annoying anyway. 
     295                $str_set_date = ' 
     296                    var date_saved = new Date("'.$str_iso_to_set.'"); 
     297                    $( "#%1$s" ).'.$method_name.'("setDate", date_saved); 
     298                    $( "#ui-datepicker-div" ).css("display","none"); 
     299                '; 
     300            } 
     301 
    107302            $output = sprintf( 
    108                 '<div class="%1$s"></div>', 
    109                 @$this->get_class_name($options["appearance"]) 
     303                ' 
     304                    '.$str_target_elm.' 
     305                    <input type="hidden" id="%3$s" name="%4$s" value="%6$s"> 
     306                    <script> 
     307                        jQuery(function($) { 
     308                             
     309                            // Init picker 
     310                            $( "#%1$s" ).%10$s({ 
     311                                altField: "#%3$s", 
     312                                altFormat: "%14$s", 
     313                                altTimeFormat: "HH:mm", 
     314                                altFieldTimeOnly: %12$s, // was buggy when true, overwrite org field with full date instead of just time 
     315                                showButtonPanel: %13$s, 
     316                                showWeek: true, 
     317                                dateFormat: "%7$s", 
     318                                changeYear: true, 
     319                                changeMonth: true, 
     320                                xshowOn: "both", 
     321                                autoSizeType: true 
     322                                %5$s 
     323                            }); 
     324 
     325                            // Set locale 
     326                            if (typeof jQuery.datepicker.regional["%11$s"] == "object") { 
     327                                $("#%1$s").datepicker("option", $.datepicker.regional["%11$s"]); 
     328                            } else { 
     329                                $("#%1$s").datepicker("option", $.datepicker.regional[""]); 
     330                            } 
     331 
     332                            '.$str_set_date.' 
     333                        }); 
     334                    </script> 
     335                ', 
     336                $this->get_options_id("gui_selected_date"), 
     337                $this->get_options_name("gui_selected_date"), 
     338                $this->get_options_id("saved_date_time"), 
     339                $this->get_options_name("saved_date_time"), 
     340                "", // 5 
     341                $str_saved_unixtime, // 6 
     342                $str_date_format, 
     343                "", // 8, was firstDay 
     344                $this->get_class_name("gui-date"), // 9 
     345                $method_name, // 10 
     346                $locale, // 11 
     347                $altFieldTimeOnly, // 12 
     348                $showButtonPanel, // 13 
     349                $alt_format // 14 
    110350            ); 
    111351 
    112352            return $output; 
    113353 
    114         }            
    115  
    116     } 
     354        } // end options output 
     355 
     356        /** 
     357         * Change so saved value is a single one, instead of array, so we can sort by the unixtime in wp_query etc. 
     358         * Lets go with ISO_8601 instead of unix time. Standards rule, and we can save just time too. Hooray! 
     359         * http://en.wikipedia.org/wiki/ISO_8601#General_principles  
     360         * They are sortable too = good. 
     361         * http://stackoverflow.com/questions/9576860/sort-iso-iso-8601-dates-forward-or-backwards 
     362         * http://en.wikipedia.org/wiki/Lexicographical_order 
     363         */ 
     364        function edit_save($values) { 
     365             
     366            /* 
     367                // echo "Saving these values for field:";sf_d($values); 
     368                Array 
     369                ( 
     370                    # datum 
     371                    [saved_date_time] => 1970-01-01 
     372 
     373                    # tid 
     374                    [saved_date_time] => 01:00 
     375 
     376                    # datum + tid 
     377                    [saved_date_time] => 1970-01-01 01:00 
     378                ) 
     379            */ 
     380            if ( is_array($values) && isset($values["saved_date_time"]) && !empty($values["saved_date_time"]) ) { 
     381                 
     382 
     383                // Determine format 
     384                // Bah! Format is in ISO 8601 
     385                /* 
     386                $saved_date_time = $values["saved_date_time"]; 
     387                if (preg_match('!^\d{4}-\d{2}-\d{2}$!', $saved_date_time)) { 
     388                    // echo "date"; [saved_date_time] => 1970-01-01 
     389                    // just date, so append with some time 
     390                } else if (preg_match('!^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$!', $saved_date_time)) { 
     391                    // [saved_date_time] => 1970-01-01 01:00 
     392                    // echo "date + time"; 
     393 
     394                } else if (preg_match('!^\d{2}:\d{2}$!', $saved_date_time)) { 
     395                    // [saved_date_time] => 01:00 
     396                    // time, so prefix with 1970-01-01 (I've got to append with something!) 
     397                    // echo "time"; 
     398                } 
     399                */ 
     400 
     401                // echo "<br>end"; 
     402 
     403                return trim($values["saved_date_time"]); 
     404 
     405            } else { 
     406                return ""; 
     407            } 
     408 
     409        } 
     410 
     411        /** 
     412         * Add Extended Return Values and then return the values 
     413         */ 
     414        function return_values($values, $parsed_options_for_this_field) { 
     415 
     416            // @todo: what if no value? 
     417            foreach ($values as $key => $one_value) { 
     418                 
     419                $one_value_unix = strtotime($one_value); 
     420                 
     421                // Detect full date or just time 
     422                if (preg_match('!^\d{4}-\d{2}-\d{2}$!', $one_value)) { 
     423                    // echo "date"; [saved_date_time] => 1970-01-01 
     424                    $arr_extended = array( 
     425                        "type" => "date", 
     426                        "date_unixtime" => $one_value_unix, 
     427                        "ISO_8601" => date("c", $one_value_unix), 
     428                        "RFC_2822" => date("r", $one_value_unix), 
     429                        "Y-m-d" => date("Y-m-d", $one_value_unix), 
     430                        "date_format" => date_i18n(get_option('date_format'), $one_value_unix) 
     431                    ); 
     432 
     433                } else if (preg_match('!^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$!', $one_value)) { 
     434 
     435                    // [saved_date_time] => 1970-01-01 01:00 
     436                    $arr_extended = array( 
     437                        "type" => "datetime", 
     438                        "date_unixtime" => $one_value_unix, 
     439                        "ISO_8601" => date("c", $one_value_unix), 
     440                        "RFC_2822" => date("r", $one_value_unix), 
     441                        "Y-m-d" => date("Y-m-d", $one_value_unix), 
     442                        "Y-m-d H:i" => date("Y-m-d H:i", $one_value_unix), 
     443                        "date_format" => date_i18n(get_option('date_format'), $one_value_unix), 
     444                        "date_time_format" => date_i18n(get_option('date_format') . " " . get_option('time_format'), $one_value_unix) 
     445                        // http://codex.wordpress.org/Function_Reference/date_i18n 
     446                        // echo date_i18n( $dateformatstring, $unixtimestamp, $gmt ) 
     447                    ); 
     448 
     449                } else if (preg_match('!^\d{2}:\d{2}$!', $one_value)) { 
     450                    // [saved_date_time] => 01:00 
     451                    $arr_extended = array( 
     452                        "type" => "time", 
     453                        "ISO_8601" => date("H:i", $one_value_unix), 
     454                        "time_format" => date_i18n(get_option('time_format'), $one_value_unix) 
     455                    ); 
     456 
     457                } 
     458 
     459                $values[$key] = $arr_extended; 
     460            } 
     461 
     462            return $values; 
     463 
     464        } 
     465 
     466    } // end class 
    117467 
    118468    simple_fields::register_field_type("simple_fields_field_date_v2"); 
  • simple-fields/trunk/functions.php

    r618615 r620797  
    11131113 
    11141114                // If the type is among the registered_field_types then use it 
    1115                 if (isset($sf->registered_field_types[$one_field_group_field["type"]]) && isset($saved_values[0]) && is_array($saved_values[0])) { 
     1115                //if (isset($sf->registered_field_types[$one_field_group_field["type"]]) && isset($saved_values[0]) && is_array($saved_values[0])) { 
     1116                if ( isset($sf->registered_field_types[$one_field_group_field["type"]]) && isset($saved_values[0]) ) { 
    11161117 
    11171118                    // Use the custom field object to output this value, since we can't guess how the data is supposed to be used 
     
    12371238} 
    12381239 
    1239 /* 
    1240 @todo: add simple_fields_fieldgroup_values() as smart alias to  
    1241 simple_fields_get_post_group_values($post_id, $field_group_name_or_id, $use_name = true, $return_format = 1) { 
    1242 use slug and fewer args 
    1243 */ 
  • simple-fields/trunk/readme.txt

    r618615 r620797  
    55Requires at least: 3.3.1 
    66Tested up to: 3.4.2 
    7 Stable tag: 1.0.6 
     7Stable tag: 1.1 
    88 
    99Add more advanced custom fields types to your edit post page. Field can be of several types, including textarea, checkbox, radio buttons, files and color picker. 
     
    164164 
    165165== Changelog == 
     166 
     167#### Version 1.1 
     168- Added: new field type "Date and Time Picker". It's a better version of the Date field. With this new field type you can choose to have a date picker, time picker, or a picker with both date and time. The saved values are stored in ISO 8601-format in the database, so they should be fine to sort posts by when using wp_query. 
     169- Addded: action "simple_fields_admin_head". Use it to add content to the head of admin pages that use simple fields, i.e. the edit post screen. This action is better than admin_head because it's only fired on pages that use simple fields, so all other admin pages will be faster since they don't have to parse any unnecessary. 
     170- Added: action "simple_fields_enqueue_scripts". Same as above, but used to enqueue scripts. 
     171- Fixed: don't output debug info when calling the_excerpt() 
     172- Changed: some GUI changes, like moving the description to below the labels on edit post screen. It became to inconsistent to have the description at different places for different field types. 
     173- Changed: only load styles and scripts on screens that use simple fields. Should speed up other parts of WordPress a little bit. 
    166174 
    167175#### Version 1.0.6 
  • simple-fields/trunk/scripts.js

    r618615 r620797  
    11 
    2 jscolor.bindClass = "simple-fields-field-type-color"; 
     2 
     3 
     4 
     5if (typeof jscolor != "undefined") { 
     6    jscolor.bindClass = "simple-fields-field-type-color"; 
     7} 
     8 
    39var simple_fields_datepicker_args = { "clickInput": true }; 
    410var simple_fields_tinymce_iframes = []; 
     
    1622})(); 
    1723 
     24// Self invoking function for our JS stuff 
    1825(function($) { 
    1926 
     
    295302                 
    296303                simple_fields_metabox_tinymce_attach(); 
    297                 $response.effect("highlight", 1000); 
     304                //$response.effect("highlight", 1000); 
    298305                // add jscolor to possibly new fields 
    299306                jscolor.init(); 
     
    469476    }); 
    470477     
    471     /**  
     478    /** 
    472479     * in dialog: click on a post = update input in field group and then close dialog 
    473480     */ 
     
    492499    }); 
    493500     
    494     /**  
     501    /** 
    495502     * Field type post: link clear = clear post id and name 
    496503     */ 
     
    505512     
    506513    /** 
    507      * ondomready stuff 
     514     * ondomready 
    508515     */ 
    509516    $(function() { 
     
    615622        }); 
    616623 
    617          
    618         // attach TinyMCE to textareas 
    619         simple_fields_metabox_tinymce_attach(); 
    620          
     624             
    621625        // Media browser: make sure search and filter works by adding hidden inputs 
    622626        // would have been best to do this in PHP, but I can't find any filter for it 
     
    633637                "simple_fields_dummy": 1, 
    634638                "simple_fields_action": "select_file" 
    635             } 
     639            }; 
    636640             
    637641            var match = window.location.search.match(/simple_fields_file_field_unique_id=([\w]+)/); 
     
    645649        } 
    646650         
    647         // type date 
    648         $('input.simple-fields-field-type-date').datePicker(); 
    649      
    650          
    651      
    652          
    653     }); 
     651        if (sfstrings.page_type == "post") { 
     652     
     653            // attach TinyMCE to textareas 
     654            simple_fields_metabox_tinymce_attach(); 
     655 
     656            // type date 
     657            $('input.simple-fields-field-type-date').datePicker(); 
     658 
     659        } 
     660 
     661         
     662    }); // end domready 
    654663 
    655664 
  • simple-fields/trunk/simple_fields.php

    r618615 r620797  
    44Plugin URI: http://simple-fields.com 
    55Description: Add groups of textareas, input-fields, dropdowns, radiobuttons, checkboxes and files to your edit post screen. 
    6 Version: 1.0.6 
     6Version: 1.1 
    77Author: Pär Thernström 
    88Author URI: http://eskapism.se/ 
     
    5555        define( "SIMPLE_FIELDS_URL", plugins_url(basename(dirname(__FILE__))). "/"); 
    5656        define( "SIMPLE_FIELDS_NAME", "Simple Fields"); 
    57         define( "SIMPLE_FIELDS_VERSION", "1.0.6"); 
     57        define( "SIMPLE_FIELDS_VERSION", "1.1"); 
    5858 
    5959        load_plugin_textdomain( 'simple-fields', null, basename(dirname(__FILE__)).'/languages/'); 
     
    7474        // Load field types 
    7575        require( dirname(__FILE__) . "/field_types/field_divider.php" ); 
    76         //require( dirname(__FILE__) . "/field_types/field_date_v2.php" ); 
     76        require( dirname(__FILE__) . "/field_types/field_date_v2.php" ); 
    7777 
    7878        $this->plugin_foldername_and_filename = basename(dirname(__FILE__)) . "/" . basename(__FILE__); 
     
    8282        add_action( 'admin_init', array($this, 'admin_init') ); 
    8383        add_action( 'admin_init', array($this, 'check_upgrade_stuff') ); 
     84        add_action( 'admin_enqueue_scripts', array($this, 'admin_enqueue_scripts') ); 
    8485        add_action( 'admin_menu', array($this, "admin_menu") ); 
    8586        add_action( 'admin_head', array($this, 'admin_head') ); 
     
    188189    } 
    189190 
    190     function admin_init() { 
    191  
    192         // @todo: only enqueue scripts when we need them = on a page that uses simple fields 
    193         wp_enqueue_script("jquery"); 
    194         wp_enqueue_script("jquery-ui-core"); 
    195         wp_enqueue_script("jquery-ui-sortable"); 
    196         wp_enqueue_script("jquery-ui-dialog"); 
    197         wp_enqueue_style('wp-jquery-ui-dialog'); 
    198         wp_enqueue_script("jquery-effects-highlight"); 
    199         wp_enqueue_script("thickbox"); 
    200         wp_enqueue_style("thickbox"); 
    201         wp_enqueue_script("jscolor", SIMPLE_FIELDS_URL . "jscolor/jscolor.js"); // color picker for type color 
    202         wp_enqueue_script("simple-fields-date", SIMPLE_FIELDS_URL . "datepicker/date.js"); // date picker for type date 
    203         wp_enqueue_script("jquery-datepicker", SIMPLE_FIELDS_URL . "datepicker/jquery.datePicker.js"); // date picker for type date 
    204         wp_enqueue_style('jquery-datepicker', SIMPLE_FIELDS_URL.'datepicker/datePicker.css', false, SIMPLE_FIELDS_VERSION); 
    205  
    206         wp_enqueue_style('simple-fields-styles', SIMPLE_FIELDS_URL.'styles.css', false, SIMPLE_FIELDS_VERSION); 
     191    /** 
     192     * Enqueue styles and scripts, but on on pages that use simple fields 
     193     * Should speed up the loading of other pages a bit 
     194     */ 
     195    function admin_enqueue_scripts($hook) { 
     196 
     197        // pages to load on = admin/settings page for SF + edit post 
     198        $is_on_simple_fields_page = FALSE; 
     199        $page_type = ""; 
     200 
     201        $current_screen = get_current_screen(); 
     202        #sf_d($current_screen);  
     203        #sf_d($hook); 
     204        if ($current_screen->base == "post" && in_array($current_screen->base, $this->get_post_connector_attached_types())) { 
     205            $is_on_simple_fields_page = TRUE; 
     206            $page_type = "post"; 
     207        } elseif ($current_screen->base === "media-upload") { 
     208            $is_on_simple_fields_page = TRUE; 
     209            $page_type = "media-upload"; 
     210        } elseif ($current_screen->id === "settings_page_simple-fields-options") { 
     211            $is_on_simple_fields_page = TRUE; 
     212            $page_type = "settings"; 
     213        } 
     214         
     215        if (!$is_on_simple_fields_page) return; 
     216 
     217        if ("settings" === $page_type) { 
     218 
     219            // Settings page 
     220            wp_enqueue_style('simple-fields-styles', SIMPLE_FIELDS_URL.'styles.css', false, SIMPLE_FIELDS_VERSION); 
     221 
     222 
     223        } else { 
     224 
     225            // Edit post etc. 
     226            wp_enqueue_script("jquery-ui-core"); 
     227            wp_enqueue_script("jquery-ui-sortable"); 
     228            wp_enqueue_script("jquery-ui-dialog"); 
     229            wp_enqueue_style('wp-jquery-ui-dialog'); 
     230            wp_enqueue_script("jquery-effects-highlight"); 
     231            wp_enqueue_script("thickbox"); 
     232            wp_enqueue_style("thickbox"); 
     233            wp_enqueue_script("jscolor", SIMPLE_FIELDS_URL . "jscolor/jscolor.js"); // color picker for type color 
     234            wp_enqueue_script("simple-fields-date", SIMPLE_FIELDS_URL . "datepicker/date.js"); // date picker for type date 
     235            wp_enqueue_script("sf-jquery-datepicker", SIMPLE_FIELDS_URL . "datepicker/jquery.datePicker.js"); // date picker for type date 
     236            wp_enqueue_style('sf-jquery-datepicker', SIMPLE_FIELDS_URL.'datepicker/datePicker.css', false, SIMPLE_FIELDS_VERSION); 
     237 
     238            wp_enqueue_style('simple-fields-styles-post', SIMPLE_FIELDS_URL.'styles-edit-post.css', false, SIMPLE_FIELDS_VERSION); 
     239     
     240        } 
     241 
     242        // Common scripts 
    207243        wp_register_script('simple-fields-scripts', SIMPLE_FIELDS_URL.'scripts.js', false, SIMPLE_FIELDS_VERSION); 
    208244        wp_localize_script('simple-fields-scripts', 'sfstrings', array( 
     245            'page_type' => $page_type, 
    209246            'txtDelete' => __('Delete', 'simple-fields'), 
    210247            'confirmDelete' => __('Delete this field?', 'simple-fields'), 
     
    226263        wp_enqueue_script('simple-fields-scripts'); 
    227264 
     265        // Hook for plugins 
     266        do_action("simple_fields_enqueue_scripts", $this); 
     267 
     268    } 
     269 
     270    /** 
     271     * Stuff that is being runned only when in admin (i.e. not on front of site) 
     272     */ 
     273    function admin_init() { 
     274 
    228275        define( "SIMPLE_FIELDS_FILE", menu_page_url("simple-fields-options", false) ); 
    229276 
     
    307354     */ 
    308355    function save_postdata($post_id = null, $post = null) { 
    309      
     356 
    310357        // verify this came from the our screen and with proper authorization, 
    311358        // because save_post can be triggered at other times 
     
    356403            // Save info about the fact that this post have been saved. This info is used to determine if a post should get default values or not. 
    357404            update_post_meta($post_id, "_simple_fields_been_saved", "1"); 
    358      
     405 
    359406            // Loop through each fieldgroups 
     407#sf_d($fieldgroups); 
    360408            foreach ($fieldgroups as $one_field_group_id => $one_field_group_fields) { 
    361409                 
    362410                // Loop through each field in each field group 
    363411#simple_fields::debug("one_field_group_fields", $one_field_group_fields); 
     412#sf_d($one_field_group_fields); 
    364413                foreach ($one_field_group_fields as $one_field_id => $one_field_values) { 
    365414 
     
    385434                    // save entered value for each added group 
    386435                    $num_in_set = 0; 
     436 
    387437                    foreach ($one_field_values as $one_field_value) { 
    388438                     
     
    391441 
    392442                        if (array_key_exists($field_type, $this->registered_field_types)) { 
    393                             // Custom field type                             
    394                             // @todo: callback to filter this, from fields class or hook 
    395443                             
     444                            // Custom field type     
     445                            $custom_field_value = $this->registered_field_types[$field_type]->edit_save($custom_field_value); 
     446                            /* 
     447                             
     448                            Date field: 
     449                            Array 
     450                            ( 
     451                                [date_unixtime] => 1351983600000 
     452                            ) 
     453                             
     454                            Map field: 
     455                            Array 
     456                            ( 
     457                                [lat] => 59.312089 
     458                                [lng] => 18.074117 
     459                                [name] => Monki Skrapan 
     460                                [formatted_address] => Götgatan 78, Stockholm, Sverige 
     461                                [address_components] => [{\"long_name\":\"78\",\"short_name\":\"78\",\"types\":[\"street_number\"]},{\"long_name\":\"Götgatan\",\"short_name\":\"Götgatan\",\"types\":[\"route\"]},{\"long_name\":\"Södermalm\",\"short_name\":\"Södermalm\",\"types\":[\"sublocality\",\"political\"]},{\"long_name\":\"Stockholm\",\"short_name\":\"Stockholm\",\"types\":[\"locality\",\"political\"]},{\"long_name\":\"Stockholms län\",\"short_name\":\"Stockholms län\",\"types\":[\"administrative_area_level_2\",\"political\"]},{\"long_name\":\"SE\",\"short_name\":\"SE\",\"types\":[\"country\",\"political\"]},{\"long_name\":\"11830\",\"short_name\":\"11830\",\"types\":[\"postal_code\"]}] 
     462                            ) 
     463                            */ 
     464                            //echo "xxx save value for custom field type"; sf_d($custom_field_value); 
     465 
    396466                        } else { 
    397467                            // core/legacy field type 
     
    480550                    $field_class .= " simple-fields-fieldgroups-field-slug-" . $field["slug"]; 
    481551                } 
    482      
     552                 
     553                // Fetch saved value for field from db/post meta 
     554                // Returned value is: 
     555                //  - string if core fields 
     556                //  - array if field type extension, unless the field extension overrides this 
    483557                $custom_field_key = "_simple_fields_fieldGroupID_{$field_group_id}_fieldID_{$field_id}_numInSet_{$num_in_set}"; 
    484                 $saved_value = get_post_meta($post_id, $custom_field_key, true); // empty string if does not exist 
     558                $saved_value = get_post_meta($post_id, $custom_field_key, true); 
    485559                 
    486560                $description = ""; 
     
    493567                // <div class="simple-fields-metabox-field simple-fields-fieldgroups-field-1-1 simple-fields-fieldgroups-field-type-text" data-fieldgroup_id="1" data-field_id="1" data-num_in_set="0"> 
    494568                ?> 
    495                 <div class="simple-fields-metabox-field <?php echo $field_class ?>"  
     569                <div class="simple-fields-metabox-field sf-cf <?php echo $field_class ?>"  
    496570                    data-fieldgroup_id=<?php echo $field_group_id ?> 
    497571                    data-field_id="<?php echo $field_id ?>" 
     
    516590 
    517591                        echo "<div class='simple-fields-metabox-field-first'>"; 
     592                        echo $description; 
    518593                        echo "</div>"; 
    519594                        echo "<div class='simple-fields-metabox-field-second'>"; 
    520595                        echo "<input $str_checked id='$field_unique_id' type='checkbox' name='$field_name' value='1' />"; 
    521596                        echo "<label class='simple-fields-for-checkbox' for='$field_unique_id'> " . $field["name"] . "</label>"; 
    522                         echo $description; 
    523597                        echo "</div>"; 
    524598         
     
    527601                        echo "<div class='simple-fields-metabox-field-first'>"; 
    528602                        echo "<label>" . $field["name"] . "</label>"; 
     603                        echo $description; 
    529604                        echo "</div>"; 
    530605 
     
    533608                        $radio_checked_by_default_num = @$radio_options["checked_by_default_num"]; 
    534609     
    535                         echo $description; 
    536610 
    537611                        $loopNum = 0; 
     
    564638                        echo "<div class='simple-fields-metabox-field-first'>"; 
    565639                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     640                        echo $description; 
    566641                        echo "</div>"; 
    567642 
     
    579654                        } 
    580655                        echo "</select>"; 
    581                         echo $description; 
    582656                        echo "</div>"; 
    583657     
     
    601675                        $class = ""; 
    602676                        if ($description) { 
    603                             $class = "simple-fields-metabox-field-file-with-description"; 
     677                            //$class = "simple-fields-metabox-field-file-with-description"; 
    604678                        } 
    605679                        echo "<div class='simple-fields-metabox-field-file $class'>"; 
     
    607681                            echo "<div class='simple-fields-metabox-field-first'>"; 
    608682                            echo "<label>{$field["name"]}</label>"; 
     683                            echo $description; 
     684                            //echo $description; 
    609685                            echo "</div>"; 
    610686 
     
    630706                            echo "</div>"; 
    631707 
    632                             echo $description; 
    633708 
    634709                            echo "</div>"; // second 
     
    637712     
    638713                    } elseif ("image" == $field["type"]) { 
    639      
     714                         
     715                        // @todo: does this field type exist?? 
    640716                        $text_value_esc = esc_html($saved_value); 
    641717                        echo "<label>".__('image', 'simple-fields')."</label>"; 
    642                         echo $description; 
     718                        //echo $description; 
    643719                        echo "<input class='text' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
    644720                         
     
    675751                        echo "<div class='simple-fields-metabox-field-first'>"; 
    676752                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     753                        echo $description; 
    677754                        echo "</div>"; 
    678755 
     
    705782                        } 
    706783                         
    707                         echo $description; 
    708784 
    709785                        echo "</div>"; 
     
    712788         
    713789                        $text_value_esc = esc_html($saved_value); 
     790                         
    714791                        echo "<div class='simple-fields-metabox-field-first'>"; 
    715792                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     793                        echo $description; 
    716794                        echo "</div>"; 
     795 
    717796                        echo "<div class='simple-fields-metabox-field-second'>"; 
    718797                        echo "<input class='text' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
     798                        echo "</div>"; 
     799         
     800                    } elseif ("color" == $field["type"]) { 
     801                         
     802                        $text_value_esc = esc_html($saved_value); 
     803                         
     804                        echo "<div class='simple-fields-metabox-field-first'>"; 
     805                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
    719806                        echo $description; 
    720807                        echo "</div>"; 
    721          
    722                     } elseif ("color" == $field["type"]) { 
     808                         
     809                        echo "<div class='simple-fields-metabox-field-second'>"; 
     810                        echo "<input class='text simple-fields-field-type-color {pickerClosable:true}' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
     811                        echo "</div>"; 
     812     
     813                    } elseif ("date" == $field["type"]) { 
     814     
     815                        // $datef = __( 'M j, Y @ G:i' ); // same format as in meta-boxes.php 
     816                        // echo date_i18n( $datef, strtotime( current_time('mysql') ) ); 
    723817                         
    724818                        $text_value_esc = esc_html($saved_value); 
     819                         
    725820                        echo "<div class='simple-fields-metabox-field-first'>"; 
    726821                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
    727                         echo "</div>"; 
    728                         echo "<div class='simple-fields-metabox-field-second'>"; 
    729                         echo "<input class='text simple-fields-field-type-color {pickerClosable:true}' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
    730822                        echo $description; 
    731823                        echo "</div>"; 
    732      
    733                     } elseif ("date" == $field["type"]) { 
    734      
    735                         // $datef = __( 'M j, Y @ G:i' ); // same format as in meta-boxes.php 
    736                         // echo date_i18n( $datef, strtotime( current_time('mysql') ) ); 
    737                          
    738                         $text_value_esc = esc_html($saved_value); 
    739                         echo "<div class='simple-fields-metabox-field-first'>"; 
    740                         echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
    741                         echo "</div>"; 
     824                         
    742825                        echo "<div class='simple-fields-metabox-field-second'>"; 
    743826                        echo "<input class='text simple-fields-field-type-date' name='$field_name' id='$field_unique_id' value='$text_value_esc' />"; 
    744                         echo $description; 
    745827                        echo "</div>"; 
    746828     
     
    756838                        echo "<div class='simple-fields-metabox-field-first'>"; 
    757839                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     840                        echo $description; 
    758841                        echo "</div>"; 
    759842 
     
    771854                        echo "</select>"; 
    772855 
    773                         echo $description; 
    774856 
    775857                        echo "</div>"; 
     
    785867                        echo "<div class='simple-fields-metabox-field-first'>"; 
    786868                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     869                        echo $description; 
    787870                        echo "</div>"; 
    788871 
    789872                        echo "<div class='simple-fields-metabox-field-second'>"; 
    790873     
    791                         echo $description; 
    792874 
    793875                        $arr_selected_cats = (array) $saved_value; 
     
    826908 
    827909                        echo "<div class='simple-fields-metabox-field-first'>"; 
    828  
    829910                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     911                        echo $description; 
    830912                        echo "</div>"; 
    831913 
     
    849931                        echo "<input type='hidden' name='additional_arguments' id='additional_arguments' value='".$type_post_options['additional_arguments']."' />"; 
    850932                         
    851                         echo $description; 
    852933 
    853934                        echo "</div>"; 
     
    863944                        echo "<div class='simple-fields-metabox-field-first'>"; 
    864945                        echo "<label for='$field_unique_id'> " . $field["name"] . "</label>"; 
     946                        echo $description; 
    865947                        echo "</div>"; 
    866948 
     
    896978                        echo "</select>"; 
    897979 
    898                         echo $description; 
    899980                         
    900981                        echo "</div>"; 
     
    916997 
    917998                            // Always output label and description, for consistency 
     999                            echo "<div class='simple-fields-metabox-field-first'>"; 
    9181000                            echo "<label>" . $field["name"] . "</label>"; 
    9191001                            echo $description; 
     1002                            echo "</div>"; 
    9201003                             
     1004                            echo "<div class='simple-fields-metabox-field-second'>"; 
     1005 
     1006                            // if use_defaults is set then pass that arg to custom field types too 
     1007                            if ($use_defaults) $custom_field_type_options["use_defaults"] = $use_defaults; 
     1008 
    9211009                            // Get and output the edit-output from the field type 
    922                             echo $custom_field_type->edit_output( (array) $saved_value, $custom_field_type_options); 
     1010                            // Return as array if field type has not specified other 
     1011                            // xxx 
     1012                            $custom_field_type_saved_value = $saved_value; 
     1013                            #echo "saved value"; sf_d($custom_field_type_saved_value); 
     1014                            // always return array, or just sometimes? 
     1015                            // if a field has saved a value as a single value it will be returned as the value at position [0] 
     1016                            $custom_field_type_saved_value = (array) $custom_field_type_saved_value; 
     1017                            echo $custom_field_type->edit_output($custom_field_type_saved_value, $custom_field_type_options); 
     1018 
     1019                            echo "</div>"; 
    9231020 
    9241021                        } 
     
    9521049     */ 
    9531050    function admin_head() { 
    954      
     1051 
     1052        // Only run code if on a SF page 
     1053        $current_screen = get_current_screen(); 
     1054        if ($current_screen->base == "post" && in_array($current_screen->base, $this->get_post_connector_attached_types())) { 
     1055            $is_on_simple_fields_page = TRUE; 
     1056            $page_type = "post"; 
     1057        } 
     1058        if (!is_on_simple_fields_page) return; 
     1059 
    9551060        // Add meta box to post 
    9561061        global $post, $sf; 
    9571062     
     1063        // Tell pluings etc that they can output stuff now 
     1064        do_action("simple_fields_admin_head", $this); 
     1065 
    9581066        if ($post) { 
    9591067     
     
    22792387     
    22802388            <div class="clear"></div> 
    2281      
     2389             
     2390            <!--  
    22822391            <div class="simple-fields-bonny-plugins-inner-sidebar"> 
    22832392                <h3>Keep this plugin alive</h3> 
     
    22932402                                         
    22942403            </div> 
     2404            --> 
    22952405     
    22962406        <div class="simple-fields-settings-wrap"> 
     
    30933203     */ 
    30943204    function maybe_add_debug_info() { 
     3205 
    30953206        global $sf; 
    30963207        $options = $sf->get_options(); 
     
    30993210            // 1 = debug for admins only, 2 = debug for all 
    31003211            if ( ($options["debug_type"] === 1 && current_user_can("edit_themes")) ||  $options["debug_type"] === 2) { 
    3101                  
     3212 
    31023213                // enqueu jquery because that is used to show/hide the debug box 
    31033214                wp_enqueue_script("jquery"); 
     
    31083219     
    31093220        } 
    3110     } 
    3111      
    3112     // Outputs the names of the post connectors attached to the post you view + outputs the values 
     3221 
     3222    } 
     3223     
     3224    /**  
     3225     * Outputs the names of the post connectors attached to the post you view + outputs the values 
     3226     */ 
    31133227    function simple_fields_content_debug_output($the_content) { 
     3228 
     3229        // we only want to appen the debug code when being used from get_the_content or the_content 
     3230        // but for example get_the_excerpt is also using filter the_content which leads to problems 
     3231        // so check that we are somewhere inside the right functions 
     3232        $is_inside_righ_function = FALSE; 
     3233        $arr_trace = debug_backtrace(); 
     3234        $arr_trace_count = count($arr_trace); 
     3235 
     3236        for ($i = 0; $i < $arr_trace_count; $i++) { 
     3237            if ( isset($arr_trace[$i]["function"]) && in_array($arr_trace[$i]["function"], array("the_content", "get_the_content"))) { 
     3238                $is_inside_righ_function = TRUE; 
     3239                break; 
     3240            } 
     3241        } 
     3242 
     3243        if (!$is_inside_righ_function) { 
     3244 
     3245            // Don't do the debug, since we're not in the_content 
     3246            return $the_content; 
     3247 
     3248        } 
     3249 
    31143250         
    31153251        $output = ""; 
  • simple-fields/trunk/styles.css

    r617428 r620797  
     1/** 
     2 * Styles used in Simple Fields Admin 
     3 */ 
     4 
     5.sf-cf:before, .sf-cf:after { content:""; display:table; } 
     6.sf-cf:after { clear:both; } 
     7.sf-cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */ 
     8 
     9.sf_box_debug { 
     10    padding: .5em; 
     11    background-color: lightyellow; 
     12} 
     13 
    114ul.simple-fields-edit-field-groups-added-fields { 
    2     /*border-top: 1px solid #DFDFDF;*/ 
    3     /*padding-top: 2em;*/ 
    415    margin-top: 0; 
    516    position: relative; 
    617} 
    7 ul.simple-fields-edit-field-groups-added-fields li { 
    8     position: relative; 
    9     padding: 1em 2em; 
    10     margin: 0; 
    11     background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(white)); 
    12     background-image: -webkit-linear-gradient(top, whiteSmoke, white); 
    13     background-image:    -moz-linear-gradient(top, whiteSmoke, white); 
    14     background-image:     -ms-linear-gradient(top, whiteSmoke, white); 
    15     background-image:      -o-linear-gradient(top, whiteSmoke, white); 
    16     border-top: 2px solid #eee; 
    17     margin-bottom: 2em; 
    18 } 
    19 ul.simple-fields-edit-field-groups-added-fields li li { 
    20     background-image: none; 
    21 } 
     18    ul.simple-fields-edit-field-groups-added-fields li { 
     19        position: relative; 
     20        padding: 1em 2em; 
     21        margin: 0; 
     22        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(#fcfcfc)); 
     23        background-image: -webkit-linear-gradient(top, whiteSmoke, #fcfcfc); 
     24        background-image:    -moz-linear-gradient(top, whiteSmoke, #fcfcfc); 
     25        background-image:     -ms-linear-gradient(top, whiteSmoke, #fcfcfc); 
     26        background-image:      -o-linear-gradient(top, whiteSmoke, #fcfcfc); 
     27        border-top: 2px solid #eee; 
     28        margin-bottom: 2em; 
     29    } 
     30    ul.simple-fields-edit-field-groups-added-fields li li { 
     31        background-image: none; 
     32    } 
    2233 
    2334 
     
    3647.simple-fields-field-group-one-field-row { 
    3748    margin-bottom: .75em; 
    38     /*overflow: auto;*/ 
    3949} 
    4050 
     
    5868 
    5969.simple-fields-field-group-one-field-row-col-first { 
    60     /* background-color: rgba(255, 0, 0, .1); */ 
    6170    padding-right: 4em; 
    6271} 
    6372.simple-fields-field-group-one-field-row-col-second { 
    64     /* background-color: rgba(0, 255, 0, .1); */ 
    6573    width: 80%; 
    6674} 
     
    7179} 
    7280#simple-fields-field-group-existing-fields .description { 
    73     margin-left: 12.5em; 
     81    /*margin-left: 12.5em;*/ 
     82    margin-left: 16%; 
    7483} 
    7584 
     
    103112} 
    104113 
    105 .simple-fields-field-group-one-field-row-description { 
    106 } 
    107  
    108 .simple-fields-field-group-one-field-row p input[type=text], 
    109 .simple-fields-field-group-one-field-row p textarea 
    110 { 
    111     /*width: 100%;*/ 
    112 } 
    113114.simple-fields-field-group-one-field-row p textarea { 
    114115    height: 8em; 
    115116} 
    116117 
     118/* @todo: these just a tad to un-specific... */ 
    117119div.delete a { 
    118120    color: #BC0B0B; 
     
    154156     margin-top: 2em; 
    155157} 
    156 .simple-fields-edit-post-connectors { 
    157 } 
    158 .simple-fields-edit-field-groups { 
    159 } 
    160158 
    161159.simple-fields-edit-field-groups ul, 
     
    184182.simple-fields-field-type-options-dropdown-handle, 
    185183.simple-fields-post-connector-addded-fields-handle, 
    186 .simple-fields-field-group-one-field-handle, 
    187 .simple-fields-metabox-field-group-handle 
     184.simple-fields-field-group-one-field-handle 
    188185 { 
    189186    width: 16px; 
     
    234231ul#simple-fields-post-connector-added-fields li { 
    235232    margin-bottom: 2em; 
    236     background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(white)); 
    237     background-image: -webkit-linear-gradient(top, whiteSmoke, white); 
    238     background-image:    -moz-linear-gradient(top, whiteSmoke, white); 
    239     background-image:     -ms-linear-gradient(top, whiteSmoke, white); 
    240     background-image:      -o-linear-gradient(top, whiteSmoke, white); 
     233    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(#fcfcfc)); 
     234    background-image: -webkit-linear-gradient(top, whiteSmoke, #fcfcfc); 
     235    background-image:    -moz-linear-gradient(top, whiteSmoke, #fcfcfc); 
     236    background-image:     -ms-linear-gradient(top, whiteSmoke, #fcfcfc); 
     237    background-image:      -o-linear-gradient(top, whiteSmoke, #fcfcfc); 
    241238    border-top: 2px solid #eee; 
    242239} 
     
    251248} 
    252249 
    253 .simple-fields-post-type-defaults, 
    254 .simple-fields-edit-post-connectors 
    255  { 
    256      
    257 } 
    258250 
    259251#simple-fields-post-edit-side-field-settings-select-connector-please-save { 
     
    261253} 
    262254 
    263  
    264 .simple-fields-metabox-field, 
    265 .simple-fields-metabox-field-add 
    266  { 
    267     margin-top: 1em; 
    268     margin-bottom: 1em; 
    269     margin-right: 11px; 
    270 } 
    271  
    272 .simple-fields-metabox-field-add-bottom { 
    273     display: none; 
    274 } 
    275 .simple-fields-meta-box-field-group-wrapper-has-fields-added .simple-fields-metabox-field-add-bottom { 
    276     display: block; 
    277 } 
    278  
    279 .simple-fields-metabox-field label { 
    280     /*font-weight: bold; 
    281     display: block;*/ 
    282 } 
    283 .simple-fields-metabox-field .simple-fields-for-radiobutton, 
    284 .simple-fields-metabox-field .simple-fields-for-checkbox { 
    285     display: inline; 
    286     font-weight: normal; 
    287 } 
    288 .simple-fields-metabox-field-radiobutton { 
    289     display: block; 
    290     margin-top: .5em; 
    291     margin-bottom: .5em; 
    292 } 
    293 ul.simple-fields-metabox-field-group-fields li { 
    294     position: relative; 
    295 } 
    296  
    297 ul.simple-fields-metabox-field-group-fields-repeatable li { 
    298     margin-top: 1em; 
    299     padding-top: .5em; 
    300     padding-bottom: .5em; 
    301     padding-left: 11px; 
    302     background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(white)); 
    303     background-image: -webkit-linear-gradient(top, whiteSmoke, white); 
    304     background-image:    -moz-linear-gradient(top, whiteSmoke, white); 
    305     background-image:     -ms-linear-gradient(top, whiteSmoke, white); 
    306     background-image:      -o-linear-gradient(top, whiteSmoke, white); 
    307     border-top: 2px solid #eee; 
    308     padding: .5em 1.5em; 
    309     margin: 0 0 0 0; 
    310 } 
    311 ul.simple-fields-metabox-field-group-fields-repeatable li.hover { 
    312     background-color: #fffcf1; 
    313 } 
    314 ul.simple-fields-metabox-field-group-fields-repeatable li.active { 
    315     background-color: #fff7db; 
    316 } 
    317  
    318 .simple-fields-metabox-field-group-handle { 
    319     display: none; 
    320 } 
    321 .simple-fields-metabox-field-group-fields-repeatable .simple-fields-metabox-field-group-handle { 
    322     display: block; 
    323     margin-left: -16px; 
    324     margin-top: 10px; 
    325     opacity: 0; 
    326 } 
    327  
    328 .simple-fields-metabox-field-group:hover .simple-fields-metabox-field-group-handle { 
    329     opacity: 1; 
    330 } 
    331  
    332 .simple-fields-metabox-field-group input.text { 
    333     border: 1px solid #dfdfdf; 
    334     -moz-border-radius: 4px; 
    335     -webkit-border-radius: 4px; 
    336     border-radius: 4px; 
    337 } 
    338 .simple-fields-metabox-field-group input.text, 
    339 .simple-fields-metabox-field-group textarea 
    340 { 
    341     width: 95%; 
    342 } 
    343  
    344 .simple-fields-metabox-field-group input.simple-fields-field-type-color, 
    345 .simple-fields-metabox-field-group input.simple-fields-field-type-date 
    346  { 
    347     width: 6em; 
    348 } 
    349  
    350 .simple-fields-metabox-field-textarea-tinymce-wrapper { 
    351     width: 100%; 
    352 } 
    353 .simple-fields-metabox-field-textarea-tinymce-wrapper .mce_fullscreen { 
    354     display: none !important; 
    355 } 
    356  
    357 .simple-fields-metabox-field-textarea-tinymce-wrapper .simple-fields-metabox-field-group textarea { 
    358  
    359 } 
    360  
    361 .simple-fields-metabox-field-textarea-tinymce-media { 
    362     padding: 5px; 
    363 } 
    364 .simple-fields-metabox-field-textarea-tinymce-media a { 
    365     padding: 0 0 5px 10px; 
    366 } 
    367  
    368 #post-body .simple-fields-metabox-field-textarea-tinymce-wrapper .wp_themeSkin .mceStatusbar a.mceResize { 
    369     margin: 0; 
    370     top: 0; 
    371 } 
    372  
    373  
    374 /* try to tighten the output */ 
    375 .simple-fields-metabox-field { 
    376     overflow: auto; 
    377 } 
    378 .simple-fields-metabox-field, 
    379 .simple-fields-metabox-field * { 
    380 } 
    381 .simple-fields-metabox-field-first { 
    382     -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; 
    383     /*display: inline-block;*/ 
    384     float: left; 
    385     width: 17%; 
    386     padding-right: 1em; 
    387     min-height: 1px; 
    388     /*border: 1px solid red; 
    389     background-color: lightyellow;*/ 
    390 } 
    391 .simple-fields-metabox-field-second { 
    392     -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; 
    393     float: left; 
    394     width: 83%; 
    395     position: relative; 
    396 } 
    397  
    398 /* when field group is in sidebar then put labels at top */ 
    399 #side-sortables .simple-fields-metabox-field-first { 
    400     float: none; 
    401     width: auto; 
    402 } 
    403 #side-sortables .simple-fields-metabox-field-second { 
    404     width: 90%; 
    405 } 
    406 #side-sortables ul.simple-fields-metabox-field-group-fields-repeatable li { 
    407     padding: .25em .5em; 
    408 } 
    409 #side-sortables .simple-fields-metabox-field, .simple-fields-metabox-field-add { 
    410     margin-right: 0; 
    411 } 
    412 #side-sortables .simple-fields-metabox-field-file-with-description { 
    413     height: 83px; 
    414 } 
    415  
    416  
    417  
    418 .simple_fields_editor_switch { 
    419     display: inline; 
    420     padding: 5px; 
    421 } 
    422 .simple_fields_editor_switch a { 
    423     padding: 0 0 0 2px; 
    424 } 
    425 .simple_fields_editor_switch a.selected { 
    426     color: black; 
    427     text-decoration: none; 
    428     font-weight: bold; 
    429 } 
    430  
    431 .simple-fields-metabox-field-group-delete { 
    432     position: absolute; 
    433     top: 10px; 
    434     right: 10px; 
    435 } 
    436 .simple-fields-metabox-field-group-delete a { 
    437     background: transparent url(bin_closed.png) no-repeat 0 50%; 
    438     display: block; 
    439     opacity: .5; 
    440     width: 16px; 
    441     height: 16px; 
    442 } 
    443 .simple-fields-metabox-field-group-delete a:hover { 
    444     opacity: 1; 
    445 } 
    446  
    447 ul.simple-fields-file-browser-list { 
    448     margin: 1em; 
    449 } 
    450 ul.simple-fields-file-browser-list li { 
    451     border-top: 1px solid #DFDFDF; 
    452     clear: both; 
    453     margin: 0; 
    454     padding-top: 1em; 
    455     padding-bottom: 1em; 
    456 } 
    457 ul.simple-fields-file-browser-list .thumbnail { 
    458     float: left; 
    459 } 
    460 ul.simple-fields-file-browser-list .simple-fields-file-browser-list-file-info { 
    461     float: left; 
    462     margin-left: 1em; 
    463 } 
    464 ul.simple-fields-file-browser-list .thumbnail img { 
    465     width: 46px; 
    466 } 
    467 ul.simple-fields-file-browser-list li p { 
    468     margin: 0; 
    469 } 
    470 ul.simple-fields-file-browser-list h3 { 
    471     margin-top: 0; 
    472     margin-bottom: 0.25em; 
    473 } 
    474  
    475 .simple-fields-metabox-field-file { 
    476     height: 50px; 
    477 } 
    478 .simple-fields-metabox-field-file-with-description { 
    479     height: 70px; 
    480 } 
    481 .simple-fields-metabox-field-file-with-description .simple-fields-metabox-field-description { 
    482     position: absolute; 
    483     left: 0; 
    484     top: 50px; 
    485 } 
    486  
    487 .simple-fields-metabox-field-file-col1 { 
    488     width: 46px; 
    489     height: 46px; 
    490     background-color: #eee; 
    491     border: 1px solid #ddd; 
    492     overflow: hidden; 
    493 } 
    494 .simple-fields-metabox-field-file-col1 img { 
    495     width: 46px; 
    496     display: block; 
    497 } 
    498 .simple-fields-metabox-field-file-col2 { 
    499     margin-left: 56px; 
    500     margin-top: -46px; 
    501 } 
    502  
    503 .simple-fields-metabox-field-description, 
    504 .simple-fields-meta-box-field-group-description 
    505  { 
    506     font-style: italic; 
    507     color: #666; 
    508 } 
    509  
    510 .simple-fields-metabox-field-file-edit, .simple-fields-metabox-field-file-clear, 
    511 .simple-fields-metabox-field-post-clear { 
    512     border-left: 1px solid #555555; 
    513     padding-left: 4px; 
    514     margin-left: 4px; 
    515 } 
    516  
    517 .simple-fields-bonny-plugins-inner-sidebar { 
    518     display: none; 
    519 } 
    520 /*.simple-fields-bonny-plugins-inner-sidebar { 
    521     float: right; 
    522     width: 210px; 
    523     padding-right: 10px; 
    524     padding-left: 10px; 
    525     border-left: 1px solid #E3E3E3; 
    526 } 
    527 .simple-fields-settings-wrap { 
    528     margin-right: -250px; 
    529     float: left; 
    530 } 
    531 */ 
    532  
    533 .simple-fields-meta-box-field-group-field-type-post-dialog { 
    534     margin: 10px; 
    535 } 
    536 .simple-fields-meta-box-field-group-field-type-post-dialog p { 
    537     margin: 0; 
    538 } 
    539  
    540 .simple-fields-meta-box-field-group-field-type-post-dialog-post-types { 
    541     margin-bottom: 10px; 
    542 } 
    543 .simple-fields-meta-box-field-group-field-type-post-dialog-post-types li { 
    544     display: inline; 
    545     margin-right: 5px; 
    546 } 
    547 .simple-fields-meta-box-field-group-field-type-post-dialog-post-types li.selected { 
    548     font-weight: bold; 
    549 } 
    550 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts, 
    551 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts li 
    552  { 
    553     line-height: 1; 
    554     margin: 4px 0 4px 0; 
    555 } 
    556 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts-wrap { 
    557     height: 185px; 
    558     overflow: auto; 
    559     border: 1px solid #DFDFDF; 
    560     padding: 10px; 
    561     margin-bottom: 10px; 
    562 } 
    563  
    564 .simple-fields-meta-box-field-group-field-type-post-dialog-post-posts ul { 
    565     margin-left: 20px; 
    566 } 
    567  
    568 .simple-fields-metabox-field-taxonomymeta-terms { 
    569     max-height: 100px; 
    570     overflow: auto; 
    571     margin-top: 5px; 
    572 } 
    573  
    574 ul.simple-fields-metabox-field-group-fields-repeatable .simple-fields-metabox-field-taxonomymeta-terms li { 
    575     line-height: 1; 
    576     background-image: none; 
    577     border: none; 
    578     margin-left: 0; 
    579     padding-left: 0; 
    580 } 
    581  
    582 .simple-fields-metabox-field-taxonomymeta-terms ul.children { 
    583     margin-left: 18px; 
    584     margin-top: 5px; 
    585      
    586 } 
    587 .simple-fields-metabox-field-taxonomymeta-terms label { 
    588     font-weight: normal; 
    589 } 
    590  
    591 .sf_box_debug { 
    592     padding: .5em; 
    593     background-color: lightyellow; 
    594 } 
    595  
Note: See TracChangeset for help on using the changeset viewer.