70 lines
2.2 KiB
PHP
70 lines
2.2 KiB
PHP
<?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;
|
|
}
|