This is an old revision of the document!
Table of Contents
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()'' | @psalm-suppress PossiblyUnusedMethod -- public getter consumed by public/themes | 89 | | public | ''label()'' | @psalm-suppress PossiblyUnusedMethod -- public getter consumed by public/themes | 94 | | public | ''url()'' | @psalm-suppress PossiblyUnusedMethod -- public getter consumed by public/themes | 99 | | public | ''parent()'' | @psalm-suppress PossiblyUnusedMethod -- public getter consumed by public/themes | 104 | | public | ''visibility()'' | @psalm-suppress PossiblyUnusedMethod -- public getter consumed by public/themes | 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)
@psalm-suppress PossiblyUnusedMethod – public getter consumed by public/themes
Takes no parameters.
Returns: ?string
label()
public function label(): ?string
lines 94–97 (4)
@psalm-suppress PossiblyUnusedMethod – public getter consumed by public/themes
Takes no parameters.
Returns: ?string
url()
public function url(): string
lines 99–102 (4)
@psalm-suppress PossiblyUnusedMethod – public getter consumed by public/themes
Takes no parameters.
Returns: string
parent()
public function parent(): ?string
lines 104–107 (4)
@psalm-suppress PossiblyUnusedMethod – public getter consumed by public/themes
Takes no parameters.
Returns: ?string
visibility()
public function visibility(): ?string
lines 109–112 (4)
@psalm-suppress PossiblyUnusedMethod – public getter consumed by public/themes
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.
