2010-10-25 04:57:43 +02:00
< ? php
/**
2010-10-25 06:04:18 +02:00
* Links Manager List Table class .
2010-10-25 04:57:43 +02:00
*
* @ package WordPress
2010-10-25 06:04:18 +02:00
* @ subpackage List_Table
* @ since 3.1 . 0
2011-01-16 22:47:24 +01:00
* @ access private
2010-10-25 04:57:43 +02:00
*/
2010-11-04 09:07:03 +01:00
class WP_Links_List_Table extends WP_List_Table {
2010-10-25 04:57:43 +02:00
2012-09-19 14:43:31 +02:00
function __construct ( $args = array () ) {
2011-04-29 22:05:12 +02:00
parent :: __construct ( array (
2010-10-25 04:57:43 +02:00
'plural' => 'bookmarks' ,
2012-09-19 14:43:31 +02:00
'screen' => isset ( $args [ 'screen' ] ) ? $args [ 'screen' ] : null ,
2010-10-25 04:57:43 +02:00
) );
}
2010-12-16 10:18:28 +01:00
function ajax_user_can () {
return current_user_can ( 'manage_links' );
2010-10-25 04:57:43 +02:00
}
function prepare_items () {
global $cat_id , $s , $orderby , $order ;
wp_reset_vars ( array ( 'action' , 'cat_id' , 'linkurl' , 'name' , 'image' , 'description' , 'visible' , 'target' , 'category' , 'link_id' , 'submit' , 'orderby' , 'order' , 'links_show_cat_id' , 'rating' , 'rel' , 'notes' , 'linkcheck[]' , 's' ) );
$args = array ( 'hide_invisible' => 0 , 'hide_empty' => 0 );
if ( 'all' != $cat_id )
$args [ 'category' ] = $cat_id ;
if ( ! empty ( $s ) )
$args [ 'search' ] = $s ;
if ( ! empty ( $orderby ) )
$args [ 'orderby' ] = $orderby ;
if ( ! empty ( $order ) )
$args [ 'order' ] = $order ;
$this -> items = get_bookmarks ( $args );
}
function no_items () {
_e ( 'No links found.' );
}
function get_bulk_actions () {
$actions = array ();
$actions [ 'delete' ] = __ ( 'Delete' );
return $actions ;
}
function extra_tablenav ( $which ) {
global $cat_id ;
if ( 'top' != $which )
return ;
?>
< div class = " alignleft actions " >
< ? php
$dropdown_options = array (
'selected' => $cat_id ,
'name' => 'cat_id' ,
'taxonomy' => 'link_category' ,
'show_option_all' => __ ( 'View all categories' ),
'hide_empty' => true ,
'hierarchical' => 1 ,
'show_count' => 0 ,
'orderby' => 'name' ,
);
wp_dropdown_categories ( $dropdown_options );
2012-09-08 06:58:34 +02:00
submit_button ( __ ( 'Filter' ), 'small' , false , false , array ( 'id' => 'post-query-submit' ) );
2010-10-25 04:57:43 +02:00
?>
</ div >
< ? php
}
function get_columns () {
return array (
'cb' => '<input type="checkbox" />' ,
2011-06-11 00:13:26 +02:00
'name' => _x ( 'Name' , 'link name' ),
2010-10-25 04:57:43 +02:00
'url' => __ ( 'URL' ),
'categories' => __ ( 'Categories' ),
'rel' => __ ( 'Relationship' ),
'visible' => __ ( 'Visible' ),
'rating' => __ ( 'Rating' )
);
}
function get_sortable_columns () {
return array (
'name' => 'name' ,
'url' => 'url' ,
'visible' => 'visible' ,
'rating' => 'rating'
);
}
function display_rows () {
global $cat_id ;
$alt = 0 ;
foreach ( $this -> items as $link ) {
$link = sanitize_bookmark ( $link );
$link -> link_name = esc_attr ( $link -> link_name );
$link -> link_category = wp_get_link_cats ( $link -> link_id );
2010-11-22 18:17:31 +01:00
$short_url = url_shorten ( $link -> link_url );
2010-10-25 04:57:43 +02:00
$visible = ( $link -> link_visible == 'Y' ) ? __ ( 'Yes' ) : __ ( 'No' );
$rating = $link -> link_rating ;
$style = ( $alt ++ % 2 ) ? '' : ' class="alternate"' ;
$edit_link = get_edit_bookmark_link ( $link );
?>
< tr id = " link-<?php echo $link->link_id ; ?> " valign = " middle " < ? php echo $style ; ?> >
< ? php
list ( $columns , $hidden ) = $this -> get_column_info ();
foreach ( $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 ) {
2012-07-25 18:18:14 +02:00
case 'cb' : ?>
< th scope = " row " class = " check-column " >
< label class = " screen-reader-text " for = " cb-select-<?php echo $link->link_id ; ?> " >< ? php echo sprintf ( __ ( 'Select %s' ), $link -> link_name ); ?> </label>
< input type = " checkbox " name = " linkcheck[] " id = " cb-select-<?php echo $link->link_id ; ?> " value = " <?php echo esc_attr( $link->link_id ); ?> " />
</ th >
< ? php
2010-10-25 04:57:43 +02:00
break ;
case 'name' :
echo " <td $attributes ><strong><a class='row-title' href=' $edit_link ' title=' " . esc_attr ( sprintf ( __ ( 'Edit “%s”' ), $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&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> " ;
echo $this -> row_actions ( $actions );
echo '</td>' ;
break ;
case 'url' :
2010-12-21 18:17:58 +01:00
echo " <td $attributes ><a href=' $link->link_url ' title=' " . esc_attr ( sprintf ( __ ( 'Visit %s' ), $link -> link_name ) ) . " '> $short_url </a></td> " ;
2010-10-25 04:57:43 +02:00
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 echo $attributes ?> ><?php do_action( 'manage_link_custom_column', $column_name, $link->link_id ); ?></td>
< ? php
break ;
}
}
?>
</ tr >
< ? php
}
}
}