Помочь проекту Отзывы Обратная связь Заказать шаблон/сайт Супер-шаблон MF
Войти / Регистрация
Закрыть

или зарегистрироваться

MaxSite CMS

  • Преимущества
  • Возможности
  • Основы
  • Документация
  • Скачать
Концепция шаблона D3
Вывод блоков записей в шаблоне

Произвольный вывод главной страницы сайта

Архив записейПросмотров: 189625 августа 2013 г.

На решение этой задачки у меня ушло более полугода. За это время были разные решения, но в процессе отладки и тестирования, пришлось от них отказаться. Суть — сделать так, чтобы блогер мог произвольно выстроить вывод главной страницы сайта из админ-панели. Нечто похожее уже давно присутствует в MaxSite CMS — компоненты шапки и подвала, но в случае главной задача усложняется тем, что опций каждого блока вывода может содержать очень много разных настроек.

Впрочем, всё это «лирика». Покажу на примерах, каким образом в начиная с MaxSite CMS 0.853 мы можем произвольно настраивать главную страницу.

В Настройках шаблона — Главная появилась опция «Свой вариант вывода главной».

Напомню, что речь идет о шаблоне Default.

Эта настройка — секционные опции, где в качестве каждого блока используется т.н. unit. Каждый unit должен иметь обязательный параметр file, в котором указывается имя подключаемого php-файла.

Сами php-файлы располагаются в type/home/units текущего шаблона или shared-каталога.

Например в shared-каталоге есть файл home-last-page.php, который выводит последнюю запись сайта. В «Свой вариант вывода главной» указываем:

[unit]
file = home-last-page.php
[/unit]

С таким же успехом мы можем использовать любой другой готовый unit-файл для типа home. Более того, unit-файлы можно использовать многократно. Например:

[unit]
file = home-last-page.php
[/unit]
 
[unit]
file = home-last-page.php
[/unit]

— выведет два блока с последними записями сайта.

В шаблоне Default я включил два unit-файла:

  • 2col-cats.php — две рубрики в две колонки
  • mini-title.php — миниатюры записей

Пример настройки главной:

[unit]
file = home-last-page.php
[/unit]
 
[unit]
file = 2col-cats.php
cats = 1,3
limit = 5
[/unit]
 
[unit]
file = mini-title.php
[/unit]

Для 2col-cats.php указываются дополнительные параметры — номера рубрик и количество записей в каждой колонке. Файл mini-title.php настроек не имеет (на момент написания статьи).

При использовании unit-файлов из shared-каталога, следует учитывать, что в них используются различные опции. Например для home-cat-block-XXX.php следует отметить опции «Блоки рубрик на главной» и указать номера рубрик. То есть каждый unit-файл имеет какие-то свои особенности.

После отладки и настройки главной, есть смысл в опции «Время кеширования главной страницы» задать время кеширования. Поскольку каждый блок может генерировать кучу запросов к базе данных, то с помощью кеша, мы полностью снимаем эту проблему. Поддержка же этой опции полностью ложится на unit-файл.

Технические подробности

Каждый unit-файл располагается в type/home/units. В этом файле будет доступна переменная $UNIT, которая представляет собой массив с ключами из секционной опции. В нашем примере для 2col-cats.php будет массив:

array(
	file => 2col-cats.php
	cats => 1,3
	limit => 5
)

Что с этим делать решается уже на уровне unit-файла.

Вывод данных в unit-файле может быть произвольным. В shared-файлах используется «типовой» вариант, а в Default я использую новый php-класс Block_pages. В варианте с Block_pages несколько проще организовать вывод данных (меньше программирования).

В заключении хотелось бы отметить, что с реализацией «произвольной главной», MaxSite CMS достигла состояния, когда можно менять практически любую часть шаблона: компоненты, custom-файлы, main-шаблоны, type-файлы, type_foreach-файлы, css-стили/профили и, наконец-то, unit-файлы для главной.

Концепция шаблона D3
Вывод блоков записей в шаблоне
twitter.com facebook.com google.com yahoo.com

Еще записи по теме

  • Вывод записей на главной блоками по рубрикам
  • Создание колонок записей на главной странице
  • AJAX на MaxSite CMS
  • Подвал
  • Делать каталог шаблонов?
  • Быстрое обновление MaxSite CMS
  • Сайдбары и виджеты в MaxSite CMS
  • Плагин Top menu
  • Подписка на комментарии
  • Концепция шаблона D3

Комментариев: 11 RSS

1Кирилл26-08-2013 07:27

Максим, благодарю за подробную инструкцию. Но подскажи пожалуйста - на чем лучше строить шаблоны? На default или D2? Просто я смотрю Дефолт шаблон уже обскакал D2 по своей простоте создания шаблонов на его основе.

2Аноним26-08-2013 10:37

Сейчас между ними нет принципиальной разницы. Отличия разве что в css, но они итак будут разными у разных шаблонов. Компонентов больше в default. В остальном у них нет отличий.

3Артур01-12-2015 18:41

Здравствуйте! Спасибо, ваша статья очень помогла. Я вывел на главной, под основным текстом, четыре блочка с последними записями и миниатюрами НО, мне не нужна на главной пагинация. Не могли бы подсказать, как ее для главной отключить..? Использую шаблон default 0.93

4Аноним01-12-2015 19:17

Если это юнит last-pages.php, то там есть параметр pagination.

5Артур02-12-2015 12:33

Спрасибо! Разобрался, получилось

6Александр04-08-2018 11:36

Это не совсем то, что я искал.

Как можно установить запись в качестве главной (как в вопрдпрессе), а не создавать новые файлы?

7Максим04-08-2018 12:58

Укажите её номер в настройках главной.

8Александр04-08-2018 14:00

Укажите её номер в настройках главной.

Спасибо, но это я делал(( Тогда эта запись выводится, но все равно в качестве анонса(( А я хотел не этого, а чтобы она была на всю страницу.

В любом случае не страшно! Я нашел решение – вывести нужный мне текст через юнит, подключив файл, либо через поле "Текст для главной перед всеми записями"

Крутая cms! Лишь бы знать еще php...

9Максим04-08-2018 16:17

Можно и через юниты — там возможностей намного больше.

10Сергей24-10-2018 23:59

Максим.

Можете показать пример как подключить текст для главной через юниты?

Тут на сайте половина картинок идет на вблогер, который недоступен и ничего не понятно, наглядности нет.

Ну подключу я

[unit]

file = какой то унит.php

[/unit]

А куда текст писать то, в какой файл или куда?

11Максим25-10-2018 13:15

В какой то унит.php и пишите текст.

Оставьте свой комментарий!

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)

Learn more about buy Instagram likes check popular website Friendlylikes
Find more information why people are used to buy Instagram likes for photos and videos these days.
Рубрики
  • Блог 36
  • Версии (релизы) 93
  • Архив записей 180
Последние записи
  • Переход к минимальной PHP 7.1
  • Обновление документации
  • MaxSite CMS 11 лет
  • MaxSite CMS 103
  • Каталог студий и фрилансеров MaxSite CMS
  • Мы переходим к одной ветке разработки MaxSite CMS
  • MaxSite CMS 102
  • MaxSite CMS 101
  • Установка и начальная настройка MaxSite CMS (видео)
  • Landing Page на MaxSite CMS
Поиск по сайту
Архив сайта

О проекте

MaxSite CMS предназначена для создания сайтов любой сложности. Система отлично подходит обычным пользователям, вебмастерам, фрилансерам и вебстудиям.

Другие проекты
  • Сайт автора — MaxSite.org
  • UniCSS (Universal Atomic CSS)
  • Landing Page Framework
  • Бесплатные HTML-курсы
Соцсети
  • Twitter
  • Github
  • YouTube
© MaxSite CMS, 2008-2019 | Время: 0.2590 | SQL: 20 | Память: 1.43MB | Вход