SiteMenu

Extends AbstractMenu Implements CacheControllerFactoryAwareInterface

Menu class

since

1.5

package

Joomla CMS

Methods

__construct

Class constructor

__construct(mixed||string|int options = []) : 
since

1.5

Arguments

options

array<string|int, mixed>An array of configuration options.

Response

mixed

__get

Magic getter for the user object. Returns the injected one if any, or the current one if none.

__get( propName) : \Joomla\CMS\User\User|null
inherited

Using a magic getter to preserve B/C when we stopped storing the user object upon construction of the menu object. As the user property is not initialized anymore, this getter ensures any class extending this one can still use $instance->user and get a proper value.

since

3.9.26

Arguments

propName

stringName of the missing or protected property.

Response

User|null

authorise

Method to check Menu object authorization against an access control object and optionally an access extension object

authorise( id) : 
inherited
since

1.5

Arguments

id

intThe menu id

Response

bool

getActive

Get menu item by id.

getActive() : \Joomla\CMS\Menu\MenuItem|null
inherited
since

1.5

Response

MenuItem|nullThe item object if an active menu item has been set or null

getCacheControllerFactory

Get the CacheControllerFactoryInterface.

getCacheControllerFactory() : \Joomla\CMS\Cache\CacheControllerFactoryInterface
inherited
since

4.2.0

Response

CacheControllerFactoryInterface

getDefault

Get menu item by id

getDefault( language = '*') : \Joomla\CMS\Menu\MenuItem|null
since

1.6

Arguments

language

stringThe language code.

Response

MenuItem|nullThe item object or null when not found for given language

getInstance

Returns a Menu object

getInstance( client, mixed||string|int options = []) : \Joomla\CMS\Menu\AbstractMenu
inherited static deprecated
since

1.5

throws

Exception

deprecated

4.3 will be removed in 6.0 Use the MenuFactoryInterface from the container instead Example: Factory::getContainer()->get(MenuFactoryInterface::class)->createMenu($client, $options)

Arguments

client

stringThe name of the client

options

array<string|int, mixed>An associative array of options

Response

AbstractMenuA menu object.

getItem

Get menu item by id

getItem( id) : \Joomla\CMS\Menu\MenuItem|null
inherited
since

1.5

Arguments

id

intThe item id

Response

MenuItem|nullThe item object if the ID exists or null if not found

getItems

Gets menu items by attribute

getItems( attributes,  values,  firstonly = false) : \Joomla\CMS\Menu\MenuItem|\Joomla\CMS\Menu\MenuItem[]
since

1.6

Arguments

attributes

stringThe field name

values

stringThe value of the field

firstonly

boolIf true, only returns the first item found

Response

MenuItem|array<string|int, MenuItem>An array of menu item objects or a single object if the $firstonly parameter is true

getMenu

Getter for the menu array

getMenu() : \Joomla\CMS\Menu\MenuItem||string|int
inherited
since

1.5

Response

array<string|int, MenuItem>

getParams

Gets the parameter object for a certain menu item

getParams( id) : \Joomla\Registry\Registry
inherited
since

1.5

Arguments

id

intThe item id

Response

Registry

getUser

Internal getter for the user. Returns the injected one if any, or the current one if none.

getUser() : \Joomla\CMS\User\User
inherited
since

3.9.26

Response

User

load

Loads the entire menu table into memory.

load() : 
since

1.5

Response

boolTrue on success, false on failure

setActive

Set the default item by id

setActive( id) : \Joomla\CMS\Menu\MenuItem|null
inherited
since

1.5

Arguments

id

intThe item id

Response

MenuItem|nullThe menu item representing the given ID if present or null otherwise

setCacheControllerFactory

Set the cache controller factory to use.

setCacheControllerFactory(\Joomla\CMS\Cache\CacheControllerFactoryInterface cacheControllerFactory = null) : 
inherited
since

4.2.0

Arguments

cacheControllerFactory

CacheControllerFactoryInterfaceThe cache controller factory to use.

Response

void

setDefault

Set the default item by id and language code.

setDefault( id,  language = '*') : 
inherited
since

1.5

Arguments

id

intThe menu item id.

language

stringThe language code (since 1.6).

Response

boolTrue if a menu item with the given ID exists

setUser

Setter for the current user used to build menu.

setUser(\Joomla\CMS\User\User user) : 
inherited
since

3.9.26

Arguments

user

UserThe new user to set.

Response

void

Properties

items

Array to hold the menu items

inherited
since

4.0.0

Type(s)

array<string|int, MenuItem>

default

Identifier of the default menu item. Key of the array is the language.

inherited
since

4.0.0

Type(s)

array<string|int, int>

active

Identifier of the active menu item

inherited
since

4.0.0

Type(s)

int

instances

Menu instances container.

inherited static deprecated
since

1.7

deprecated

4.3 will be removed in 6.0 Use the MenuFactoryInterface from the container instead Example: Factory::getContainer()->get(MenuFactoryInterface::class)->createMenu($client, $options)

Type(s)

array<string|int, AbstractMenu>

storedUser

User object to check access levels for

inherited
since

3.9.26

Type(s)

User

itemsLoaded

Flag for checking if the menu items have been loaded

inherited
since

4.0.0

Type(s)

bool

cacheControllerFactory

CacheControllerFactoryInterface

inherited
since

4.2.0

Type(s)

CacheControllerFactoryInterface

app

Application object

since

3.5

Type(s)

CMSApplication

db

Database driver

since

3.5

Type(s)

DatabaseDriver

language

Language object

since

3.5

Type(s)

Language