' . balanceTags( stripslashes( wp_filter_kses( $message ) ), true ) . ''; } /** * Returns the list of messages as a string. * An empty string is returned if there are no messages. * * @return string */ public static function render_messages() { $output = ''; if ( !empty( self::$messages ) ) { $output .= '
'; $output .= implode( '', self::$messages ); $output .= '
'; } return $output; } /** * Prints admin notices. */ public static function admin_notices() { global $groups_admin_messages; if ( !empty( $groups_admin_messages ) ) { foreach ( $groups_admin_messages as $msg ) { echo $msg; } } } /** * Use a context-sensitive menu item title. */ public static function admin_head() { global $submenu; if ( isset( $submenu['groups-admin'] ) ) { $submenu['groups-admin'][0][0] = _x( 'Groups', 'menu item title', GROUPS_PLUGIN_DOMAIN ); } } /** * Admin menu. */ public static function admin_menu() { include_once( GROUPS_ADMIN_LIB . '/groups-admin-groups.php'); include_once( GROUPS_ADMIN_LIB . '/groups-admin-capabilities.php'); include_once( GROUPS_ADMIN_LIB . '/groups-admin-options.php'); include_once( GROUPS_ADMIN_LIB . '/groups-admin-add-ons.php'); $pages = array(); // main $page = add_menu_page( _x( 'Groups', 'page-title', GROUPS_PLUGIN_DOMAIN ), 'Groups', // don't translate, reasons: a) Groups menu title consistency and b) http://core.trac.wordpress.org/ticket/18857 translation affects $screen->id GROUPS_ADMINISTER_GROUPS, 'groups-admin', apply_filters( 'groups_add_menu_page_function', 'groups_admin_groups' ), GROUPS_PLUGIN_URL . '/images/groups.png', self::MENU_POSITION ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, array( __CLASS__, 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $page, array( __CLASS__, 'admin_print_scripts' ) ); if ( isset( $_POST[GROUPS_ADMIN_OPTIONS_NONCE] ) && wp_verify_nonce( $_POST[GROUPS_ADMIN_OPTIONS_NONCE], 'admin' ) ) { $show_tree_view = !empty( $_POST[GROUPS_SHOW_TREE_VIEW] ); } else { $show_tree_view = Groups_Options::get_option( GROUPS_SHOW_TREE_VIEW, GROUPS_SHOW_TREE_VIEW_DEFAULT ); } if ( $show_tree_view ) { include_once( GROUPS_ADMIN_LIB . '/groups-admin-tree-view.php'); $page = add_submenu_page( 'groups-admin', __( 'Tree', GROUPS_PLUGIN_DOMAIN ), __( 'Tree', GROUPS_PLUGIN_DOMAIN ), GROUPS_ACCESS_GROUPS, 'groups-admin-tree-view', apply_filters( 'groups_add_submenu_page_function', 'groups_admin_tree_view' ) ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, array( __CLASS__, 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $page, array( __CLASS__, 'admin_print_scripts' ) ); } // capabilities $page = add_submenu_page( 'groups-admin', __( 'Groups Capabilities', GROUPS_PLUGIN_DOMAIN ), __( 'Capabilities', GROUPS_PLUGIN_DOMAIN ), GROUPS_ADMINISTER_GROUPS, 'groups-admin-capabilities', apply_filters( 'groups_add_submenu_page_function', 'groups_admin_capabilities' ) ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, array( __CLASS__, 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $page, array( __CLASS__, 'admin_print_scripts' ) ); // options $page = add_submenu_page( 'groups-admin', __( 'Groups options', GROUPS_PLUGIN_DOMAIN ), __( 'Options', GROUPS_PLUGIN_DOMAIN ), GROUPS_ADMINISTER_OPTIONS, 'groups-admin-options', apply_filters( 'groups_add_submenu_page_function', 'groups_admin_options' ) ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, array( __CLASS__, 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $page, array( __CLASS__, 'admin_print_scripts' ) ); // add-ons $page = add_submenu_page( 'groups-admin', __( 'Groups Add-Ons', GROUPS_PLUGIN_DOMAIN ), __( 'Add-Ons', GROUPS_PLUGIN_DOMAIN ), GROUPS_ACCESS_GROUPS, 'groups-admin-add-ons', apply_filters( 'groups_add_submenu_page_function', 'groups_admin_add_ons' ) ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, array( __CLASS__, 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $page, array( __CLASS__, 'admin_print_scripts' ) ); do_action( 'groups_admin_menu', $pages ); } /** * Network admin menu. */ public static function network_admin_menu() { include_once( GROUPS_ADMIN_LIB . '/groups-admin-options.php'); $pages = array(); // main $page = add_menu_page( __( 'Groups', GROUPS_PLUGIN_DOMAIN ), __( 'Groups', GROUPS_PLUGIN_DOMAIN ), GROUPS_ADMINISTER_GROUPS, 'groups-network-admin', apply_filters( 'groups_add_menu_page_function', 'groups_network_admin_options' ), GROUPS_PLUGIN_URL . '/images/groups.png' ); $pages[] = $page; add_action( 'admin_print_styles-' . $page, array( __CLASS__, 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $page, array( __CLASS__, 'admin_print_scripts' ) ); do_action( 'groups_network_admin_menu', $pages ); } /** * Adds plugin links. * * @param array $links * @param array $links with additional links */ public static function plugin_action_links( $links ) { if ( current_user_can( GROUPS_ADMINISTER_OPTIONS ) ) { array_unshift( $links, '' . __( 'Options', GROUPS_PLUGIN_DOMAIN ) . '' ); } if ( current_user_can( GROUPS_ADMINISTER_GROUPS ) ) { array_unshift( $links, '' . __( 'Groups', GROUPS_PLUGIN_DOMAIN ) . '' ); } return $links; } } Groups_Admin::init();