[ Index ]

PHP Cross Reference of Wordpress 2.9.1

title

Body

[close]

/wp-admin/includes/ -> bookmark.php (source)

   1  <?php
   2  /**
   3   * WordPress Bookmark Administration API
   4   *
   5   * @package WordPress
   6   * @subpackage Administration
   7   */
   8  
   9  /**
  10   * {@internal Missing Short Description}}
  11   *
  12   * @since unknown
  13   *
  14   * @return unknown
  15   */
  16  function add_link() {
  17      return edit_link();
  18  }
  19  
  20  /**
  21   * {@internal Missing Short Description}}
  22   *
  23   * @since unknown
  24   *
  25   * @param unknown_type $link_id
  26   * @return unknown
  27   */
  28  function edit_link( $link_id = '' ) {
  29      if (!current_user_can( 'manage_links' ))
  30          wp_die( __( 'Cheatin&#8217; uh?' ));
  31  
  32      $_POST['link_url'] = esc_html( $_POST['link_url'] );
  33      $_POST['link_url'] = esc_url($_POST['link_url']);
  34      $_POST['link_name'] = esc_html( $_POST['link_name'] );
  35      $_POST['link_image'] = esc_html( $_POST['link_image'] );
  36      $_POST['link_rss'] = esc_url($_POST['link_rss']);
  37      if ( !isset($_POST['link_visible']) || 'N' != $_POST['link_visible'] )
  38          $_POST['link_visible'] = 'Y';
  39  
  40      if ( !empty( $link_id ) ) {
  41          $_POST['link_id'] = $link_id;
  42          return wp_update_link( $_POST);
  43      } else {
  44          return wp_insert_link( $_POST);
  45      }
  46  }
  47  
  48  /**
  49   * {@internal Missing Short Description}}
  50   *
  51   * @since unknown
  52   *
  53   * @return unknown
  54   */
  55  function get_default_link_to_edit() {
  56      if ( isset( $_GET['linkurl'] ) )
  57          $link->link_url = esc_url( $_GET['linkurl']);
  58      else
  59          $link->link_url = '';
  60  
  61      if ( isset( $_GET['name'] ) )
  62          $link->link_name = esc_attr( $_GET['name']);
  63      else
  64          $link->link_name = '';
  65  
  66      $link->link_visible = 'Y';
  67  
  68      return $link;
  69  }
  70  
  71  /**
  72   * {@internal Missing Short Description}}
  73   *
  74   * @since unknown
  75   *
  76   * @param unknown_type $link_id
  77   * @return unknown
  78   */
  79  function wp_delete_link( $link_id ) {
  80      global $wpdb;
  81  
  82      do_action( 'delete_link', $link_id );
  83  
  84      wp_delete_object_term_relationships( $link_id, 'link_category' );
  85  
  86      $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->links WHERE link_id = %d", $link_id ) );
  87  
  88      do_action( 'deleted_link', $link_id );
  89  
  90      clean_bookmark_cache( $link_id );
  91  
  92      return true;
  93  }
  94  
  95  /**
  96   * {@internal Missing Short Description}}
  97   *
  98   * @since unknown
  99   *
 100   * @param unknown_type $link_id
 101   * @return unknown
 102   */
 103  function wp_get_link_cats( $link_id = 0 ) {
 104  
 105      $cats = wp_get_object_terms( $link_id, 'link_category', 'fields=ids' );
 106  
 107      return array_unique( $cats );
 108  }
 109  
 110  /**
 111   * {@internal Missing Short Description}}
 112   *
 113   * @since unknown
 114   *
 115   * @param unknown_type $link_id
 116   * @return unknown
 117   */
 118  function get_link_to_edit( $link_id ) {
 119      return get_bookmark( $link_id, OBJECT, 'edit' );
 120  }
 121  
 122  /**
 123   * {@internal Missing Short Description}}
 124   *
 125   * @since unknown
 126   *
 127   * @param unknown_type $linkdata
 128   * @return unknown
 129   */
 130  function wp_insert_link( $linkdata, $wp_error = false ) {
 131      global $wpdb, $current_user;
 132  
 133      $defaults = array( 'link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
 134  
 135      $linkdata = wp_parse_args( $linkdata, $defaults );
 136      $linkdata = sanitize_bookmark( $linkdata, 'db' );
 137  
 138      extract( stripslashes_deep( $linkdata ), EXTR_SKIP );
 139  
 140      $update = false;
 141  
 142      if ( !empty( $link_id ) )
 143          $update = true;
 144  
 145      if ( trim( $link_name ) == '' ) {
 146          if ( trim( $link_url ) != '' ) {
 147              $link_name = $link_url;
 148          } else {
 149              return 0;
 150          }
 151      }
 152  
 153      if ( trim( $link_url ) == '' )
 154          return 0;
 155  
 156      if ( empty( $link_rating ) )
 157          $link_rating = 0;
 158  
 159      if ( empty( $link_image ) )
 160          $link_image = '';
 161  
 162      if ( empty( $link_target ) )
 163          $link_target = '';
 164  
 165      if ( empty( $link_visible ) )
 166          $link_visible = 'Y';
 167  
 168      if ( empty( $link_owner ) )
 169          $link_owner = $current_user->id;
 170  
 171      if ( empty( $link_notes ) )
 172          $link_notes = '';
 173  
 174      if ( empty( $link_description ) )
 175          $link_description = '';
 176  
 177      if ( empty( $link_rss ) )
 178          $link_rss = '';
 179  
 180      if ( empty( $link_rel ) )
 181          $link_rel = '';
 182  
 183      // Make sure we set a valid category
 184      if ( ! isset( $link_category ) ||0 == count( $link_category ) || !is_array( $link_category ) ) {
 185          $link_category = array( get_option( 'default_link_category' ) );
 186      }
 187  
 188      if ( $update ) {
 189          if ( false === $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_url = %s,
 190              link_name = %s, link_image = %s, link_target = %s,
 191              link_visible = %s, link_description = %s, link_rating = %s,
 192              link_rel = %s, link_notes = %s, link_rss = %s
 193              WHERE link_id = %s", $link_url, $link_name, $link_image, $link_target, $link_visible, $link_description, $link_rating, $link_rel, $link_notes, $link_rss, $link_id ) ) ) {
 194              if ( $wp_error )
 195                  return new WP_Error( 'db_update_error', __( 'Could not update link in the database' ), $wpdb->last_error );
 196              else
 197                  return 0;
 198          }
 199      } else {
 200          if ( false === $wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
 201          $link_url,$link_name, $link_image, $link_target, $link_description, $link_visible, $link_owner, $link_rating, $link_rel, $link_notes, $link_rss ) ) ) {
 202              if ( $wp_error )
 203                  return new WP_Error( 'db_insert_error', __( 'Could not insert link into the database' ), $wpdb->last_error );
 204              else
 205                  return 0;
 206          }
 207          $link_id = (int) $wpdb->insert_id;
 208      }
 209  
 210      wp_set_link_cats( $link_id, $link_category );
 211  
 212      if ( $update )
 213          do_action( 'edit_link', $link_id );
 214      else
 215          do_action( 'add_link', $link_id );
 216  
 217      clean_bookmark_cache( $link_id );
 218  
 219      return $link_id;
 220  }
 221  
 222  /**
 223   * {@internal Missing Short Description}}
 224   *
 225   * @since unknown
 226   *
 227   * @param unknown_type $link_id
 228   * @param unknown_type $link_categories
 229   */
 230  function wp_set_link_cats( $link_id = 0, $link_categories = array() ) {
 231      // If $link_categories isn't already an array, make it one:
 232      if ( !is_array( $link_categories ) || 0 == count( $link_categories ) )
 233          $link_categories = array( get_option( 'default_link_category' ) );
 234  
 235      $link_categories = array_map( 'intval', $link_categories );
 236      $link_categories = array_unique( $link_categories );
 237  
 238      wp_set_object_terms( $link_id, $link_categories, 'link_category' );
 239  
 240      clean_bookmark_cache( $link_id );
 241  }    // wp_set_link_cats()
 242  
 243  /**
 244   * {@internal Missing Short Description}}
 245   *
 246   * @since unknown
 247   *
 248   * @param unknown_type $linkdata
 249   * @return unknown
 250   */
 251  function wp_update_link( $linkdata ) {
 252      $link_id = (int) $linkdata['link_id'];
 253  
 254      $link = get_link( $link_id, ARRAY_A );
 255  
 256      // Escape data pulled from DB.
 257      $link = add_magic_quotes( $link );
 258  
 259      // Passed link category list overwrites existing category list if not empty.
 260      if ( isset( $linkdata['link_category'] ) && is_array( $linkdata['link_category'] )
 261               && 0 != count( $linkdata['link_category'] ) )
 262          $link_cats = $linkdata['link_category'];
 263      else
 264          $link_cats = $link['link_category'];
 265  
 266      // Merge old and new fields with new fields overwriting old ones.
 267      $linkdata = array_merge( $link, $linkdata );
 268      $linkdata['link_category'] = $link_cats;
 269  
 270      return wp_insert_link( $linkdata );
 271  }
 272  
 273  ?>


Generated: Fri Jan 8 00:19:48 2010 Cross-referenced by PHPXref 0.7