Current Path : /home/church/www/wp-content/plugins/ninja-forms/includes/Abstracts/ |
Current File : /home/church/www/wp-content/plugins/ninja-forms/includes/Abstracts/Submenu.php |
<?php if ( ! defined( 'ABSPATH' ) ) exit; /** * WordPress Menu Page Base Class */ abstract class NF_Abstracts_Submenu { /** * (required) The slug name for the parent menu (or the file name of a standard WordPress admin page) * * @var string */ public $parent_slug = ''; /** * (required) The text to be displayed in the title tags of the page when the menu is selected * * @var string */ public $page_title = ''; /** * (required) The on-screen name text for the menu * * @var string */ public $menu_title = ''; /** * (required) The capability required for this menu to be displayed to the user. * * @var string */ public $capability = 'manage_options'; /** * (required) The slug name to refer to this menu by (should be unique for this menu). * * @var string */ public $menu_slug = ''; /** * (optional) The function that displays the page content for the menu page. * * @var string */ public $function = 'display'; /** * (Optional) The position in the menu order this item should appear. * * @var int */ public $position = NULL; /** * Used to specify the order in which the submenu is registered on the admin_menu hook. * This is not the submenu position passed to add_submenu_page * * @var int */ public $priority = 10; /** * Constructor * * Translate text and add the 'admin_menu' action. */ public function __construct() { add_action( 'admin_menu', array( $this, 'register' ), $this->priority ); } /** * Register the menu page. */ public function register() { $function = ( $this->function ) ? array( $this, $this->function ) : NULL; add_submenu_page( $this->parent_slug, $this->get_page_title(), $this->get_menu_title(), apply_filters( 'ninja_forms_submenu_' . $this->get_menu_slug() . '_capability', $this->get_capability() ), $this->get_menu_slug(), $function, $this->position ); } public function get_page_title() { return $this->page_title; } public function get_menu_title() { return ( $this->menu_title ) ? $this->menu_title : $this->get_page_title(); } public function get_menu_slug() { return ( $this->menu_slug ) ? $this->menu_slug : 'nf-' . strtolower( preg_replace( '/[^A-Za-z0-9-]+/', '-', $this->get_menu_title() ) ); } public function get_capability() { return $this->capability; } /** * Display the menu page. */ public abstract function display(); }