Пример создания шаблона
Разберем вариант на основе шаблона новостей.
Оговоримся, что данный текст больше подходит разработчику, но и для конечного пользователя будет полезен.
И так начнем немного с теории.
1. Любой дизайн подразумевает вывод новостей или новости в конкретном месте.
Отсюда 1 вывод, что в 90% случаев это точное место в шаблоне. И вывод надо делать в шаблоне дизайна!
2. Шаблон вывода самой новости, это отдельный шаблон. Который как кусочек пазла передается в основной шаблон дизайн.
Отсюда 2 вывод, шаблон самих новостей, по хорошему должен лежать в компоненте новостей.
Начнем
Согласно пункта 2 идем в модуль новостей.
В данной структуре нас интересует папка templates и папка widgets. В папке templates как правило располагаются основные шаблоны компонента, а в папке widgets находятся ВИДЖЕТЫ (это сущности которые позволяют вывести небольшой кусочек в нужном вам месте).
Так как сначала мы хотим вывести скажем 3 последние новости на главной страницы, то ВИДЖЕТ это прям то, что нам нужно. Идем в папку widgets, и видем там один единственный класс Show.
Тут стоит оговориться, что такой папки может и не быть. Это полностью на плечах разработчика и его заботы о пользователях в дальнейшем.
Здесь класс есть Show, заглянем в него и там один единственный метод
public static function LastNews($limit)
Судя по названию, данный метод должен показать последние новости и он принимает ЛИМИТ новостей.
То что нам надо, загляне в метод, и увидим что он берет шаблон
__DIR__ . "/themes/apple/LastNews.php"
__DIR__ - текущая папка файла с методом. Иными словами он рисует шаблон из папки /modules/news/widgets/apple/LastNews.php
И да такой файл есть. Но нам он не очень удобен, поэтому мы его просто скопируем в папку рядом, назвав папку MY-PROJECT/LastNews.php.
Не забываем поменять путь к шаблону в классе Show.
Все у нас все готово.
Для начала давайте выведем наш шаблон в нашем дизайне, для этого в Template нашего дизайна в нужном месте ставим:
<?=\modules\news\widgets\Show::LastNews(3);?> //как получить данные смтотри раздел данные и модели
ВСЕ МЫ ВЫВЕЛИ 3 ПОСЛЕДНИХ НОВОСТИ В ДИЗАЙН САЙТА
Но пока нам не очень нравится скажем их дизайн.
Чтобы это изменить, открываем скопированный нами шаблон. И модифицируем его под себя.
//Напоминаю, что в ЛЮБОМ шаблоне можно посмотреть что в него пришло, просто написав: echo "<pre>"; print_r($data);
после вывода это команды вы получите вид примерно такой:
Array ( [0] => stdClass Object ( [id] => 1 [categories_id] => 0 [name] => asdasdasd [alias] => asdasdasdasd [data_create] => 2020-09-23 [title] => [data_end] => [full_article] => текст новости [short_article] => краткий текст новости [image] => [deleted] => 0 [meta_desc] => [meta_keywords] => [visible] => 1 ) [1] => stdClass Object ( [id] => 2 [categories_id] => 0 [name] => df ... ... ) }
Как вы видите это массив статей который вы можете использовать.
Для тех кто не очень силен в программировании
Если у параметр стоит тип Object то к нему мы обращаемся примерно так: $item->name;
Если у параметр стоит тип Array то к нему мы обращаемся примерно так: $item['name']
Для того, чтобы перебрать массив, лучше делать так:
foreach ($data as $article) {
echo $article->name;
}
Если нужно вывести одно значение в шаблоне, можно сделать так:
<?=$article->name;?>