home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Blogs / wordpress2.6.exe / wordpress2.6 / wp-admin / includes / bookmark.php < prev    next >
Encoding:
PHP Script  |  2008-04-16  |  4.7 KB  |  176 lines

  1. <?php
  2.  
  3. function add_link() {
  4.     return edit_link();
  5. }
  6.  
  7. function edit_link( $link_id = '' ) {
  8.     if (!current_user_can( 'manage_links' ))
  9.         wp_die( __( 'Cheatin’ uh?' ));
  10.  
  11.     $_POST['link_url'] = wp_specialchars( $_POST['link_url'] );
  12.     $_POST['link_url'] = clean_url($_POST['link_url']);
  13.     $_POST['link_name'] = wp_specialchars( $_POST['link_name'] );
  14.     $_POST['link_image'] = wp_specialchars( $_POST['link_image'] );
  15.     $_POST['link_rss'] = clean_url($_POST['link_rss']);
  16.     if ( 'N' != $_POST['link_visible'] )
  17.         $_POST['link_visible'] = 'Y';
  18.  
  19.     if ( !empty( $link_id ) ) {
  20.         $_POST['link_id'] = $link_id;
  21.         return wp_update_link( $_POST);
  22.     } else {
  23.         return wp_insert_link( $_POST);
  24.     }
  25. }
  26.  
  27. function get_default_link_to_edit() {
  28.     if ( isset( $_GET['linkurl'] ) )
  29.         $link->link_url = clean_url( $_GET['linkurl']);
  30.     else
  31.         $link->link_url = '';
  32.  
  33.     if ( isset( $_GET['name'] ) )
  34.         $link->link_name = attribute_escape( $_GET['name']);
  35.     else
  36.         $link->link_name = '';
  37.  
  38.     $link->link_visible = 'Y';
  39.  
  40.     return $link;
  41. }
  42.  
  43. function wp_delete_link($link_id) {
  44.     global $wpdb;
  45.  
  46.     do_action('delete_link', $link_id);
  47.  
  48.     wp_delete_object_term_relationships($link_id, 'link_category');
  49.  
  50.     $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->links WHERE link_id = %d", $link_id) );
  51.  
  52.     do_action('deleted_link', $link_id);
  53.  
  54.     return true;
  55. }
  56.  
  57. function wp_get_link_cats($link_id = 0) {
  58.  
  59.     $cats = wp_get_object_terms($link_id, 'link_category', 'fields=ids');
  60.  
  61.     return array_unique($cats);
  62. }
  63.  
  64. function get_link_to_edit( $link_id ) {
  65.     return get_bookmark( $link_id, OBJECT, 'edit' );
  66. }
  67.  
  68. function wp_insert_link($linkdata) {
  69.     global $wpdb, $current_user;
  70.  
  71.     $defaults = array('link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
  72.  
  73.     $linkdata = wp_parse_args($linkdata, $defaults);
  74.     $linkdata = sanitize_bookmark($linkdata, 'db');
  75.  
  76.     extract(stripslashes_deep($linkdata), EXTR_SKIP);
  77.  
  78.     $update = false;
  79.  
  80.     if ( !empty($link_id) )
  81.         $update = true;
  82.  
  83.     if ( trim( $link_name ) == '' )
  84.         return 0;
  85.  
  86.     if ( trim( $link_url ) == '' )
  87.         return 0;
  88.  
  89.     if ( empty($link_rating) )
  90.         $link_rating = 0;
  91.  
  92.     if ( empty($link_image) )
  93.         $link_image = '';
  94.  
  95.     if ( empty($link_target) )
  96.         $link_target = '';
  97.  
  98.     if ( empty($link_visible) )
  99.         $link_visible = 'Y';
  100.  
  101.     if ( empty($link_owner) )
  102.         $link_owner = $current_user->id;
  103.  
  104.     if ( empty($link_notes) )
  105.         $link_notes = '';
  106.  
  107.     if ( empty($link_description) )
  108.         $link_description = '';
  109.  
  110.     if ( empty($link_rss) )
  111.         $link_rss = '';
  112.  
  113.     if ( empty($link_rel) )
  114.         $link_rel = '';
  115.  
  116.     // Make sure we set a valid category
  117.     if (0 == count($link_category) || !is_array($link_category)) {
  118.         $link_category = array(get_option('default_link_category'));
  119.     }
  120.  
  121.     if ( $update ) {
  122.         $wpdb->query( $wpdb->prepare("UPDATE $wpdb->links SET link_url = %s,
  123.             link_name = %s, link_image = %s, link_target = %s, 
  124.             link_visible = %s, link_description = %s, link_rating = %s, 
  125.             link_rel = %s, link_notes = %s, link_rss = %s
  126.             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) );
  127.     } else {
  128.         $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)", 
  129.         $link_url,$link_name, $link_image, $link_target, $link_description, $link_visible, $link_owner, $link_rating, $link_rel, $link_notes, $link_rss) );
  130.         $link_id = (int) $wpdb->insert_id;
  131.     }
  132.  
  133.     wp_set_link_cats($link_id, $link_category);
  134.  
  135.     if ( $update )
  136.         do_action('edit_link', $link_id);
  137.     else
  138.         do_action('add_link', $link_id);
  139.  
  140.     return $link_id;
  141. }
  142.  
  143. function wp_set_link_cats($link_id = 0, $link_categories = array()) {
  144.     // If $link_categories isn't already an array, make it one:
  145.     if (!is_array($link_categories) || 0 == count($link_categories))
  146.         $link_categories = array(get_option('default_link_category'));
  147.  
  148.     $link_categories = array_map('intval', $link_categories);
  149.     $link_categories = array_unique($link_categories);
  150.  
  151.     wp_set_object_terms($link_id, $link_categories, 'link_category');
  152. }    // wp_set_link_cats()
  153.  
  154. function wp_update_link($linkdata) {
  155.     $link_id = (int) $linkdata['link_id'];
  156.  
  157.     $link = get_link($link_id, ARRAY_A);
  158.  
  159.     // Escape data pulled from DB.
  160.     $link = add_magic_quotes($link);
  161.  
  162.     // Passed link category list overwrites existing category list if not empty.
  163.     if ( isset($linkdata['link_category']) && is_array($linkdata['link_category'])
  164.              && 0 != count($linkdata['link_category']) )
  165.         $link_cats = $linkdata['link_category'];
  166.     else
  167.         $link_cats = $link['link_category'];
  168.  
  169.     // Merge old and new fields with new fields overwriting old ones.
  170.     $linkdata = array_merge($link, $linkdata);
  171.     $linkdata['link_category'] = $link_cats;
  172.  
  173.     return wp_insert_link($linkdata);
  174. }
  175.  
  176. ?>