====== MenuViewModel ======
**Layer:** ''Core'' · **Source:** ''lib/core/Theme/MenuViewModel.php:19'' (lines 19–135)
----
final class MenuViewModel extends AbstractThemeViewModel
Menu view model.
Carries the already-escaped display fields for a single navigation menu
item. Templates print getters directly; the recursive tree structure is
preserved via the `children` list.
======= Docblock Metadata =======
^ Tag ^ Value ^
| ''@category'' | Theme |
| ''@author'' | M.Noermoehammad |
| ''@license'' | MIT |
| ''@version'' | 1.0 |
======= Inheritance =======
^ Relation ^ Type ^ Meaning ^
| extends | [[scriptlog:lib:core:abstractthemeviewmodel|''AbstractThemeViewModel'']] | parent class/interface |
======= Constants (0) =======
//None.//
======= Properties (1) =======
^ Visibility ^ Type ^ Name ^ Default ^ Line ^
| ''private'' | ''(untyped)'' | ''$children'' | ''[]'' | 22 |
======= Methods (10) =======
^ Visibility ^ Method ^ Summary ^ Line ^
| public static | ''fromRow()'' | Build a menu view model from a row. | 31 |
| public static | ''fromPrepared()'' | Build a menu view model from already-prepared, already-safe values. | 59 |
| public | ''setChildren()'' | Attach child menu items (recursive tree). | 83 |
| public | ''id()'' | | 89 |
| public | ''label()'' | | 94 |
| public | ''url()'' | | 99 |
| public | ''parent()'' | | 104 |
| public | ''visibility()'' | | 109 |
| public | ''children()'' | MenuViewModel[] | 120 |
| public | ''hasChildren()'' | bool Whether the item has child items | 131 |
======== fromRow() ========
public static function fromRow(array $row, callable $escape)
//lines 31–44 (14)//
Build a menu view model from a row.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$row'' | ''array'' | //required// | //none// |
| ''$escape'' | ''callable'' | //required// | //none// |
**Returns:** ''(none declared)'' — static
======== fromPrepared() ========
public static function fromPrepared(array $prepared)
//lines 59–72 (14)//
Build a menu view model from already-prepared, already-safe values.
Mirrors PostViewModel::fromPrepared(): values are escaped exactly once
at the normalization boundary (front_navigation() / prepare_menu()) and
stored verbatim. Children are attached afterwards via setChildren().
^ Parameter ^ Type ^ Default ^ Description ^
| ''$prepared'' | ''array'' | //required// | //none// |
**Returns:** ''(none declared)'' — static
======== setChildren() ========
public function setChildren(array $children): void
//lines 83–86 (4)//
Attach child menu items (recursive tree).
^ Parameter ^ Type ^ Default ^ Description ^
| ''$children'' | ''array'' | //required// | //none// |
**Returns:** ''void'' — void
======== id() ========
public function id(): ?string
//lines 89–92 (4)//
//Takes no parameters.//
**Returns:** ''?string''
======== label() ========
public function label(): ?string
//lines 94–97 (4)//
//Takes no parameters.//
**Returns:** ''?string''
======== url() ========
public function url(): string
//lines 99–102 (4)//
//Takes no parameters.//
**Returns:** ''string''
======== parent() ========
public function parent(): ?string
//lines 104–107 (4)//
//Takes no parameters.//
**Returns:** ''?string''
======== visibility() ========
public function visibility(): ?string
//lines 109–112 (4)//
//Takes no parameters.//
**Returns:** ''?string''
======== children() ========
public function children(): array
//lines 120–123 (4)//
//Takes no parameters.//
**Returns:** ''array'' — MenuViewModel[]
======== hasChildren() ========
public function hasChildren(): bool
//lines 131–134 (4)//
//Takes no parameters.//
**Returns:** ''bool'' — bool Whether the item has child items
----
//This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//