MaxSite CMS
Подрубрики
- Статьи о MaxSite CMS 15

- 04/01/2008 CMS. Теория
- 09/01/2008 CMS. Типы страниц/данных
- 13/01/2008 CMS. Схема/описание работы
- 12/02/2008 CMS. Админ-панель
- 11/06/2008 Вопросы и ответы по MaxSite CMS
- 04/07/2008 Лекции по MaxSite CMS
- 14/11/2008 Локализация в MaxSite CMS
- 18/02/2009 Введение в MaxSite CMS
- 28/02/2009 Организация данных в MaxSite CMS
- 28/10/2009 Верстка с помощью Grid
- 15/02/2010 Аналоги WordPress-плагинов в MaxSite CMS
- 27/06/2011 Опыт переезда с WordPress на MaxSite CMS
- 04/12/2011 Изучение MaxSite CMS
- 16/02/2012 Комментирование в MaxSite CMS (по сравнению с WordPress)
- 16/05/2012 Единый шаблон под разные сайты
- Создание шаблонов MaxSite CMS 17

- 29/05/2009 Шаблон «Mini» для MaxSite CMS
- 06/03/2011 Шаблон «Twenty Ten» для MaxSite CMS
- 14/07/2011 Новый default-шаблон MaxSite CMS
- 19/01/2012 Шаблоны для новичков. Урок 1. Основы работы с MaxSite CMS. HTML
- 19/01/2012 Шаблоны для новичков. Урок 2. Что такое CSS
- 24/01/2012 Шаблоны для новичков. Урок 3. Оформление текстов
- 24/01/2012 Шаблоны для новичков. Урок 4. Блочная модель
- 27/01/2012 Шаблоны для новичков. Урок 5. Позиционирование и float-блоки
- 27/01/2012 Шаблоны для новичков. Урок 6. Модульная сетка. Позиционирование сайдбаров и контента
- 29/01/2012 Шаблоны для новичков. Урок 7. Wrap-блоки. Иммитация колонок
- 30/01/2012 Шаблоны для новичков. Урок 8. Создание своего шаблона. Настройка дизайна
- 04/02/2012 Шаблоны для новичков. Урок 9. Использование PHP в шаблоне
- 05/02/2012 Используем LESS (динамический CSS) в MaxSite CMS
- 21/02/2012 Шаблоны для новичков. Урок 10. Методика создания шаблона
- 02/03/2012 Шаблоны для новичков. Урок 11. Прототипирование. Использование LESS
- 11/03/2012 Шаблоны для новичков. Урок 12. Верхнее меню и иконки
- 16/03/2012 Шаблоны для новичков. Урок 13. Лого и меню с поиском
- Создание своего сайта 16

- 09/01/2009 Переход с WordPress на MaxSite CMS
- 16/08/2009 Создание приложений на MaxSite CMS. Пример - список TODO
- 05/10/2009 Создание галереи на MaxSite CMS с помощью XnView
- 03/11/2009 Каталог на MaxSite CMS
- 16/04/2011 Создание редиректов в MaxSite CMS
- 10/05/2011 Создание скриншотов для своего сайта
- 16/05/2011 Используем типы страниц в MaxSite CMS
- 30/06/2011 Как встроить поиск Google на свой сайт
- 27/07/2011 Как сделать короткую ссылку на любую соц сеть
- 14/10/2011 Подключение сторонних сервисов комментариев к сайту на MaxSite CMS
- 31/10/2011 Использование CSS-стилей в шаблоне Default
- 06/11/2011 Компоненты в шаблоне Default
- 07/11/2011 Дополнительные возможности шаблона Default
- 10/11/2011 Пример создания компонента для шаблона MaxSite CMS
- 03/12/2011 Создание колонок записей на главной странице
- 25/12/2011 Создаем зимнее оформление своего сайта
- Планы 3

- 20/01/2008 Google все-таки согласился поддержать MaxSite CMS
- 25/02/2008 MaxSite CMS для разработчиков
- 19/06/2008 К вопросу о pingback и trackback
- Плагины MaxSite CMS 6

- 04/09/2008 Антиобнаружитель ссылок Сапы
- 29/01/2010 Работаем с Биржей статей sape.ru
- 15/02/2010 Аналоги WordPress-плагинов в MaxSite CMS
- 15/12/2010 Новогодний плагин для MaxSite CMS - снег на сайте
- 14/03/2011 Плагин Top menu
- 19/04/2011 Использование плагина «ushki to hook»
- Основы MaxSite CMS 9

