Шаблон MotoCMS - это Flash-шаблон с определенной структурой. Он состоит из двух файлов-исходников - moto.xfl, который содержит прелодер, и website.xfl, в котором находятся анимация и элементы веб-сайта. Данные файлы находятся в папке "fla". Также в структуру входят несколько XML файлов с конфигурацией веб-сайта, его структурой, содержимым, и т.д.
Нажмите
здесь, чтобы скачать шаблон. Архив содержит шаблон вместе с исходными файлами. Это даст Вам возможность изучить шаблон и его свойства. Панель управления не включена в архив. Чтобы использовать шаблон с панелью управления, Вам необходимо иметь лицензию MotoCMS. Также у Вас есть возможность воспользоваться
30-дневной бесплатной версией MotoCMS. Для использования шаблона вместе с панелью управления просто скопируйте содержимое папки controlPanel на сервер, затем извлеките содержимое архива с шаблонов в то же местоположение.
Итак, перейдем к структуре шаблона.
 |
Файлы шаблона |
1.1. Исходные файлы Flash.
Moto-шаблон состоит из двух частей - прелодер (
moto.xfl) и веб-сайт (
website.xfl). В то время как прелодер, вставленный в страницу HTML, инициализирует движок MotoCMS, другой SWF-файл загружается вместе со всей анимацией и элементами шаблона. По сути, moto.swf загружает website.swf.
Все AS-файлы находятся в папке src. Для удобства использования они категоризированы и размещены в разных папках.
1.2. Файлы XML.
Большая часть XML-файлов редактируется системой автоматически во время работы с панелью управления. Но есть и такие, изменения в которые нужно внести вручную. Начнем с конфигурационного файла, который находится в корневом каталоге - config.xml. Данный файл описывает местоположения всех необходимых папок и файлов шаблона, а также некоторые важные параметры, используемые при интеграции SWF в HTML.
Теперь перейдем к файлу structure.xml. Это главный файл, который редактируется разработчиком в процессе создания Moto-шаблона. Данный файл содержит описание структуры веб-сайта, его макетов, типов страниц и всплывающих окон, и анимированных элементов, таких как слоты и модули.
There are also the XML files in the xml folder which are generated automatically and do not require the manual editing:
Также есть файлы в папке xml, не требующие ручного редактирвоания. Все изменения в них вносятся панелью управления автоматически. Такими файлами являются:
settings.xml - файл настроек веб-сайта, который содержит информацию о стартовой странице, заголовке, а также опции предупреждения и данные аккаунтов Google Analytics и Google Webmaster Tools.
fonts.xml - файл, содержащий информацию об используемых шрифтах. Каждый шрифт имеет название, имя файла, символы (тип символов, использованных в шрифте).
content.xml - файл с содержимым, который включает в себя все данные веб-сайта, кроме меню и модулей. Данный файл имеет похожую структуру с файлов structure.xml, но content.xml описывает конкретные объекты, добавленные на веб-сайт, макеты, страницы и всплывающие окна, а также свойства этих объектов.
menus.xml - файл меню содержит структуру и данные меню веб-сайта. Этот файл совмещает в себе структуру и содержимое меню, описывая все доступные типы меню и источники данных.
The xml/modules folder contains the content files of such modules as gallery, Google Map widget, sound player and the contact form.
В папке xml/modules находятся файлы с содержимым таких модулей, как галерея, Google Map, звуковой проигрыватель и контакт-форма.
1.3. Внешние виджеты.
Некоторые слоты и модули выполнены в виде внешних SWF файлов. Они находятся в папках slots и modules, соответственно. Большинство внешних виджетов являются стандартными для всех шаблонов, например: RssReader, ShareButtonSlot, HTMLWidget, newsModule, и т.д.
Но есть также и внешние виджеты, разработанные специально для конкретного шаблона. В данном шаблоне примерами таких виджетов явлюятся gmapModule и customGalleryModule. В отличие от стандартных виджетов, специальные виджеты поставляются вместе с исходными файлами Flash. Исходные файлы находятся в одной папке с SWF-файлом виджета.
1.4. Объекты шаблона.
Каждый шаблон имеет множество разных объектов, таких как изображения, видео-, аудио-файлы, и так далее. При загрузке в панель управления, такие файлы помещаются в соответствующие папки.
Fonts - папка для SWF-файлов шрифтов, сделанных в Online Font Creator.
Images - все изображения, используемые в галереях или на страницах веб-сайта.
Media - папка, содержащая различные медиа-файлы.
Music - папка для MP3-файлов, используемых звуковым проигрываетелем.
Sound - звуковые файлы в формате WAV, которые используются в качестве звуковых эффектов веб-сайта.
Video - папка для видео-файлов, которые используются видео-плеером или медиа-галереей.
Некоторые папки могут быть пустыми, если файлы данного типа не использованы в шаблоне.
 |
