* @license GPL-3.0
* @copyright Barn2 Media Ltd
*/
class Admin_Controller implements Registerable, Service {
private $plugin;
private $settings_page;
public function __construct( Plugin $plugin ) {
$this->plugin = $plugin;
$this->settings_page = new Settings_Page();
}
public function register() {
// Extra links on Plugins page
\add_filter( 'plugin_action_links_' . $this->plugin->get_basename(), array( $this, 'add_settings_link' ) );
\add_filter( 'plugin_row_meta', array( $this, 'add_pro_version_link' ), 10, 2 );
// Admin scripts
\add_action( 'admin_enqueue_scripts', array( $this, 'settings_page_scripts' ) );
$this->settings_page->register();
}
public function add_settings_link( $links ) {
\array_unshift(
$links,
\sprintf( '%2$s',
\esc_url( \admin_url( 'options-general.php?page=' . Settings_Page::MENU_SLUG ) ),
\esc_html__( 'Settings', 'posts-data-table' )
)
);
return $links;
}
public function add_pro_version_link( $links, $file ) {
if ( $file === $this->plugin->get_basename() ) {
$links[] = \sprintf( '%2$s',
\esc_url( 'https://barn2.co.uk/wordpress-plugins/posts-table-pro/' ),
\esc_html__( 'Pro Version', 'posts-data-table' )
);
}
return $links;
}
public function settings_page_scripts( $hook ) {
if ( 'settings_page_posts_table_search_sort' === $hook ) {
$suffix = Util::get_script_suffix();
\wp_enqueue_style( 'ptss-admin', \plugins_url( "assets/css/admin/posts-data-table-admin{$suffix}.css", $this->plugin->get_file() ), array(), $this->plugin->get_version() );
}
}
}