Warp 7 framework

Warp 7: макет шаблона

Joomla
Warp 7: макет шаблона

Макет и разметку шаблона определяют два базовых PHP файла, в которых происходит рендеринг позиций виджетов.

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 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 data-uk="smooth-scroll" href="#"></a>
<?php endif; >

Объект виджета

Виджеты страницы хранятся в объекте 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 и социальные кнопки. В этом файле расположена логика шаблона.

Оригинальная статья: YooTheme
Dmitry Rekun
Работаю в банковской сфере, а с веб-разработкой (непосредственно с Joomla) столкнулся в 2007 году. Теперь это моё хобби и время от времени вторая работа. Какое-то время вёл свой блог, но решил попробовать работать в команде. И вот c 2012 года я здесь :)