Changeset 3570 for trunk/wp-admin/admin-db.php
- Timestamp:
- 02/27/2006 04:57:30 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/admin-db.php
r3528 r3570 106 106 $category_parent = 0; 107 107 108 if ( isset($posts_private) ) 109 $posts_private = (int) $posts_private; 110 else 111 $posts_private = 0; 112 113 if ( isset($links_private) ) 114 $links_private = (int) $links_private; 115 else 116 $links_private = 0; 117 108 118 if (!$update) { 109 $wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_description, category_parent ) VALUES ('0', '$cat_name', '$category_nicename', '$category_description', '$category_parent')");119 $wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_description, category_parent, links_private, posts_private) VALUES ('0', '$cat_name', '$category_nicename', '$category_description', '$category_parent', '$links_private', '$posts_private')"); 110 120 $cat_ID = $wpdb->insert_id; 111 121 } else { 112 $wpdb->query ("UPDATE $wpdb->categories SET cat_name = '$cat_name', category_nicename = '$category_nicename', category_description = '$category_description', category_parent = '$category_parent' WHERE cat_ID = '$cat_ID'");122 $wpdb->query ("UPDATE $wpdb->categories SET cat_name = '$cat_name', category_nicename = '$category_nicename', category_description = '$category_description', category_parent = '$category_parent', links_private = '$links_private', posts_private = '$posts_private' WHERE cat_ID = '$cat_ID'"); 113 123 } 114 124 … … 154 164 155 165 // Don't delete the default cat. 156 if (1 == $cat_ID) 166 if ( $cat_ID == get_option('default_category') ) 167 return 0; 168 169 if ( $cat_ID == get_option('default_link_category') ) 157 170 return 0; 158 171 … … 167 180 $wpdb->query("UPDATE $wpdb->categories SET category_parent = '$parent' WHERE category_parent = '$cat_ID'"); 168 181 169 // TODO: Only set categories to general if they're not in another category already 170 $wpdb->query("UPDATE $wpdb->post2cat SET category_id='1' WHERE category_id='$cat_ID'"); 171 182 // Only set posts and links to the default category if they're not in another category already. 183 $default_cat = get_option('default_category'); 184 $posts = $wpdb->get_col("SELECT post_id FROM $wpdb->post2cat WHERE category_id='$cat_ID'"); 185 if ( is_array($posts) ) foreach ($posts as $post_id) { 186 $cats = wp_get_post_cats('', $post_id); 187 if ( 1 == count($cats) ) 188 $cats = array($default_cat); 189 else 190 $cats = array_diff($cats, array($cat_ID)); 191 wp_set_post_cats('', $post_id, $cats); 192 } 193 194 $default_link_cat = get_option('default_link_category'); 195 $links = $wpdb->get_col("SELECT link_id FROM $wpdb->link2cat WHERE category_id='$cat_ID'"); 196 if ( is_array($links) ) foreach ($links as $link_id) { 197 $cats = wp_get_link_cats($link_id); 198 if ( 1 == count($cats) ) 199 $cats = array($default_link_cat); 200 else 201 $cats = array_diff($cats, array($cat_ID)); 202 wp_set_link_cats($link_id, $cats); 203 } 204 172 205 wp_cache_delete($cat_ID, 'category'); 173 206 wp_cache_delete('all_category_ids', 'category'); … … 245 278 246 279 $link = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = '$link_id'"); 280 $link->link_category = wp_get_link_cats($link_id); 247 281 248 282 if ( $output == OBJECT ) { … … 281 315 $link_notes = ''; 282 316 317 // Make sure we set a valid category 318 if (0 == count($link_category) || !is_array($link_category)) { 319 $link_category = array(get_option('default_category')); 320 } 321 283 322 if ( $update ) { 284 323 $wpdb->query("UPDATE $wpdb->links SET link_url='$link_url', 285 324 link_name='$link_name', link_image='$link_image', 286 link_target='$link_target', link_category='$link_category',325 link_target='$link_target', 287 326 link_visible='$link_visible', link_description='$link_description', 288 327 link_rating='$link_rating', link_rel='$link_rel', … … 290 329 WHERE link_id='$link_id'"); 291 330 } else { 292 $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_ category, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES('$link_url','$link_name', '$link_image', '$link_target', '$link_category', '$link_description', '$link_visible', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')");331 $wpdb->query("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('$link_url','$link_name', '$link_image', '$link_target', '$link_description', '$link_visible', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')"); 293 332 $link_id = $wpdb->insert_id; 294 333 } 334 335 wp_set_link_cats($link_id, $link_category); 295 336 296 337 if ( $update ) … … 312 353 $link = add_magic_quotes($link); 313 354 355 // Passed link category list overwrites existing category list if not empty. 356 if ( isset($linkdata['link_category']) && is_array($linkdata['link_category']) 357 && 0 != count($linkdata['link_category']) ) 358 $link_cats = $linkdata['link_category']; 359 else 360 $link_cats = $link['link_category']; 361 314 362 // Merge old and new fields with new fields overwriting old ones. 315 363 $linkdata = array_merge($link, $linkdata); 364 $linkdata['link_category'] = $link_cats; 316 365 317 366 return wp_insert_link($linkdata); … … 322 371 323 372 do_action('delete_link', $link_id); 373 374 $categories = wp_get_link_cats($link_id); 375 if( is_array( $categories ) ) { 376 foreach ( $categories as $category ) { 377 $wpdb->query("UPDATE $wpdb->categories SET link_count = link_count - 1 WHERE cat_ID = '$category'"); 378 wp_cache_delete($category, 'category'); 379 } 380 } 381 382 $wpdb->query("DELETE FROM $wpdb->link2cat WHERE link_id = '$link_id'"); 324 383 return $wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$link_id'"); 325 384 } 385 386 function wp_get_link_cats($link_ID = 0) { 387 global $wpdb; 388 389 $sql = "SELECT category_id 390 FROM $wpdb->link2cat 391 WHERE link_id = $link_ID 392 ORDER BY category_id"; 393 394 $result = $wpdb->get_col($sql); 395 396 if ( !$result ) 397 $result = array(); 398 399 return array_unique($result); 400 } 401 402 function wp_set_link_cats($link_ID = 0, $link_categories = array()) { 403 global $wpdb; 404 // If $link_categories isn't already an array, make it one: 405 if (!is_array($link_categories) || 0 == count($link_categories)) 406 $link_categories = array(get_option('default_category')); 407 408 $link_categories = array_unique($link_categories); 409 410 // First the old categories 411 $old_categories = $wpdb->get_col(" 412 SELECT category_id 413 FROM $wpdb->link2cat 414 WHERE link_id = $link_ID"); 415 416 if (!$old_categories) { 417 $old_categories = array(); 418 } else { 419 $old_categories = array_unique($old_categories); 420 } 421 422 // Delete any? 423 $delete_cats = array_diff($old_categories,$link_categories); 424 425 if ($delete_cats) { 426 foreach ($delete_cats as $del) { 427 $wpdb->query(" 428 DELETE FROM $wpdb->link2cat 429 WHERE category_id = $del 430 AND link_id = $link_ID 431 "); 432 } 433 } 434 435 // Add any? 436 $add_cats = array_diff($link_categories, $old_categories); 437 438 if ($add_cats) { 439 foreach ($add_cats as $new_cat) { 440 $wpdb->query(" 441 INSERT INTO $wpdb->link2cat (link_id, category_id) 442 VALUES ($link_ID, $new_cat)"); 443 } 444 } 445 446 // Update category counts. 447 $all_affected_cats = array_unique(array_merge($link_categories, $old_categories)); 448 foreach ( $all_affected_cats as $cat_id ) { 449 $count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->link2cat, $wpdb->links WHERE $wpdb->links.link_id = $wpdb->link2cat.link_id AND category_id = '$cat_id'"); 450 $wpdb->query("UPDATE $wpdb->categories SET link_count = '$count' WHERE cat_ID = '$cat_id'"); 451 wp_cache_delete($cat_id, 'category'); 452 } 453 } // wp_set_link_cats() 326 454 327 455 function post_exists($title, $content = '', $post_date = '') {
Note: See TracChangeset
for help on using the changeset viewer.