Основы MaxSite CMS

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

MaxSite CMS / Основы MaxSite CMSПросмотров: 7406 (165)

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

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

Читать дальше...

Вывод блоков записей в шаблоне

MaxSite CMS / Основы MaxSite CMSПросмотров: 9773 (213)

В MaxSite CMS 0.852 появился новый PHP-класс Block_pages задача которого упростить создание блоков записей в шаблоне. Традиционно вывод записей блоками достаточно сложная задача и вебмастера стараются её обходить стороной. Вместо этого предлагается типовой вариант вывода записей.

Самый распространенный пример — вывод главной страницы сайта. В MaxSite CMS хоть и существуют различные варианты, но они достаточно простые и очевидные. Если потребуется что-то сложное, например вывод колонками, то необходимо программировать такой вариант индивидуально. Кроме того остается нерешенным вопрос вывода нескольких блоков записей на главной. Скажем, вверху одиночная запись, ниже две колонки по рубрике, а ещё ниже — только миниатюры в ряд.

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

Читать дальше...

Назидания начинающему вебмастеру по созданию шаблонов для MaxSite CMS

MaxSite CMS / Основы MaxSite CMSПросмотров: 6312 (121)

Основная проблема, с которой сталкивается вебмастер, переходящий к использованию MaxSite CMS — это ошибочное предположение, что вебразработка и технологии создания сайтов совершенно не меняются — всё уже придумано и сделано 5-10 лет назад. Такому вебмастеру тяжело понять, что современная CMS (система управления сайтом/содержимым) способна взять на себя массу рутинных задач, оставляя вебмастеру то, что у нас принято называть творчеством — оформление текстов и создание дизайна.

MaxSite CMS строится по модульному принципу с большой долей свободы. С одной стороны, система содержит большой базовый функционал, с другой — позволяет вебмастеру без особых сложностей заменить его своим. Вопросы гибкости решаются разными способами. Например в WordPress существуют предопределенные файлы в каталоге шаблона, которые система подключает по факту наличия. Но в том же WordPress не предусмотрен механизм, позволяющий точечно влиять на мелкие изменения. Например, если нужно разместить произвольный блок сразу под текстом записи, то придётся переписывать весь «типовой» файл вывода. В MaxSite CMS же просто размещается блок в отдельном файле — система автоматом его подключит.

Читать дальше...

Краткий обзор новых возможностей в MaxSite CMS 0.80

MaxSite CMS / Основы MaxSite CMSПросмотров: 10798 (204)

Главное нововведение в MaxSite CMS 0.80 - это новый способ построения шаблона. Традиционно у нас использовалась схема, которую я взял из WordPress - default-шаблон содержал файлы, которые могли использоваться другими шаблонами. Схема довольно простая - если в шаблоне нет какого-то типового файла, он автоматом берётся из default.

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

Другая проблема - дублирование файлов и php-кода, который кочуют от шаблона в шаблон в неизменном виде. Теперь, если мне захочется ввести новую функционнальность, придется пожертвовать совместимостью, а это не совсем верно.

Читать дальше...

Шаблонизатор или форматированый PHP+HTML вывод в MaxSite CMS

MaxSite CMS / Основы MaxSite CMSПросмотров: 9997 (179)

Шаблонизатор как правило применяется там, где требуется разделить работу программиста и верстальщика. Программист подготавливает данные для вывода, а верстальщик делает разметку в привычном HTML, без оглядки на программый код. Раньше, когда сайты были не такими интерактивными и «умными», подход неплохо работал. Со временем логика вывода усложнялась и это приводило к усложению самого шаблонизатора и добавлению новых команд. В итоге некоторые шаблонизаторы имеют настолько сложный и запутанный синтаксис, что проще выполнить логику на чистом PHP.

На текущий момент при создании PHP+HTML кода используется три основных подхода.

  • PHP - сам по себе неплохой шаблонизатор. Поэтому за базу берется HTML-код с PHP-вставками в виде echo или короткого синтаксиса.
  • Всё есть PHP. HTML выводится в виде строк череp echo. Как вариант - вывод через специальные php-функции.
  • Отдельный шаблонизор - подготавливаются данные, а сам вывод делается в отдельном tpl-файле.

Есть ещё подход, где нет никакой системы, а вариант вывода определяется по ситуации. Мы его рассматривать не будем, хотя он, насколько я понимаю, и преобладает в вебстроительстве.

Возьмем для рассмотрения простой пример вывода div-блока с текстом.

Читать дальше...

Форматированный вывод записей в MaxSite CMS

MaxSite CMS / Основы MaxSite CMSПросмотров: 6888 (120)

Головная боль любого верстальщика - смесь HTML и PHP-кода. Особенно запутанным будет код, в котором используется множество вложенных тэгов, css-классы и стили.

При выводе записей помощью PHP-кода получаются необходимые данные, но для вывода в браузер, нужно его оформить в HTML. Сложность здесь в том, что на уровне PHP невозможно заранее определить какие именно данные потребуются для вывода.

Например - заголовок записи. Если это главная страница, то это должна быть ссылка. Если одиночная, то просто H1. Если это какой-то виджет, то просто текст.

Именно по этой причине в MaxSite CMS с самых первых версий используются универсальные функции mso_page_...() в которых можно указать HTML-оформление. Этот подход на порядок проще, чем заставлять верстальщика оперировать PHP-переменными: код был бы в несколько раз сложней и запутанней (одни if-условия чего стоят...).

Читать дальше...

Формирование колонок в MaxSite CMS

MaxSite CMS / Основы MaxSite CMSПросмотров: 9363 (163)

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

Сама по себе верстка колонок несложная и как правило базируется на нескольких float-блоках внутри одного родителя. Что-то вроде такого:

<div class="box">
    <div class="left w33"> первый </div>
    <div class="left w33"> второй </div>
    <div class="left w33"> третий </div>
</div>

Ну и разные вариации с wrap-блоками, разными ширинами и пр.

Сложности возникают, когда необходимо организовать колонки, состоящие из нескольких вложенных блоков. Например на главной странице две колонки, в каждой из которых по 3 записи из двух рубрик. И хотя основа css-стилей останется той же, но придется организовывать некий счетчик рубрик, записей и уже от этого вставлять открывающие и закрывающие DIV'ы.

В MaxSite CMS 0.74 (но лучше использовать последний prelatest), появился отдельный php-класс, который берет на себя организацию колонок, избавляя вебмастера от необходимости вручную что-то считать и прописывать тэги/css.

Читать дальше...

О сайте

Здесь вы получите самую полную информацию о создании сайтов на MaxSite CMS.

Рейтинг@Mail.ru