web/wp-admin/link-category.php
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
 * Manage link category administration actions.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * This page is accessed by the link management pages and handles the forms and
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 * AJAX processes for category actions.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
 * @subpackage Administration
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
/** Load WordPress Administration Bootstrap */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
require_once('admin.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
wp_reset_vars(array('action', 'cat'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
switch($action) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
case 'addcat':
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
	check_admin_referer('add-link-category');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
	if ( !current_user_can('manage_categories') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
		wp_die(__('Cheatin&#8217; uh?'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
	if ( wp_insert_term($_POST['name'], 'link_category', $_POST ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
		wp_redirect('edit-link-categories.php?message=1#addcat');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
	} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
		wp_redirect('edit-link-categories.php?message=4#addcat');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
	exit;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
case 'delete':
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
	$cat_ID = (int) $_GET['cat_ID'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
	check_admin_referer('delete-link-category_' .  $cat_ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
	if ( !current_user_can('manage_categories') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
		wp_die(__('Cheatin&#8217; uh?'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
	$cat_name = get_term_field('name', $cat_ID, 'link_category');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	$default_cat_id = get_option('default_link_category');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
	// Don't delete the default cats.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
	if ( $cat_ID == $default_cat_id )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
		wp_die(sprintf(__("Can&#8217;t delete the <strong>%s</strong> category: this is the default one"), $cat_name));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
	wp_delete_term($cat_ID, 'link_category', array('default' => $default_cat_id));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
	$location = 'edit-link-categories.php';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
	if ( $referer = wp_get_original_referer() ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
		if ( false !== strpos($referer, 'edit-link-categories.php') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
			$location = $referer;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
	$location = add_query_arg('message', 2, $location);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
	wp_redirect($location);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
	exit;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
case 'edit':
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
	$title = __('Edit Category');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
	$parent_file = 'link-manager.php';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
	$submenu_file = 'edit-link-categories.php';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
	require_once ('admin-header.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
	$cat_ID = (int) $_GET['cat_ID'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
	$category = get_term_to_edit($cat_ID, 'link_category');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
	include('edit-link-category-form.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
	include('admin-footer.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
	exit;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
case 'editedcat':
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
	$cat_ID = (int) $_POST['cat_ID'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
	check_admin_referer('update-link-category_' . $cat_ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
	if ( !current_user_can('manage_categories') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
		wp_die(__('Cheatin&#8217; uh?'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
	$location = 'edit-link-categories.php';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
	if ( $referer = wp_get_original_referer() ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
		if ( false !== strpos($referer, 'edit-link-categories.php') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
			$location = $referer;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
	$update =  wp_update_term($cat_ID, 'link_category', $_POST);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
	if ( $update && !is_wp_error($update) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
		$location = add_query_arg('message', 3, $location);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
	else
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
		$location = add_query_arg('message', 5, $location);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
	wp_redirect($location);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
	exit;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
?>