Исходные файлы Flash |
Откроем FLA-файлы в Adobe Flash и посмотрим, что находится внутри.
2.1 moto.xfl
Данный файл содержит прелодер веб-сайта. MovieClip прелодера называется AppPreloader и находится на первом кадре четвертого слоя. Если октрыть его, мы увидим 100-кадровую анимацию. 100 кадров соответсвуют 100 процентам прогресса загрузки.
Файл класса AppPreloader находится в папка src\common\. Закомментированный код может быть использован для присвоения численного значения процентов загрузки текстовому полю.
Когда загрузка завершена, прелодер анимированно исчезает (метка "hide" на временной шкале) и появляется веб-сайт. Код, который загружает веб-сайт, находится в 10-м кадре:
showWebsite();
2.2 website.xfl
Website.xfl содержит логику смены страниц и все элементы веб-сайта.
Данный шаблон имеет только один макет, поэтому на временной шкале присутствует только анимация появления макета и смены страниц в его рамках (чередования). Метки анимации находятся на слое "labels". Анимация появления макета обозначена как "layout_1_in". Она проигрывается только один раз, при открытии веб-сайта. Анимация чередования имеет метку "layout_1_rotate" и вызывается кодом при каждой смене страниц. Код находится в четвертом кадре слоя "actions".
Откроем библиотеку Flash. В корне находятся три каталога: Components, Sounds и Template Elements.
Все компоненты MotoCMS находятся в каталоге Components. Каталог Sounds содержит звуковые эффекты. В каталоге Template Elements находятся все элементы веб-сайта, рассортированные по разным папкам.
Все элементы, относящиеся к определенному слоту или модулю, находятся в папке Assets данного слота или модуля. Это помогает быстро найти нужные элементы когда возникает необходимость в редактировании.
Те символы, которые не относятся ни к одному слоту или модулю, помещаются в каталог Graphics & Animation.
 |
Страницы |
Типы страниц описаны в секции <pages> файла structure.xml. Количество типов страниц зависит от дизайна веб-сайта и как минимум равняется количеству макетов сайта. Для каждого макета есть по крайней мере одна страница, базирующаяся на нем. Каждый тип страниц имеет следующие свойства:
id - идентификационный номер типа страницы. Должен быть уникальным для каждого типа.
layoutType - идентификационный номер макета, к которому относится текущая страница.
backgroundImage - (опциональный параметр) - фоновое изображение для страниц данного типа. Данное изображение будет использовано только в режиме панели управления, в режиме веб-сайта отображаться не будет.
name - название для текущего типа страницы.
preview - изображение, которое используется для предпросмотра при создании новой страницы в панели управления.
locked - true/false - если тип страницы заблокирован (locked="true"), то страницу данного типа нельзя создать в панели управления.
contentHolders - контейнеры данного типа страницы. Все содержимое, размещенное в этих контейнерах, будет отображаться только на страницах текущего типа.
template - содержимое страницы, используемое по умолчанию. Это содержимое используется при создании страницы текущего типа в панели управления. Содержимое, используемое по умолчанию, добавляется сюда автоматически при обновлении шаблона страницы в панели управления.
Если мы окроем structure.xml нашего шаблона, мы увидим что у него есть один тип страниц:
<pages>
<page id="1" layoutType="1" backgroundImage="" preview="images/previews/Page.jpg">
<name><![CDATA[Content Page]]></name>
<contentHolders>
<holder id="2" type="page" x="0" y="106" width="980" height="590" locked="false" depth="11">
<name><![CDATA[Content]]></name>
</holder>
<holder id="8" type="page" x="0" y="106" width="980" height="590" locked="false" depth="12">
<name><![CDATA[Gallery]]></name>
</holder>
<holder id="7" type="page" x="0" y="106" width="980" height="590" locked="false" depth="13">
<name><![CDATA[Effect Pages]]></name>
</holder>
</contentHolders>
<properties/>
<template/>
</page>
</pages>
 |
