> For the complete documentation index, see [llms.txt](https://docs.mindstellar.com/osclass-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mindstellar.com/osclass-docs/v3.9.0/developers/plugins-themes/administrator-menus.md).

# Administrator Menus

Usually plugin and themes needs to add menus in the Administrator panel for provide access to screens. The best way is adding a menu section in the Administration menu that allows the user to access the screens.

There are some functions for manipulate the Administration Menu.

<div align="left"><img src="/files/-LsgHDc-ide31yAc6v8J" alt="Admin Menu"></div>

#### hAdminMenu helper

Add menu page to Administration Menu.

```php
 osc_add_admin_menu_page( 
   $menu_title, 
   $url,
   $menu_id,
   $icon_url = null, 
   $capability = null,
   $position = null )
```

Add submenu page to Administration Menu page given a menu parent identifier.

```php
 osc_add_admin_submenu_page( 
   $menu_id, 
   $submenu_title, 
   $url, 
   $submenu_id, 
   $capability = null, 
   $icon_url = null )
```

Remove menu page from Administrator Menu.

```php
 osc_remove_admin_menu_page($id_menu);
```

Remove submenu page given parent menu page identifier.

```php
 osc_remove_admin_submenu_page( $menu_id, $submenu_id )
```

#### Adding submenus to existings menus

<div align="left"><img src="/files/-LsgH2DJEf9gME3-LmzG" alt=""></div>

Helpers can add submenus to existing menus, like:Submenu Listings

{% hint style="info" %}
Helpers are available for these pages:&#x20;

* Listings
* Categories
* Pages
* Appearance
* Plugins
* Settings
* Tools
* Users
* Statistics
  {% endhint %}

```php
 osc_admin_menu_items( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
 osc_admin_menu_categories( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
 osc_admin_menu_pages( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url= null)
 osc_admin_menu_appearance( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
 osc_admin_menu_plugins( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
 osc_admin_menu_settings( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
 osc_admin_menu_tools( 
   $submenu_title, $url, $submenu_id,$capability = null, $icon_url = null )
 osc_admin_menu_users( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
 osc_admin_menu_stats( 
   $submenu_title, $url, $submenu_id, $capability = null, $icon_url = null )
```

Examples:

```php
 osc_add_admin_menu_page( 
   __('Listing'),                                             // menu title
   osc_admin_base_url(true).'?page=items',                    // menu url
   'items',                                                   // menu id
   'moderator'                                                // capability
 ) ; 
```

```php
 osc_add_admin_submenu_page( 
   'items',                                 // menu id
   __('Manage listings'),                   // submenu title   
   osc_admin_base_url(true).'?page=items',  // submenu url
   'items_manage',                          // submenu id
   'moderator'                              // capability
 ) ;
   ...
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.mindstellar.com/osclass-docs/v3.9.0/developers/plugins-themes/administrator-menus.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
