TlegenBayangali
@TlegenBayangali
Учусь Front-end разработке

Как создать отдельный макет для второстепенных страниц в Joomla 3?

Стоит задача: создать отдельный макет для вывода контента. Идея состоит в том, что главная страница идет без сайдбара, но на второстепенных она должна быть.
К примеру мне нужно, чтобы макет на главной странице был такой:
<div class="header">
	HEADER
</div>
<div class="row">
	<div class="col-md-12">
		CONTENT
	</div>
</div>

Но на второстепенных страницах он был такой:
<div class="header">
	HEADER
</div>
<div class="row">
	<div class="col-md-3">
		SIDEBAR
	</div>
	<div class="col-md-9">
		CONTENT
	</div>
</div>

Создание еще одного шаблона и установки его на CMS как отдельного шаблона - это топорный метод, который будет только лишний раз загружать систему сайта, а вот найти бы более деликатное решение. Может быть это есть в переопределениях? Я его просмотрел, но ничего похожего на макет я не нашел. На некоторых шаблонах (не моих) я видел, что при создании пункта меню можно было еще и выбирать среди несколько макетов одного стиля. Заранее благодарю!
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
TlegenBayangali
@TlegenBayangali Автор вопроса
Учусь Front-end разработке
В общем нашел я для себя ответ: если необходимо отделить макет главной страницы (к примеру, главная страница у нас идет длинным лендинг пейджом, а второстепенные идут со сайдбаром), то необходимо прописать небольшую php-конструкцию в файле index.php находящегося в корне папки шаблона для определения главной страницы.
<?php $myVar = $_SERVER['REQUEST_URI'];
if ($myVar == '/' or $myVar=='/index.php') {?>
<div>Its mainpage</div>
<?php } else {?>
<div>its secondpage</div>
<?php } ?>

Просто вместо блоков div можно инклудить или реквестить файлы с разметкой нужного макета.
Если есть какие-то еще более простые методы, то пожалуйста, буду ждать ответов!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Chiperok
@Chiperok
HTML CSS PHP JS
чем не подходит обычный вывод модулей?
просто потом выбираешь что везде кроме главной и все
<?php 
if ($this->countModules('position-1')) : ?>
<jdoc:include type="modules" name="position-1" style="none" />
<?php endif; ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы