Добавлено: 08.11.2019 / 08:53
# Koenig (08.11.2019 / 03:18)
просто я там один шаблон на все про все в репе видел только
Как это один? Я же тебе перечислил модули у которых есть полноценные шаблоны.
Глянь по модулям, где есть папки /templates значит есть и свои шаблоны.
Добавлено: 08.11.2019 / 09:05
Если хочешь именно чтоб был шаблон с пагинацией, можно допилить любой соответствующий модуль.
Для примера, я сегодня переделаю на шаблоны новости. Вечером потом глянь в реп.
Потом на новостях и сможешь показать применение своей библиотеки.
Добавлено: 08.11.2019 / 11:06
Новости разработки
Переделал модуль Новостей.
Разбил весь функционал по отдельным файлам (чтоб было понятнее), ну и как обещал выше, добавил и применил шаблон для вывода списка новостей. Так, как и другим потом придется активно использовать списки, тут я остановлюсь на ключевых моментах немного подробнее и расскажу "как правильно кушать хинкали":
1)
Использование генераторов (yield)
При передаче результатов запроса в шаблон, первым делом возникает идея осуществить всю выборку и потом в шаблон передать массив информации. Однако тут возникает лишний напряг сервера и расход его памяти: приходится 2 раза перебирать массив (в начале в запросе, а потом в шаблоне).
Выход - загнать перебор запроса (while) в функцию-генератор и
передать ее в шаблон, а уже
там и будет вестись реальная выборка.
2) Полосатые списки на CSS
Удалил старинно-быдлокодерское решешие, что применялось в движке в виде
echo ($i % 2) ? '<div class="list2">' : '<div class="list1">';
Это делалось в старые добрые времена, когда еще в помине не было CSS3 с его наворотами.
Сегодня же так делать просто неприлично и надо использовать возмождности CSS, что и было сделано.
Добавлен стиль
list-stripped для тэга <div>
В шаблоне, ДО перебора списка
надо добавить <div> контейнер с классом "list-stripped". После уже саму информацию, что будет выводиться в списках (в полосатом виде)
надо обернуть в простой <DIV> без каких либо стилей.
Добавлено: 08.11.2019 / 11:08
Да, напоминаю: если массив для вывода небольшой, то YIELD можно не городить.
Однако выборка из базы, это серьезный момент и к нему как нельзя лучше подходят генераторы.