- 01/10/2009 AJAX на MaxSite CMS
- 04/01/2010 Основы MaxSite CMS
- 05/01/2010 Построчно разбираем шаблон MaxSite CMS
- 07/01/2010 Type-файлы в MaxSite CMS
- 08/01/2010 Пример шаблона MaxSite CMS
- 16/01/2010 Плагины MaxSite CMS
- 29/01/2010 Сайдбары и виджеты в MaxSite CMS
- 06/07/2010 Свои опции и настройки в MaxSite CMS
- 29/07/2010 Подключение «внешних» php-файлов в MaxSite CMS
- Версии MaxSite CMS 10

- 01/06/2008 MaxSite CMS - первая публичная версия
- 30/06/2008 Вышел MaxSite CMS 0.16
- 24/07/2008 MaxSite CMS 0.18
- 02/09/2008 MaxSite CMS 0.20
- 11/09/2008 Новая версия MaxSite CMS
- 22/05/2009 MaxSite CMS 0.32
- 01/06/2009 MaxSite CMS один год!
- 01/06/2010 MaxSite CMS 2 года
- 05/11/2010 О переделке запросов в MaxSite CMS 0.41
- 01/06/2011 MaxSite CMS исполнилось три года!
- MaxSite CMS для вебмастера 7

- 06/11/2010 Отличия MaxSite CMS от WordPress с точки зрения верстки шаблона
- 06/11/2010 Пример mini-шаблона. Основы любого шаблона MaxSite CMS
- 13/11/2010 Использование произвольных опций и настроек в своем шаблоне
- 16/11/2010 Type-файлы. Типы данных в MaxSite CMS
- 17/11/2010 Метаполя в своем шаблоне
- 19/11/2010 Структура каталогов шаблона. Файлы шаблона
- 27/02/2011 Советы и хитрости создания шаблонов
- CodeIgniter 5

