token = isset( $args[ 'token' ] ) ? $args[ 'token' ] : array();
$this->available_screens = isset( $args[ 'screens' ] ) ? $args[ 'screens' ] : array();
}
/**
* Generate header HTML.
* @access public
* @since 1.0.0
* @return void
*/
public function get_header ( $token = 'ud-license-manager' ) {
global $current_screen;
do_action( 'ud_licenses_screen_before', $token );
$html = '
' . "\n";
$html .= '
' . get_admin_page_title() . '
' . "\n";
$html .= '' . "\n";
$html .= $this->get_navigation_tabs();
$html .= '
' . "\n";
echo $html;
do_action( 'ud_licenses_screen_header_before_content', $token );
}
/**
* Generate footer HTML.
* @access public
* @since 1.0.0
* @return void
*/
public function get_footer ( $token = 'ud-license-manager', $screen_icon = 'tools' ) {
do_action( 'ud_licenses_screen_footer_after_content', $token, $screen_icon );
$html = '' . "\n";
echo $html;
do_action( 'ud_licenses_screen_after', $token, $screen_icon );
}
/**
* Generate navigation tabs HTML, based on a specific admin menu.
* @access public
* @since 1.0.0
* @return string/WP_Error
*/
public function get_navigation_tabs () {
$html = '';
$screens = !empty( $this->available_screens ) && is_array( $this->available_screens ) ? $this->available_screens : array();
$licenses_url = get_option( $this->token . '-url', '' );
$current_tab = self::get_current_screen();
if ( 0 < count( $screens ) ) {
foreach ( $screens as $k => $v ) {
$class = 'nav-tab';
if ( $current_tab == $k ) {
$class .= ' nav-tab-active';
}
$url = add_query_arg( 'screen', $k, $licenses_url );
$html .= '' . esc_html( $v ) . '';
}
}
return $html;
}
/**
* Return the token for the current screen.
* @access public
* @since 1.0.0
* @return string The token for the current screen.
*/
public function get_current_screen () {
$screen = 'licenses'; // Default.
if ( isset( $_GET['screen'] ) && '' != $_GET['screen'] ) $screen = esc_attr( $_GET['screen'] );
return $screen;
}
}
}
}