+ /**
+ * Override parent views so we can use the filter bar display.
+ */
+ public function views() {
+ $views = $this->get_views();
+
+ /** This filter is documented in wp-admin/inclues/class-wp-list-table.php */
+ $views = apply_filters( "views_{$this->screen->id}", $views );
+
+ $this->screen->render_screen_reader_content( 'heading_views' );
+?>
+<div class="wp-filter">
+ <ul class="filter-links">
+ <?php
+ if ( ! empty( $views ) ) {
+ foreach ( $views as $class => $view ) {
+ $views[ $class ] = "\t<li class='$class'>$view";
+ }
+ echo implode( " </li>\n", $views ) . "</li>\n";
+ }
+ ?>
+ </ul>
+
+ <?php install_search_form( isset( $views['plugin-install-search'] ) ); ?>
+</div>
+<?php
+ }
+
+ /**
+ * Override the parent display() so we can provide a different container.
+ */
+ public function display() {
+ $singular = $this->_args['singular'];
+
+ $data_attr = '';
+
+ if ( $singular ) {
+ $data_attr = " data-wp-lists='list:$singular'";
+ }
+
+ $this->display_tablenav( 'top' );
+
+?>
+<div class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>">
+<?php
+ $this->screen->render_screen_reader_content( 'heading_list' );
+?>
+ <div id="the-list"<?php echo $data_attr; ?>>
+ <?php $this->display_rows_or_placeholder(); ?>
+ </div>
+</div>
+<?php
+ $this->display_tablenav( 'bottom' );
+ }
+
+ /**
+ * @global string $tab
+ *
+ * @param string $which
+ */
+ protected function display_tablenav( $which ) {
+ if ( $GLOBALS['tab'] === 'featured' ) {
+ return;
+ }
+
+ if ( 'top' === $which ) {
+ wp_referer_field();
+ ?>