151 lines
3.9 KiB
PHP
151 lines
3.9 KiB
PHP
<?php
|
|
namespace nur\v\html5;
|
|
|
|
use nur\A;
|
|
use nur\co;
|
|
use nur\session;
|
|
use nur\v\ly;
|
|
use nur\v\model\IBasicPage;
|
|
use nur\v\model\IPage;
|
|
|
|
class Html5BasicPageContainer extends Html5VanillaPageContainer {
|
|
/** @return bool faut-il fermer automatiquement la session avant l'affichage? */
|
|
protected function AUTOCLOSE_SESSION(): bool {
|
|
return static::AUTOCLOSE_SESSION;
|
|
} const AUTOCLOSE_SESSION = true;
|
|
|
|
function initConfig(): void {
|
|
parent::initConfig();
|
|
A::update_nx($this->config, [
|
|
"autoclose_session" => $this->AUTOCLOSE_SESSION(),
|
|
]);
|
|
}
|
|
|
|
function isAutocloseSession(): bool { return $this->config["autoclose_session"]; }
|
|
|
|
protected function overridePrint(IPage $page): void {
|
|
if ($this->isAutocloseSession()) session::close();
|
|
if ($page instanceof IBasicPage) {
|
|
if ($page->haveContent()) {
|
|
$this->doResolveConfig();
|
|
$this->haveOutput = true;
|
|
$this->printStartHtml();
|
|
$this->printStartHead();
|
|
$this->printCss();
|
|
$this->printJs();
|
|
$this->printScript();
|
|
$this->printHeadTitle();
|
|
$this->printEndHead();
|
|
$this->printStartBody();
|
|
$this->printContent();
|
|
$this->printEndBody();
|
|
$this->printEndHtml();
|
|
}
|
|
} else {
|
|
# si ce n'est pas une instance de IBasicPage, l'imprimer tel quel
|
|
if ($page->haveContent()) {
|
|
$this->haveOutput = true;
|
|
co::_write([$this->page]);
|
|
}
|
|
}
|
|
}
|
|
|
|
function printStartHtml(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintStartHtml();
|
|
parent::printStartHtml();
|
|
$page->afterPrintStartHtml();
|
|
}
|
|
|
|
function printStartHead(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintStartHead();
|
|
parent::printStartHead();
|
|
$page->afterPrintStartHead();
|
|
}
|
|
|
|
function printCss(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintCssLinks();
|
|
parent::printCssLinks();
|
|
$page->afterPrintCssLinks();
|
|
$page->beforePrintCss();
|
|
parent::printCss();
|
|
# $page est une instance de IPlugin et est traitée dans la méthode précédente
|
|
#$page->printCss();
|
|
$page->afterPrintCss();
|
|
}
|
|
|
|
function printJs(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintJsLinks();
|
|
parent::printJsLinks();
|
|
$page->afterPrintJsLinks();
|
|
$page->beforePrintJs();
|
|
parent::printJs();
|
|
# $page est une instance de IPlugin et est traitée dans la méthode précédente
|
|
#$page->printJs();
|
|
$page->afterPrintJs();
|
|
}
|
|
|
|
function printScript(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintScript();
|
|
$this->resolvePluginsScripts();
|
|
# $page est une instance de IPlugin et est traitée dans la méthode précédente
|
|
# cf Html5VanillaPageContainer#overrideSetup()
|
|
#$this->beforeCapture();
|
|
#$page->printScript();
|
|
#$this->captureScript();
|
|
#$this->beforeCapture();
|
|
#$page->printJquery();
|
|
#$this->captureJquery();
|
|
$this->printMergedScripts();
|
|
$page->afterPrintScript();
|
|
}
|
|
|
|
function printHeadTitle(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintHeadTitle();
|
|
$page->printHeadTitle();
|
|
$page->afterPrintHeadTitle();
|
|
}
|
|
|
|
function printEndHead(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintEndHead();
|
|
parent::printEndHead();
|
|
$page->afterPrintEndHead();
|
|
}
|
|
|
|
function printStartBody(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintStartBody();
|
|
parent::printStartBody();
|
|
$page->afterPrintStartBody();
|
|
}
|
|
|
|
function printContent(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintContent();
|
|
$page->printContent();
|
|
# s'assurer que le layout est correctement fermé
|
|
ly::end();
|
|
$page->afterPrintContent();
|
|
}
|
|
|
|
function printEndBody(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintEndBody();
|
|
parent::printEndBody();
|
|
$page->afterPrintEndBody();
|
|
}
|
|
|
|
function printEndHtml(): void {
|
|
$page = $this->page;
|
|
$page->beforePrintEndHtml();
|
|
parent::printEndHtml();
|
|
$page->afterPrintEndHtml();
|
|
}
|
|
}
|