Контейнеры |
Контейнерами являются пустые MovieClip, куда добавляется содержимое веб-сайта. Контейнеры шаблона распологаются на временной шкале файла website.xfl. Папка Default Holders содержит контейнеры, которые были включены в исходный шаблон. Остальные контейнеры были созданы разработчиком. Каждый контейнер может быть анимирован по-своему. Это помогает расширить возможности появления и переходов на Flash-сайте.
Содержимое добавляется в контейнеры посредством кода. В контейнеры уровня веб-сайта содержимое добавляется только один раз, при открытии веб-сайта, и в последствии не изменяется. Для таких контейнеров есть только код добавления содержимого.
Например, во 2-ом кадре слоя "actions" находится код, который добавляет содержимое в контейнер "website_holder_1":
Moto.getInstance().getWebsiteHolder(1, website_holder_1);
Для контейнеров уровней страниц и макетов имеется код как добавления, так и удаления содержимого. Например, откроем 21-ый кадр слоя "actions" и увидим код, который добавляет содержимое в контейнер уровня страницы под названием "page_1_holder_7":
Moto.getInstance().getCurrentPageHolder(7, page_1_holder_7);
В кадре 69, когда проигрывается анимация смен страниц макета, содержимое данного контейнера удаляется с помощью следующего кода:
MotoUtils.removeAllChildren(page_1_holder_7);
Все контейнеры описаны в structure.xml. Пример элемента контейнера "page_1_holder_7":
<holder id="7" type="page" x="0" y="106" width="980" height="590" locked="false" depth="13">
<name><![CDATA[Effect Pages]]></name>
</holder>
id - идентификационный номер контейнера. Должен быть уникальным во всей структуре.
type - тип контейнера в зависимости от уровня расположения - веб-сайт, макет, страница или всплывающее окно.
x,y - координаты контейнера.
width, height - размеры контейнера.
depth - глубина расположения контейнера по отношению к другим контейнерам. Данное значение должно соответствовать относительному расположению MovieClip контейнеров в файле website.xfl.
locked - true / false - когда контейнер заблокирован (locked="true"), новые объекты добавить в него нельзя. Можно только редактировать уже имеющееся в контейнере содержимое.
 |
Слоты |
Слоты - это анимированные объекты Moto-шаблонов. Каждый слот имеет свой MovieClip в website.xfl, AS-файл в папке src\slots\ и свой элемент в structure.xml. Рассмотрим CloseButtonSlot в качестве примера. Данный слот и его папку Assets можно найти в Template Elements - Slots библиотеки Flash.
На временной шкале присутствуют такие метки для анимации: show, over, out и hide.
AS-код данного слота находится в файле CloseButtonSlot.as, который размещен в папке src\slots\. Код обращается к Flash-элементам из символа CloseButtonSlot, задает цвет, присваивает текст текстовому полю и устанавливает размеры элементов.
Давайте найдем элемент CloseButtonSlot в файле structure.xml:
<slot id="9" librarySymbolLinkage="CloseButtonSlot" animated="true" resizable="true" locked="false" mainPropertyID="1">
<name><![CDATA[Close button]]></name>
<properties>
<property id="1" type="color">
<name><![CDATA[Color]]></name>
</property>
<property id="2" type="htmlText">
<name><![CDATA[Label]]></name>
</property>
</properties>
<template alpha="1" width="79" height="32" buttonMode="true" click="">
<properties>
<item propertyType="1"><![CDATA[0xe000000]]></item>
<item propertyType="2" backgroundColor="0xFFFFFF" embedFonts="false"><![CDATA[<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Georgia" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">CLOSE<FONT COLOR="#A8A8A8"></FONT></FONT></P></TEXTFORMAT>]]></item>
</properties>
</template>
</slot>
id - идентификационный номер слота.
librarySymbolLinkage - название класса, заданное для экспорта MovieClip слота.
animated - атрибут, который устанавливает, является ли слот анимированным.
resizable - устанавливает, есть ли у слота логика изменения размера.
locked - устанавливает, должен ли слот быть доступен для добавления в панели управления.
name - название слота в панели управления.
properties - свойства слота, которые могут быть изменены пользователем с помощью панели управления. У данного слота имеются свойства цвета и текста.
template - значения всех свойств слота, используемые по умолчанию.
 |
