{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "В наушниках по жизни: заметки с тегом Symphony CMS",
    "_rss_description": "Здесь я пишу свои идеи, мысли, описываю события своей жизни и просто делаю личные и рабочие заметки. «А Вы что, собираетесь жить вечно?»",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/alexbirukov.ru\/?go=tags\/symphony-cms\/",
    "feed_url": "https:\/\/alexbirukov.ru\/?go=tags%2Fsymphony-cms%2Fjson%2F",
    "icon": "https:\/\/alexbirukov.ru\/pictures\/userpic\/userpic@2x.jpg?1683051473",
    "authors": [
        {
            "name": "Бирюков Александр",
            "url": "https:\/\/alexbirukov.ru\/",
            "avatar": "https:\/\/alexbirukov.ru\/pictures\/userpic\/userpic@2x.jpg?1683051473"
        }
    ],
    "items": [
        {
            "id": "302",
            "url": "https:\/\/alexbirukov.ru\/?go=all\/nemnogo-o-symphony-cms\/",
            "title": "Немного о Symphony CMS",
            "content_html": "<h2>Предисловие<\/h2>\n<p>Уже больше года в своей работе для создания небольших сайтов и внутри корпоративных порталов я использую <a href=\"http:\/\/www.getsymphony.com\/\">Symphony CMS<\/a>. Самое странное, что при такой большой конкуренции среди бесплатных CMS, данная система управления сайтами остаётся практически незамеченной российскими разработчиками и не попадает в рейтинги CMS вроде «<a href=\"http:\/\/www.ratingruneta.ru\/cms\/\">CMS Magazine<\/a>» и напрасно, как мне кажется.<\/p>\n<h2>Symphony CMS<\/h2>\n<p>Symphony CMS  элегантный и миниатюрный open source движок, написанный на PHP + MySQL, который в своей основе использует XML и XSLT.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/symphony.jpg\" width=\"800\" height=\"476\" alt=\"Symphony CMS\" \/>\n<\/div>\n<p>На первый взгляд Symphony очень похож ExpressionEngine, Textpattern, WordPress или Drupal. На Symphony, безусловно, можно сделать стандартный веб сайт или блог, но благодаря концептуальной элегантности в работе со структурами данных и источниками данных он находится в уникальном положении между обычными CMS и полноценными веб приложениями, такими, как Django или Ruby on Rails.<\/p>\n<p>Большая гибкость при работе с данными позволяет веб разработчикам полностью контролировать процесс создания и работы любого веб приложения. По началу, большая гибкость и мощь движка может пугать, но отличная документация и активная поддержка сообщества всегда помогут разобраться даже в самой сложной ситуации.<\/p>\n<h2>Мощь и сила<\/h2>\n<p>Вся мощь и сила Symphony CMS состоит в том, что разработчики могут создавать любые структуры данных. Создание чем-то напоминает работу с классами в модели ООП. Сначала вы создаёте некий класс, предположим, раздел статей сайта. Раздел должен содержать некоторые характерные поля: заголовок статьи, автор, текст статьи (полный и краткий), дата публикации, отметку выводить статью на сайте или нет и многое другое. Таким образом, мы создаём раздел, некий «класс» объектов для сайта, после чего, мы сразу же можем приступать к созданию экземпляров класса, т. е. писать статьи.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/section.jpg\" width=\"1352\" height=\"624\" alt=\"Разделы в Symphony CMS\" \/>\n<\/div>\n<p>Ещё одним большим плюсом системы, является то, что любые структуры данных можно изменять уже после начала их заполнения. Например, есть у вас раздел для создания статей, и в нём уже есть пара десятков статей. И вот у вас возникла необходимость добавить новое поле, к примеру, поле для ввода тегов. Система позволит вам это сделать совершенно без проблем, при этом никакие, уже имеющиеся данные, не потеряются.<\/p>\n<p>После создания разделов, разработчики создают так называемые «Источники данных». Суть их проста, выборка данных из имеющихся разделов. Напрмер, есть у меня раздел статей, из которого мне надо выбрать только статьи, которые помечены, как опубликованные и только за текущий месяц. Для этого потребуется создать простой источник данных, задать раздел из которого необходимо сделать выборку данных и установить условия выборки. И всё. Источник готов к работе.<\/p>\n<p>Я представил немного упрощённую модель работы с источниками данных, потому что условий выборки может быть куда больше, и они могут быть куда более сложными. Тут есть и возможность выборки на основании других источников данных, на основании внешних параметров, передаваемых пользователем и т. д. Ещё раз повторю, система является невероятно гибкой.<\/p>\n<p>После создания источника данных его необходимо прикрепить к странице, на которой его планируется использовать.<\/p>\n<p>На этом собственно и основана работа в <b>backend<\/b>.<\/p>\n<p>Далее дело за разработчиками <b>fronend<\/b>.<\/p>\n<p>Все данные, получаемые от источников данных, поступают на страницы в виде XML. Сами же страницы создаются при помощи XSLT, HTML, CSS, JS и любых других технологий. Тут я думаю подробно описывать ничего не надо, но вся суть заключается в том, что в уже имеющийся готовый шаблон выводятся данные полученные от источников данных путём вывода определённых ветвей XML. И разработчики получают все плюсы и минусы работы с XSLT и XML.<\/p>\n<h2>Расширяемость<\/h2>\n<p>Помимо гибкой системы работы с данными и шаблонами страниц, движок может похвастаться богатым набором функций доступных через API и простотой разработки дополнительных модулей, которых, кстати, уже довольно большое количество и для них имеется даже <a href=\"http:\/\/symphonyextensions.com\/\">отдельный сайт<\/a>.<\/p>\n<p>На сайте можно найти расширения на любой случай. От дополнительных полей до полноценных редакторов текста, которые вы можете встроить в свои разделы.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/extensions.jpg\" width=\"800\" height=\"384\" alt=\"Расширения\" \/>\n<\/div>\n<p>Так же на сайте движка разработчики могут найти так называемые XSLT утилиты, это небольшие XSL файлы, с шаблонами обработки определённых данных или создания определённых частей интерфейса. Например, шаблон большого календаря, ячейки которого унифицированы и каждую из них вы можете заполнить любыми данными, не прибегая к изменению самого шаблона.<\/p>\n<p>Или, например, XSLT модуль для типографики текста. Т. е. вы просто применяете шаблон к тексту и всё. Модуль автоматически заменит и подставит правильные двойные кавычки, заменит короткое тире на длинное и пр.<\/p>\n<p>Банк утилит постоянно обновляет и пополняется. Сообщество разработчиков ведёт довольно активную деятельность. Любой желающий может написать и выложить свой модуль или расширение прямо на сайте <a href=\"http:\/\/www.getsymphony.com\/\">Sуmphony<\/a> или на <a href=\"http:\/\/symphonyextensions.com\/\">Symphony Extensions<\/a>.<\/p>\n<p>Кстати, вот <a href=\"http:\/\/symphonyextensions.com\/developers\/alexbirukov\/\">страница с моими расширениями<\/a>.<\/p>\n<p>Первым моим самостоятельным расширением было «<a href=\"http:\/\/symphonyextensions.com\/extensions\/lang_russian\/\">Language: Russian<\/a>», это локализация ядра самого движка.<\/p>\n<p>Затем, я немного изменил расширение «<a href=\"http:\/\/symphonyextensions.com\/extensions\/nestedcats\/\">Nested Categories<\/a>» для организации вложенных категорий и которое было написано русским разработчиком, но, увы, больше им не поддерживалось.<\/p>\n<p>И последнее, написанное мной расширение, это «<a href=\"http:\/\/symphonyextensions.com\/extensions\/sms_pilot_sender\/\">SMS Pilot Sender<\/a>». Расширение, которое при возникновении какого-либо события отправляет СМС через сервис SMS Pilot. Подробно работу расширения я описал в предыдущем посте «<a href=\"http:\/\/alexbirukov.ru\/?go=all\/plagin-sms-pilot-sender-dlya-symphony-cms\/\">Плагин SMS Pilot Sender для Symphony CMS<\/a>».<\/p>\n<h2>Переносимость<\/h2>\n<p>Помимо невероятной гибкости и расширяемости самой системы, ещё одной невероятно полезной отличительной особенностью движка является система экспорта сборки или в оригинальном варианте «Export Ensemble». Это крайне полезная функция для разработчиков, которые постоянно занимаются разработкой однотипных систем.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/export.jpg\" width=\"800\" height=\"74\" alt=\"Экспорт сборки\" \/>\n<\/div>\n<p>Предположим, перед нами стоит задача создания двух идентичных новостных сайтов, у которых идентично всё, кроме дизайна. Экспорт сборки, позволит создать архив не только движка, но и всех расширений, данных, настроек и пр. При этом архив содержит не просто файлы, а готовый к установке движок. Т. е. достаточно в одном месте сделать выгрузку сборки, распаковать её на другой площадке и просто произвести процесс установки. После чего, мы получим совершенно готовый к работе сайт. Нам останется лишь изменить дизайн, при этом системная часть не потребует внесения изменений.<\/p>\n<h2>Заключение<\/h2>\n<p>Таким образом, небольшой и очень функциональный движок может стать невероятно мощным инструментом в руках веб разработчика. Symphony CMS позволят создавать всё, от простых сайтов и блогов до функциональных корпоративных порталов, с большим количеством специфических данных и предоставляет разработчиками невероятно широкие просторы по реализации систем хранения и обработки данных любой структуры с последующим их выводом в виде XML, что в свою очередь даёт возможность интеграции движка в современные системы, умеющие работать с внешними XML источниками данных.<\/p>\n",
            "date_published": "2013-10-21T14:22:54+05:00",
            "date_modified": "2021-01-30T22:20:53+05:00",
            "tags": [
                "CMS",
                "symphony",
                "Symphony CMS",
                "symphony cms russian",
                "Движок",
                "сайт"
            ],
            "image": "https:\/\/alexbirukov.ru\/pictures\/symphony.jpg",
            "_date_published_rfc2822": "Mon, 21 Oct 2013 14:22:54 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "302",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/alexbirukov.ru\/pictures\/symphony.jpg",
                    "https:\/\/alexbirukov.ru\/pictures\/section.jpg",
                    "https:\/\/alexbirukov.ru\/pictures\/extensions.jpg",
                    "https:\/\/alexbirukov.ru\/pictures\/export.jpg"
                ]
            }
        },
        {
            "id": "301",
            "url": "https:\/\/alexbirukov.ru\/?go=all\/plagin-sms-pilot-sender-dlya-symphony-cms\/",
            "title": "Плагин SMS Pilot Sender для Symphony CMS",
            "content_html": "<p>На выходных задался целью написания одного небольшого, но крайне полезного плагина для движка <a href=\"http:\/\/www.getsymphony.com\/\">Symphony CMS<\/a>. Данным движком я пользуюсь уже больше года, и он отлично себя зарекомендовал. Описание данного движка достойно отдельной статьи, поэтому в данном посте я опишу лишь написанный мной плагин.<\/p>\n<h2>SMS Pilot Sender<\/h2>\n<p>Данный плагин добавляет новый фильтр событий для отправки СМС сообщений через сервис <a href=\"http:\/\/www.smspilot.ru\/?r=6708\">SMSPilot<\/a>.<\/p>\n<h2>Установка плагина SMS Pilot Sender<\/h2>\n<ol start=\"1\">\n<li>Скачиваем плагин на <a href=\"https:\/\/github.com\/alexbirukov\/sms_pilot_sender\">Github<\/a>.<\/li>\n<li>Создаём каталог «sms_pilot_sender» в каталоге расширений движка и копируем в него файлы плагина.<\/li>\n<li>Теперь в разделе управления расширениями движка находим и включаем плагин «SMS Pilot Sender».<\/li>\n<\/ol>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/enable-plugin.jpg\" width=\"1343\" height=\"234\" alt=\"Включаем плагин SMS Pilot Sender\" \/>\n<\/div>\n<h2>Настройка плагина SMS Pilot Sender<\/h2>\n<p>После установки плагина, заходим в раздел настроек для дальнейшей конфигурации. Для работы с сервисом SMS Pilot необходимо скопировать ваш уникальный API ключ в личном кабинете и вставить его в соответствующее поле в разделе настроек.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/api-key.jpg\" width=\"1349\" height=\"185\" alt=\"API ключ для работы с системой SMS Pilot\" \/>\n<\/div>\n<p>После ввода API ключа и сохранения настроек, в разделе появятся дополнительные поля конфигурирования, но только в том случае, если указан валидный API ключ.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/settings.jpg\" width=\"1346\" height=\"440\" alt=\"Дополнительные поля настроек плагина SMS Pilot\" \/>\n<\/div>\n<p>На основании введенного API ключа, система делает запрос через API сервиса SMS Pilot и получает список допустимых имён отправителей. Имена отправителей задаётся в личном кабинете сервиса. Поле <b>«Отправитель»<\/b> отвечает за подпись отправителя СМС, именно от этого имени абонент получит СМС.<\/p>\n<p>В поле <b>«Номера телефонов»<\/b> перечисляют номера телефонов абонентов, которые должны получить СМС при срабатывании события в системе.<\/p>\n<p>Поле <b>«Текст сообщения»<\/b> служит для ввода текста сообщения, которое будет отправлено абонентам, чьи номера указаны в поле <b>«Номера телефонов»<\/b>.<\/p>\n<h2>Использование плагина SMS Pilot Sender<\/h2>\n<p>После того, как все настройки плагина произведены, вы можете добавить появившийся фильтр <b>SMS Pilot: Отправка СМС<\/b> к любому из имеющихся в системе событий.<\/p>\n<p>После того, как система инициирует данное событие, и данные будут успешно обработаны, сработает фильтр отправки СМС сообщения.<\/p>\n<p>Проверка<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/2013-10-20-22.55.23.png\" width=\"720\" height=\"1280\" alt=\"Проверка отправки SMS\" \/>\n<\/div>\n<p>Вот такой вот первый небольшой плагин для движка Symphony CMS.<\/p>\n<p>P.S. Если вы знакомы с работой системы Событий и Фильтров в Symphony CMS, то вы без проблем сможете разобраться в работе данного плагина.<\/p>\n",
            "date_published": "2013-10-20T21:56:40+05:00",
            "date_modified": "2021-01-30T22:21:09+05:00",
            "tags": [
                "CMS",
                "plugin",
                "SMS Pilot Sender",
                "symphony",
                "Symphony CMS"
            ],
            "image": "https:\/\/alexbirukov.ru\/pictures\/enable-plugin.jpg",
            "_date_published_rfc2822": "Sun, 20 Oct 2013 21:56:40 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "301",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/alexbirukov.ru\/pictures\/enable-plugin.jpg",
                    "https:\/\/alexbirukov.ru\/pictures\/api-key.jpg",
                    "https:\/\/alexbirukov.ru\/pictures\/settings.jpg",
                    "https:\/\/alexbirukov.ru\/pictures\/2013-10-20-22.55.23.png"
                ]
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}