{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "В наушниках по жизни: заметки с тегом сайт",
    "_rss_description": "Здесь я пишу свои идеи, мысли, описываю события своей жизни и просто делаю личные и рабочие заметки. «А Вы что, собираетесь жить вечно?»",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/alexbirukov.ru\/?go=tags\/sayt\/",
    "feed_url": "https:\/\/alexbirukov.ru\/?go=tags%2Fsayt%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": "267",
            "url": "https:\/\/alexbirukov.ru\/?go=all\/obnovlenie-razdela-puteshestviy\/",
            "title": "Обновление раздела путешествий",
            "content_html": "<p>Немного обновил раздел сайта, <a href=\"http:\/\/travel.alexbirukov.ru\">посвящённый путешествиям<\/a>.<\/p>\n<p>Прикрутил систему <a href=\"http:\/\/disqus.com\/\">Disqus<\/a> для удобного управления комментариями. Теперь вы можете оставлять свои комментарии к статьям.<\/p>\n<p>Так же теперь отображается количество просмотров каждой статьи на сайте.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/alexbirukov.ru\/pictures\/views.png\" width=\"216\" height=\"65\" alt=\"\" \/>\n<\/div>\n<p>Некоторые разделы сайта пока на заполнены, но скоро я это исправлю, так что, ждите скорых обновлений.<\/p>\n",
            "date_published": "2013-04-02T12:09:24+05:00",
            "date_modified": "2021-01-30T22:32:59+05:00",
            "tags": [
                "мотоцикл",
                "обновление",
                "путешествия",
                "сайт"
            ],
            "image": "https:\/\/alexbirukov.ru\/pictures\/views.png",
            "_date_published_rfc2822": "Tue, 02 Apr 2013 12:09:24 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "267",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/alexbirukov.ru\/pictures\/views.png"
                ]
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}