MaximusDem
@MaximusDem
Начинающий разработчик

Как задать разный вид для разных страниц сайта на php и mysql?

Здравствуйте! Недавно начал разбираться с php, делаю тестовый проект. Подскажите, пожалуйста, каким образом для разных страниц вывести разную структуру? Например, стандартно у меня в index.php выводится
<?php require_once 'header.php' ?>
	<div id="wrapper-content">
		<div id="content">
        <?php include $view. '.php' ?>
		</div>
	</div>

		<?php require_once 'leftbar.php' ?>
		<?php require_once 'rightbar.php' ?>
		<?php require_once 'footer.php' ?>
</div>
</body>
</html>


динамическую часть контента я вывожу в файле контроллера (controller.php)
if(empty($_GET['view'])) {
    $view = 'main';
}else {
    $view = $_GET['view'];
}

Теперь собственно, основной вопрос - как мне задать другие header, leftbar и т.д (добавленые через require_once ) для других страниц (например для главной один шаблон, для всех остальных - другие)?

P.S. Для Wordpress было относительно несложно
<?php 
if (is_page('ID_нужной страницы')) {
 include(TEMPLATEPATH.'/header-top.php');
 } else {
 include(TEMPLATEPATH.'/header.php');
 } ?>
и все работало... Подскажите, пожалуйста, всю голову сломал(((

Upd 13.02.17
Всем спасибо за пояснения! Решил, что буду разбираться с Twig... Пока прикрутил заплатку
if(empty($_GET['view'])) {
    $view = 'main';
	require_once TEMPLATE.'main.php';
}else {
    $view = $_GET['view'];
	require_once TEMPLATE.'index.php';
}

Конечно здесь меняется дизайн только двух типов страниц - главной и всех остальных...Но пока не разберусь в twig, этого мне хватит. Еще раз всем спасибо за пояснения, сам бы разбирался до второго пришествия)))))
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
@ReFeRy
Проблема в том, что определение будущего внешнего вида страницы у вас происходит до определения содержимого этой страницы.

Сначала вы должны определить свою переменную $view, а потом уже инклюдить разные части шаблона. Тогда вы сможете задавать условия по этой переменной и инклюдить разные варианты шаблона.

Это, если по простому, для понимания сути.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы