Не так давно стал интересоваться MODx revo и по мере его изучения все дальше углубляюсь в его возможности. Информация по нему весьма хаотична и по мере погружения в него понимаешь, что бы сделать что-то хорошее нужно иметь уже большой багаж знаний в том числе и из ООП.
С прочтения о smarty появился вопрос касательно вызова шаблона.
В статье наглядно и подробно описано как можно вызывать шаблон и поверхностное использование smarty. Но, будучи на начале изучения, появляются вопросы, на которые достаточно пока трудно получить ответ.
Вот когда мы создаем шаблон с:
<?php
$properties = $modx->resource->getOne('Template')->getProperties();
if(!empty($properties['tpl'])){
$tpl = $properties['tpl'];
}
else{
$tpl = 'index.tpl';
}
if ($modx->resource->cacheable != '1') {
$modx->smarty->caching = false;
}
return $modx->smarty->fetch("tpl/{$tpl}");
То тут понятно что идет обращение к index.tpl, в котором в свою очередь и подгружается шаблон:
{extends file=«layout.tpl»}
но что если шаблон разбить на три части. Пусть у него будет header.tpl, body.tpl, footer.tpl. Тем самым можно было бы создать шаблоны в которых подгружалось три его части. И соответственно менялось бы только body.tpl, а header и footer всегда были бы по сути без изменений. И для большего удобства еще обернуть как head {chunk name=«head»} и footer {chunk name=«footer»} в чанк, для быстрого редактирования. Предпологаю что можно было бы не плодить шаблоны, а написать просто условие, как и когда и где берется какая часть за место body.tpl, но вопрос не про это)
С разбитием на три части, это конечно получается уже что-то не modx, а тот же opencart… Но будет ли для modx это лучше? просто не понятно пока как это сделать.
Кроме того это начало под другую статью, но пока что не понятно в этом моменте.