Судя по запросам в поисковиках, по которым находят мой блог о C1, большим спросом пользуется тема шаблонов и тем для сайта в C1.
В других системах управления сайтами существует понятие “тема”, которая часто включает в себя не просто набор макетов для страниц, но и функционал, например, меню навигации, элементы боковых панелей, цветовые схемы и т.п.
Грубо говоря: установил, переключил тему - и сайт поменял свой внешний вид и поведение.
Темы в таком смысле в C1 на данный момент не существуют, однако компоненты тем (в традиционном смысле), в принципе, присутствуют. К тому же, все эти компоненты можно экспортировать в пакет (модуль расширения) и распространять в сети - как пакет темы для C1.
То есть, в С1 все есть для создания тем. Но никто их не делает :).
Я собираюсь когда-нибудь коснуться вопроса тем в C1 более подробно, а пока укажу на основные компоненты, которые вам понадобятся, если вы решите создавать свои “темы” под C1.
Шаблоны страниц
Шаблоны в C1 (раздел Макет) задают макет страницы (то есть размещение всех элементов страницы), внешний вид страницы (шрифты, цвета и т.п.), а также включают в себя контент и функционал, общий для страниц на основе этого шаблона.
Шаблон написан на XHTML. К шаблону можно подключать использовать стили (CSS) и скрипты (JS). Хранятся они, как правило, в папке /Frontend.
Общий функционал (например, меню навигации, поиск) или контент (информация о компании, сайте) следует выносить в C1 функции, прежде всего XSLT функции.
Шаблон можно экспортировать в пакет расширения (потенциальный пакет темы).
Место для редактирования контента страницы
Когда вы открываете только что созданную страницу в визуальном редакторе, то вы обычно видите пустоту :), в которую вы начинаете добавлять свой контент, а элементы шаблона скрыты.
Редактируемая “пустота” - это особый элемент в шаблоне: т.н. “заполнитель” (placeholder). Если в вашем шаблоне нет этого элемента, то вы не сможете редактировать страницу после ее создания. Редактор попросту ничего не откроет. Поэтому создавая шаблон, не забудьте добавить в него этот элемент:
Самое замечательное то, что таких элементов можно добавить сколько угодно, и таким образом придать некую модульность или структурность контенту страницы. Переключаться между этими элементами контента можно в визуальном редакторе страниц - справа.
У каждого элемента должен быть:
Функции
Другой часто встречающийся элемент в шаблонах - это функции.
Обычно это XSLT функции, которые включают в себя контент (информация о компании, сайте и т.п.) или функционал (меню навигации, поиск и т.п.), общие для всех страниц на основе этого шаблона.
Функции - это удобный способ модуляризации шаблона. Например, можно разбить шаблон на такие части:
Каждую используемую в шаблоне функцию можно экспортировать в пакет расширения.
Стили и скрипты
Если скрипт и стиль являются частью некоего пакета расширения, то для их стилей и скриптов (по-хорошему) создается иерархия папок в папке /Frontend, которая соответствует полному названию пакета с пространствами имен и далее - папки Styles и Scripts.
Думаю, что стоит придерживаться этой условности и при создании пакетов с темами.
Например, если ваш пакет тем для C1 будет называться MyCompany.Themes.SuperCoolTheme, то скрипты и стили нужно будет поместить по таким путям
/Frontend/MyCompany/Themes/SuperCoolTheme/Scripts
/Frontend/MyCompany/Themes/SuperCoolTheme/Styles
Файлы и папки с файлами можно экспортировать в пакет расширения.
Графика
Обычно графические файлы в C1 хранятся в Медиа-архиве (раздел Мультимедиа).
Однако для тем этот способ не подойдет, так как по отдельности изображения из медиа-архива экспортировать в пакет расширения нельзя на данный момент (только все вместе). К тому же, для тем не нужно много “тяжелых” изображений. Обычно это графика типа фоновых изображений, мелких элементов форматирования (уголки и т.п.), логотипов и т.п.
И нам ничто не мешает размещать их в папке /Frontend, как и в случае со скриптами и стилями:
/Frontend/MyCompany/Themes/SuperCoolTheme/Images
Таким образом используемые в шаблоне графические файлы можно экспортировать в пакет расширения.
Типы страниц
Напоследок я хочу еще упомянуть типы страниц, которые могут вам понадобится, если вы захотите в своих темах воспользоваться дополнительными компонентами C1, например, мета-полями и папками данных для страниц.
Страница в C1 создается на основе т.н. “типа страниц” (раздел Макет).
Тип страниц может добавлять к странице нужные мета-поля и папки данных, а также т.н. “приложения”. При помощи типа страниц можно добавлять на создаваемую страницу контент по умолчанию.
В типах страниц можно явно указать, какие шаблоны нужно использовать со страницами (т.е. ограничить доступность шаблонов) и указать шаблон по умолчанию.
В принципе, это все, что нужно знать для создания своих тем в C1.
На сайте C1 на английском языке можно почитать:
В других системах управления сайтами существует понятие “тема”, которая часто включает в себя не просто набор макетов для страниц, но и функционал, например, меню навигации, элементы боковых панелей, цветовые схемы и т.п.
Грубо говоря: установил, переключил тему - и сайт поменял свой внешний вид и поведение.
Темы в таком смысле в C1 на данный момент не существуют, однако компоненты тем (в традиционном смысле), в принципе, присутствуют. К тому же, все эти компоненты можно экспортировать в пакет (модуль расширения) и распространять в сети - как пакет темы для C1.
То есть, в С1 все есть для создания тем. Но никто их не делает :).
Я собираюсь когда-нибудь коснуться вопроса тем в C1 более подробно, а пока укажу на основные компоненты, которые вам понадобятся, если вы решите создавать свои “темы” под C1.
Шаблоны страниц
Шаблоны в C1 (раздел Макет) задают макет страницы (то есть размещение всех элементов страницы), внешний вид страницы (шрифты, цвета и т.п.), а также включают в себя контент и функционал, общий для страниц на основе этого шаблона.
Шаблон написан на XHTML. К шаблону можно подключать использовать стили (CSS) и скрипты (JS). Хранятся они, как правило, в папке /Frontend.
Общий функционал (например, меню навигации, поиск) или контент (информация о компании, сайте) следует выносить в C1 функции, прежде всего XSLT функции.
Шаблон можно экспортировать в пакет расширения (потенциальный пакет темы).
Место для редактирования контента страницы
Когда вы открываете только что созданную страницу в визуальном редакторе, то вы обычно видите пустоту :), в которую вы начинаете добавлять свой контент, а элементы шаблона скрыты.
Редактируемая “пустота” - это особый элемент в шаблоне: т.н. “заполнитель” (placeholder). Если в вашем шаблоне нет этого элемента, то вы не сможете редактировать страницу после ее создания. Редактор попросту ничего не откроет. Поэтому создавая шаблон, не забудьте добавить в него этот элемент:
<rendering:placeholder id="contentplaceholder" title="Content" default="true" />
Самое замечательное то, что таких элементов можно добавить сколько угодно, и таким образом придать некую модульность или структурность контенту страницы. Переключаться между этими элементами контента можно в визуальном редакторе страниц - справа.
У каждого элемента должен быть:
- а) уникальный идентификатор (id)
- б) название, которое появиться в редакторе страниц (title)
- в) один из таких элементов должен быть выбран по умолчанию (default="true")
Функции
Другой часто встречающийся элемент в шаблонах - это функции.
<f:function name="Omnicorp.Navigation.Top" />
Обычно это XSLT функции, которые включают в себя контент (информация о компании, сайте и т.п.) или функционал (меню навигации, поиск и т.п.), общие для всех страниц на основе этого шаблона.
Функции - это удобный способ модуляризации шаблона. Например, можно разбить шаблон на такие части:
- Верхний колонтитул (header)
- Логотип
- Меню (например в виде вкладок)
- Левая панель
- Основная часть
- Правая панель
- Нижний колонтитул (footer)
Каждую используемую в шаблоне функцию можно экспортировать в пакет расширения.
Стили и скрипты
Если скрипт и стиль являются частью некоего пакета расширения, то для их стилей и скриптов (по-хорошему) создается иерархия папок в папке /Frontend, которая соответствует полному названию пакета с пространствами имен и далее - папки Styles и Scripts.
Думаю, что стоит придерживаться этой условности и при создании пакетов с темами.
Например, если ваш пакет тем для C1 будет называться MyCompany.Themes.SuperCoolTheme, то скрипты и стили нужно будет поместить по таким путям
/Frontend/MyCompany/Themes/SuperCoolTheme/Scripts
/Frontend/MyCompany/Themes/SuperCoolTheme/Styles
Файлы и папки с файлами можно экспортировать в пакет расширения.
Графика
Обычно графические файлы в C1 хранятся в Медиа-архиве (раздел Мультимедиа).
Однако для тем этот способ не подойдет, так как по отдельности изображения из медиа-архива экспортировать в пакет расширения нельзя на данный момент (только все вместе). К тому же, для тем не нужно много “тяжелых” изображений. Обычно это графика типа фоновых изображений, мелких элементов форматирования (уголки и т.п.), логотипов и т.п.
И нам ничто не мешает размещать их в папке /Frontend, как и в случае со скриптами и стилями:
/Frontend/MyCompany/Themes/SuperCoolTheme/Images
Таким образом используемые в шаблоне графические файлы можно экспортировать в пакет расширения.
Типы страниц
Напоследок я хочу еще упомянуть типы страниц, которые могут вам понадобится, если вы захотите в своих темах воспользоваться дополнительными компонентами C1, например, мета-полями и папками данных для страниц.
Страница в C1 создается на основе т.н. “типа страниц” (раздел Макет).
Тип страниц может добавлять к странице нужные мета-поля и папки данных, а также т.н. “приложения”. При помощи типа страниц можно добавлять на создаваемую страницу контент по умолчанию.
В типах страниц можно явно указать, какие шаблоны нужно использовать со страницами (т.е. ограничить доступность шаблонов) и указать шаблон по умолчанию.
В принципе, это все, что нужно знать для создания своих тем в C1.
На сайте C1 на английском языке можно почитать:
Комментариев нет:
Отправить комментарий