2 заметки с тегом: symphony cms russian
2 заметки с тегом

symphony cms russian

Немного о Symphony CMS

Предисловие

Уже больше года в своей работе для создания небольших сайтов и внутри корпоративных порталов я использую Symphony CMS. Самое странное, что при такой большой конкуренции среди бесплатных CMS, данная система управления сайтами остаётся практически незамеченной российскими разработчиками и не попадает в рейтинги CMS вроде «CMS Magazine» и напрасно, как мне кажется.

Symphony CMS

Symphony CMS элегантный и миниатюрный open source движок, написанный на PHP + MySQL, который в своей основе использует XML и XSLT.

Symphony CMS

На первый взгляд Symphony очень похож ExpressionEngine, Textpattern, WordPress или Drupal. На Symphony, безусловно, можно сделать стандартный веб сайт или блог, но благодаря концептуальной элегантности в работе со структурами данных и источниками данных он находится в уникальном положении между обычными CMS и полноценными веб приложениями, такими, как Django или Ruby on Rails.

Большая гибкость при работе с данными позволяет веб разработчикам полностью контролировать процесс создания и работы любого веб приложения. По началу, большая гибкость и мощь движка может пугать, но отличная документация и активная поддержка сообщества всегда помогут разобраться даже в самой сложной ситуации.

Мощь и сила

Вся мощь и сила Symphony CMS состоит в том, что разработчики могут создавать любые структуры данных. Создание чем-то напоминает работу с классами в модели ООП. Сначала вы создаёте некий класс, предположим, раздел статей сайта. Раздел должен содержать некоторые характерные поля: заголовок статьи, автор, текст статьи (полный и краткий), дата публикации, отметку выводить статью на сайте или нет и многое другое. Таким образом, мы создаём раздел, некий «класс» объектов для сайта, после чего, мы сразу же можем приступать к созданию экземпляров класса, т. е. писать статьи.

Разделы в Symphony CMS

Ещё одним большим плюсом системы, является то, что любые структуры данных можно изменять уже после начала их заполнения. Например, есть у вас раздел для создания статей, и в нём уже есть пара десятков статей. И вот у вас возникла необходимость добавить новое поле, к примеру, поле для ввода тегов. Система позволит вам это сделать совершенно без проблем, при этом никакие, уже имеющиеся данные, не потеряются.

После создания разделов, разработчики создают так называемые «Источники данных». Суть их проста, выборка данных из имеющихся разделов. Напрмер, есть у меня раздел статей, из которого мне надо выбрать только статьи, которые помечены, как опубликованные и только за текущий месяц. Для этого потребуется создать простой источник данных, задать раздел из которого необходимо сделать выборку данных и установить условия выборки. И всё. Источник готов к работе.

Я представил немного упрощённую модель работы с источниками данных, потому что условий выборки может быть куда больше, и они могут быть куда более сложными. Тут есть и возможность выборки на основании других источников данных, на основании внешних параметров, передаваемых пользователем и т. д. Ещё раз повторю, система является невероятно гибкой.

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

На этом собственно и основана работа в backend.

Далее дело за разработчиками fronend.

Все данные, получаемые от источников данных, поступают на страницы в виде XML. Сами же страницы создаются при помощи XSLT, HTML, CSS, JS и любых других технологий. Тут я думаю подробно описывать ничего не надо, но вся суть заключается в том, что в уже имеющийся готовый шаблон выводятся данные полученные от источников данных путём вывода определённых ветвей XML. И разработчики получают все плюсы и минусы работы с XSLT и XML.

Расширяемость

Помимо гибкой системы работы с данными и шаблонами страниц, движок может похвастаться богатым набором функций доступных через API и простотой разработки дополнительных модулей, которых, кстати, уже довольно большое количество и для них имеется даже отдельный сайт.

На сайте можно найти расширения на любой случай. От дополнительных полей до полноценных редакторов текста, которые вы можете встроить в свои разделы.

Расширения

Так же на сайте движка разработчики могут найти так называемые XSLT утилиты, это небольшие XSL файлы, с шаблонами обработки определённых данных или создания определённых частей интерфейса. Например, шаблон большого календаря, ячейки которого унифицированы и каждую из них вы можете заполнить любыми данными, не прибегая к изменению самого шаблона.

Или, например, XSLT модуль для типографики текста. Т. е. вы просто применяете шаблон к тексту и всё. Модуль автоматически заменит и подставит правильные двойные кавычки, заменит короткое тире на длинное и пр.

Банк утилит постоянно обновляет и пополняется. Сообщество разработчиков ведёт довольно активную деятельность. Любой желающий может написать и выложить свой модуль или расширение прямо на сайте Sуmphony или на Symphony Extensions.

Кстати, вот страница с моими расширениями.

Первым моим самостоятельным расширением было «Language: Russian», это локализация ядра самого движка.

Затем, я немного изменил расширение «Nested Categories» для организации вложенных категорий и которое было написано русским разработчиком, но, увы, больше им не поддерживалось.

И последнее, написанное мной расширение, это «SMS Pilot Sender». Расширение, которое при возникновении какого-либо события отправляет СМС через сервис SMS Pilot. Подробно работу расширения я описал в предыдущем посте «Плагин SMS Pilot Sender для Symphony CMS».

Переносимость

Помимо невероятной гибкости и расширяемости самой системы, ещё одной невероятно полезной отличительной особенностью движка является система экспорта сборки или в оригинальном варианте «Export Ensemble». Это крайне полезная функция для разработчиков, которые постоянно занимаются разработкой однотипных систем.

