WordPress.org

Plugin Directory


Ignore:
Timestamp:
11/14/12 08:44:54 (5 years ago)
Author:
eskapism
Message:

version 1.1.4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • simple-fields/trunk/simple_fields.php

    r621721 r625129  
    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.1.3 
     6Version: 1.1.4 
    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.1.3"); 
     57        define( "SIMPLE_FIELDS_VERSION", "1.1.4"); 
    5858 
    5959        load_plugin_textdomain( 'simple-fields', null, basename(dirname(__FILE__)).'/languages/'); 
     
    200200 
    201201        $current_screen = get_current_screen(); 
    202         #sf_d($current_screen);  
    203         #sf_d($hook); 
    204202        if ($current_screen->base == "post" && in_array($current_screen->post_type, $this->get_post_connector_attached_types())) { 
    205203            $is_on_simple_fields_page = TRUE; 
     
    228226            wp_enqueue_script("jscolor", SIMPLE_FIELDS_URL . "jscolor/jscolor.js"); // color picker for type color 
    229227            wp_enqueue_script("simple-fields-date", SIMPLE_FIELDS_URL . "datepicker/date.js"); // date picker for type date 
    230             wp_enqueue_script("sf-jquery-datepicker", SIMPLE_FIELDS_URL . "datepicker/jquery.datePicker.js"); // date picker for type date 
     228             
     229            // Date picker for type date 
     230            wp_enqueue_script("sf-jquery-datepicker", SIMPLE_FIELDS_URL . "datepicker/jquery.datePicker.js"); 
    231231            wp_enqueue_style('sf-jquery-datepicker', SIMPLE_FIELDS_URL.'datepicker/datePicker.css', false, SIMPLE_FIELDS_VERSION); 
     232 
     233            // Chosen for multi selects 
     234            // wp_enqueue_script("chosen.jquery", SIMPLE_FIELDS_URL . "js/chosen/chosen.jquery.min.js"); 
     235            // wp_enqueue_style("chosen", SIMPLE_FIELDS_URL.'js/chosen/chosen.css', false, SIMPLE_FIELDS_VERSION); 
    232236 
    233237            wp_enqueue_style('simple-fields-styles-post', SIMPLE_FIELDS_URL.'styles-edit-post.css', false, SIMPLE_FIELDS_VERSION); 
     
    495499            // if fieldgroups are empty we still need to save it 
    496500            // remove existing simple fields custom fields for this post 
     501            // @todo: this should also be using wordpress own functions 
    497502            $wpdb->query("DELETE FROM $table WHERE post_id = $post_id AND meta_key LIKE '_simple_fields_fieldGroupID_%'"); 
    498503        }  
     
    537542 
    538543        ?> 
    539         <li class="simple-fields-metabox-field-group <?php echo $field_group_css ?>"> 
     544        <li class="sf-cf simple-fields-metabox-field-group <?php echo $field_group_css ?>"> 
    540545            <?php // must use this "added"-thingie do be able to track added field group that has no added values (like unchecked checkboxes, that we can't detect ?> 
    541546            <input type="hidden" name="simple_fields_fieldgroups[<?php echo $field_group_id ?>][added][<?php echo $num_in_set ?>]" value="1" /> 
     
    654659 
    655660                        echo "<div class='simple-fields-metabox-field-second'>"; 
    656                         echo "<select id='$field_unique_id' name='$field_name'>"; 
     661 
     662                        $enable_multiple = (isset($field["type_dropdown_options"]["enable_multiple"]) && ($field["type_dropdown_options"]["enable_multiple"] == 1)); 
     663                        $str_multiple = ""; 
     664                        $field_name_dropdown = $field_name; 
     665                        $field_size = 1; 
     666                        if ($enable_multiple) { 
     667                            $str_multiple = "multiple"; 
     668                            $field_name_dropdown = $field_name . "[]"; 
     669                            $field_size = 6; 
     670                        } 
     671                        echo "<select id='$field_unique_id' name='$field_name_dropdown' $str_multiple size='$field_size' >"; 
    657672                        foreach ($field["type_dropdown_options"] as $one_option_internal_name => $one_option) { 
    658                             // $one_option_internal_name = dropdown_num_3 
     673                             
    659674                            if ($one_option["deleted"]) { continue; } 
     675                            if (strpos($one_option_internal_name, "dropdown_num_") === FALSE) continue; 
     676 
    660677                            $dropdown_value_esc = esc_html($one_option["value"]); 
    661678                            $selected = ""; 
    662                             if ($use_defaults == false && $saved_value == $one_option_internal_name) { 
    663                                 $selected = " selected='selected' "; 
     679 
     680                            // Different ways of detecting selected dropdown value if multiple or single 
     681                            if ($enable_multiple) { 
     682 
     683                                $arr_saved_value_dropdown = (array) $saved_value; 
     684                                /* 
     685                                Array 
     686                                ( 
     687                                    [0] => dropdown_num_2 
     688                                    [1] => dropdown_num_3 
     689                                ) 
     690                                */ 
     691                                if (in_array($one_option_internal_name, $arr_saved_value_dropdown)) { 
     692                                    $selected = " selected "; 
     693                                } 
     694 
     695                                 
     696                            } else { 
     697 
     698                                if ($use_defaults == false && $saved_value == $one_option_internal_name) { 
     699                                    $selected = " selected "; 
     700                                } 
     701 
    664702                            } 
     703 
    665704                            echo "<option $selected value='$one_option_internal_name'>$dropdown_value_esc</option>"; 
    666705                        } 
     
    11821221        if ($current_field_group["repeatable"]) { 
    11831222 
     1223            // Start of list with added field groups 
     1224            $ul_add_css = ""; 
     1225 
    11841226            // add link at top    
    11851227            echo " 
    1186                 <div class='simple-fields-metabox-field-add'> 
    1187                     <a href='#'>+ ".__('Add', 'simple-fields')."</a> 
    1188                 </div> 
     1228                <div class='simple-fields-metabox-field-add'> 
     1229                    <a href='#'>+ ".__('Add', 'simple-fields')."</a> 
     1230                    <!--  
     1231                    | 
     1232                    <a href='#' id='sfToggleView{$current_field_group["id"]}'>Toggle view</a> 
     1233                    --> 
     1234                </div> 
    11891235            "; 
    11901236 
    1191             // Start of list with adeed field groups 
    1192             echo "<ul class='simple-fields-metabox-field-group-fields simple-fields-metabox-field-group-fields-repeatable'>"; 
     1237            /* 
     1238            ?> 
     1239            <script> 
     1240                jQuery(function($) { 
     1241                    $("#sfToggleView<?php echo $current_field_group["id"] ?>").click(function(e) { 
     1242                        e.preventDefault(); 
     1243                        $(this).closest(".simple-fields-meta-box-field-group-wrapper").find("ul:first").toggleClass("simple-fields-metabox-field-group-fields-view-table"); 
     1244                    }); 
     1245                }); 
     1246            </script> 
     1247            <?php 
     1248            */ 
     1249 
     1250            // add test class to test table layout 
     1251            // $ul_add_css .= " simple-fields-metabox-field-group-fields-view-table"; 
     1252 
     1253            // add class with number of fields in field group 
     1254            $ul_add_css .= " simple-fields-metabox-field-group-fields-count-" . $current_field_group["fields_count"]; 
     1255            echo "<ul class='sf-cf simple-fields-metabox-field-group-fields simple-fields-metabox-field-group-fields-repeatable $ul_add_css'>"; 
    11931256      
    11941257            // now add them. ooooh my, this is fancy stuff. 
     
    17491812        return $arr_tabs; 
    17501813    } 
    1751      
    17521814 
    17531815     
     
    18911953        $field_type_dropdown_options = (array) @$fields[$fieldID]["type_dropdown_options"]; 
    18921954        $field_type_dropdown_option_enable_extended_return_values = (int) @$fields[$fieldID]["type_dropdown_options"]["enable_extended_return_values"]; 
     1955        $field_type_dropdown_option_enable_multiple = (int) @$fields[$fieldID]["type_dropdown_options"]["enable_multiple"]; 
    18931956         
    18941957        $field_type_post_options = (array) @$fields[$fieldID]["type_post_options"]; 
     
    23262389                $out .= "<div class='simple-fields-field-group-one-field-row-col-first'></div>"; 
    23272390                $out .= "<div class='simple-fields-field-group-one-field-row-col-second'>"; 
    2328                 $out .= "   <p><input type='checkbox' name='field[{$fieldID}][type_dropdown_options][enable_extended_return_values]' " . (($field_type_dropdown_option_enable_extended_return_values) ? " checked='checked'" : "") . " value='1' /> "; 
     2391 
     2392                // Enable extended 
     2393                $out .= "   <p>"; 
     2394                $out .= "       <input type='checkbox' name='field[{$fieldID}][type_dropdown_options][enable_extended_return_values]' " . (($field_type_dropdown_option_enable_extended_return_values) ? " checked='checked'" : "") . " value='1' /> "; 
    23292395                $out .=     __('Enable Extended Return Values', 'simple-fields') . "</p>"; 
    23302396                $out .= "   <p class='description'>" . __('Return an array with the value of the selected item in the dropdown + the values of the non-selected items.', 'simple-fields') . "</p>"; 
     2397 
     2398                $out .= "</div>"; 
     2399            $out .= "   </div>"; 
     2400 
     2401            // Enable multiple 
     2402            $out .= "<div class='simple-fields-field-group-one-field-row'>"; 
     2403                $out .= "<div class='simple-fields-field-group-one-field-row-col-first'></div>"; 
     2404                $out .= "<div class='simple-fields-field-group-one-field-row-col-second'>"; 
     2405                $out .= "<input " . ($field_type_dropdown_option_enable_multiple === 0 ? " checked=checked " : "")  . " type='radio' name='field[{$fieldID}][type_dropdown_options][enable_multiple]' value='0'> "; 
     2406                $out .= _x('Single', 'Field type dropdown', 'simple-fields') . " &nbsp;"; 
     2407 
     2408                $out .= "<input " . ($field_type_dropdown_option_enable_multiple === 1 ? " checked=checked " : "")  . " type='radio' name='field[{$fieldID}][type_dropdown_options][enable_multiple]' value='1'> "; 
     2409                $out .= _x('Multiple', 'Field type dropdown', 'simple-fields') . " &nbsp;"; 
     2410 
    23312411                $out .= "</div>"; 
    23322412            $out .= "   </div>"; 
     
    25202600             
    25212601                if ($_POST) { 
    2522 #sf_d($_POST); 
     2602                    #sf_d($_POST); 
    25232603                    $field_group_id                               = (int) $_POST["field_group_id"]; 
    25242604                    $field_groups[$field_group_id]["name"]        = stripslashes($_POST["field_group_name"]); 
     
    33763456     * Retrieve and return extended return values for a field type 
    33773457     * @param mixed $field array or string or int or whatever with field info 
    3378      * @param mixed $field_value 
     3458     * @param mixed $field_value the saved value 
    33793459     */ 
    33803460    function get_extended_return_values_for_field($field, $field_value) { 
    3381         /*           
    3382         radiobuttons 
    3383         file 
    3384         dropdown 
    3385         post 
    3386         user 
    3387         */ 
     3461     
    33883462 
    33893463        $return_field_value = array(); 
     
    34523526            $type_dropdown_options = $field["type_dropdown_options"]; 
    34533527 
    3454             $return_field_value["selected_value"]   = FALSE; 
    3455             $return_field_value["selected_option"]  = array(); 
    3456             $return_field_value["options"]          = array(); 
    3457  
    3458             foreach ($type_dropdown_options as $dropdown_key => $dropdown_value) { 
    3459  
    3460                 if ($dropdown_value["deleted"]) continue; 
    3461                  
    3462                 $return_field_value["options"][] = array( 
    3463                     "value"       => $dropdown_value["value"], 
    3464                     "key"         => $dropdown_key, 
    3465                     "is_selected" => ($field_value === $dropdown_key) 
    3466                 ); 
    3467                 if ($field_value === $dropdown_key) { 
    3468                     $return_field_value["selected_option"] = array( 
     3528            // dropdown can be multiple since 1.1.4 
     3529            if (isset($type_dropdown_options["enable_multiple"]) && $type_dropdown_options["enable_multiple"]) { 
     3530                 
     3531                // multiple = return array with same info as single values 
     3532                $arr_dropdown_values = $field_value; 
     3533 
     3534                $return_field_value["selected_values"]  = array(); 
     3535                $return_field_value["selected_options"] = array(); 
     3536                $return_field_value["options"] = array(); 
     3537 
     3538                foreach ($type_dropdown_options as $dropdown_key => $dropdown_value) { 
     3539 
     3540                    if ($dropdown_value["deleted"]) continue; 
     3541                     
     3542                    $return_field_value["options"][] = array( 
    34693543                        "value"       => $dropdown_value["value"], 
    34703544                        "key"         => $dropdown_key, 
    3471                         "is_selected" => TRUE 
     3545                        "is_selected" => in_array($dropdown_key, $arr_dropdown_values) 
    34723546                    ); 
    3473                     $return_field_value["selected_value"] = $dropdown_value["value"]; 
     3547 
     3548                    if (in_array($dropdown_key, $arr_dropdown_values)) { 
     3549                         
     3550                        $return_field_value["selected_options"][] = array( 
     3551                            "value"       => $dropdown_value["value"], 
     3552                            "key"         => $dropdown_key, 
     3553                            "is_selected" => TRUE 
     3554                        ); 
     3555                         
     3556                        $return_field_value["selected_values"][] = $dropdown_value["value"]; 
     3557                    } 
    34743558                } 
    3475             } 
     3559 
     3560            } else { 
     3561 
     3562                // Single value 
     3563                $return_field_value["selected_value"]   = FALSE; 
     3564                $return_field_value["selected_option"]  = array(); 
     3565                $return_field_value["options"]          = array(); 
     3566 
     3567                foreach ($type_dropdown_options as $dropdown_key => $dropdown_value) { 
     3568 
     3569                    if ($dropdown_value["deleted"]) continue; 
     3570                     
     3571                    $return_field_value["options"][] = array( 
     3572                        "value"       => $dropdown_value["value"], 
     3573                        "key"         => $dropdown_key, 
     3574                        "is_selected" => ($field_value === $dropdown_key) 
     3575                    ); 
     3576 
     3577                    if ($field_value === $dropdown_key) { 
     3578                     
     3579                        $return_field_value["selected_option"] = array( 
     3580                            "value"       => $dropdown_value["value"], 
     3581                            "key"         => $dropdown_key, 
     3582                            "is_selected" => TRUE 
     3583                        ); 
     3584                         
     3585                        $return_field_value["selected_value"] = $dropdown_value["value"]; 
     3586                     
     3587                    } 
     3588                } 
     3589 
     3590            } // if single 
    34763591             
    34773592        } else if ("post" === $field["type"]) { 
Note: See TracChangeset for help on using the changeset viewer.