Разработка сайта на основе стандартных шаблонов =============================================== Данный документ является кратким руководством, как минимальными усилиями и не углубляясь в технические детали реализации стандартных шаблонов, сверстать на их основе сайт, идентичный по функциональности стандартному коммунивер.сайту (пакет default_site). Описанный подход основан на максимальном использовании стандартных шаблонов "as is", как в качестве шаблонов для итемов и значений виртуальных страниц, так и в качестве информационных элементов страниц. Это позволяет автоматически поддерживать функциональность сайта в актуальном и работоспособном состоянии - т.е. при установке новых версий пакета default_site обновленая функциональность будет доступна на новом сайте. Это же касается и исправленных ошибок в default_site. Впрочем, решение о необходимости использования тех или иных шаблонов из стандартного набора всегда остается за разработчиком сайта, и ничто не мешает ему создавать собственные варианты шаблонов как на их основе, так и на основе своих собственных соображений. Данный документ носит рекомендательный и обзорный характер. Для подробного ознакомления с назначением и функциональностью конкретных стандартных шаблонов см. "Описание стандартных шаблонов". Библиотека элементов дизайна ---------------------------- Минимальным шагом по натягиванию клиентского дизайна является замена стандартных картинок и перекраска стандартного css. Что может быть лучше аккуратно отрисованных профессиональной дизайнерской рукой всевозможных иконок и кнопочек и заботливо подобранной цветовой палитры! ;) И пусть картинок не всегда хватает (дизайнер ведь не может охватить одним взглядом все их многообразие на стандартном сайте), но зато те, которые есть, так радуют глаз и щекочут душу! Стоит лишь заметить, что при этом не стоит менять имена соответствующих стандартным картинок и классов, иначе внешний вид стандартных элементов может быть нарушен отсутствием нужной картинки или класса. При отсутствии специально отрисованных для сайта иконок можно ограничиться перекраской стандартного набора - это легко можно сделать глобальной заменой палитры с помощью пакетной (batch) обработки в графическом редакторе. В стандартной библиотеке дизайна def_pictures содержится пример макроса (action) для Photoshop - файл cmw.atn, а также пример палитры (color table) - файл cmw.act. Библиотека элементов дизайна назначается виртуальной странице pictures. -- См. библиотеку стандартных элементов дизайна def_pictures Обрамление ---------- Следующим шагом является верстка обрамляющих шаблонов, которые являются самым средоточием дизайнерской мысли. site_blank_c* ~~~~~~~~~~~~ Cодержит объемлющий html. Обычно модифицируются ссылки на css, js и атрибуты body. Данный шаблон назначается виртуальной странице blank_decor --- Cм. соответствующий стандарный шаблон def_blank_c * Здесь и далее site - префикс шаблонов вашего сайта site_form_c ~~~~~~~~~~~ Включает шапку, состояющую из следующих информационных блоков: Блок Пример кода лого logo_e инфо о пользователе userinfo_e пользовательское меню def_usermenu_e форму поиска def_searchform_e редакторская панель sysform_e + addform_e + helpmenu_e текущая дата а также возможно: * градусник uptopic_e * заголовок текущей страницы def_pagetitle_e Все эти блоки обычно делаются в клиентском дизайне. При этом такие шаблоны как userinfo_e, uptopic_e, def_usermenu_e могут использоваться непосредственно, так как выводят только соответствующую текстовую строку и не содержат специфической разметки, но ничто не мешает кастомизировать и их (точнее их копии) Шаблоны, составляющие редакторскую панель естественным образом могут использоваться раздельно друг от друга в разных местах страницы, но сами по себе модификации в стандартных сайтах не подвергаются, так как составляют часть стандартной функциональности редактирования. Данный шаблон назначается виртуальной странице form_decor. --- Cм. соответствующий стандартный шаблон def_form_c site_page_c ~~~~~~~~~~~ Обрамление основных страниц. Включает шапку (<:Surround *form_decor:>), меню-рубрикатор и, возможно, заголовок страницы (если он не включен в site_form_e), а также ее аннотацию. Блок Пример кода шапка def_form_c рубрикатор (меню разделов сайта) def_page_c, def_menutopic_e заголовок страницы def_pagetitle_e аннотация iteminfo_e Все эти блоки обычно делаются в клиентском дизайне. Шаблон iteminfo_e можно использовать непосредственно - он не содержит специфической разметки. Стандартный иерархический рубрикатор реализован посредством виртуальной страницы menuitem_e и шаблона def_menutopic_e, представляющего собой рекурсивный список. Но вообще говоря вид меню-рубрикатора зависит от конкретного сайта причем не только в смысле дизайна, но и в смысле реализации. Данный шаблон назначается виртуальной странице decor. --- Cм. соответствующий стандартный шаблон def_page_c Главная страница - site_main_t ------------------------------ Обычно вид главной страницы коренным образом отличается от внутренних страниц сайта. Главная страница может выглядеть как splash-заставка (http://www.metalloinvest.ru), либо отображать рубрикатор в виде отличном от рубрикатора внутренних страниц (http://www.skok.ru), либо выводить promotion-блоки - ушки, баннеры, анонсы и т.п. (http://www.npfglobex.ru). Фантазия дизайнера в данном случае ограничивается только необходимой клиенту функциональностью - т.е., в нашем случае, функциональностью стандартного сайта. Таким образом практически для любого сайта помимо шаблонов обрамления целиком верстается собственный шаблон главной страницы. Исходя из этих соображений в данном разделе мы только перечислим основные возможные блоки на примере шаблона главной страницы стандартного сайта default. Он содержит: * стандартную шапку (см. site_form_c) * заголовок сайта с аннотацией * форму логина * рубрикатор первого уровня с аннотациями каждого раздела * блок новостей сайта * блок обновлений сайта - список нес-ких самых свежих материалов (для вывода сообщений о новых материалах можно использовать стандартный шаблон update_e) * блок анонсов материалов сайта - список специально выбранных редактором материалов (см. announcebutton_e) для вывода на главной странице (выводятся материалы, привязанные к итемам типа "Группа" (GROUP), назначенным виртуальным страницам announces_ru и announces_en (при наличии на сайте англоязычной версии) * некоторый текст Разработанный шаблон главной страницы прописывается итему сайта и, в случае наличия на сайте версий для альтернативных языков, итемам, являющимся корнями этих версий. --- Cм. соответствующий стандартный шаблон def_main_t Элементы страницы ----------------- После верстки обрамления клиентский сайт начинает выглядеть практически законченным, за исключением некоторых элементов страницы, стандартный вид которых может неприятно задеть тонкую душу дизайнера. site_pagetitle_e ~~~~~~~~~~~~~~~~ Заголовок страницы. Включает следующие информационные блоки: Блок Пример кода иконка для типа итема itemicon_e заголовок для страницы итема pagetitle_e кнопка [анонс] announcebutton_e статистика по указанным/всем потомкам typestatistics_e/allstatistics_e кнопки [подписка] и [вид для печати] mail-and-print_e Все эти блоки могут непосредственно использоваться в произвольных местах модифицированного шаблона, так так содержат только текст и картинки. В зависимости от дизайна сайта заголовок страницы можно включить либо в шапку (site_form_c), включаемую во все страницы, либо в обрамление основных страниц (site_page_c). Во втором случае, чтобы в формах, обычно использующих только шапку, корректно показывался заголовок, необходимо назначить виртуальной странице form_title шаблон site_pagetitle_e. Следует обратить внимание, что кнопка [анонс] (шаблон announcebutton_e), открывающая форму для анонсирования материала на главной странице, становится доступной только в случае, если для сайта определена виртульная страница announces_ru (и announces_en - при наличии на сайте англоязычной версии). --- Cм. соответствующий стандартный шаблон def_pagetitle_e site_material_e ~~~~~~~~~~~~~~~ Элемент списка материалов. Отображает заголовок, описание и некоторую дополнительную информацию по итему в зависимости от его типа. Включает следующие информационные блоки: Блок Пример кода иконка для типа итема itemicon_e аннотация итема iteminfo_e статистика по потомкам allstatistics_e кнопка "дать комментарий" replybutton_e редакторские кнопки editbutton_e и announcebutton_e Все эти блоки могут непосредственно использоваться в произвольных местах модифицированного шаблона, так так содержат только текст и картинки. При кастомизации данного шаблона следует не забывать о возможности его использования в иерархических списках, что подразумевает автоматическое определение отступа в зависимости от уровня вложенности. Данный шаблон назначается виртуальной странице material_e. --- Cм. соответствующий стандартный шаблон def_material_e site_news_e ~~~~~~~~~~~ Элемент списка новостей. Представляет собой упрощенную версию site_material_e. Назначается виртуальной странице news_e. --- Cм. соответствующий стандартный шаблон def_news_e site_replic_e ~~~~~~~~~~~~~ Элемент списка комментариев. Помимо заголовка комментария отображает специфическую для дисскуссий информацию. В остальном аналогичен site_material_e. Назначается виртуальной странице comment_e. --- Cм. соответствующий стандартный шаблон def_replic_e Настройки сайта -------------- Шаблоны настроек содержат определения атрибутов, позволяющих в некоторой степени управлять функциональностью стандартного сайта. site_definetypes_e ~~~~~~~~~~~~~~~~~~ Шаблон, содержащий определения структрурообразующих типов (таких как рубрики) и типов материалов, которые могут использоваться на сайте - атрибуты STRUCTURETYPES и MATERIALTYPES. Данные определения позволяют как исключать заведомо не нужные на сайте стандартные типы, так и включать дополнительные типы, например при подключении к сайту пакетов, расширяющих стандартную функциональность (подробнее о дополнительной функциональности - см. документацию по соответствующим пакетам). Значения атрибутов STRUCTURETYPES и MATERIALTYPES используются при выводе редакторского меню "добавить" (addform_e), а также при выводе списков разделов и материалов. Данный шаблон назначается виртуальной странице definetypes. --- Cм. соответствующий стандартный шаблон def_definetypes_e site_parameters_e ~~~~~~~~~~~~~~~~~ Для корректной работы стандартного сайта необходимо правильным образом назначить виртуальною страницу parameters. При этом стандартный шаблон настроек def_tech_header_e должен быть назначен parameters либо непосредственно, либо путем включения его в сайт-специфичный шаблон настроек (site_parameters_e), который может как переопределять стандартные значения настроек, так и содержать специфичные для сайта настройки. Обязательное включение def_tech_header_e необходимо для того, чтобы в случае появления новых настроек они были сразу же определены для любого сайта, использующего стандартные шаблоны. В шаблонах стандартного сайта используются следующие настройки, позволяющие в некоторой степени управлять его функциональностью: Общие настройки: FORMSPACING Отступ от края страницы для форм. Настройка полезная для дизайнов с нулевыми отступами от края окна SEEALSO_ENABLE Возможность связывания материалов связью "Cмотри также". Значение по умолчанию определяется исходя из того, определена ли для сайта виртуальная страница seealso. Если определена - связывание возможно. COMMENTS_ENABLE Возможность комментирования материалов на сайте. Значение по умолчанию определяется исходя из того, определена ли для сайта виртуальная страница discussion. Если определена - комментирование возможно. COMMENTS_DEFAULT Возможность комментирования материала по умолчанию. Используется стандарной формой редактирования (def_edit) METAINFO_ENABLE Типы итемов, для которых можно ввести метаинформацию. По умолчанию - все структурообразующие типы и все типы материалов на сайте, включая новости. NEWS_TOPIC Новостная рубрика. По умолчанию новости привязываются непосредсвенно к главной странице сайта, но можно объявить новостной и какую-нибудь из рубрик. MAIL_FROM Адрес для отправки писем с сайта (рассылки, уведомления и пр.). По-умолчанию - "Название сайта " Настройки шаблонов редактирования для разных типов: EDIT_ Шаблон редактирования для соответствующего типа. Используется стандарной формой редактирования (def_edit) для перенаправления на специализированные шаблоны редактирования, если таковые определены Настройки для формы персональных данных: AUTHOR_ATTRIBUTES Выводимые на редактирование поля (кр. ID, TITLE и EMAIL - выводимых всегда и OPEN_INFO, вывод которого осуществляется на основе значения ALLOWED_OPEN_INFO). Значение по умолчанию - все возможные поля. AUTHOR_REQ_ATTRIBUTES Обязательные для заполнения поля (кр. ID и TITLE (или LASTNAME) - обязательных всегда) AUTHOR_NAME Способ ввода полного имени пользователя: TITLE - использовать атрибут TITLE SEPARATED - использовать аттрибуты LASTNAME, PATRONIMYC и FIRSTNAME (при этом атрибуту TITLE автоматически присваивается значение LASTNAME + PATRONIMYC + FIRSTNAME) AUTO - не выводить поле для ввода (при этом атрибуту TITLE автоматически присваивается значение ITEM_ID) ALLOWED_OPEN_INFO Возможные значения уровня открытости информации о пользователе: ALL - показывать все NOCONTACTS - не показывать контактную информацию NONE - не показывать информацию о пользователе По-умолчанию - все возможные значения. Если этот значение этого атрибута совпадает с DEFAULT_OPEN_INFO - поле на редактирование не выводится. DEFAULT_OPEN_INFO Значение уровня открытости информации о пользователе. По умолчанию - "Не показывать контакную информацию" (NOCONTACTS) --- Cм. стандартный шаблон def_tech_header_e Примеры сайтов -------------- http://www.techinvestlab.com http://www.pensionreform.ru http://www.rcf-corpfin.ru http://www.npfglobex.ru http://www.bazisinvest.ru http://www.raiffeisen-capital.ru http://www.npfraiffeisen.ru http://www.victoria-fund.ru http://www.mozzart.ru http://www.npfsistema.ru