Documentation

Menu
in package
implements ArrayAccess uses ArrayAccessHelper

Represents a menu, such as the admin menu or profile menu.

The $data parameter for the constructor is array of sections, which contain areas, which can contain subsections. The properties for each are as follows:

For Sections:

string title:         Section title.

bool   enabled:       Should this section be accessible?

array  areas:         Array of areas within this section. (See below.)

array  permission:    Permission required to access the whole section.

For Areas:

string label:         Optional text string for link. If this is not set,
                      Lang::$txt[$area_id] will be used.

string file:          Name of source file required for this area.

string function:      Function to call when area is selected.

string custom_url:    URL to use for this menu item.

bool   enabled:       Should this area be accessible?

bool   hidden:        Should this area be visible? (Used when an area is
                      accessible but should not be shown.)

string select:        If set this item will not be displayed. Instead the
                      item indexed here will be.

array  subsections:   Array of subsections from this area. (See below.)

array  permission:    Array of permissions to determine who can access
                      this area.

For Subsections:

string label:         Text label for this subsection.

array  permission:    Array of permissions to check for this subsection.

bool   enabled:       Should this subsection be accessible?

bool   is_default:    Is this the default subaction? If no subsection is
                      set as the default, the first one will be used.

The $options parameter for the constructor is an array that can contain some some combination of the following:

string action:        The action for this menu. If this is not set, it
                      will be determined automatically.

string current_area:  The currently selected area. If this is not set, it
                      will be determined automatically.

string base_url:      The base URL for items in this menu. If this is not
                      set, it will be determined automatically.

string template_name: The theme template to load for this menu.

string layer_name:    The template layer to load for this menu.

bool   do_big_icons:  If true, get large icons for admin home page.

array  extra_url_parameters:
                      Key-value pairs of extra parameters to append to
                      the menu item URLs.

bool   disable_url_session_check:
                      If true, does not append the session parameter to
                      the menu item URLs.

bool   disable_hook_call:
                      If true, skips the integrate_{action}_areas hook.

Table of Contents

Interfaces

ArrayAccess

Properties

$base_url  : string
$current_action  : string
$current_area  : string
$current_section  : string
$current_subsection  : string
$extra_parameters  : string
$id  : int
$include_data  : array<string|int, mixed>
$layer_name  : string
$loaded  : array<string|int, mixed>
$max_id  : int
$name  : string
$sections  : array<string|int, mixed>
$tab_data  : array<string|int, mixed>
$template_name  : string
$backup_area  : string
$data  : array<string|int, mixed>
$found_section  : bool
$options  : array<string|int, mixed>

Methods

__construct()  : mixed
Constructor.
create()  : array<string|int, mixed>|false
Static wrapper for constructor.
destroy()  : void
Delete a menu.
offsetExists()  : bool
Checks whether a property has been set when object is accessed as an array.
offsetGet()  : mixed
Gets properties when object is accessed as an array.
offsetSet()  : void
Sets properties when object is accessed as an array.
offsetUnset()  : void
Unsets properties when object is accessed as an array.
buildArea()  : void
Build the data array for an area of the menu.
buildExtraParameters()  : void
Build a list of additional parameters that should go in the URL.
buildSection()  : void
Build the data array for a section of the menu.
buildSubsection()  : void
Build the data array for a subsection of the menu.
checkBaseUrl()  : void
Goes through all the sections to check if the base menu has an url.
enabledAndAllowed()  : bool
Checks whether the given menu item is enabled and whether the current user has permission to access it.
setAreaIcon()  : void
Sets the icon for an area.
setCurrentSectionAndArea()  : void
Figures out which section and area the user is currently viewing.
setSelected()  : void
Figures out which section, area, and subsection are currently selected.

Properties

$base_url

public string $base_url

Base URL for the menu's buttons.

$current_action

public string $current_action = ''

The action that the user is currently viewing.

This corresponds to the 'action=...' URL parameter.

$current_area

public string $current_area = ''

The area within the action that the user is currently viewing.

This corresponds to the 'area=...' URL parameter.

$current_section

public string $current_section = ''

The section of the menu that the current area is in.

This does not correspond to an URL parameter. It is just a way of organizing the areas within the action.

$current_subsection

public string $current_subsection = ''

The subsection within the area that the user is currently viewing.

This corresponds to the 'sa=...' URL parameter.

$extra_parameters

public string $extra_parameters = ''

