Changeset 5906 for trunk/wp-includes/bookmark.php
- Timestamp:
- 08/20/2007 10:50:04 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/bookmark.php
r5897 r5906 1 1 <?php 2 2 3 function get_bookmark($bookmark_id, $output = OBJECT ) {3 function get_bookmark($bookmark_id, $output = OBJECT, $filter = 'raw') { 4 4 global $wpdb; 5 5 … … 8 8 $link->link_category = wp_get_link_cats($bookmark_id); 9 9 10 $link = sanitize_bookmark($link, $filter); 11 10 12 if ( $output == OBJECT ) { 11 13 return $link; … … 17 19 return $link; 18 20 } 21 } 22 23 function get_bookmark_field( $field, $bookmark, $context = 'display' ) { 24 $bookmark = (int) $bookmark; 25 $bookmark = get_bookmark( $bookmark ); 26 27 if ( is_wp_error($bookmark) ) 28 return $bookmark; 29 30 if ( !is_object($bookmark) ) 31 return ''; 32 33 if ( !isset($bookmark->$field) ) 34 return ''; 35 36 return sanitize_bookmark_field($field, $bookmark->$field, $bookmark->link_id, $context); 19 37 } 20 38 … … 143 161 } 144 162 163 function sanitize_bookmark($bookmark, $context = 'display') { 164 $fields = array('link_id', 'link_url', 'link_name', 'link_image', 'link_target', 'link_category', 165 'link_description', 'link_visible', 'link_owner', 'link_rating', 'link_updated', 166 'link_rel', 'link_notes', 'link_rss', ); 167 168 $do_object = false; 169 if ( is_object($bookmark) ) 170 $do_object = true; 171 172 foreach ( $fields as $field ) { 173 if ( $do_object ) 174 $bookmark->$field = sanitize_bookmark_field($field, $bookmark->$field, $bookmark->link_id, $context); 175 else 176 $bookmark[$field] = sanitize_bookmark_field($field, $bookmark[$field], $bookmark['link_id'], $context); 177 } 178 179 return $bookmark; 180 } 181 182 function sanitize_bookmark_field($field, $value, $bookmark_id, $context) { 183 $int_fields = array('link_id', 'link_rating'); 184 if ( in_array($field, $int_fields) ) 185 $value = (int) $value; 186 187 $yesno = array('link_visible'); 188 if ( in_array($field, $yesno) ) 189 $value = preg_replace('/[^YNyn]/', '', $value); 190 191 if ( 'link_target' == $field ) { 192 $targets = array('_top', '_blank'); 193 if ( ! in_array($value, $targets) ) 194 $value = ''; 195 } 196 197 if ( 'raw' == $context ) 198 return $value; 199 200 if ( 'edit' == $context ) { 201 $format_to_edit = array('link_notes'); 202 $value = apply_filters("edit_$field", $value, $bookmark_id); 203 204 if ( in_array($field, $format_to_edit) ) { 205 $value = format_to_edit($value); 206 } else { 207 $value = attribute_escape($value); 208 } 209 } else if ( 'db' == $context ) { 210 $value = apply_filters("pre_$field", $value); 211 } else { 212 // Use display filters by default. 213 $value = apply_filters($field, $value, $bookmark_id, $context); 214 } 215 216 if ( 'attribute' == $context ) 217 $value = attribute_escape($value); 218 else if ( 'js' == $context ) 219 $value = js_escape($value); 220 221 return $value; 222 } 223 145 224 function delete_get_bookmark_cache() { 146 225 wp_cache_delete( 'get_bookmarks', 'bookmark' );
Note: See TracChangeset
for help on using the changeset viewer.