Frontend

Для разработки большинства сайтов на основе Rapido.CMS требуются только начальные знания по HTML, CSS, JS и PHP. Из инструментов для разработки достаточно использования только Rapido.SDK, но если вы опытный разработчик и привыкли к своим инструментам, редакторам и ftp-клиентам, то можете продолжать их использовать и для разработки сайтов на Rapido.CMS. Но обойтись полностью без Rapido.SDK все равно не получится, т.к. все манипуляции с модулями, параметрами, настройками вынесены из панели управления сайтом и содержатся только в Rapido.SDK. В связи с этим для разработки сайта на Rapido.CMS рекомендуется использовать "родной" инструмент Rapido.SDK.

Rapido.CMS построена таким образом, чтобы требовалось вносить как можно меньше изменений в программный код. Например, файлы стилей и скрипты могут автоматически подключаться на страницах с определенными адресами или страницах, принадлежащих конкретным модулям. Для работы модулей нет необходимости создавать отдельные файлы с описанием логики на php, но если это потребуется, то достаточно создать файл с именем соответствующим названию модуля (например news.php) и он подключится автоматически вместо базового файла modul.php

 

Структура сайта

Сайты построенные на Rapido.CMS состоят из разделов и материалов. Каждый раздел имеет свой адрес, название, текстовое содержимое и прочие необходимые параметры. Разделы могут быть вложены друг в друга, образуя древовидную структуру. Разделы могут иметь тип, т.е. принадлежность к определенному модулю. Такие разделы могут содержать внутри любое количество материалов этого типа. Например, если раздел имеет тип "Новости", то сам раздел будет содержать список новостей. Каждая новость имеет собственную страницу, на которой содержится полный текст новости, вложенные изображения и т.п. Разделов с определенным типом может быть несколько, а при создании нового материала (например новости) требуется выбрать в каком разделе будет находится этот материал.

Материалы могут быть дополнительно привязаны к другим разделам. В таком случае списки материалов в этих разделах будут иметь ссылку на материал, но ссылка на материал остается уникальной и зависит от основного раздела к которому привязан материал.

В качестве примера можно представить каталог товаров, где все подразделы каталога имеют тип "Каталог товаров". Такие подразделы каталога часто называют "категориями" товаров. В Rapido.CMS нет необходимости в применении этого термина, т.к. термин раздел товара достаточно полно описывает принадлежность товара. При этом вложенность разделов и подразделов друг в друга ограничивается только рамками разумной навигации, технического ограничения нет.

 

Модульная структура

Все модули в Rapido.CMS делятся на 2 типа: готовые файловые модули и создаваемые виртуальные модули. Отличаются они тем, что для готовых файловых модулей уже прописана определенная логика как для backend, так и для frontend. Создаваемые виртуальные модули имеют общую логику по-умолчанию. Так, например, модули статейного типа (новости, анонсы, блоги и т.п.) работают по единой логике. В разделе с новостями показывается список всех новостей, привязанных к этому разделу, а по клику на ссылку новости открывается страница с полным содержанием новости.

 

Шаблон сайта

Шаблоны сайтов для Rapido.CMS находятся в папке /tpl/. Шаблон, работающий по-умолчанию называется default и находится, соответственно, в папке /tpl/default/. Для разработки сайта нет необходимости создавать новый шаблон, т.к. шаблон default по-умолчанию не имеет ничего лишнего: не содержит ни одного изображения, в стилях определены только только классы, необходимые для корректной работы базовых возможностей Rapido.CMS. В корне шаблона может находится только favicon.ico, остальные файлы занимают свое место в соответствии с назначением:

  • /tpl/default/css/               Содержит стили (.css, .less и .scss файлы)
  • /tpl/default/html/             HTML (XTemplate шаблоны страниц)
  • /tpl/default/js/                 Javascript файлы
  • /tpl/default/img/              Изображения применяемые в дизайне (не контентные)
  • /tpl/default/php/              PHP скрипты, для страниц и модулей
  • /tpl/default/fonts/            Шрифты, применяемые в шаблоне

 

Автоматически подключаемые файлы

В большинстве случаев нет необходимости вручную добавлять какие-либо файлы и ресурсы в <head> или применять include/require в PHP для подключения дополнительных файлов. В Rapido.CMS есть система по которой необходимые файлы подгружаются или добавляются в <head> сами.

Иконка

Просто положите файл favicon.ico в корень шаблона и в теге <head> появится на него ссылка.

Стили и Javascript файлы

По-умолчанию в <head> шаблонов добавляются файлы common.css и tpl.js. Для асинхронной подгрузки ресурсов применяется tpl_async.js. Дополнительно автоматически (если они есть в шаблоне) подключаются следующие файлы:

  • type.news.css и type.news.js для всех страниц модуля news
  • twig.test.css и twig.test.js для всех страниц, адрес которых начинается на /test/ (site.ru/test/, site.ru/test/sub, site.ru/test/sub/sub2)

 

PHP скрипты

Все php скрипты необходимые для разработки сайта находятся в папке /tpl/default/php/. Также как и в других папках в папке php действует система автоматического подключения файлов:

  1. tpl.php - скрипт, который подключается для всех страниц сайта
  2. main.php - скрипт, который подключается только на главной странице сайта
  3. internal.php - скрипт, который подключается на всех страницах, кроме главной.
  4. page_test.php - этот скрипт подключается для страницы, адрес которых заканчивается на /test/. Например для страниц site.ru/test/, site.ru/news/test/, site.ru/contacts/test/ и т.п.
  5. twig_test.php - этот скрипт подгружается для всей ветки страницы, адреса которых начинаются на /test. Например для страниц site.ru/test/, site.ru/test/sub, site.ru/test/sub/sub2.
  6. modul.php - этот файл определяет логику стандартного модуля. Если нет специального файла соответствующего модуля, то логику такого модуля определяет этот файл.
  7. news.php, articles.php, goods.php и т.п. это файлы, которые отвечают за логику соответствующего модуля (news, articles, goods)

Порядок загрузки этих файлов соответствует порядку их перечисления в списке. Первым всегда загружается файл tpl.php, последним загружается файл отвечающий за конкретный модуль. Если искомого файла нет в папке /tpl/default/php/, то система попробует найти его в папке /frontend/modules/. Таким образом, папка /tpl/default/php/ может и вовсе не содержать ни одного файла. Это не вызовет ошибок и большинство функций Rapido.CMS будут работать по-умолчанию.

 

HTML шаблоны

HTML-файлы из папки /tpl/default/htm/ являются файлами шаблонов XTemplate. Все эти файлы делятся на полные шаблоны страниц и на шаблоны блоков, которые встраиваются в полные страницы. Шаблоны полных страниц:

  • main.htm   - шаблон главной страницы
  • internal.htm - шаблон второстепенных страниц
  • twig-test.htm - шаблон страниц для всех страниц, адрес которых начинается на /test/. Например для страниц site.ru/test/, site.ru/test/sub, site.ru/test/sub/sub2.
  • splash.htm - шаблон для Splash-страницы (заставки)

Шаблоны модулей (контентная часть страницы)

  • c.material.htm  - файл для типового модуля. Если для нового модуля не создан специальный шаблон, то будет применяться именно этот файл.
  • c.news.htm, c.articles.htm, c.goods.htm и т.п. -  шаблоны контентной части для модулей news, articles, goods и т.п.

Все остальные файлы подключаются в виде вложенных блоков разработчиком и могут называться как угодно. Однако рекомендуется называть файлы, которые являются отдельными блоками по принципу block_auth.htm, где auth это часть объясняющая назначение блока.