class Menubase (View source)

Class to manage menu entries

Properties

DoliDB $db
string $error
string[] $errors
int $id
?int $entity
string $menu_handler
string $module
string $type
string $mainmenu
int $fk_menu
string $fk_mainmenu
string $fk_leftmenu
int $position
string $url
int $showtopmenuinframe
string $target
$titre
string $title
string $prefix
string $langs
string $leftmenu
string $perms
string|int<0, 1> $enabled
int $user
int $tms
Menu $newmenu

Methods

__construct($db, string $menu_handler = '')

Constructor

int
create($user = null)

Create menu entry into database

update($user = null, int $notrigger = 0)

Update menu entry into database.

fetch($id, User $user = null)

Load object in memory from database

int
delete(User $user)

Delete object in database

int
initAsSpecimen()

Initialise an instance with random values.

menuTopCharger($mymainmenu, string $myleftmenu, $type_user, $menu_handler, $tabMenu)

Load tabMenu array with top menu entries found into database.

menuLeftCharger(Menu $newmenu, $mymainmenu, $myleftmenu, $type_user, $menu_handler, $tabMenu)

Load entries found from database (and stored into $tabMenu) in $this->newmenu array.

menuLoad($mymainmenu, string $myleftmenu, $type_user, $menu_handler, $tabMenu)

Load entries found in database into variable $tabMenu. Note that only "database menu entries" are loaded here, hardcoded will not be present into output.

Details

__construct($db, string $menu_handler = '')

Constructor

@param DoliDB $db Database handler

Parameters

$db
string $menu_handler

Menu handler

int create($user = null)

Create menu entry into database

@param User $user User that create

Parameters

$user

Return Value

int

Return integer <0 if KO, Id of record if OK

update($user = null, int $notrigger = 0)

Update menu entry into database.

@param User $user User that modify

Parameters

$user
int $notrigger

0=no, 1=yes (no update trigger) @return int Return integer <0 if KO, >0 if OK

fetch($id, User $user = null)

Load object in memory from database

@param int $id Id object

Parameters

$id
User $user

User that load @return int Return integer <0 if KO, >0 if OK

int delete(User $user)

Delete object in database

Parameters

User $user

User that delete

Return Value

int

Return integer <0 if KO, >0 if OK

int initAsSpecimen()

Initialise an instance with random values.

Used to build previews or test instances. id must be 0 if object instance is a specimen.

Return Value

int

menuTopCharger($mymainmenu, string $myleftmenu, $type_user, $menu_handler, $tabMenu)

Load tabMenu array with top menu entries found into database.

@param  string  $mymainmenu     Value for mainmenu to filter menu to load (always '')

Parameters

$mymainmenu
string $myleftmenu

Value for leftmenu to filter menu to load (always '') @param int $type_user 0=Menu for backoffice, 1=Menu for front office @param string $menu_handler Filter on name of menu_handler used (auguria, eldy...) @param array<array{rowid:string,fk_menu:string,langs:string,enabled:int<0,2>,type:string,fk_mainmenu:string,fk_leftmenu:string,url:string,titre:string,perms:string,target:string,mainmenu:string,leftmenu:string,position:int,showtopmenuinframe:int,level?:int,prefix:string}> $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) @return array<array{rowid:string,fk_menu:string,langs:string,enabled:int<0,2>,type:string,fk_mainmenu:string,fk_leftmenu:string,url:string,titre:string,perms:string,target:string,mainmenu:string,leftmenu:string,position:int,showtopmenuinframe:int,level?:int,prefix:string}> Return array with menu entries for top menu

$type_user
$menu_handler
$tabMenu

menuLeftCharger(Menu $newmenu, $mymainmenu, $myleftmenu, $type_user, $menu_handler, $tabMenu)

Load entries found from database (and stored into $tabMenu) in $this->newmenu array.

Warning: Entries in $tabMenu must have child after parent

Parameters

Menu $newmenu

Menu array to complete (in most cases, it's empty, may be already initialized with some menu manager like eldy) @param string $mymainmenu Value for mainmenu to filter menu to load (often $_SESSION["mainmenu"]) @param string $myleftmenu Value for leftmenu to filter menu to load (always '') @param int $type_user 0=Menu for backoffice, 1=Menu for front office @param string $menu_handler Filter on name of menu_handler used (auguria, eldy...) @param array<array{rowid:string,fk_menu:string,module:string,langs:string,enabled:int<0,2>,type:string,fk_mainmenu:string,fk_leftmenu:string,url:string,titre:string,perms:string,target:string,mainmenu:string,leftmenu:string,position:int,showtopmenuinframe:int,level?:int,prefix:string}> $tabMenu Array with menu entries already loaded @return Menu Menu array for particular mainmenu value or full tabArray

$mymainmenu
$myleftmenu
$type_user
$menu_handler
$tabMenu

menuLoad($mymainmenu, string $myleftmenu, $type_user, $menu_handler, $tabMenu)

Load entries found in database into variable $tabMenu. Note that only "database menu entries" are loaded here, hardcoded will not be present into output.

@param string $mymainmenu Value for mainmenu that defined mainmenu

Parameters

$mymainmenu
string $myleftmenu

Value for left that defined leftmenu @param int $type_user Looks for menu entry for 0=Internal users, 1=External users @param string $menu_handler Name of menu_handler used ('auguria', 'eldy'...) @param array<array{rowid:string,fk_menu:string,langs:string,enabled:int<0,2>,type:string,fk_mainmenu:string,fk_leftmenu:string,url:string,titre:string,perms:string,target:string,mainmenu:string,leftmenu:string,position:int,positionfull:int|string,showtopmenuinframe:int,level?:int,prefix:string}> $tabMenu Array to store new entries found (in most cases, it's empty, but may be already filled) @return int >0 if OK, <0 if KO

$type_user
$menu_handler
$tabMenu