Пример создания шаблона
Разберем вариант на основе шаблона новостей.
Оговоримся, что данный текст больше подходит разработчику, но и для конечного пользователя будет полезен.
И так начнем немного с теории.
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;?>