diff --git a/class/dashboard/init.php b/class/dashboard/init.php
index 39318c9..64d24ad 100644
--- a/class/dashboard/init.php
+++ b/class/dashboard/init.php
@@ -20,7 +20,7 @@ class MCI_Footnotes_Layout_Init {
* @since 1.5.0
* @var string
*/
- const C_STR_MAIN_MENU_SLUG = 'mfmmf';
+ const C_STR_MAIN_MENU_SLUG = 'footnotes';
/**
* Plugin main menu name.
@@ -31,12 +31,12 @@ class MCI_Footnotes_Layout_Init {
const C_STR_MAIN_MENU_TITLE = 'ManFisher';
/**
- * Contains layout engine sub classes.
+ * Contains the settings layoutEngine
*
* @since 1.5.0
* @var array
*/
- private $a_arr_sub_page_classes = array();
+ private $settings_page;
/**
* Class Constructor. Initializes all WordPress hooks for the Plugin Settings.
@@ -44,100 +44,42 @@ class MCI_Footnotes_Layout_Init {
* @since 1.5.0
*/
public function __construct() {
- foreach ( get_declared_classes() as $l_str_class_name ) {
- if ( is_subclass_of( $l_str_class_name, 'MCI_Footnotes_Layout_Engine' ) ) {
- $l_obj_class = new $l_str_class_name();
- // Append new instance of the layout engine sub class.
- $this->a_arr_sub_page_classes[ $l_obj_class->get_priority() ] = $l_obj_class;
- }
- }
- ksort( $this->a_arr_sub_page_classes );
+ $this->settings_page = new MCI_Footnotes_Layout_Settings();
// Register hooks/actions.
+ add_action( 'admin_menu', array( $this, 'register_options_submenu' ) );
add_action( 'admin_init', array( $this, 'initialize_settings' ) );
- add_action( 'admin_menu', array( $this, 'register_main_menu' ) );
// Register AJAX callbacks for Plugin information.
add_action( 'wp_ajax_nopriv_footnotes_get_plugin_info', array( $this, 'get_plugin_meta_information' ) );
add_action( 'wp_ajax_footnotes_get_plugin_info', array( $this, 'get_plugin_meta_information' ) );
}
/**
- * Initializes all sub pages and registers the settings.
+ * Registers the settings and initialises the settings page.
*
* @since 1.5.0
*/
public function initialize_settings() {
MCI_Footnotes_Settings::instance()->register_settings();
- // Iterate though each sub class of the layout engine and register their sections.
- foreach ( $this->a_arr_sub_page_classes as $l_obj_layout_engine_sub_class ) {
- $l_obj_layout_engine_sub_class->register_sections();
- }
+ $this->settings_page->register_sections();
}
/**
- * Registers the new main menu for the WordPress dashboard.
- * Registers all sub menu pages for the new main menu.
+ * Registers the footnotes submenu page.
*
* @since 1.5.0
* @see http://codex.wordpress.org/Function_Reference/add_menu_page
*/
- public function register_main_menu() {
- global $menu;
- // Iterate through each main menu.
- foreach ( $menu as $l_arr_main_menu ) {
- // 3terate through each main menu attribute.
- foreach ( $l_arr_main_menu as $l_str_attribute ) {
- // Main menu already added, append sub pages and stop.
- if ( self::C_STR_MAIN_MENU_SLUG === $l_str_attribute ) {
- $this->register_sub_pages();
- return;
- }
- }
- }
-
- // Add a new main menu page to the WordPress dashboard.
- add_menu_page(
- self::C_STR_MAIN_MENU_TITLE, // Page title.
- self::C_STR_MAIN_MENU_TITLE, // Menu title.
- 'manage_options', // Capability.
- self::C_STR_MAIN_MENU_SLUG, // Menu slug.
- array( $this, 'display_other_plugins' ), // Function.
- plugins_url( 'footnotes/img/main-menu.png' ), // Icon URL.
- null // Position.
+ public function register_options_submenu() {
+ add_submenu_page(
+ 'options-general.php',
+ 'footnotes Settings',
+ self::C_STR_MAIN_MENU_SLUG,
+ 'manage_options',
+ 'footnotes',
+ array( $this->settings_page, 'display_content' )
);
- $this->register_sub_pages();
- }
-
- /**
- * Registers all SubPages for this Plugin.
- *
- * @since 1.5.0
- */
- private function register_sub_pages() {
- // First registered sub menu page MUST NOT contain a unique slug suffix.
- // Iterate though each sub class of the layout engine and register their sub page.
- foreach ( $this->a_arr_sub_page_classes as $l_obj_layout_engine_sub_class ) {
- $l_obj_layout_engine_sub_class->register_sub_page();
- }
- }
-
- /**
- * Displays other Plugins from the developers.
- *
- * @since 1.5.0
- */
- public function display_other_plugins() {
- printf( '
' );
- // Load template file.
- $l_obj_template = new MCI_Footnotes_Template( MCI_Footnotes_Template::C_STR_DASHBOARD, 'manfisher' );
- // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
- echo $l_obj_template->get_content();
- // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped
-
- printf( 'visit Mark Cheret' );
- printf( '
' );
-
- printf( '' );
+ $this->settings_page->register_sub_page();
}
// phpcs:disable WordPress.Security.NonceVerification.Missing
diff --git a/class/dashboard/layout.php b/class/dashboard/layout.php
index b3d24e0..1a5d4b6 100644
--- a/class/dashboard/layout.php
+++ b/class/dashboard/layout.php
@@ -257,7 +257,7 @@ abstract class MCI_Footnotes_Layout_Engine {
echo sprintf(
'%s',
( $l_str_id === $l_arr_active_section['id'] ) ? ' nav-tab-active' : '',
- MCI_Footnotes_Layout_Init::C_STR_MAIN_MENU_SLUG . $this->get_sub_page_slug(),
+ MCI_Footnotes_Layout_Init::C_STR_MAIN_MENU_SLUG,
$l_str_id,
$l_arr_description['title']
);