WordPress.org

Plugin Directory

Changeset 625129


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

version 1.1.4

Location:
simple-fields/trunk
Files:
7 added
5 edited

Legend:

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

    r620797 r625129  
    2929 
    3030/** 
    31  * get all values or just the from a field in a field group 
     31 * get values from a field in a field group 
     32 * deprecated, use simple_fields_value or simple_fields_values 
    3233 * 
    3334 * @param $post_id 
     
    204205 * well.. everything! it's really funky. 
    205206 * 
     207 * used from many places 
     208 * 
    206209 * return @array a really fat one! 
    207210 */ 
     
    225228        $selected_post_connector  = isset($existing_post_connectors[$connector_to_use]) ? $existing_post_connectors[$connector_to_use] : NULL; 
    226229     
    227         if($selected_post_connector == null) { 
     230        if ($selected_post_connector == null) { 
    228231            return false; 
    229232        } 
     
    271274                foreach ($selected_post_connector["field_groups"][$one_field_group["id"]]["fields"] as $one_field_id => $one_field_value) { 
    272275     
    273     #echo "<br>num in set: $num_in_set"; 
    274     #sf_d($one_field_value); 
     276                    #echo "<br>num in set: $num_in_set"; 
     277                    #sf_d($one_field_value); 
    275278     
    276279                    $custom_field_key = "_simple_fields_fieldGroupID_{$one_field_group["id"]}_fieldID_{$one_field_id}_numInSet_{$num_in_set}"; 
    277     #echo "<br>custom field key: $custom_field_key"; 
     280                    #echo "<br>custom field key: $custom_field_key"; 
    278281     
    279282                    $saved_value = get_post_meta($post_id, $custom_field_key, true); // empty string if does not exist 
    280283     
    281                     if ($one_field_value["type"] == "textarea") { 
     284                    // Modify values for some field types 
     285                    if ("textarea" === $one_field_value["type"]) { 
    282286                        $match_count = preg_match_all('/http:\/\/[a-z0-9A-Z\.]+[a-z0-9A-Z\.\/%&=\?\-_#]+/i', $saved_value, $match); 
    283287                        if ($match_count) { 
     
    294298                            } 
    295299                        } 
    296                     } 
     300                    } else if ("dropdown" === $one_field_value["type"]) { 
     301                         
     302                        // dropdown can be multiple since 1.1.4 
     303                        if (isset($one_field_value["type_dropdown_options"]["enable_multiple"]) && $one_field_value["type_dropdown_options"]["enable_multiple"]) { 
     304 
     305                            // value should always be array when using multiple 
     306                            if (!is_array($saved_value)) $saved_value = array(); 
     307 
     308                        } 
     309 
     310                    } 
     311 
     312                    //  
    297313     
    298314                    $selected_post_connector["field_groups"][$one_field_group["id"]]["fields"][$one_field_id]["saved_values"][$num_in_set] = $saved_value; 
     
    10351051        foreach ($one_field_group["fields"] as $one_field_group_field) {  
    10361052 
    1037 //_simple_fields_fieldGroupID_23_fieldID_2_numInSet_ 
    1038 #file 
    1039 #sf_d($one_field_group_field); 
     1053            //_simple_fields_fieldGroupID_23_fieldID_2_numInSet_ 
     1054            #file 
     1055            #sf_d($one_field_group_field); 
    10401056 
    10411057            // Skip deleted fields 
     
    11261142                    // $parsed_options_for_this_field 
    11271143 
     1144 
    11281145                    // Check if field should return extended return values 
    11291146                    if ( isset($parsed_options_for_this_field["extended_return"]) && (bool) $parsed_options_for_this_field["extended_return"] ) { 
     1147                         
    11301148                        // check if current field type supports this 
    11311149                        if ( in_array($one_field_group_field["type"], array("file", "radiobuttons", "dropdown", "post", "user", "taxonomy", "taxonomyterm", "date")) ) { 
  • simple-fields/trunk/readme.txt

    r621721 r625129  
    44Tags: admin, fields, custom fields, advanced custom fields, extended custom fields, more fields, repeatable fields, field manager, attachments, text areas, input fields, tinymce, radio button, drop down, files, meta box, edit, post, post_meta, post meta, custom, simple fields, cms, date picker, time picker, repeatable fields, multiple fields 
    55Requires at least: 3.3.1 
    6 Tested up to: 3.4.2 
    7 Stable tag: 1.1.3 
     6Tested up to: 3.5 
     7Stable tag: 1.1.4 
    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.4 
     168- Added support for dropdowns with multiple selected values. Just check "multiple" in the settings for the dropdown field and voila! 
     169- Changed all jQuery javascript live events to on events, because live is deprecated. 
     170- Removed several javscript actions that were called on edit post page. Hopefully makes the edit post screen a bit quicker when working with repeatable custom fields 
     171- Probably some misc stuff I don't remember 
    166172 
    167173#### Version 1.1.3 
  • simple-fields/trunk/scripts.js

    r620797 r625129  
    1  
    2  
    31 
    42 
     
    75} 
    86 
     7// global js stuff; sorry about that... 
     8var simple_fields_metabox_field_file_select_input_selectedID = null; 
     9var simple_fields_is_simple_fields_popup = false; 
    910var simple_fields_datepicker_args = { "clickInput": true }; 
    1011var simple_fields_tinymce_iframes = []; 
     
    172173     * Edit field types/fields: on field type dropdown change 
    173174     */ 
    174     $("select.simple-fields-field-type").live("change", function() { 
     175    $(document).on("change", "select.simple-fields-field-type", function(e) { 
    175176        // look for simple-fields-field-type-options-<type> and show if 
    176177        var $t = $(this); 
     
    181182    }); 
    182183     
    183     $("li.simple-fields-field-group-one-field").live("mouseenter", function() { 
    184         $(this).find("div.delete").show(); 
    185     }); 
    186     $("li.simple-fields-field-group-one-field").live("mouseleave", function() { 
    187         $(this).find("div.delete").hide(); 
    188     }); 
    189  
    190     $("li.simple-fields-field-group-one-field div.delete a").live("click", function(){ 
     184    // Field group edit, show delete icon for field 
     185    $(document).on("hover", "li.simple-fields-field-group-one-field", function(e) { 
     186        var $t = $(this); 
     187        if ("mouseenter" == e.type) { 
     188            $t.find("div.delete").show(); 
     189        } else { 
     190            $t.find("div.delete").hide(); 
     191        } 
     192    }); 
     193 
     194    // field group field: click on delete button 
     195    $(document).on("click", "li.simple-fields-field-group-one-field div.delete a", function() { 
    191196        if (confirm(sfstrings.confirmDelete)) { 
    192197            $(this).closest("li").find(".hidden_deleted").attr("value", 1); 
     
    199204    }); 
    200205 
    201     $(".simple-fields-field-group-delete a").live("click", function() { 
    202         if (confirm(sfstrings.confirmDeleteGroup)) { 
    203             return true; 
    204         } else { 
    205         } 
    206         return false; 
    207     }); 
    208      
    209     $(".simple-fields-post-connector-delete a").live("click", function() { 
    210         if (confirm(sfstrings.confirmDeleteConnector)) { 
    211             return true; 
    212         } else { 
    213         } 
    214         return false; 
    215     }); 
    216  
    217     $("a.simple-fields-field-type-options-radiobutton-values-add").live("click", function() { 
     206    // Field group edit, confirm delete field group 
     207    $(document).on("click", ".simple-fields-field-group-delete a", function() { 
     208        if (confirm(sfstrings.confirmDeleteGroup)) return true; 
     209        return false; 
     210    }); 
     211     
     212    // Edit post connector, confirm connector delete 
     213    $(document).on("click", ".simple-fields-post-connector-delete a", function() { 
     214        if (confirm(sfstrings.confirmDeleteConnector)) return true; 
     215        return false; 
     216    }); 
     217 
     218    // Edit field group, field radiobutton 
     219    $(document).on("click", "a.simple-fields-field-type-options-radiobutton-values-add", function(e) { 
    218220        // finds the highest existing button id 
    219221        var $fieldRadiobuttonHighestID = $(this).closest(".simple-fields-field-group-one-field").find(".simple-fields-field-group-one-field-radiobuttons-highest-id"); 
     
    225227        return false; 
    226228    }); 
    227     $("ul.simple-fields-field-type-options-radiobutton-values-added li").live("mouseenter", function() { 
    228         $(this).find(".simple-fields-field-type-options-radiobutton-delete").show(); 
    229     }); 
    230     $("ul.simple-fields-field-type-options-radiobutton-values-added li").live("mouseleave", function() { 
    231         $(this).find(".simple-fields-field-type-options-radiobutton-delete").hide(); 
    232     }); 
    233     $(".simple-fields-field-type-options-radiobutton-delete").live("click", function() { 
     229    // Radiobutton: show delete link 
     230    $(document).on("hover", "ul.simple-fields-field-type-options-radiobutton-values-added li", function(e) { 
     231        var $t = $(this); 
     232        if ("mouseenter" == e.type) { 
     233            $t.find(".simple-fields-field-type-options-radiobutton-delete").show(); 
     234        } else { 
     235            $t.find(".simple-fields-field-type-options-radiobutton-delete").hide(); 
     236        } 
     237    }); 
     238 
     239    // Radiobutton: click delete 
     240    $(document).on("click", ".simple-fields-field-type-options-radiobutton-delete", function(e) { 
    234241        if (confirm(sfstrings.confirmDeleteRadio)) { 
    235242            $(this).closest("li").hide("slow").find(".simple-fields-field-type-options-radiobutton-deleted").val("1"); 
     
    238245    }); 
    239246 
    240     $("a.simple-fields-field-type-options-dropdown-values-add").live("click", function() { 
     247    // Dropdown: add value 
     248    $(document).on("click", "a.simple-fields-field-type-options-dropdown-values-add", function(e) { 
    241249        // finds the highest existing button id 
    242250        var $fieldDropdownHighestID = $(this).closest(".simple-fields-field-group-one-field").find(".simple-fields-field-group-one-field-dropdown-highest-id"); 
     
    248256        return false; 
    249257    }); 
    250     $("ul.simple-fields-field-type-options-dropdown-values-added li").live("mouseenter", function() { 
    251         $(this).find(".simple-fields-field-type-options-dropdown-delete").show(); 
    252     }); 
    253     $("ul.simple-fields-field-type-options-dropdown-values-added li").live("mouseleave", function() { 
    254         $(this).find(".simple-fields-field-type-options-dropdown-delete").hide(); 
    255     }); 
    256     $(".simple-fields-field-type-options-dropdown-delete").live("click", function() { 
     258 
     259    $(document).on("hover", "ul.simple-fields-field-type-options-dropdown-values-added li", function(e) { 
     260        var $t = $(this); 
     261        if ("mouseenter" == e.type) { 
     262            $t.find(".simple-fields-field-type-options-dropdown-delete").show(); 
     263        } else { 
     264            $t.find(".simple-fields-field-type-options-dropdown-delete").hide(); 
     265        } 
     266    }); 
     267 
     268    // Dropdown: delete 
     269    $(document).on("click", ".simple-fields-field-type-options-dropdown-delete", function(e) { 
    257270        if (confirm(sfstrings.confirmDeleteDropdown)) { 
    258271            $(this).closest("li").hide("slow").find(".simple-fields-field-type-options-dropdown-deleted").val("1"); 
     
    267280    // - num in (new) set 
    268281    var simple_fields_new_fields_count = 0; 
    269     $(".simple-fields-metabox-field-add").live("click", function(e) { 
    270  
    271         var $t = $(this); 
     282    $(document).on("click", "div.simple-fields-metabox-field-add a:nth-child(1)", function(e) { 
     283 
     284        var $t = $(this).closest("div.simple-fields-metabox-field-add"); 
     285        //var $t = $(this); 
    272286         
    273287        $t.text(sfstrings.adding); 
    274         var $wrapper = $(this).parents(".simple-fields-meta-box-field-group-wrapper"); 
     288        var $wrapper = $t.parents(".simple-fields-meta-box-field-group-wrapper"); 
    275289        var field_group_id = $wrapper.find("input[name=simple-fields-meta-box-field-group-id]").val(); 
    276290        var post_id = jQuery("#post_ID").val(); 
     
    296310            } 
    297311 
    298             var wrapper = $ul.closest(".simple-fields-meta-box-field-group-wrapper"); 
     312            var wrapper = $ul.closest("div.simple-fields-meta-box-field-group-wrapper"); 
    299313            // var lis = $ul.find(">li"); 
    300314 
     
    313327 
    314328            $t.html("<a href='#'>+ "+sfstrings.add+"</a>"); 
    315             //wrapper.find(".simple-fields-metabox-field-add-bottom").show(); 
     329             
    316330            wrapper.addClass("simple-fields-meta-box-field-group-wrapper-has-fields-added"); 
    317331 
     
    323337    }); 
    324338 
    325     $(".simple-fields-post-connector-addded-fields-delete").live("click", function() { 
     339    // edit post connector: delete 
     340    $(document).on("click", "a.simple-fields-post-connector-addded-fields-delete", function(e) { 
    326341        if (confirm(sfstrings.confirmRemoveGroupConnector)) { 
    327342            $(this).closest("li").hide("slow").find(".simple-fields-post-connector-added-field-deleted").val("1"); 
     
    330345    }); 
    331346 
    332     $("ul.simple-fields-metabox-field-group-fields-repeatable li").live("hover", function(e) { 
    333         if (e.type == "mouseover") { 
    334             $(this).addClass("hover"); 
    335         } else if (e.type == "mouseout") { 
    336             $(this).removeClass("hover"); 
    337         } 
    338     }); 
    339     // on click on any input in a repeatable field group: highlight whole group 
    340     $("ul.simple-fields-metabox-field-group-fields-repeatable li input").live("focus", function() { 
    341         $(this).closest("li").addClass("active"); 
    342     }).live("blur", function() { 
    343         $(this).closest("li").removeClass("active"); 
    344     }); 
    345      
    346     $(".simple-fields-metabox-field-group").live("mouseenter", function() { 
    347         $(this).find(".simple-fields-metabox-field-group-delete").show(); 
    348     }); 
    349     $(".simple-fields-metabox-field-group").live("mouseleave", function() { 
    350         $(this).find(".simple-fields-metabox-field-group-delete").hide(); 
    351     }); 
    352     $(".simple-fields-metabox-field-group-delete").live("click", function() { 
     347    // Edit post, field group delete 
     348    $(document).on("click", "div.simple-fields-metabox-field-group-delete a", function(e) { 
     349     
    353350        if (confirm(sfstrings.confirmRemoveGroup)) { 
    354351            var li = $(this).closest("li"); 
     
    370367 
    371368        } 
    372         return false; 
     369     
     370        return false; 
     371     
    373372    }); 
    374373     
    375374    // click on select file for a field 
    376     $(".simple-fields-metabox-field-file-select").live("click", function() { 
     375    $(document).on("click", ".simple-fields-metabox-field-file-select", function(e) { 
    377376        var input = $(this).closest(".simple-fields-metabox-field").find(".simple-fields-metabox-field-file-fileID"); 
    378377        simple_fields_metabox_field_file_select_input_selectedID = input; 
     
    380379     
    381380    // select a file in the file browser (that is in a popup) 
    382     $(".simple-fields-file-browser-file-select").live("click", function() { 
     381    $(document).on("click", "a.simple-fields-file-browser-file-select", function(e) { 
    383382 
    384383        sfmfli.find(".simple-fields-metabox-field-file-edit").show(); 
     
    394393 
    395394    // clear the file 
    396     $(".simple-fields-metabox-field-file-clear").live("click", function() { 
     395    $(document).on("click", "a.simple-fields-metabox-field-file-clear", function(e) { 
    397396        var $li = $(this).closest(".simple-fields-metabox-field-file"); 
    398397        $li.find(".simple-fields-metabox-field-file-fileID").val(""); 
     
    409408 
    410409    // media buttons 
    411     $(".simple_fields_tiny_media_button").live("click", function(){ 
     410    $(document).on("click", ".simple_fields_tiny_media_button", function(e){ 
    412411        var id = $(this).closest(".simple-fields-metabox-field").find("textarea").attr("id"); 
    413412        simple_fields_focusTextArea(id); 
     
    418417    // field type post 
    419418    // popup a dialog where the user can choose  the post to attach 
    420     $("a.simple-fields-metabox-field-post-select").live("click", function(e) { 
     419    $(document).on("click", "a.simple-fields-metabox-field-post-select", function(e) { 
    421420 
    422421        e.preventDefault(); 
     
    449448     * Close the dialog 
    450449     */ 
    451     $(".simple-fields-postdialog-link-cancel").live("click", function(e) { 
     450    $(document).on("click", ".simple-fields-postdialog-link-cancel", function(e) { 
    452451        e.preventDefault(); 
    453452        $("div.simple-fields-meta-box-field-group-field-type-post-dialog").dialog("close"); 
     
    457456     * in dialog: click on post type = show posts of that type 
    458457     */ 
    459     $(".simple-fields-meta-box-field-group-field-type-post-dialog-post-types a").live("click", function(e) { 
     458    $(document).on("click", ".simple-fields-meta-box-field-group-field-type-post-dialog-post-types a", function(e) { 
    460459 
    461460        e.preventDefault(); 
     
    479478     * in dialog: click on a post = update input in field group and then close dialog 
    480479     */ 
    481     $(".simple-fields-meta-box-field-group-field-type-post-dialog-post-posts a").live("click", function(e) { 
     480    $(document).on("click", ".simple-fields-meta-box-field-group-field-type-post-dialog-post-posts a", function(e) { 
    482481         
    483482        e.preventDefault(); 
     
    502501     * Field type post: link clear = clear post id and name 
    503502     */ 
    504     $(".simple-fields-metabox-field-post-clear").live("click", function(e) { 
     503    $(document).on("click", ".simple-fields-metabox-field-post-clear", function(e) { 
    505504        e.preventDefault(); 
    506505        var a = $(this); 
     
    515514     */ 
    516515    $(function() { 
     516 
     517        // If meta_box_field_group_wrapper exists on the page then it's a page with simple fields-fields 
     518        var meta_box_field_group_wrapper = $("div.simple-fields-meta-box-field-group-wrapper"); 
     519        if (meta_box_field_group_wrapper.length) { 
     520             
     521            // Add chosen to select dropdown 
     522            // ...or not, didn't get the widths to work 
     523            // $("div.simple-fields-fieldgroups-field-type-dropdown select").chosen({}); 
     524 
     525        } 
    517526 
    518527        $("#simple-fields-field-group-existing-fields ul:first").sortable({ 
     
    585594             
    586595        }); 
     596 
     597        // Edit post connector, add sortable to list of added fields 
    587598        $("#simple-fields-post-connector-added-fields").sortable({ 
    588599            axis: 'y', 
     
    590601            handle: ".simple-fields-post-connector-addded-fields-handle" 
    591602        }); 
    592         $("ul#simple-fields-post-connector-added-fields li").hover(function() { 
    593             $(this).find(".simple-fields-post-connector-addded-fields-delete").show(); 
    594         }, function() { 
    595             $(this).find(".simple-fields-post-connector-addded-fields-delete").hide(); 
     603 
     604        // Edit post connector, show delete link on mouse over 
     605        $(document).on("hover", "#simple-fields-post-connector-added-fields li", function(e) { 
     606            $t = $(this); 
     607            if ("mouseenter" == e.type) { 
     608                $t.find(".simple-fields-post-connector-addded-fields-delete").show(); 
     609            } else { 
     610                $t.find(".simple-fields-post-connector-addded-fields-delete").hide(); 
     611            } 
    596612        }); 
    597613 
     
    600616         * edit posts 
    601617         */ 
    602         $("#simple-fields-post-edit-side-field-settings-select-connector").change(function() { 
     618        // Change connector, show message that you must save 
     619        $(document).on("change", "#simple-fields-post-edit-side-field-settings-select-connector", function() { 
    603620            $("#simple-fields-post-edit-side-field-settings-select-connector-please-save").show("fast"); 
    604621        }); 
    605         $("#simple-fields-post-edit-side-field-settings-show-keys").click(function() { 
    606             $(".simple-fields-metabox-field-custom-field-key").toggle(); 
     622 
     623        // Click show custom field keys 
     624        $(document).on("click", "#simple-fields-post-edit-side-field-settings-show-keys", function() { 
     625            $("div.simple-fields-metabox-field-custom-field-key").toggle(); 
    607626            return false; 
    608627        }); 
    609628 
     629        // Edit post, make repeatable field sortable 
    610630        $("ul.simple-fields-metabox-field-group-fields-repeatable").sortable({ 
    611631            distance: 10, 
     
    663683 
    664684 
    665 }(jQuery)); 
     685}(jQuery)); // self invoke function 
    666686 
    667687 
     
    705725} 
    706726 
    707 // global js stuff; sorry about that... 
    708 var simple_fields_metabox_field_file_select_input_selectedID = null; 
    709 var simple_fields_is_simple_fields_popup = false; 
    710727 
    711728// called when selecting file from tiny-area, if I remember correct 
  • 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"]) { 
  • simple-fields/trunk/styles-edit-post.css

    r621721 r625129  
    5353    padding-bottom: .5em; 
    5454    padding-left: 11px; 
     55    /* transition: all .25s ease-out; -webkit-transition: all .25s ease-out; -moz-transition: all .25s ease-out; -o-transition: all .25s ease-out; -ms-transition: all .25s ease-out; */ 
    5556    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(whiteSmoke), to(#fcfcfc)); 
    5657    background-image: -webkit-linear-gradient(top, whiteSmoke, #fcfcfc); 
     
    6162    padding: .5em 1.5em; 
    6263    margin: 0 0 0 0; 
    63     opacity: .8; 
     64    opacity: .9; 
    6465} 
    6566ul.simple-fields-metabox-field-group-fields-repeatable li:hover { 
     
    6970 
    7071 
    71 .simple-fields-metabox-field-group-handle 
    72  { 
     72.simple-fields-metabox-field-group-handle { 
    7373    width: 16px; 
    7474    height: 16px; 
     
    8383    display: block; 
    8484} 
    85  
    86  
    8785 
    8886.simple-fields-metabox-field-group input.text { 
     
    184182    right: 10px; 
    185183} 
     184 
     185    .simple-fields-metabox-field-group:hover .simple-fields-metabox-field-group-delete { 
     186        display: block; 
     187    } 
     188 
    186189    .simple-fields-metabox-field-group-delete a { 
    187190        background: transparent url(bin_closed.png) no-repeat 0 50%; 
     
    284287}*/ 
    285288 
    286 /* post field*/ 
     289/** 
     290 * field dropdown 
     291 */ 
     292.simple-fields-fieldgroups-field-type-dropdown select { 
     293    /*width: 50%;*/ 
     294} 
     295 
     296/**  
     297 * field post 
     298 */ 
    287299.simple-fields-meta-box-field-group-field-type-post-dialog { 
    288300    margin: 10px; 
     
    347359 
    348360 
     361 
     362/* test style for thumbnail repeatable view */ 
     363.simple-fields-metabox-field-group-fields-view-table { 
     364 
     365} 
     366 
     367.simple-fields-metabox-field-group-fields-view-table li { 
     368    border: 0 !important; 
     369    background-image: none !important; 
     370} 
     371 
     372.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field { 
     373    float: left; 
     374    padding: 0 20px 0 0; 
     375    margin: 0; 
     376    -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; 
     377} 
     378 
     379.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field-first, 
     380.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field-second { 
     381    width: 100%; 
     382    margin: 0; 
     383    padding: 0; 
     384} 
     385 
     386.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field-first { 
     387    display: none; 
     388    float: none; 
     389} 
     390.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field-first label { 
     391    font-weight: bold; 
     392} 
     393 
     394.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field-second { 
     395    float: none; 
     396} 
     397 
     398.simple-fields-metabox-field-group-fields-view-table .simple-fields-metabox-field-group-handle { 
     399    margin-top: 0; 
     400} 
     401 
     402 
     403.simple-fields-metabox-field-group-fields-view-table li:first-of-type { 
     404    border-top: 0; 
     405} 
     406 
     407.simple-fields-metabox-field-group-fields-view-table li:first-of-type .simple-fields-metabox-field-group-handle { 
     408    margin-top: 34px; 
     409} 
     410.simple-fields-metabox-field-group-fields-view-table li:first-of-type .simple-fields-metabox-field-group-delete { 
     411    top: 44px; 
     412} 
     413 
     414.simple-fields-metabox-field-group-fields-view-table li:first-of-type .simple-fields-metabox-field-first { 
     415    display: block; 
     416    margin-bottom: 10px; 
     417    padding-bottom: 5px; 
     418    border-bottom: 1px solid #ccc; 
     419} 
     420.simple-fields-metabox-field-group-fields-view-table li:first-of-type .simple-fields-metabox-field-second { 
     421    margin-bottom: 25px; 
     422} 
     423 
     424/* different widths depending on num of added fields. and yes, this feel a bit stupud */ 
     425/* we support up to 10 fields, even that is proably to many too look good*/ 
     426.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-1 .simple-fields-metabox-field { 
     427    width: 100%; 
     428} 
     429.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-2 .simple-fields-metabox-field { 
     430    width: 30%; 
     431} 
     432.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-3 .simple-fields-metabox-field { 
     433    width: 33.33%; 
     434} 
     435.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-4 .simple-fields-metabox-field { 
     436    width: 25%; 
     437} 
     438.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-5 .simple-fields-metabox-field { 
     439    width: 20%; 
     440} 
     441.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-6 .simple-fields-metabox-field { 
     442    width: 16.66%; 
     443} 
     444.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-7 .simple-fields-metabox-field { 
     445    width: 14.28%; 
     446} 
     447.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-8 .simple-fields-metabox-field { 
     448    width: 12.5%; 
     449} 
     450.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-9 .simple-fields-metabox-field { 
     451    width: 11.11%; 
     452} 
     453.simple-fields-metabox-field-group-fields-view-table.simple-fields-metabox-field-group-fields-count-10 .simple-fields-metabox-field { 
     454    width: 10%; 
     455} 
Note: See TracChangeset for help on using the changeset viewer.