Макет шаблона
Два системных файла 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, классы социальных кнопок.