Extra URL parameters that should be appended to menu item links.

Typically this contains the session parameter, if anything.

$id

public int $id

ID number of this menu.

$include_data

public array<string|int, mixed> $include_data = []

Data about files to include, functions to call, etc., in order to make the current area work.

$layer_name

public string $layer_name

The template layer to load for this menu.

$loaded

public static array<string|int, mixed> $loaded = []

All loaded instances of this class. Keys are action names.

$max_id

public static int $max_id = 0

The highest $id value that has been assigned to a menu thus far.

$name

public string $name = ''

Generic name of this menu. Simply takes the form: 'menu_data_' . $id Used to provide a unique key in Utils::$context.

$sections

public array<string|int, mixed> $sections = []

The constructed hierarchical menu data.

$tab_data

public array<string|int, mixed> $tab_data = []

A set of tab buttons to show in a secondary menu below the main menu.

This is intended for more complex menus. The tab buttons typically (but not always) correspond to the menu items in the current subsection.

$template_name

public string $template_name

The theme template to load for this menu.

$backup_area

protected string $backup_area

Fallback area to show if $current_area can't be shown.

$data

protected array<string|int, mixed> $data = []

Holds the $data parameter passed to the constructor.

$found_section

protected bool $found_section = false

Whether we have found the current section yet.

Used while we are building the menu's sections.

$options

protected array<string|int, mixed> $options = []

Holds the $options parameter passed to the constructor.

Methods

__construct()

Constructor.

public __construct(array<string|int, mixed> $data[, array<string|int, mixed> $options = [] ]) : mixed
Parameters
$data : array<string|int, mixed>

An array of menu data.

$options : array<string|int, mixed> = []

An array of menu options.

create()

Static wrapper for constructor.

public static create(array<string|int, mixed> $data[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|false
Parameters
$data : array<string|int, mixed>

An array of menu data.

$options : array<string|int, mixed> = []

An array of menu options.

Return values
array<string|int, mixed>|false

Info about the selected menu item, or false if nothing to show.

destroy()

Delete a menu.

public static destroy([int|string $id = 'last' ]) : void
Parameters
$id : int|string = 'last'

The ID of a menu, or 'last' for the most recent one.

offsetExists()

Checks whether a property has been set when object is accessed as an array.

public offsetExists(mixed $prop) : bool
Parameters
$prop : mixed

The property name.

Return values
bool

offsetGet()

Gets properties when object is accessed as an array.

public & offsetGet(mixed $prop) : mixed
Parameters
$prop : mixed

The property name.

Return values
mixed

A reference to the property.

offsetSet()

Sets properties when object is accessed as an array.

public offsetSet(mixed $prop, mixed $value) : void
Parameters
$prop : mixed

The property name.

$value : mixed

The value to set.

offsetUnset()

Unsets properties when object is accessed as an array.

public offsetUnset(mixed $prop) : void
Parameters
$prop : mixed

The property name.

buildArea()

Build the data array for an area of the menu.

protected buildArea(array<string|int, mixed> $area) : void
Parameters
$area : array<string|int, mixed>

An array of a area data.

buildExtraParameters()

Build a list of additional parameters that should go in the URL.

protected buildExtraParameters() : void

buildSection()

Build the data array for a section of the menu.

protected buildSection(array<string|int, mixed> $section) : void
Parameters
$section : array<string|int, mixed>

An array of a section data.

buildSubsection()

Build the data array for a subsection of the menu.

protected buildSubsection(array<string|int, mixed> $subsection) : void
Parameters
$subsection : array<string|int, mixed>

An array of a subsection data.

checkBaseUrl()

Goes through all the sections to check if the base menu has an url.

protected checkBaseUrl() : void

enabledAndAllowed()

Checks whether the given menu item is enabled and whether the current user has permission to access it.

protected enabledAndAllowed(array<string|int, mixed> $menu_item) : bool
Parameters
$menu_item : array<string|int, mixed>

An array of a menu item.

Return values
bool

setAreaIcon()

Sets the icon for an area.

protected setAreaIcon(array<string|int, mixed> $area) : void
Parameters
$area : array<string|int, mixed>

An array of a area data.

setCurrentSectionAndArea()

Figures out which section and area the user is currently viewing.

protected setCurrentSectionAndArea() : void

setSelected()

Figures out which section, area, and subsection are currently selected.

protected setSelected() : void

        
On this page

Search results