2010-10-24 22:57:43 -04:00
< ? php
/**
2010-10-25 00:04:18 -04:00
* Links Manager List Table class .
2010-10-24 22:57:43 -04:00
*
* @ package WordPress
2010-10-25 00:04:18 -04:00
* @ subpackage List_Table
* @ since 3.1 . 0
2011-01-16 16:47:24 -05:00
* @ access private
2010-10-24 22:57:43 -04:00
*/
2010-11-04 04:07:03 -04:00
class WP_Links_List_Table extends WP_List_Table {
2010-10-24 22:57:43 -04:00
2014-08-09 22:18:17 -04:00
/**
* Constructor .
2014-09-04 11:23:16 -04:00
*
2014-08-09 22:18:17 -04:00
* @ since 3.1 . 0
2014-08-09 22:22:16 -04:00
* @ access public
2014-08-09 22:18:17 -04:00
*
* @ see WP_List_Table :: __construct () for more information on default arguments .
*
* @ param array $args An associative array of arguments .
2014-09-04 11:23:16 -04:00
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
public function __construct ( $args = array () ) {
2011-04-29 16:05:12 -04:00
parent :: __construct ( array (
2010-10-24 22:57:43 -04:00
'plural' => 'bookmarks' ,
2012-09-19 08:43:31 -04:00
'screen' => isset ( $args [ 'screen' ] ) ? $args [ 'screen' ] : null ,
2010-10-24 22:57:43 -04:00
) );
}
2015-05-29 16:17:26 -04:00
/**
*
* @ return bool
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
public function ajax_user_can () {
2010-12-16 04:18:28 -05:00
return current_user_can ( 'manage_links' );
2010-10-24 22:57:43 -04:00
}
2015-05-28 17:41:30 -04:00
/**
*
* @ global int $cat_id
* @ global string $s
* @ global string $orderby
* @ global string $order
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
public function prepare_items () {
2010-10-24 22:57:43 -04:00
global $cat_id , $s , $orderby , $order ;
2013-02-16 13:28:41 -05:00
wp_reset_vars ( array ( 'action' , 'cat_id' , 'link_id' , 'orderby' , 'order' , 's' ) );
2010-10-24 22:57:43 -04:00
$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 );
}
2015-05-29 17:32:24 -04:00
/**
* @ access public
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
public function no_items () {
2010-10-24 22:57:43 -04:00
_e ( 'No links found.' );
}
2015-05-29 16:17:26 -04:00
/**
*
* @ return array
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
protected function get_bulk_actions () {
2010-10-24 22:57:43 -04:00
$actions = array ();
$actions [ 'delete' ] = __ ( 'Delete' );
return $actions ;
}
2015-05-28 17:41:30 -04:00
/**
*
* @ global int $cat_id
* @ param string $which
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
protected function extra_tablenav ( $which ) {
2010-10-24 22:57:43 -04:00
global $cat_id ;
if ( 'top' != $which )
return ;
?>
< div class = " alignleft actions " >
< ? php
$dropdown_options = array (
'selected' => $cat_id ,
'name' => 'cat_id' ,
'taxonomy' => 'link_category' ,
2014-10-10 22:23:18 -04:00
'show_option_all' => __ ( 'All categories' ),
2010-10-24 22:57:43 -04:00
'hide_empty' => true ,
'hierarchical' => 1 ,
'show_count' => 0 ,
'orderby' => 'name' ,
);
2014-10-10 22:21:19 -04:00
echo '<label class="screen-reader-text" for="cat_id">' . __ ( 'Filter by category' ) . '</label>' ;
2010-10-24 22:57:43 -04:00
wp_dropdown_categories ( $dropdown_options );
2014-06-29 21:10:15 -04:00
submit_button ( __ ( 'Filter' ), 'button' , 'filter_action' , false , array ( 'id' => 'post-query-submit' ) );
2010-10-24 22:57:43 -04:00
?>
</ div >
< ? php
}
2015-05-29 16:17:26 -04:00
/**
*
* @ return array
*/
2014-07-11 23:27:14 -04:00
public function get_columns () {
2010-10-24 22:57:43 -04:00
return array (
'cb' => '<input type="checkbox" />' ,
2011-06-10 18:13:26 -04:00
'name' => _x ( 'Name' , 'link name' ),
2010-10-24 22:57:43 -04:00
'url' => __ ( 'URL' ),
'categories' => __ ( 'Categories' ),
'rel' => __ ( 'Relationship' ),
'visible' => __ ( 'Visible' ),
'rating' => __ ( 'Rating' )
);
}
2015-05-29 16:17:26 -04:00
/**
*
* @ return array
*/
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-18 21:17:15 -04:00
protected function get_sortable_columns () {
2010-10-24 22:57:43 -04:00
return array (
'name' => 'name' ,
'url' => 'url' ,
'visible' => 'visible' ,
'rating' => 'rating'
);
}
2015-05-28 22:41:25 -04:00
/**
2015-05-30 21:23:26 -04:00
* Get the name of the default primary column .
2015-05-28 22:41:25 -04:00
*
* @ since 4.3 . 0
* @ access protected
2015-05-30 21:29:26 -04:00
*
2015-05-30 21:23:26 -04:00
* @ return string Name of the default primary column , in this case , 'name' .
2015-05-28 22:41:25 -04:00
*/
protected function get_default_primary_column_name () {
return 'name' ;
}
2015-05-28 17:41:30 -04:00
/**
*
* @ global int $cat_id
*/
2014-07-13 18:09:16 -04:00
public function display_rows () {
2010-10-24 22:57:43 -04:00
global $cat_id ;
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 12:17:31 -05:00
$short_url = url_shorten ( $link -> link_url );
2010-10-24 22:57:43 -04:00
$visible = ( $link -> link_visible == 'Y' ) ? __ ( 'Yes' ) : __ ( 'No' );
$rating = $link -> link_rating ;
$edit_link = get_edit_bookmark_link ( $link );
?>
2015-01-14 17:14:22 -05:00
< tr id = " link-<?php echo $link->link_id ; ?> " >
2010-10-24 22:57:43 -04:00
< ? php
2015-05-28 22:41:25 -04:00
list ( $columns , $hidden , $sortable , $primary ) = $this -> get_column_info ();
2010-10-24 22:57:43 -04:00
foreach ( $columns as $column_name => $column_display_name ) {
2015-05-28 22:41:25 -04:00
$classes = " $column_name column- $column_name " ;
if ( $primary === $column_name ) {
$classes .= ' has-row-actions column-primary' ;
}
2010-10-24 22:57:43 -04:00
2015-05-28 22:41:25 -04:00
if ( in_array ( $column_name , $hidden ) ) {
2015-06-10 15:47:27 -04:00
$classes .= ' hidden' ;
2015-05-28 22:41:25 -04:00
}
2015-06-10 15:47:27 -04:00
$attributes = " class=' $classes ' " ;
2010-10-24 22:57:43 -04:00
2015-05-28 22:41:25 -04:00
if ( 'cb' === $column_name ) {
?>
< 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
} else {
echo " <td $attributes > " ;
switch ( $column_name ) {
case 'name' :
echo " <strong><a class='row-title' href=' $edit_link ' title=' " . esc_attr ( sprintf ( __ ( 'Edit “%s”' ), $link -> link_name ) ) . " '> $link->link_name </a></strong><br /> " ;
break ;
case 'url' :
echo " <a href=' $link->link_url ' title=' " . esc_attr ( sprintf ( __ ( 'Visit %s' ), $link -> link_name ) ) . " '> $short_url </a> " ;
break ;
case 'categories' :
$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 );
break ;
case 'rel' :
echo empty ( $link -> link_rel ) ? '<br />' : $link -> link_rel ;
break ;
case 'visible' :
echo $visible ;
break ;
case 'rating' :
echo $rating ;
break ;
default :
2014-12-06 16:32:24 -05:00
/**
* Fires for each registered custom link column .
*
* @ since 2.1 . 0
*
* @ param string $column_name Name of the custom column .
* @ param int $link_id Link ID .
*/
do_action ( 'manage_link_custom_column' , $column_name , $link -> link_id );
2015-05-28 22:41:25 -04:00
break ;
}
echo $this -> handle_row_actions ( $link , $column_name , $primary );
echo '</td>' ;
2010-10-24 22:57:43 -04:00
}
}
?>
</ tr >
< ? php
}
}
2015-05-28 22:41:25 -04:00
/**
2015-05-30 21:29:26 -04:00
* Generate and display row actions links .
2015-05-28 22:41:25 -04:00
*
2015-05-30 21:23:26 -04:00
* @ since 4.3 . 0
2015-05-28 22:41:25 -04:00
* @ access protected
*
2015-05-30 21:23:26 -04:00
* @ param object $link Link being acted upon .
* @ param string $column_name Current column name .
* @ param string $primary Primary column name .
* @ return string Row action output for links .
2015-05-28 22:41:25 -04:00
*/
protected function handle_row_actions ( $link , $column_name , $primary ) {
if ( $primary === $column_name ) {
$edit_link = get_edit_bookmark_link ( $link );
$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> " ;
return $this -> row_actions ( $actions );
}
}
2010-10-24 22:57:43 -04:00
}