Код рабочий, пути верные, вывод в шаблонах верный.
Массив pageMenuArray передается в метод ShowMenu.
Метод ShowMenu передает массив и имя шаблона в GetTemplateCode.
В этом методе вызывается шаблон, подставляется код и возвращается html код меню.
В чем проблема - невозможно вывести два меню одновременно.
Закомментировав Код 1, можно вывести меню 2.
Закомментировав Код 2, можно вывести меню 1.
Раскомментировав Код 1 и Код 2 не будет выведено ни одного меню.
Как исправить код работы с шаблонами?
class HTML
{
// Получить код из шаблона.
static function GetTemplateCode($templateFileName, $templateArgumentsArray) {
$templateFullPath=$_SERVER['DOCUMENT_ROOT'].'/templates/'.$templateFileName;
ob_start();
include_once $templateFullPath;
return ob_get_clean(); // Похоже, что проблема тут.
}
// Код меню.
static function ShowMenu($menuArray) {
return HTML::GetTemplateCode('Menu.html', array($menuArray));
}
}
// Код 1. Если закомментировать, то будет выведено menu2
$pageMenuArray[0] = ['menu-link_normal','https://www.test.ru', 'Текст ссылки1', 'visible'];
$pageMenuArray[1] = ['menu-link_active','www.test.ru1', 'Текст ссылки11', 'visible'];
$menu1=HTML::ShowMenu($pageMenuArray);
// Код 2. Если закомментировать, то будет выведено menu1
$panelMenuArray[0] = ['menu-link_normal','https://www.test111.ru', 'Текст ссылки2', 'visible'];
$panelMenuArray[1] = ['menu-link_active','www.test.ru1', 'Текст ссылки22', 'visible'];
$menu2=HTML::ShowMenu($panelMenuArray);
// Если оставить так - Код1 и Код2 - не будет выведено ничего.
// Два меню никогда не будет выведено.
echo $menu1.'<br>';
echo $menu2.'<br>';
exit;