Make WordPress Core


Ignore:
Timestamp:
06/05/2006 02:12:59 AM (20 years ago)
Author:
ryan
Message:

Reorg bookmark functions. #2525

File:
1 moved

Legend:

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

    r3809 r3845  
    281281}
    282282
    283 function get_bookmarks($args = '') {
    284         global $wpdb;
    285 
    286         if ( is_array($args) )
    287                 $r = &$args;
    288         else
    289                 parse_str($args, $r);
    290 
    291         $defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '',
    292                 'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'include' => '', 'exclude' => '');
    293         $r = array_merge($defaults, $r);
    294         extract($r);
    295 
    296         $inclusions = '';
    297         if ( !empty($include) ) {
    298         $exclude = '';  //ignore exclude, category, and category_name params if using include
    299         $category = '';
    300         $category_name = '';
    301                 $inclinks = preg_split('/[\s,]+/',$include);
    302                 if ( count($inclinks) ) {
    303                         foreach ( $inclinks as $inclink ) {
    304                                 if (empty($inclusions))
    305                                         $inclusions = ' AND ( link_id = ' . intval($inclink) . ' ';
    306                                 else
    307                                         $inclusions .= ' OR link_id = ' . intval($inclink) . ' ';
    308                         }
    309                 }
    310         }
    311         if (!empty($inclusions))
    312                 $inclusions .= ')';
    313 
    314         $exclusions = '';
    315         if ( !empty($exclude) ) {
    316                 $exlinks = preg_split('/[\s,]+/',$exclude);
    317                 if ( count($exlinks) ) {
    318                         foreach ( $exlinks as $exlink ) {
    319                                 if (empty($exclusions))
    320                                         $exclusions = ' AND ( link_id <> ' . intval($exlink) . ' ';
    321                                 else
    322                                         $exclusions .= ' AND link_id <> ' . intval($exlink) . ' ';
    323                         }
    324                 }
    325         }
    326         if (!empty($exclusions))
    327                 $exclusions .= ')';
    328                
    329         if ( ! empty($category_name) ) {
    330                 if ( $cat_id = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE cat_name='$category_name' LIMIT 1") )
    331                         $category = $cat_id;
    332         }
    333 
    334         $category_query = '';
    335         $join = '';
    336         if ( !empty($category) ) {
    337                 $incategories = preg_split('/[\s,]+/',$category);
    338                 if ( count($incategories) ) {
    339                         foreach ( $incategories as $incat ) {
    340                                 if (empty($category_query))
    341                                         $category_query = ' AND ( category_id = ' . intval($incat) . ' ';
    342                                 else
    343                                         $category_query .= ' OR category_id = ' . intval($incat) . ' ';
    344                         }
    345                 }
    346         }
    347         if (!empty($category_query)) {
    348                 $category_query .= ')';
    349                 $join = " LEFT JOIN $wpdb->link2cat ON ($wpdb->links.link_id = $wpdb->link2cat.link_id) ";
    350         }
    351 
    352         if (get_settings('links_recently_updated_time')) {
    353                 $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL " . get_settings('links_recently_updated_time') . " MINUTE) >= NOW(), 1,0) as recently_updated ";
    354         } else {
    355                 $recently_updated_test = '';
    356         }
    357 
    358         if ($show_updated) {
    359                 $get_updated = ", UNIX_TIMESTAMP(link_updated) AS link_updated_f ";
    360         }
    361 
    362         $orderby = strtolower($orderby);
    363         $length = '';
    364         switch ($orderby) {
    365                 case 'length':
    366                         $length = ", CHAR_LENGTH(link_name) AS length";
    367                         break;
    368                 case 'rand':
    369                         $orderby = 'rand()';
    370                         break;
    371                 default:
    372                         $orderby = "link_" . $orderby;
    373         }
    374 
    375         if ( 'link_id' == $orderby )
    376                 $orderby = "$wpdb->links.link_id";
    377 
    378         $visible = '';
    379         if ( $hide_invisible )
    380                 $visible = "AND link_visible = 'Y'";
    381 
    382         $query = "SELECT * $length $recently_updated_test $get_updated FROM $wpdb->links $join WHERE 1=1 $visible $category_query";
    383         $query .= " $exclusions $inclusions";
    384         $query .= " ORDER BY $orderby $order";
    385         if ($limit != -1)
    386                 $query .= " LIMIT $limit";
    387 
    388         $results = $wpdb->get_results($query);
    389         return apply_filters('get_bookmarks', $results, $r);
    390 }
    391283?>
Note: See TracChangeset for help on using the changeset viewer.