Модули |
Модули - это объекты, которые имеют собственные источники данных и панель управления. Модули являются более совершенными объектами, чем слоты. Их размещение в шаблоне аналогично размещению слотов: MovieClip и папка Assets находятся в Template Elements - Modules, AS-файл находится в папке src\modules\, и имеется свой элемент в structure.xml. Модули со своими источиками данных также имеют XML-файлы в папке xml\modules\.
Рассмотрим пример модуля меню. Данный шаблон имеет меню и подменю. Символы и папки Assets как меню, так и подменю, распологаются в папке Template Elements - Modules библиотеки Flash.
У обоих модулей имеются рендереры элементов (Item Renderers), использующиеся как кнопки меню. Символы рендереров находятся в папках Assets модулей.
Несмотря на то, что меню и подменю созданы как отдельные модули, они работают вместе. Код модуля меню вызывает подменю при наведении мыши на соответсвующую кнопку меню. AS-файлы меню, подменю и их рендереров элементов находятся в папке src\modules\ под такими именами: MainMenu.as, MainMenuItemRenderer.as, MainSubMenu.as, MainSubMenuItemRenderer.as
Рассмотрим элементы меню и подменю в файле structure.xml:
<module id="8" type="dynamicMenu" librarySymbolLinkage="MainMenu" external="false" applicationDomain="externalMenu" resizable="true" icon="images/modules/menu_icon.png" category="menus">
<name><![CDATA[Main menu]]></name>
<properties>
<property id="1" type="checkBox">
<name><![CDATA[Items of the same size]]></name>
</property>
<property id="2" type="stepper">
<name><![CDATA[Gap]]></name>
<parameters>
<minimum>0</minimum>
<maximum>50</maximum>
<stepSize>1</stepSize>
</parameters>
</property>
</properties>
<template width="235" height="25">
<name><![CDATA[Main menu]]></name>
<data>
<menu>1</menu>
<itemRenderer>MainMenuItemRenderer</itemRenderer>
<dropDown>true</dropDown>
<maxDepth>1</maxDepth>
<maxRootItems>-1</maxRootItems>
<dropDownOnRollOver>true</dropDownOnRollOver>
<dropDownMenuType>9</dropDownMenuType>
<dropDownItemRenderer>MainSubMenuItemRenderer</dropDownItemRenderer>
</data>
<properties>
<item propertyType="1"><![CDATA[false]]></item>
<item propertyType="2"><![CDATA[10]]></item>
</properties>
</template>
</module>
<module id="9" type="dynamicMenu" librarySymbolLinkage="MainSubMenu" external="false" applicationDomain="externalMenu" resizable="false" locked="true" category="menus"/>
Большая часть свойств аналогична свойствам слотов, однако есть и особенные.
menu - идентификационный номер источника данных, используемый в текущем модуле меню по умолчанию.
itemRenderer - имя класса рендерера элемента главного меню, заданное для экспорта символа.
dropDown - true/false - устанавливает, используется ли подменю для данного меню.
maxDepth - максимальное количество уровней подменю (-1 означает неограниченное количество).
maxRootItems - максимальное количество кнопок меню.
dropDownOnRollOver - true/false - если "true", подменю будет открываться при наведении мыши, если "false" - по нажатию.
dropDownMenuType - идентификационный номер элемента подменю в structure.xml, который следует использовать с текущим меню.
dropDownItemRenderer - имя класса рендерера элемента подменю, заданное для экспорта символа.
* - файл с содержимым модуля меню называется menus.xml и распологается в папке xml. В нем может содержаться несколько источников данных, каждый со своим уникальным идентификатором (ID). Файл menus.xml данного шаблона содержит один источник данных.
 |
Всплывающее окно
|
Всплывающее окно появляется над всем сайтом. Открытие всплывающего окна не приводит к смене страниц либо макетов, так как появление происходит уровнем выше.
Moto-шаблон может иметь несколько типов всплывающих окон. Рассматриваемый шаблон имеет один тип всплывающего окна. MovieClip всплывающего окна и его папка Assets находятся в каталоге Template Elements - Popup библиотеки Flash.
У всплывающего окна есть свои контейнеры, которые размещены на временной шкале его MovieClip. Анимация появления и исчезания на временной шкале обозначена метками "show" и "hide", соответственно.
Файл WebsitePopup.as находится в папке src\popups\. Данный файл содержит логику перемещения всплывающего окна по сцене.
The popup also has its node in the structure.xml file. The properties are the same as the page has. Same as pages, the popups may have the default content.
Всплывающее окно также описывается соответствующим элементом в structure.xml. Оно имеет такие же свойства, как и страницы. Так же, как и страницы, всплывающее окно может иметь содержимое, используемое по умолчанию.
<popup id="1" librarySymbolLinkage="WebsitePopup" backgroundImage="" preview="images/previews/PopUp.jpg">
<name><![CDATA[Website Popup]]></name>
<contentHolders>
<holder id="114" type="popup" x="0" y="0" width="2600" height="1600" depth="50">
<name><![CDATA[Popup Background]]></name>
</holder>
<holder id="115" type="popup" x="174" y="36" width="640" height="707" depth="52">
<name><![CDATA[Popup Background Contents]]></name>
</holder>
<holder id="118" type="popup" x="174" y="36" width="640" height="707" depth="53">
<name><![CDATA[Popup Contents]]></name>
</holder>
</contentHolders>
<template/>
</popup>