# nulib\web\layout faire le layout d'avance, e.g ~~~php ly::prepare([ ["row", "class" => "row-gap", ["col", 2, "content" => "a"], ["col", 10, "content" => "b"], ], ["row", ["col", 6, "content" => "c"], ["col", 6, "content" => "d"], ], ]); ~~~ dans cet exemple, il y a 4 sections de contenu appelées "a", "b", "c" et "d" désactiver le contenu dans un colonne ou un row avec `"content" => false` faut-il prévoir d'autres types que "row" et "col", par exemple "panel"? une fois que le layout est fait, on sélectionne les sections avant de les remplir ~~~php ly::start("a"); //... contenu de la section "a" ly::start("b"); //... contenu de la section "b" ly::end(); ~~~ tant que les sections sont mentionnées dans l'ordre, l'affichage se fait au fur et à mesure *éventuellement*, supporter un mode où les sections sont remplies dans un ordre quelconque. dans ce cas, le contenu est enregistré dans un fichier temporaire mémoire avec `ob_start()` et `ob_end()` puis il est affiché à la fin lors de ly::end() exemple: ~~~php ly::prepare([["row", ["col", 3, "content" => "menu"], ["col", 9, "content" => "details"], ]]); foreach ($items as $item) { ly::start("menu"); write(link); ly::start("details"); write(details); } ~~~ ## alternatives les ids de contenu sont des clés ~~~php ly::prepare([["row", "menu" => ["col", 3], "details" => ["col", 9], ]]); ~~~ conflit possible avec `"class" => xxx` et autres attributs? `ly::start($id, $func)` permet de basculer temporairement dans une section ~~~php ly::start("details"); foreach ($items as $item) { ly::start("menu", function() { write(link); }); write(details); } ~~~ le comportement d'enregistrer le contenu devrait être demandé explicitement * true * false: exception si une section n'est pas remplie avant de passer à la suivante * auto: activé si les sections sont accédées dans un ordre différent du naturel -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary