<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>В наушниках по жизни: заметки с тегом Symphony CMS</title>
<link>https://alexbirukov.ru/?go=tags/symphony-cms/</link>
<description>Здесь я пишу свои идеи, мысли, описываю события своей жизни и просто делаю личные и рабочие заметки. «А Вы что, собираетесь жить вечно?»</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Здесь я пишу свои идеи, мысли, описываю события своей жизни и просто делаю личные и рабочие заметки. «А Вы что, собираетесь жить вечно?»</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Немного о Symphony CMS</title>
<guid isPermaLink="false">302</guid>
<link>https://alexbirukov.ru/?go=all/nemnogo-o-symphony-cms/</link>
<pubDate>Mon, 21 Oct 2013 14:22:54 +0500</pubDate>
<author></author>
<comments>https://alexbirukov.ru/?go=all/nemnogo-o-symphony-cms/</comments>
<description>
&lt;h2&gt;Предисловие&lt;/h2&gt;
&lt;p&gt;Уже больше года в своей работе для создания небольших сайтов и внутри корпоративных порталов я использую &lt;a href="http://www.getsymphony.com/"&gt;Symphony CMS&lt;/a&gt;. Самое странное, что при такой большой конкуренции среди бесплатных CMS, данная система управления сайтами остаётся практически незамеченной российскими разработчиками и не попадает в рейтинги CMS вроде «&lt;a href="http://www.ratingruneta.ru/cms/"&gt;CMS Magazine&lt;/a&gt;» и напрасно, как мне кажется.&lt;/p&gt;
&lt;h2&gt;Symphony CMS&lt;/h2&gt;
&lt;p&gt;Symphony CMS  элегантный и миниатюрный open source движок, написанный на PHP + MySQL, который в своей основе использует XML и XSLT.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/symphony.jpg" width="800" height="476" alt="Symphony CMS" /&gt;
&lt;/div&gt;
&lt;p&gt;На первый взгляд Symphony очень похож ExpressionEngine, Textpattern, WordPress или Drupal. На Symphony, безусловно, можно сделать стандартный веб сайт или блог, но благодаря концептуальной элегантности в работе со структурами данных и источниками данных он находится в уникальном положении между обычными CMS и полноценными веб приложениями, такими, как Django или Ruby on Rails.&lt;/p&gt;
&lt;p&gt;Большая гибкость при работе с данными позволяет веб разработчикам полностью контролировать процесс создания и работы любого веб приложения. По началу, большая гибкость и мощь движка может пугать, но отличная документация и активная поддержка сообщества всегда помогут разобраться даже в самой сложной ситуации.&lt;/p&gt;
&lt;h2&gt;Мощь и сила&lt;/h2&gt;
&lt;p&gt;Вся мощь и сила Symphony CMS состоит в том, что разработчики могут создавать любые структуры данных. Создание чем-то напоминает работу с классами в модели ООП. Сначала вы создаёте некий класс, предположим, раздел статей сайта. Раздел должен содержать некоторые характерные поля: заголовок статьи, автор, текст статьи (полный и краткий), дата публикации, отметку выводить статью на сайте или нет и многое другое. Таким образом, мы создаём раздел, некий «класс» объектов для сайта, после чего, мы сразу же можем приступать к созданию экземпляров класса, т. е. писать статьи.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/section.jpg" width="1352" height="624" alt="Разделы в Symphony CMS" /&gt;
&lt;/div&gt;
&lt;p&gt;Ещё одним большим плюсом системы, является то, что любые структуры данных можно изменять уже после начала их заполнения. Например, есть у вас раздел для создания статей, и в нём уже есть пара десятков статей. И вот у вас возникла необходимость добавить новое поле, к примеру, поле для ввода тегов. Система позволит вам это сделать совершенно без проблем, при этом никакие, уже имеющиеся данные, не потеряются.&lt;/p&gt;
&lt;p&gt;После создания разделов, разработчики создают так называемые «Источники данных». Суть их проста, выборка данных из имеющихся разделов. Напрмер, есть у меня раздел статей, из которого мне надо выбрать только статьи, которые помечены, как опубликованные и только за текущий месяц. Для этого потребуется создать простой источник данных, задать раздел из которого необходимо сделать выборку данных и установить условия выборки. И всё. Источник готов к работе.&lt;/p&gt;
&lt;p&gt;Я представил немного упрощённую модель работы с источниками данных, потому что условий выборки может быть куда больше, и они могут быть куда более сложными. Тут есть и возможность выборки на основании других источников данных, на основании внешних параметров, передаваемых пользователем и т. д. Ещё раз повторю, система является невероятно гибкой.&lt;/p&gt;
&lt;p&gt;После создания источника данных его необходимо прикрепить к странице, на которой его планируется использовать.&lt;/p&gt;
&lt;p&gt;На этом собственно и основана работа в &lt;b&gt;backend&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Далее дело за разработчиками &lt;b&gt;fronend&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Все данные, получаемые от источников данных, поступают на страницы в виде XML. Сами же страницы создаются при помощи XSLT, HTML, CSS, JS и любых других технологий. Тут я думаю подробно описывать ничего не надо, но вся суть заключается в том, что в уже имеющийся готовый шаблон выводятся данные полученные от источников данных путём вывода определённых ветвей XML. И разработчики получают все плюсы и минусы работы с XSLT и XML.&lt;/p&gt;
&lt;h2&gt;Расширяемость&lt;/h2&gt;
&lt;p&gt;Помимо гибкой системы работы с данными и шаблонами страниц, движок может похвастаться богатым набором функций доступных через API и простотой разработки дополнительных модулей, которых, кстати, уже довольно большое количество и для них имеется даже &lt;a href="http://symphonyextensions.com/"&gt;отдельный сайт&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;На сайте можно найти расширения на любой случай. От дополнительных полей до полноценных редакторов текста, которые вы можете встроить в свои разделы.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/extensions.jpg" width="800" height="384" alt="Расширения" /&gt;
&lt;/div&gt;
&lt;p&gt;Так же на сайте движка разработчики могут найти так называемые XSLT утилиты, это небольшие XSL файлы, с шаблонами обработки определённых данных или создания определённых частей интерфейса. Например, шаблон большого календаря, ячейки которого унифицированы и каждую из них вы можете заполнить любыми данными, не прибегая к изменению самого шаблона.&lt;/p&gt;
&lt;p&gt;Или, например, XSLT модуль для типографики текста. Т. е. вы просто применяете шаблон к тексту и всё. Модуль автоматически заменит и подставит правильные двойные кавычки, заменит короткое тире на длинное и пр.&lt;/p&gt;
&lt;p&gt;Банк утилит постоянно обновляет и пополняется. Сообщество разработчиков ведёт довольно активную деятельность. Любой желающий может написать и выложить свой модуль или расширение прямо на сайте &lt;a href="http://www.getsymphony.com/"&gt;Sуmphony&lt;/a&gt; или на &lt;a href="http://symphonyextensions.com/"&gt;Symphony Extensions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Кстати, вот &lt;a href="http://symphonyextensions.com/developers/alexbirukov/"&gt;страница с моими расширениями&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Первым моим самостоятельным расширением было «&lt;a href="http://symphonyextensions.com/extensions/lang_russian/"&gt;Language: Russian&lt;/a&gt;», это локализация ядра самого движка.&lt;/p&gt;
&lt;p&gt;Затем, я немного изменил расширение «&lt;a href="http://symphonyextensions.com/extensions/nestedcats/"&gt;Nested Categories&lt;/a&gt;» для организации вложенных категорий и которое было написано русским разработчиком, но, увы, больше им не поддерживалось.&lt;/p&gt;
&lt;p&gt;И последнее, написанное мной расширение, это «&lt;a href="http://symphonyextensions.com/extensions/sms_pilot_sender/"&gt;SMS Pilot Sender&lt;/a&gt;». Расширение, которое при возникновении какого-либо события отправляет СМС через сервис SMS Pilot. Подробно работу расширения я описал в предыдущем посте «&lt;a href="http://alexbirukov.ru/?go=all/plagin-sms-pilot-sender-dlya-symphony-cms/"&gt;Плагин SMS Pilot Sender для Symphony CMS&lt;/a&gt;».&lt;/p&gt;
&lt;h2&gt;Переносимость&lt;/h2&gt;
&lt;p&gt;Помимо невероятной гибкости и расширяемости самой системы, ещё одной невероятно полезной отличительной особенностью движка является система экспорта сборки или в оригинальном варианте «Export Ensemble». Это крайне полезная функция для разработчиков, которые постоянно занимаются разработкой однотипных систем.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/export.jpg" width="800" height="74" alt="Экспорт сборки" /&gt;
&lt;/div&gt;
&lt;p&gt;Предположим, перед нами стоит задача создания двух идентичных новостных сайтов, у которых идентично всё, кроме дизайна. Экспорт сборки, позволит создать архив не только движка, но и всех расширений, данных, настроек и пр. При этом архив содержит не просто файлы, а готовый к установке движок. Т. е. достаточно в одном месте сделать выгрузку сборки, распаковать её на другой площадке и просто произвести процесс установки. После чего, мы получим совершенно готовый к работе сайт. Нам останется лишь изменить дизайн, при этом системная часть не потребует внесения изменений.&lt;/p&gt;
&lt;h2&gt;Заключение&lt;/h2&gt;
&lt;p&gt;Таким образом, небольшой и очень функциональный движок может стать невероятно мощным инструментом в руках веб разработчика. Symphony CMS позволят создавать всё, от простых сайтов и блогов до функциональных корпоративных порталов, с большим количеством специфических данных и предоставляет разработчиками невероятно широкие просторы по реализации систем хранения и обработки данных любой структуры с последующим их выводом в виде XML, что в свою очередь даёт возможность интеграции движка в современные системы, умеющие работать с внешними XML источниками данных.&lt;/p&gt;
</description>
</item>

<item>
<title>Плагин SMS Pilot Sender для Symphony CMS</title>
<guid isPermaLink="false">301</guid>
<link>https://alexbirukov.ru/?go=all/plagin-sms-pilot-sender-dlya-symphony-cms/</link>
<pubDate>Sun, 20 Oct 2013 21:56:40 +0500</pubDate>
<author></author>
<comments>https://alexbirukov.ru/?go=all/plagin-sms-pilot-sender-dlya-symphony-cms/</comments>
<description>
&lt;p&gt;На выходных задался целью написания одного небольшого, но крайне полезного плагина для движка &lt;a href="http://www.getsymphony.com/"&gt;Symphony CMS&lt;/a&gt;. Данным движком я пользуюсь уже больше года, и он отлично себя зарекомендовал. Описание данного движка достойно отдельной статьи, поэтому в данном посте я опишу лишь написанный мной плагин.&lt;/p&gt;
&lt;h2&gt;SMS Pilot Sender&lt;/h2&gt;
&lt;p&gt;Данный плагин добавляет новый фильтр событий для отправки СМС сообщений через сервис &lt;a href="http://www.smspilot.ru/?r=6708"&gt;SMSPilot&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Установка плагина SMS Pilot Sender&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Скачиваем плагин на &lt;a href="https://github.com/alexbirukov/sms_pilot_sender"&gt;Github&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Создаём каталог «sms_pilot_sender» в каталоге расширений движка и копируем в него файлы плагина.&lt;/li&gt;
&lt;li&gt;Теперь в разделе управления расширениями движка находим и включаем плагин «SMS Pilot Sender».&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/enable-plugin.jpg" width="1343" height="234" alt="Включаем плагин SMS Pilot Sender" /&gt;
&lt;/div&gt;
&lt;h2&gt;Настройка плагина SMS Pilot Sender&lt;/h2&gt;
&lt;p&gt;После установки плагина, заходим в раздел настроек для дальнейшей конфигурации. Для работы с сервисом SMS Pilot необходимо скопировать ваш уникальный API ключ в личном кабинете и вставить его в соответствующее поле в разделе настроек.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/api-key.jpg" width="1349" height="185" alt="API ключ для работы с системой SMS Pilot" /&gt;
&lt;/div&gt;
&lt;p&gt;После ввода API ключа и сохранения настроек, в разделе появятся дополнительные поля конфигурирования, но только в том случае, если указан валидный API ключ.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/settings.jpg" width="1346" height="440" alt="Дополнительные поля настроек плагина SMS Pilot" /&gt;
&lt;/div&gt;
&lt;p&gt;На основании введенного API ключа, система делает запрос через API сервиса SMS Pilot и получает список допустимых имён отправителей. Имена отправителей задаётся в личном кабинете сервиса. Поле &lt;b&gt;«Отправитель»&lt;/b&gt; отвечает за подпись отправителя СМС, именно от этого имени абонент получит СМС.&lt;/p&gt;
&lt;p&gt;В поле &lt;b&gt;«Номера телефонов»&lt;/b&gt; перечисляют номера телефонов абонентов, которые должны получить СМС при срабатывании события в системе.&lt;/p&gt;
&lt;p&gt;Поле &lt;b&gt;«Текст сообщения»&lt;/b&gt; служит для ввода текста сообщения, которое будет отправлено абонентам, чьи номера указаны в поле &lt;b&gt;«Номера телефонов»&lt;/b&gt;.&lt;/p&gt;
&lt;h2&gt;Использование плагина SMS Pilot Sender&lt;/h2&gt;
&lt;p&gt;После того, как все настройки плагина произведены, вы можете добавить появившийся фильтр &lt;b&gt;SMS Pilot: Отправка СМС&lt;/b&gt; к любому из имеющихся в системе событий.&lt;/p&gt;
&lt;p&gt;После того, как система инициирует данное событие, и данные будут успешно обработаны, сработает фильтр отправки СМС сообщения.&lt;/p&gt;
&lt;p&gt;Проверка&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://alexbirukov.ru/pictures/2013-10-20-22.55.23.png" width="720" height="1280" alt="Проверка отправки SMS" /&gt;
&lt;/div&gt;
&lt;p&gt;Вот такой вот первый небольшой плагин для движка Symphony CMS.&lt;/p&gt;
&lt;p&gt;P.S. Если вы знакомы с работой системы Событий и Фильтров в Symphony CMS, то вы без проблем сможете разобраться в работе данного плагина.&lt;/p&gt;
</description>
</item>


</channel>
</rss>