Макет шаблона
Два системных файла PHH определяют макет шаблона и его разметку. Узнайте, как отображаются позиции виджетов и рассчитываются их пропорции.
Файл theme.php
"Сердце" любого шаблона - это файлtheme.php
, который обеспечивает весь HTML для основной разметки шаблона. Есть отличие от стандартного Joomla шаблона или темы Wordpress, где файл index.php
является главным файлом шаблона.Далее представлена структура файла
theme.php
. Файл должен импортировать файл theme.config.php
, отображать позиции виджета, возвращать переменные настроек и отображать системный вывод.
<?php// get theme configuration
include($this['path']->path('layouts:theme.config.php'));
?>
<!DOCTYPE HTML>
<html lang="<?php echo $this['config']->get('language'); ?>" dir="<?php echo $this['config']->get('direction'); ?>" data-config='<?php echo $this['config']->get('body_config','{}'); ?>'>
<head>
<?php echo $this['template']->render('head'); ?>
</head>
<body>
// render a widget position
<?php echo $this['widgets']->render('widget-position'); ?>
// retrieve a config variable
<?php echo $this['config']->get('variable'); ?>
// render the system output
<?php echo $this['template']->render('content'); ?>
</body>
</html>
Объекты конфигурации
Переменные из файлаconfig.xml
хранятся в объекте config
. Для получения доступа к значениям переменной, просто используйте метод get.
// output the value of the branding variable<?php echo $this['config']->get('theme_branding'); ?>
// output the to-top scroller based on the theme setting
<?php if ($this['config']->get('totop_scroller')) : ?>
<a class="tm-totop-scroller" data-uk="smooth-scroll" href="#"></a>
<?php endif; >
Widget объект
Виджеты страницы хранятся в объектеwidgets
. Чтобы отобразить все виджеты в позиции, используйте методrender. Вы можете проверить, все ли виджеты опубликованы в позиции, используя метод count. <// render all widgets in Top A position
<?php echo $this['widgets']->render('top-a')); ?>
// apply the parallel layout to all widgets in Top A position
<?php if ($this['widgets']->count('top-a')) : ?>
<?php echo $this['widgets']->render('top-a', array('layout'=>'parallel')); ?>
<?php endif; ?>
Файл theme.config.php
В то время, как файлtheme.php определяет разметку шаблона, логика его работы хранится в файле
theme.config.php
. Он отвечает за расчеты макета, например трехколоночный макет, классы тела body, классы социальных кнопок.