Решил попробовать создать блог на базе диафан. Делать решил на основе модуля новостей. Подготовил диз, сверстал и начал натягивать, но столкнулся с проблемой. Любой блог содержит разделы или рубрики и диафан поддерживает разделение новостей по категориям. Единственная проблема, которая встает на пути — вывод записей блога на главной странице с разбивкой по категориям. Блогов с такой разбивкой я не видел. Ниже довольно топорное решение не претендующее на идеальное с решением проблемы вывода новостей на главной без учета категорий.
— Прикрепляем модуль новостей к главной странице
Реализация:
Страницы сайта → Главная страница → В разделе "Дополнительные параметры" напротив пункта "прикрепить модуль" ставим "новости".
— Установка категорий для разделов блога
Можно, конечно, просто создать доп страницы и к каждой прикреплять модуль новостей, но ведь есть категории новостей, которые и были для этого созданы.
Реализация:
Новости → настройка → напротив пункта "Использовать категории" ставим галку.
Далее настраиваем вывод категорий в меню. Теперь новости выводятся на главной, но разбиты по категориям и в каждой категории выводится по несколько новостей. Это происходит из за того, что при установке галки "использовать категории" в модуле новостей начинает использоваться другой шаблон для вывода и теперь на главной странице вместо "Шаблона для списка элементов" (news.view.list.php) используется "Шаблон для первой страницы модуля" (news.view.first_page.php). Просто заменить вывод шаблона для первой страницы на вывод списка у меня не получится.
— Настраиваем меню, создаем тестовые записи
— Выводим список элементов при включенной галке категорий
За формирование данных для вывода в шаблон отвечает файл "news.model.php" (modules/news/news.model.php). Копируем его себе на хостинг.
В этом файле нас интересуют 2 функции public function list_() и public function first_page() — где вторая мешает реализовать задуманное, а первая как раз отвечает за вывод всех новостей подряд. Задача в том, чтоб заставить работать public function first_page() так же как public function list_(), выводя новости без учета категорий. Надеюсь, понятно объяснил.
Реализация:
Убиваем содержимое public function first_page() (строки с 215 по 389) и на это место вставляем скопированные строки (с 30 по 207 строку) из public function list_().
Вместо убивания функции public function first_page() можно её просто переименовать, создав новую функцию public function first_page() с содержимым public function list_().Заливаем обратно на хостинг.
Решение топорное, но другого не знаю.
Дальше всё просто — настраиваем файлы views под себя.
http://cms.diafan.ru/dokument/full-manual/modules/news/ тут мануал на тему новостей.