- 13/01/2008 CMS. Схема/описание работы
- 18/02/2008 Сайты по CodeIgniter
- 22/02/2008 Новый PHP-фреймворк Igniter-zen-i-rails
- 01/05/2008 FastCGI и CodeIgniter, мой новый сайт и секрет небольшой памяти
- 04/09/2009 MaxSite CMS и CodeIgniter
Иногда нужно сделать несколько шаблонов с небольшой разницей. Скажем разные css-стили, изображения и прочие мелочи. Всё остальное: html-структура, настройки, функционал - идентичен.
Часто такие заказы встречаются, когда нужно создать сетку сайтов.
Чтобы не делать для каждого сайта отдельный шаблон, можно создать соответствующую опцию в шаблоне, которая будет переключать «изменяемые» части. Сейчас покажу, как это можно сделать.
Второй компонент шапки содержит логотип сайта. С практический точки зрения удобней было бы разместить логотип, название и описание сайта. Это наиболее частая комбинация. Справа же можно оставить место для каких-то других блоков. Скажем для ушки, в которой можно разместить баннер.
Второй компонент у нас занимает всю ширину браузера, поэтому его структура по сути повторит структуру первого компонента.
Дальнейшие действия по созданию шаблона должны опираться на дизайн сайта. В нашем макете лишь черновые элементы, без конкретного оформления. Я решил, что немного упрощу себе задачу и дизайн буду «придумывать» на ходу: в учебных целях будет проще понять для чего я прописываю различные css-свойста пошагово. Я буду использовать самый минимум оформления: так и проще его модифицирвать под свою задачу, да и разобраться в коде не составит труда.
Итак, у нас есть компоненты-заглушки и готовая модульная сетка сайта. Согласно чеклисту самое время задать основные стили оформления текстов и фона браузера (п.10). Но мы этот шаг пропустим потому что мы создаем шаблон по технологии Default и у нас уже определены все стандартные стили (defaul/css/style-all.css).
Сейчас же мы выставим лишь основные стили.
Первым этапом создания шаблона является его прототипирование. Это что-то вроде чернового варианта, где опущены мелкие детали и можно сосредоточиться на самых важных частях сайта. На этом этапе создается модульная сетка сайта и верстка основных блоков.
Для верстальщика есть один важный момент: прототипирование требуется там, где нет конечного дизайна. Иногда бывают ситуации, когда верстальщику в работу даётся уже полностью готовый макет. Поэтому нужно лишь наложить модульную сетку, как мы это рассмотрели в предыдущих уроках.
Если же стоит задача придумать сайт, то прототипирование будет обязательным этапом.
Существует несколько методов создания шаблона. Если оставить только вопросы верстки, то получится вот такой список.
- «Что вижу, то и пою». Верстка происходит без каких-либо идеологических принципов. Главное добиться правильного отображения элементов. Используются style, html-код произвольный, без учета семантики, все блоки в html-коде связаны друг с другом. В такой вёрстке разберется только создатель шаблона. Данный вариант преобладал несколько лет назад.
- Использование grid-фреймворка. CSS-фреймворк содержит уже готовые классы, поэтому html-код создается уже с учетом рекомендованных правил. И хотя верстка строится уже с учетом модульной сетки (что уже хорошо), но мало приспособлена к особенностям CMS и несемантична по сути.
- Современный подход базируется на том, что каждый блок сайта имеет некое функциональное наполнение, но при этом модульная сетка простая и может быть полностью произвольной. Верстка осуществляется аля-строками, которые могут содержать ячейки (блоки).
Когда я придумывал схему комментирования, то столкнулся с некоторым непониманием и даже неприятием этого варианта. В основном аргументы сводились к тому, что это не привычно по сравнению с WordPress.
Действительно, форма комментатора WordPress несколько проще и состоит из произвольного имени, обязательного (как правило) email и необязательного поля «сайт».
В MaxSite CMS более сложная форма, подразумевающая либо отсутствие регистрации (анонимно, указывается произвольное имя), либо регистрация по обязательным email и паролю (остальное произвольно).
Зачем же такое усложнение? А все дело в том, что схема комментирования WordPress ущербна по функционалности, а также не защищена от мошеничества спамеров.
Используем LESS (динамический CSS) в MaxSite CMS
LESS расширяет возможности создания обычного CSS, по сути превращая его в динамический язык стилевой разметки.
Один простой пример: где-то в css-файле прописаны три основных цвета. Причем во множестве css-свойств. Если нужно сменить цвет, то придется их все найти и вручную поменять. В LESS для этой цели просто задаются переменные, которым присваиваются нужные значения. В css-коде вместо цвета указываем только переменные. Сменили значения переменных - автоматом поменялись цвета и в результирующем css-коде.
LESS имеет еще множество других полезных возможностей, например упрощенный стинтаксис, примеси, функции т.п. При этом LESS полностью совместим с синтаксисом CSS.
Принялся было уже делать вводную статью по PHP, но вдруг вспомнил, что несколько лет назад, когда ещё занимался поддержкой WordPress, выпускал рассылку и там как раз есть полное описание основ PHP.
Совершенно нет смысла дублировать её здесь, поэтому с первой частью работы с PHP я адресую по указанной ссылке.
Для наших задач вполне хватит самых базовых основ. Главное научиться разбираться в синтаксисе PHP и где и как искать подсказки по нужным функциям.
До сегодняшнего урока, все эксперименты мы проводили в редакторе MaxSite CMS. Настала пора попробовать сделать свой шаблон.
В MaxSite CMS существует только одно требование к шаблону: обязательное наличие файла index.php. Всё остальное отдаётся на откуп вебмастера. Но, традиционно сложилось так, что шаблоны MaxSite CMS используют часть функционала из default-шаблона. Прежде всего это касается использования т.н. type-файлов (файлы типов данных). То есть в своем шаблоне нет необходимости использовать эти файлы - система автоматически их подключит из default.
Главное отличие default-шаблона от других разработок, это то, что львинную долю программирования, настройку функционала и базового оформления, default-шаблон берет на себя. То есть вебмастеру предлагается уже готовый и полнофункциональный каркас для своих разработок.
Пока мы не приступили к практике создания шаблона MaxSite CMS, следует уточнить еще несколько важных моментов вёрстки. Одной из проблем, с которой сталкивается практически каждый верстальщик - это оформление блока контента и сайдбара. Такие элементарные действия, как задание отступа или фона, могут оказаться не такими уж и тривиальными, как может показаться изначально.
Рассмотрим вариант верстки блоков, при котором нивелируются «странности» блочной модели.
В целом у нас уже есть все теоретические знания, чтобы приступить к созданию шаблона. Первым этапом должна стать подготовка модульной сетки. Делается это на основе дизайна будущего сайта. Очень часто новичкам советуют изучать код готовых шаблонов и учиться по ним. Я, на основе своей многолетней практики, могу со всей ответственностью заявить, что это крайне порочный совет. Можно иногда подсмотреть html-код дизайна, но только в том разрезе, чтобы уточнить точные размеры каких-то элементов, и не «лазить» по экрану с рулеткой.
Самый лучший код - это код, написанный собственноручно. Во первых - это единственный способ чему-то научиться. Во-вторых вы не будете слепо копировать то количество «быдлокода», которое часто кочует от шаблона к шаблону.
Для простоты попробуем сделать макет моего сайта в виде блоков. Такой пример я уже приводил в прошлом уроке. Сейчас рассмотрим как это делается со всеми деталями.
При всех своих особенностях, блочная модель HTML имеет одно неоспоримое преимущество: она отлично подходит для вывода текста. В процессе создания HTML мало кто задумывался, что настанет день, когда язык будет использован для таких сложных макетов, которые сейчас встречаются почти на каждом сайте. Предполагалось, что текст, ссылки и картинки - основа на века. ![]()
На сегодняшний день львиная доля работы верстальщика занимает именно верстка блоков. С текстами как-то попроще получается, а вот блоки нужно расставить и оформить согласно дизайна. Сделать это только отступами и размерами будет затруднительно. Нужно научиться позиционировать блоки.
Тэги делятся на строчные и блочные. Мы это уже знаем. Блочные тэги выводятся браузером с новой строки, например P, DIV, H1-H6.
Если мы задаём стиль текста для блока, то этот стиль будет применен ко вложенному тексту. Но есть некоторые css-свойства, которые, как правило, применяют только к блокам. Например отступы (внешние), поля (внутренний отступ), фон, граница (бордюр) и т.п.
Прежде, чем мы приступим к рассмотрению блочных свойств, необходимо разобраться с т.н. блочной моделью. Тут нюанс в том, что эта модель построена нелогично для нашего повседневного восприятия. Поэтому для верстальщика необходимо просто её изучить и использовать как данность. Многие вебмастера спотыкаются именно на этом вопросе.
К этому уроку мы уже имеем представление что такое HTML-тэги и CSS-стили. Современная верстка сайтов по сути сводится к шаманству с CSS: для сайта задаётся несложная HTML-структура, прописываются для блоков классы и после в css-файлах определяют их стили: положения, размеры, цвета и т.п.
Причем есть одна интересная особенность: стили можно применить практически к любым тэгам. Скажем текст можно оформить в DIV, P или H1. Если указать одинаковые css-стили, то браузер их и отобразит однинаково. Возникает резонный вопрос: если стилями мы можем добиться произвольного оформления, то зачем тогда такое разнообразие тэгов?
Ответ кроется в семантике (смысловом значении) документа. Если бы дело ограничивалось только визуальным отображением в браузере, то, действительно, можно было бы обойтись буквально десятком тэгов. Но, для того, чтобы сайт могли найти в Интернете, пользуются поисковиками. А поисковики должны уметь разбирать HTML-код страниц с тем, чтобы вычленить из него полезный текст и отсеять служебную информацию.
Вот для таких случаев, как раз и применяется семантическая верстка: HTML-тэги указывают на смысловое значение каждого участка кода.
Все сайты держатся как минимум на двух китах: HTML и CSS. Основы HTML мы уже рассмотрели, теперь очередь за CSS. Что это за «зверь» и с чем его едят?
Вы знаете, что для HTML-тэгов существуют различные атрибуты, с помощью которых можно управлять отображением в браузере. На заре Интернета этого было достаточно, но со временем стало понятно, что HTML-код становился слишком сложным и запутанным из-за обилия атрибутов. Если бы дело было только в оформлении текстов, то всё было бы не так страшно. Однако сайты становились более сложными по дизайну и это требовало очень сложного HTML-кода.
Тогда и придумали использовать HTML только для описания структуры, а как именно оформлять - вынести в отдельный блок - CSS.




