Я пытаюсь создать небольшой сайт с использованием фреймворка Flight php. Цель состоит в том, чтобы иметь четкую основу, используя различные взгляды.
До этого момента все работало нормально, мне удавалось создать хороший framework.php и вид контента, меню и заголовка
Flight::render('header', array('heading'=> $page_title), header_content');
Flight::render('menu', array('type'=> 'main menu'), mainmenu_content');
Flight::render('body', array(), 'body_content');
Flight::render('layout', array('title' => 'Home Page'));
контент состоит из нескольких разделов (статей), которые имеют одинаковую структуру, и теперь я хотел бы снова использовать представления Flight для создания этих разделов. используя следующий код, который я могу создать в разделе и передать его через «тело»
Flight::render('section', array('id' => $id), 'section_content');
Как лучше всего добавить несколько разделов на одну страницу?
Я пытался получить в index.php значение $ section_content как переменную и используя Flight :: get (‘section_content’). оба безуспешно. если дважды выполнить Flight :: render, то значение $ section_content будет перезаписано (как и ожидалось). Также пытался использовать массив для $ section_content, также безуспешно.
Конечно, я могу найти множество обходных решений, но я не собираюсь их использовать, пока не буду уверен, что то, что я хочу, является невозможным.
Хотя вы должны определить все разделы, вы в последний раз определяете свой макет рендера. Как это;
<?php
Flight::route('/', function(){
//header.php value is $contHeader varriable
Flight::render('header', array(
'title' => 'Test title'
), 'contHeader');
//modals.php value is $contModals varriable
Flight::render('modals', array(), 'contModals');
//body.end.php value is $contBodyEnd varriable
Flight::render('body.end', array(), 'contBodyEnd');
//nav.menu.php value is $contNavMenu varriable
Flight::render('nav.menu', array(), 'contNavMenu');
//You must all varriable define in "layout.homepage.php", you can write it with echo statement
Flight::render('layout.homepage'); //you forget this one
});
?>
Других решений пока нет …