Экспорт сборки

Предположим, перед нами стоит задача создания двух идентичных новостных сайтов, у которых идентично всё, кроме дизайна. Экспорт сборки, позволит создать архив не только движка, но и всех расширений, данных, настроек и пр. При этом архив содержит не просто файлы, а готовый к установке движок. Т. е. достаточно в одном месте сделать выгрузку сборки, распаковать её на другой площадке и просто произвести процесс установки. После чего, мы получим совершенно готовый к работе сайт. Нам останется лишь изменить дизайн, при этом системная часть не потребует внесения изменений.

Заключение

Таким образом, небольшой и очень функциональный движок может стать невероятно мощным инструментом в руках веб разработчика. Symphony CMS позволят создавать всё, от простых сайтов и блогов до функциональных корпоративных порталов, с большим количеством специфических данных и предоставляет разработчиками невероятно широкие просторы по реализации систем хранения и обработки данных любой структуры с последующим их выводом в виде XML, что в свою очередь даёт возможность интеграции движка в современные системы, умеющие работать с внешними XML источниками данных.

2013   CMS   symphony   Symphony CMS   symphony cms russian   Движок   сайт

Документация Symphony CMS на русском языке

На данной странице представлен неофициальный перевод документации Symphony CMS.

Панель управления Панель администратора Symphony или бэк энд, позволяет авторам управлять контентом или системными настройками.
Blueprints Рездел меню Blueprints содержит ссылки на управление страницами, компонентами и разделами.
Компоненты К компонентам относится управление событиями, источниками данных и утилитами.
Режим обслуживания Когда в настройках системы включен режим обслуживания доступ к страницам сайта закрыт, а вместо привычных страниц отображается специальная страница.
Навигационные группы Навигационные группы позволяют группировать разделы в интерфейсе администратора Symphony.


Авторы Авторы могут зайти в панель управления и управлять контентом сайта.


Источники данных Источники данных служат для выборки, фильтрации, сортировки и представления данных в виде XML для шаблонов страниц.
Связывание источников данных Связывание источников данных позволяет организовать фильтрацию данных выводимых источником данных на основании данных от другого источника данных.
Фильтрация источников данных В фильтрах источников данных можно использовать параметры, дополнительные операторы, регулярные выражения и обычные значения для фильтрации результатов.
Выходные параметры источников данных Выходные параметры источников данных используются для связывания с другими источниками данных.


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


Сборки (Ансамбли) Сборки (Ensembles) Symphony представляют собой проекты, включающие в себя все рабочие файты, базы данных и установочные файлы.


Записи Записи представляют собой отдельные записи содержания раздела.
Обработчики Обработчики представляют собой URL-дружественные значения многих типов полей.
Системные даты Системные даты это отметки времени для отдельных записей в проектах Symphony.
Системные ID Системыне ID представляют собой идентификационные номера для всех записей проектов Symphony.


События События помогают построить схемы взаимодействия между пользователями и системой посредством пользовательского интерфейса.
Фильтры событий Фильтры событий устанавливают дополнительные условия для срабатывания событий.


Расширения Расширения добавляют в проекты Symphony дополнительный функционал.
Делегаты Делегаты позволяют разработчикам управлять входными и выходными данными, а так же управлять различными задачами при генерации внутренних и пользовательских страниц проекта.
Структура файлов расширения Строгая структуризация файлов расширений позволяет Symphony автоматически определять и загружать расширения.


Поля Поля определяют, какие данные будут содержаться в разделах.
Типы полей Типы полей определяют структуру полей и управляют представлением данных.
Парсеры текста Парсеры текста (text formatters) могут применяться к полям для преобразования или форматирования текста перед сохранением.


Git Система контроля версий Git используется для управления обновлениями и дистрибутивами Symphony.
Github Все официальные дистрибутивы и расширения расположены на хосте Github.


JIT Image Manipulation JIT Image Manipulation представляет собой API для данамического преобразования изображений на основании URL параметров.


Страницы Страницы представляют пользовательский интерфейс и определяют структуру URL.
Шаблоны страниц Шаблоны страниц служат для представления XML данных, выбранных из источников данных.
Типы страниц Типы страниц позволяют определить специальные типы страниц обработки, такие, как главная страница, страницы ошибок, и пр.
URL Параметры URL параметры позволяют использовать данные, передаваемые через их динамические URL, в проектировании страниц.


Параметры Параметры предназначены для работы с динамически изменяющимися значениями, которые можно использовать в источниках данных и шаблонах.
Выходные параметры источников данных Выходные параметры источников данных используются для связывания с другими источниками данных.
URL Параметры URL параметры позволяют использовать данные, передаваемые через их динамические URL, в проектировании страниц.


Разделы Разделы моделируют и определяют типы контента, который будет использоваться в проекте.
Типы полей Типы полей определяют структуру полей и управляют представлением данных.
Навигационные группы Навигационные группы позволяют группировать разделы в интерфейсе администратора Symphony.


Утилиты Утилиты позволяют выделять и повторно использовать функции шаблонов и разметки.


Workspace Каталог Workspace содержит такие файлы проекта, как источники данных, страницы, утилиты и загрузки.


XML XML используется движком Symphony для структуризации и вывода данных.


XSLT XSLT используется в шаблонах страниц Symphony и утилитах для преобразования вида вывода данных.
XPath XPath используется XSLT для работы с узлами XML документа и выполнения основных операций преобразования XML документов.


Записи о движке

CKEditor для Symphony. Способ исправления проблемы кодирования русских символов в плагине CKEditor.