Вот рабочий код.
Но код работает некорректно, а именно не выполняет вложение шаблонов, а выводит сначала кнопку, потом страницу, потом окно.
А идея заключалась в том, чтобы вложить в страницу окно, а в окно вложить кнопку.
Итого у нас будет html страница, на которой будет отображено div "окно", внутри которого будет кнопка - ссылка.
Говоря проще - я собираю интерфейс из шаблонов.
Как вложить шаблон в шаблон (исправить мою ошибку проектирования в коде)?
class HTML
{
// Это составные части
// Страница
static function ShowHTMLPage($htmlPageTitle='', $htmlPageСontent='') {
return include_once $_SERVER['DOCUMENT_ROOT'].'/templates/HTML.html';
}
// "Окно"
static function ShowWindow($windowTitle='', $windowContent='', $windowFooter='') {
return include_once $_SERVER['DOCUMENT_ROOT'].'/templates/Window.html';
}
// Кнопка
static function ShowButton($buttonHref='#', $buttonText='') {
return include_once $_SERVER['DOCUMENT_ROOT'].'/templates/Button.html';
}
// Показать окно с сообщением (собираем шаблоны)
static function ShowInformationMessage($messageText='', $buttonHref='#') {
$windowTitle='Сообщение';
$windowFooter=HTML::ShowButton($buttonHref, 'Ok');
$htmlPageСontent = HTML::ShowWindow($windowTitle, $messageText, $windowFooter);
return HTML::ShowHTMLPage($windowTitle, $htmlPageСontent);
}
}
Вызываем
/*
Всё верно подгружается, ошибок нет - но мы видим:
сначала отдельно:
html код кнопки
html код окна
html код страницы
*/
include_once __DIR__.'/classes/classes.php';
HTML::ShowInformationMessage('Текст сообщения');