Пример создания шаблона

Разберем вариант на основе шаблона новостей.

Оговоримся, что данный текст больше подходит разработчику, но и для конечного пользователя будет полезен.

И так начнем немного с теории.

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;?>