<?php namespace nur\v\model; /** * Interface ILayoutManager: interface pour un gestionnaire de mise en page */ interface ILayoutManager extends ITagsManager { /** * indiquer si du contenu est affiché dans la section actuelle. dans ce cas, * les contenus mis en attente seront affichés eux aussi si on utilise * {@link flushContent()} */ function haveContent(): bool; /** mettre en attente l'affichage du contenu spécifié */ function add($vs): void; /** * $haveContent spécifie s'il y a actuellement du contenu à afficher. mais * avant d'afficher ce contenu, il faut traiter le contenu en attente. * * si $haveContent==true et qu'il y a du contenu en attente, le retourner * pour affichage. sinon, retourner un tableau vide. * * ensuite, le contenu en attente est supprimé */ function flushContent(bool $haveContent=false): ?array; /** * si {@link haveContent()} est vrai, retourner le contenu encore en attente * pour affichage, puis {@link flushContent()} */ function flush(bool $haveContent=false): ?array; /** * @see ITagsManager::push() * faire {@link flushContent()} avant d'afficher $start */ function push($mark, ?array $start=null, ?array $end=null): ?array; /** * @see ITagsManager::pop() * faire {@link flushContent()} avant de dépiler les couches */ function pop($mark): ?array; /** commencer une ligne de façon inconditionnelle */ function startRow($options=null): ?array; /** terminer la ligne en cours et en commencer une nouvelle */ function row($options=null): ?array; /** terminer la colonne en cours et en commencer une nouvelle */ function col($size, $options=null): ?array; /** terminer le panel en cours et en commencer un nouveau */ function panel($title, $options=null): ?array; /** faire {@link flushContent()} puis terminer explicitement un panel */ function endPanel(): ?array; /** faire {@link flushContent()} puis terminer explicitement une colonne */ function endCol(): ?array; /** faire {@link flushContent()} puis terminer explicitement une ligne */ function endRow(): ?array; /** faire {@link flushContent()} puis terminer toutes les sections en cours */ function end(): ?array; }