Make WordPress Core

Changeset 14239


Ignore:
Timestamp:
04/26/2010 02:10:12 PM (14 years ago)
Author:
ryan
Message:

Fix array handling in sanitize_bookmark_field(). Props mdawaffe. fixes #13098

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/bookmark.php

    r14131 r14239  
    310310 */
    311311function sanitize_bookmark_field($field, $value, $bookmark_id, $context) {
    312     $int_fields = array('link_id', 'link_rating');
    313     if ( in_array($field, $int_fields) )
     312    switch ( $field ) {
     313    case 'link_id' : // ints
     314    case 'link_rating' :
    314315        $value = (int) $value;
    315 
    316     // Fields which contain arrays of ints.
    317     $array_int_fields = array( 'link_category' );
    318     if ( in_array($field, $array_int_fields) ) {
    319         $value = array_map( 'absint', $value);
     316        break;
     317    case 'link_category' : // array( ints )
     318        $value = array_map('absint', (array) $value);
     319        // We return here so that the categories aren't filtered.
     320        // The 'link_category' filter is for the name of a link category, not an array of a link's link categories
    320321        return $value;
    321     }
    322 
    323     $yesno = array('link_visible');
    324     if ( in_array($field, $yesno) )
     322        break;
     323    case 'link_visible' : // bool stored as Y|N
    325324        $value = preg_replace('/[^YNyn]/', '', $value);
    326 
    327     if ( 'link_target' == $field ) {
     325        break;
     326    case 'link_target' : // "enum"
    328327        $targets = array('_top', '_blank');
    329328        if ( ! in_array($value, $targets) )
    330329            $value = '';
     330        break;
    331331    }
    332332
     
    348348        // Use display filters by default.
    349349        $value = apply_filters($field, $value, $bookmark_id, $context);
    350     }
    351 
    352     if ( 'attribute' == $context )
    353         $value = esc_attr($value);
    354     else if ( 'js' == $context )
    355         $value = esc_js($value);
     350
     351        if ( 'attribute' == $context )
     352            $value = esc_attr($value);
     353        else if ( 'js' == $context )
     354            $value = esc_js($value);
     355    }
    356356
    357357    return $value;
Note: See TracChangeset for help on using the changeset viewer.