]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/link-manager.php
Wordpress 2.8.4
[autoinstalls/wordpress.git] / wp-admin / link-manager.php
index 5626570f80714836df5a7823cfdf8760d3543a00..b28109e6cc90d84a92c64e0faccac0d5bb93b2d3 100644 (file)
 <?php
-// Links
-// Copyright (C) 2002, 2003 Mike Little -- mike@zed1.com
+/**
+ * Link Management Administration Panel.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
 
-require_once('admin.php');
+/** Load WordPress Administration Bootstrap */
+require_once ('admin.php');
 
-$title = __('Manage Links');
-$this_file = $parent_file = 'link-manager.php';
-$list_js = true;
-
-$wpvarstoreset = array('action','cat_id', 'linkurl', 'name', 'image',
-                       'description', 'visible', 'target', 'category', 'link_id',
-                       'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel',
-                       'notes', 'linkcheck[]');
-
-for ($i=0; $i<count($wpvarstoreset); $i += 1) {
-    $wpvar = $wpvarstoreset[$i];
-    if (!isset($$wpvar)) {
-        if (empty($_POST["$wpvar"])) {
-            if (empty($_GET["$wpvar"])) {
-                $$wpvar = '';
-            } else {
-                $$wpvar = $_GET["$wpvar"];
-            }
-        } else {
-            $$wpvar = $_POST["$wpvar"];
-        }
-    }
-}
+// Handle bulk deletes
+if ( isset($_GET['action']) && isset($_GET['linkcheck']) ) {
+       check_admin_referer('bulk-bookmarks');
+       $doaction = $_GET['action'] ? $_GET['action'] : $_GET['action2'];
 
-$links_show_cat_id = $_COOKIE['links_show_cat_id_' . COOKIEHASH];
-$links_show_order = $_COOKIE['links_show_order_' . COOKIEHASH];
-
-if ('' != $_POST['assign']) $action = 'assign';
-if ('' != $_POST['visibility']) $action = 'visibility';
-if ('' != $_POST['move']) $action = 'move';
-if ('' != $_POST['linkcheck']) $linkcheck = $_POST[linkcheck];
-
-switch ($action) {
-  case 'assign':
-  {
-    check_admin_referer();
-
-    // check the current user's level first.
-    if ( !current_user_can('manage_links') )
-      die (__("Cheatin' uh ?"));
-
-    //for each link id (in $linkcheck[]): if the current user level >= the
-    //userlevel of the owner of the link then we can proceed.
-
-    if (count($linkcheck) == 0) {
-        header('Location: ' . $this_file);
-        exit;
-    }
-    $all_links = join(',', $linkcheck);
-    $results = $wpdb->get_results("SELECT link_id, link_owner FROM $wpdb->links LEFT JOIN $wpdb->users ON link_owner = ID WHERE link_id in ($all_links)");
-    foreach ($results as $row) {
-       $ids_to_change[] = $row->link_id;
-    }
-
-    // should now have an array of links we can change
-    $all_links = join(',', $ids_to_change);
-    $q = $wpdb->query("update $wpdb->links SET link_owner='$newowner' WHERE link_id IN ($all_links)");
-
-    header('Location: ' . $this_file);
-    break;
-  }
-  case 'visibility':
-  {
-    check_admin_referer();
-
-    // check the current user's level first.
-    if ( !current_user_can('manage_links') )
-      die (__("Cheatin' uh ?"));
-
-    //for each link id (in $linkcheck[]): toggle the visibility
-    if (count($linkcheck) == 0) {
-        header('Location: ' . $this_file);
-        exit;
-    }
-    $all_links = join(',', $linkcheck);
-    $results = $wpdb->get_results("SELECT link_id, link_visible FROM $wpdb->links WHERE link_id in ($all_links)");
-    foreach ($results as $row) {
-        if ($row->link_visible == 'Y') { // ok to proceed
-            $ids_to_turnoff[] = $row->link_id;
-        } else {
-            $ids_to_turnon[] = $row->link_id;
-        }
-    }
-
-    // should now have two arrays of links to change
-    if (count($ids_to_turnoff)) {
-        $all_linksoff = join(',', $ids_to_turnoff);
-        $q = $wpdb->query("update $wpdb->links SET link_visible='N' WHERE link_id IN ($all_linksoff)");
-    }
-
-    if (count($ids_to_turnon)) {
-        $all_linkson = join(',', $ids_to_turnon);
-        $q = $wpdb->query("update $wpdb->links SET link_visible='Y' WHERE link_id IN ($all_linkson)");
-    }
-
-    header('Location: ' . $this_file);
-    break;
-  }
-  case 'move':
-  {
-    check_admin_referer();
-
-    // check the current user's level first.
-    if ( !current_user_can('manage_links') )
-      die (__("Cheatin' uh ?"));
-
-    //for each link id (in $linkcheck[]) change category to selected value
-    if (count($linkcheck) == 0) {
-        header('Location: ' . $this_file);
-        exit;
-    }
-    $all_links = join(',', $linkcheck);
-    // should now have an array of links we can change
-    $q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
-
-    header('Location: ' . $this_file);
-    break;
-  }
-
-  case 'Add':
-  {
-    check_admin_referer();
-
-       add_link();
-       
-    header('Location: ' . $_SERVER['HTTP_REFERER'] . '?added=true');
-    break;
-  } // end Add
-
-  case 'editlink':
-  {
-       check_admin_referer();
-       
-       if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
-               $cat_id = $links_show_cat_id;
-
-       if (!isset($cat_id) || ($cat_id == '')) {
-               if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
-                       $cat_id = 'All';
-       }
-       $links_show_cat_id = $cat_id;
-
-       $link_id = (int) $_POST['link_id'];
-       edit_link($link_id);
-       
-    setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
-    wp_redirect($this_file);
-    break;
-  } // end Save
-
-  case 'Delete':
-  {
-    check_admin_referer();
-
-    if ( !current_user_can('manage_links') )
-      die (__("Cheatin' uh ?"));
-
-    $link_id = (int) $_GET['link_id'];
-
-       wp_delete_link($link_id);
-       
-    if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
-        $cat_id = $links_show_cat_id;
-
-    if (!isset($cat_id) || ($cat_id == '')) {
-        if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
-        $cat_id = 'All';
-    }
-    $links_show_cat_id = $cat_id;
-    setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
-    wp_redirect($this_file);
-    break;
-  } // end Delete
-
-  case 'linkedit': {
-       $xfn_js = true;
-       include_once ('admin-header.php');
-       if ( !current_user_can('manage_links') )
-               die(__('You do not have sufficient permissions to edit the links for this blog.'));
-       
-       $link_id = (int) $_GET['link_id'];
-       
-       if ( !$link = get_link_to_edit($link_id) )
-               die( __('Link not found.') );
-       
-       include('edit-link-form.php');
-       break;
-  } // end linkedit
-  case __("Show"):
-  {
-    if (!isset($cat_id) || ($cat_id == '')) {
-        if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
-        $cat_id = 'All';
-    }
-    $links_show_cat_id = $cat_id;
-    if (!isset($order_by) || ($order_by == '')) {
-        if (!isset($links_show_order) || ($links_show_order == ''))
-        $order_by = 'order_name';
-    }
-    $links_show_order = $order_by;
-    //break; fall through
-  } // end Show
-  case "popup":
-  {
-    $link_url = stripslashes($_GET["linkurl"]);
-    $link_name = stripslashes($_GET["name"]);
-    //break; fall through
-  }
-  default:
-  {
-    if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
-        $cat_id = $links_show_cat_id;
-
-    if (!isset($cat_id) || ($cat_id == '')) {
-        if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
-        $cat_id = 'All';
-    }
-    $links_show_cat_id = $cat_id;
-    if (isset($links_show_order) && ($links_show_order != ''))
-        $order_by = $links_show_order;
-
-    if (!isset($order_by) || ($order_by == ''))
-        $order_by = 'order_name';
-    $links_show_order = $order_by;
-
-    setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
-    setcookie('links_show_order_' . COOKIEHASH, $links_show_order, time()+600);
-    include_once ("./admin-header.php");
-    if ( !current_user_can('manage_links') )
-      die(__("You do not have sufficient permissions to edit the links for this blog."));
-
-    switch ($order_by)
-    {
-        case 'order_id':     $sqlorderby = 'id';          break;
-        case 'order_url':    $sqlorderby = 'url';         break;
-        case 'order_desc':   $sqlorderby = 'description'; break;
-        case 'order_owner':  $sqlorderby = 'owner';       break;
-        case 'order_rating': $sqlorderby = 'rating';      break;
-        case 'order_name':
-        default:             $sqlorderby = 'name';        break;
-    }
-
-  if ($action != "popup") {
-?>
-<script type="text/javascript">
-<!--
-function checkAll(form)
-{
-       for (i = 0, n = form.elements.length; i < n; i++) {
-               if(form.elements[i].type == "checkbox") {
-                       if(form.elements[i].checked == true)
-                               form.elements[i].checked = false;
-                       else
-                               form.elements[i].checked = true;
+       if ( ! current_user_can('manage_links') )
+               wp_die( __('You do not have sufficient permissions to edit the links for this blog.') );
+
+       if ( 'delete' == $doaction ) {
+               foreach ( (array) $_GET['linkcheck'] as $link_id ) {
+                       $link_id = (int) $link_id;
+
+                       wp_delete_link($link_id);
                }
+
+               wp_redirect( wp_get_referer() );
+               exit;
        }
+} elseif ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) {
+        wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) );
+        exit;
 }
-//-->
-</script>
-
-<div class="wrap">
-    <form name="cats" method="post" action="">
-    <table width="75%" cellpadding="3" cellspacing="3">
-      <tr>
-        <td>
-        <?php _e('<strong>Show</strong> links in category:'); ?><br />
-        </td>
-        <td>
-          <?php _e('<strong>Order</strong> by:');?>
-        </td>
-               <td>&nbsp;</td>
-      </tr>
-      <tr>
-        <td>
+
+wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image', 'description', 'visible', 'target', 'category', 'link_id', 'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel', 'notes', 'linkcheck[]'));
+
+if ( empty($cat_id) )
+       $cat_id = 'all';
+
+if ( empty($order_by) )
+       $order_by = 'order_name';
+
+$title = __('Edit Links');
+$this_file = $parent_file = 'link-manager.php';
+include_once ("./admin-header.php");
+
+if (!current_user_can('manage_links'))
+       wp_die(__("You do not have sufficient permissions to edit the links for this blog."));
+
+switch ($order_by) {
+       case 'order_id' :
+               $sqlorderby = 'id';
+               break;
+       case 'order_url' :
+               $sqlorderby = 'url';
+               break;
+       case 'order_desc' :
+               $sqlorderby = 'description';
+               break;
+       case 'order_owner' :
+               $sqlorderby = 'owner';
+               break;
+       case 'order_rating' :
+               $sqlorderby = 'rating';
+               break;
+       case 'order_name' :
+       default :
+               $sqlorderby = 'name';
+               break;
+} ?>
+
+<div class="wrap nosubsub">
+<?php screen_icon(); ?>
+<h2><?php echo esc_html( $title );
+if ( isset($_GET['s']) && $_GET['s'] )
+       printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( stripslashes($_GET['s']) ) ); ?>
+</h2>
+
 <?php
-    $results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
-    echo "        <select name=\"cat_id\">\n";
-    echo "          <option value=\"All\"";
-    if ($cat_id == 'All')
-      echo " selected='selected'";
-    echo "> " . __('All') . "</option>\n";
-    foreach ($results as $row) {
-      echo "          <option value=\"".$row->cat_id."\"";
-      if ($row->cat_id == $cat_id)
-        echo " selected='selected'";
-        echo ">".$row->cat_id.": ".wp_specialchars($row->cat_name);
-        if ($row->auto_toggle == 'Y')
-            echo ' '.__('(auto toggle)');
-        echo "</option>\n";
-    }
-    echo "        </select>\n";
+if ( isset($_GET['deleted']) ) {
+       echo '<div id="message" class="updated fade"><p>';
+       $deleted = (int) $_GET['deleted'];
+       printf(_n('%s link deleted.', '%s links deleted', $deleted), $deleted);
+       echo '</p></div>';
+       $_SERVER['REQUEST_URI'] = remove_query_arg(array('deleted'), $_SERVER['REQUEST_URI']);
+}
 ?>
-        </td>
-        <td>
-          <select name="order_by">
-            <option value="order_id"     <?php if ($order_by == 'order_id')     echo " selected='selected'";?>><?php _e('Link ID') ?></option>
-            <option value="order_name"   <?php if ($order_by == 'order_name')   echo " selected='selected'";?>><?php _e('Name') ?></option>
-            <option value="order_url"    <?php if ($order_by == 'order_url')    echo " selected='selected'";?>><?php _e('URI') ?></option>
-            <option value="order_desc"   <?php if ($order_by == 'order_desc')   echo " selected='selected'";?>><?php _e('Description') ?></option>
-            <option value="order_owner"  <?php if ($order_by == 'order_owner')  echo " selected='selected'";?>><?php _e('Owner') ?></option>
-            <option value="order_rating" <?php if ($order_by == 'order_rating') echo " selected='selected'";?>><?php _e('Rating') ?></option>
-          </select>
-        </td>
-        <td>
-          <input type="submit" name="action" value="<?php _e('Show') ?>" />
-        </td>
-      </tr>
-    </table>
-    </form>
 
-</div>
+<form class="search-form" action="" method="get">
+<p class="search-box">
+       <label class="screen-reader-text" for="link-search-input"><?php _e( 'Search Links' ); ?>:</label>
+       <input type="text" id="link-search-input" name="s" value="<?php _admin_search_query(); ?>" />
+       <input type="submit" value="<?php esc_attr_e( 'Search Links' ); ?>" class="button" />
+</p>
+</form>
+<br class="clear" />
+
+<form id="posts-filter" action="" method="get">
+<div class="tablenav">
+
+<div class="alignleft actions">
+<select name="action">
+<option value="" selected="selected"><?php _e('Bulk Actions'); ?></option>
+<option value="delete"><?php _e('Delete'); ?></option>
+</select>
+<input type="submit" value="<?php esc_attr_e('Apply'); ?>" name="doaction" id="doaction" class="button-secondary action" />
 
-<form name="links" id="links" method="post" action="">
-<div class="wrap">
-
-    <input type="hidden" name="link_id" value="" />
-    <input type="hidden" name="action" value="" />
-    <input type="hidden" name="order_by" value="<?php echo wp_specialchars($order_by, 1); ?>" />
-    <input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" />
-  <table id="the-list-x" width="100%" cellpadding="3" cellspacing="3">
-    <tr>
-      <th width="15%"><?php _e('Name') ?></th>
-      <th><?php _e('URI') ?></th>
-      <th><?php _e('Category') ?></th>
-      <th><?php _e('rel') ?></th>
-      <th><?php _e('Image') ?></th>
-      <th><?php _e('Visible') ?></th>
-      <th colspan="2"><?php _e('Action') ?></th>
-      <th>&nbsp;</th>
-  </tr>
 <?php
-    $sql = "SELECT link_url, link_name, link_image, link_description, link_visible,
-            link_category AS cat_id, cat_name AS category, $wpdb->users.user_login, link_id,
-            link_rating, link_rel
-            FROM $wpdb->links
-            LEFT JOIN $wpdb->linkcategories ON $wpdb->links.link_category = $wpdb->linkcategories.cat_id
-            LEFT JOIN $wpdb->users ON $wpdb->users.ID = $wpdb->links.link_owner ";
-
-    if (isset($cat_id) && ($cat_id != 'All')) {
-      $sql .= " WHERE link_category = $cat_id ";
-    }
-    $sql .= ' ORDER BY link_' . $sqlorderby;
-
-    // echo "$sql";
-    $links = $wpdb->get_results($sql);
-    if ($links) {
-        foreach ($links as $link) {
-           $link->link_name = wp_specialchars($link->link_name);
-           $link->link_category = wp_specialchars($link->link_category);
-           $link->link_description = wp_specialchars($link->link_description);
-            $link->link_url = wp_specialchars($link->link_url);
-            $short_url = str_replace('http://', '', $link->link_url);
-            $short_url = str_replace('www.', '', $short_url);
-            if ('/' == substr($short_url, -1))
-                $short_url = substr($short_url, 0, -1);
-            if (strlen($short_url) > 35)
-                $short_url =  substr($short_url, 0, 32).'...';
-
-            $image = ($link->link_image != null) ? __('Yes') : __('No');
-            $visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
-            ++$i;
-            $style = ($i % 2) ? '' : ' class="alternate"';
-?>
-    <tr id="link-<?php echo $link->link_id; ?>" valign="middle" <?php echo $style; ?>>
-               <td><strong><?php echo $link->link_name; ?></strong><br />
-<?php                  
-        echo sprintf(__('Description: %s'), $link->link_description) . "</td>";
-        echo "<td><a href=\"$link->link_url\" title=\"" . sprintf(__('Visit %s'), $link->link_name) . "\">$short_url</a></td>";
-        echo <<<LINKS
-        <td>$link->category</td>
-        <td>$link->link_rel</td>
-        <td align='center'>$image</td>
-        <td align='center'>$visible</td>
-LINKS;
-            $show_buttons = 1; // default
-
-            if ($show_buttons) {
-        echo '<td><a href="link-manager.php?link_id=' . $link->link_id . '&amp;action=linkedit" class="edit">' . __('Edit') . '</a></td>';
-        echo '<td><a href="link-manager.php?link_id=' . $link->link_id . '&amp;action=Delete"' .  " onclick=\"return deleteSomething( 'link', $link->link_id , '" . sprintf(__("You are about to delete the &quot;%s&quot; link to %s.\\n&quot;Cancel&quot; to stop, &quot;OK&quot; to delete."), wp_specialchars($link->link_name,1), wp_specialchars($link->link_url)) . '\' );" class="delete">' . __('Delete') . '</a></td>';
-        echo '<td><input type="checkbox" name="linkcheck[]" value="' . $link->link_id . '" /></td>';
-            } else {
-              echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\n";
-            }
-               echo "\n    </tr>\n";
-        }
-    }
+$categories = get_terms('link_category', "hide_empty=1");
+$select_cat = "<select name=\"cat_id\">\n";
+$select_cat .= '<option value="all"'  . (($cat_id == 'all') ? " selected='selected'" : '') . '>' . __('View all Categories') . "</option>\n";
+foreach ((array) $categories as $cat)
+       $select_cat .= '<option value="' . esc_attr($cat->term_id) . '"' . (($cat->term_id == $cat_id) ? " selected='selected'" : '') . '>' . sanitize_term_field('name', $cat->name, $cat->term_id, 'link_category', 'display') . "</option>\n";
+$select_cat .= "</select>\n";
+
+$select_order = "<select name=\"order_by\">\n";
+$select_order .= '<option value="order_id"' . (($order_by == 'order_id') ? " selected='selected'" : '') . '>' .  __('Order by Link ID') . "</option>\n";
+$select_order .= '<option value="order_name"' . (($order_by == 'order_name') ? " selected='selected'" : '') . '>' .  __('Order by Name') . "</option>\n";
+$select_order .= '<option value="order_url"' . (($order_by == 'order_url') ? " selected='selected'" : '') . '>' .  __('Order by Address') . "</option>\n";
+$select_order .= '<option value="order_rating"' . (($order_by == 'order_rating') ? " selected='selected'" : '') . '>' .  __('Order by Rating') . "</option>\n";
+$select_order .= "</select>\n";
+
+echo $select_cat;
+echo $select_order;
+
 ?>
-</table>
+<input type="submit" id="post-query-submit" value="<?php esc_attr_e('Filter'); ?>" class="button-secondary" />
 
-<div id="ajax-response"></div>
+</div>
 
+<br class="clear" />
 </div>
 
-<div class="wrap">
-  <table width="100%" cellpadding="3" cellspacing="3">
-    <tr><th colspan="4"><?php _e('Manage Multiple Links:') ?></th></tr>
-    <tr><td colspan="4"><?php _e('Use the checkboxes on the right to select multiple links and choose an action below:') ?></td></tr>
-    <tr>
-        <td>
-          <?php _e('Assign ownership to:'); ?>
+<div class="clear"></div>
+
 <?php
-    $results = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users ORDER BY ID");
-    echo "          <select name=\"newowner\" size=\"1\">\n";
-    foreach ($results as $row) {
-      echo "            <option value=\"".$row->ID."\"";
-      echo ">".$row->user_login;
-      echo "</option>\n";
-    }
-    echo "          </select>\n";
+if ( 'all' == $cat_id )
+       $cat_id = '';
+$args = array('category' => $cat_id, 'hide_invisible' => 0, 'orderby' => $sqlorderby, 'hide_empty' => 0);
+if ( !empty($_GET['s']) )
+       $args['search'] = $_GET['s'];
+$links = get_bookmarks( $args );
+if ( $links ) {
+       $link_columns = get_column_headers('link-manager');
+       $hidden = get_hidden_columns('link-manager');
 ?>
-        <input name="assign" type="submit" id="assign" value="<?php _e('Go') ?>" />
-        </td>
-        <td>
-          <input name="visibility" type="submit" id="visibility" value="<?php _e('Toggle Visibility') ?>" />
-        </td>
-        <td>
-          <?php _e('Move to category:'); link_category_dropdown('category'); ?> <input name="move" type="submit" id="move" value="<?php _e('Go') ?>" />
-        </td>
-        <td align="right">
-          <a href="#" onclick="checkAll(document.getElementById('links')); return false; "><?php _e('Toggle Checkboxes') ?></a>
-        </td>
-    </tr>
-</table>
 
+<?php wp_nonce_field('bulk-bookmarks') ?>
+<table class="widefat fixed" cellspacing="0">
+       <thead>
+       <tr>
+<?php print_column_headers('link-manager'); ?>
+       </tr>
+       </thead>
+
+       <tfoot>
+       <tr>
+<?php print_column_headers('link-manager', false); ?>
+       </tr>
+       </tfoot>
+
+       <tbody>
 <?php
-  } // end if !popup
+       $alt = 0;
+
+       foreach ($links as $link) {
+               $link = sanitize_bookmark($link);
+               $link->link_name = esc_attr($link->link_name);
+               $link->link_category = wp_get_link_cats($link->link_id);
+               $short_url = str_replace('http://', '', $link->link_url);
+               $short_url = preg_replace('/^www\./i', '', $short_url);
+               if ('/' == substr($short_url, -1))
+                       $short_url = substr($short_url, 0, -1);
+               if (strlen($short_url) > 35)
+                       $short_url = substr($short_url, 0, 32).'...';
+               $visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
+               $rating  = $link->link_rating;
+               $style = ($alt % 2) ? '' : ' class="alternate"';
+               ++ $alt;
+               $edit_link = get_edit_bookmark_link();
+               ?><tr id="link-<?php echo $link->link_id; ?>" valign="middle" <?php echo $style; ?>><?php
+               foreach($link_columns as $column_name=>$column_display_name) {
+                       $class = "class=\"column-$column_name\"";
+
+                       $style = '';
+                       if ( in_array($column_name, $hidden) )
+                               $style = ' style="display:none;"';
+
+                       $attributes = "$class$style";
+
+                       switch($column_name) {
+                               case 'cb':
+                                       echo '<th scope="row" class="check-column"><input type="checkbox" name="linkcheck[]" value="'. esc_attr($link->link_id) .'" /></th>';
+                                       break;
+                               case 'name':
+
+                                       echo "<td $attributes><strong><a class='row-title' href='$edit_link' title='" . esc_attr(sprintf(__('Edit &#8220;%s&#8221;'), $link->link_name)) . "'>$link->link_name</a></strong><br />";
+                                       $actions = array();
+                                       $actions['edit'] = '<a href="' . $edit_link . '">' . __('Edit') . '</a>';
+                                       $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url("link.php?action=delete&amp;link_id=$link->link_id", 'delete-bookmark_' . $link->link_id) . "' onclick=\"if ( confirm('" . esc_js(sprintf( __("You are about to delete this link '%s'\n  'Cancel' to stop, 'OK' to delete."), $link->link_name )) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
+                                       $action_count = count($actions);
+                                       $i = 0;
+                                       echo '<div class="row-actions">';
+                                       foreach ( $actions as $action => $linkaction ) {
+                                               ++$i;
+                                               ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
+                                               echo "<span class='$action'>$linkaction$sep</span>";
+                                       }
+                                       echo '</div>';
+                                       echo '</td>';
+                                       break;
+                               case 'url':
+                                       echo "<td $attributes><a href='$link->link_url' title='".sprintf(__('Visit %s'), $link->link_name)."'>$short_url</a></td>";
+                                       break;
+                               case 'categories':
+                                       ?><td <?php echo $attributes ?>><?php
+                                       $cat_names = array();
+                                       foreach ($link->link_category as $category) {
+                                               $cat = get_term($category, 'link_category', OBJECT, 'display');
+                                               if ( is_wp_error( $cat ) )
+                                                       echo $cat->get_error_message();
+                                               $cat_name = $cat->name;
+                                               if ( $cat_id != $category )
+                                                       $cat_name = "<a href='link-manager.php?cat_id=$category'>$cat_name</a>";
+                                               $cat_names[] = $cat_name;
+                                       }
+                                       echo implode(', ', $cat_names);
+                                       ?></td><?php
+                                       break;
+                               case 'rel':
+                                       ?><td <?php echo $attributes ?>><?php echo empty($link->link_rel) ? '<br />' : $link->link_rel; ?></td><?php
+                                       break;
+                               case 'visible':
+                                       ?><td <?php echo $attributes ?>><?php echo $visible; ?></td><?php
+                                       break;
+                               case 'rating':
+                                       ?><td <?php echo $attributes ?>><?php echo $rating; ?></td><?php
+                                       break;
+                               default:
+                                       ?>
+                                       <td><?php do_action('manage_link_custom_column', $column_name, $link->link_id); ?></td>
+                                       <?php
+                                       break;
+
+                       }
+               }
+               echo "\n    </tr>\n";
+       }
 ?>
+       </tbody>
+</table>
+
+<?php } else { ?>
+<p><?php _e('No links found.') ?></p>
+<?php } ?>
+
+<div class="tablenav">
+
+<div class="alignleft actions">
+<select name="action2">
+<option value="" selected="selected"><?php _e('Bulk Actions'); ?></option>
+<option value="delete"><?php _e('Delete'); ?></option>
+</select>
+<input type="submit" value="<?php esc_attr_e('Apply'); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
 </div>
+
+<br class="clear" />
+</div>
+
 </form>
 
+<div id="ajax-response"></div>
 
-<?php
-    break;
-  } // end default
-} // end case
-?>
+</div>
 
-<?php include('admin-footer.php'); ?>
+<?php
+include('admin-footer.php');