$args ) new $class( $args[0], $args[1] ); } // ____________MAIN METHODS____________ // Constructor function __construct( $file, $options = NULL ) { if ( is_a( $options, 'scbOptions' ) ) $this->options = $options; $this->file = $file; $this->plugin_url = plugin_dir_url( $file ); $this->setup(); $this->check_args(); if ( isset( $this->option_name ) ) { add_action( 'admin_init', array( $this, 'option_init' ) ); if ( function_exists( 'settings_errors' ) ) add_action( 'admin_notices', 'settings_errors' ); } add_action( 'admin_menu', array( $this, 'page_init' ), $this->args['admin_action_priority'] ); add_filter( 'contextual_help', array( $this, '_contextual_help' ), 10, 2 ); if ( $this->args['action_link'] ) add_filter( 'plugin_action_links_' . plugin_basename( $file ), array( $this, '_action_link' ) ); } // This is where all the page args can be set function setup(){} // This is where the css and js go // Both wp_enqueue_*() and inline code can be added function page_head(){} // This is where the contextual help goes // @return string function page_help(){} // A generic page header function page_header() { echo "
$msg
\n" . scbForms::input( $input_args ) . "
\n"; return $output; } /* Mimics scbForms::form_wrap() $this->form_wrap( $content ); // generates a form with a default submit button $this->form_wrap( $content, false ); // generates a form with no submit button // the second argument is sent to submit_button() $this->form_wrap( $content, array( 'text' => 'Save changes', 'name' => 'action', 'ajax' => true, ) ); */ function form_wrap( $content, $submit_button = true ) { if ( is_array( $submit_button ) ) { $content .= $this->submit_button( $submit_button ); } elseif ( true === $submit_button ) { $content .= $this->submit_button(); } elseif ( false !== strpos( $submit_button, 'nonce ); } // Generates a table wrapped in a form function form_table( $rows, $formdata = false ) { $output = ''; foreach ( $rows as $row ) $output .= $this->table_row( $row, $formdata ); $output = $this->form_table_wrap( $output ); return $output; } // Wraps the given content in a