Здесь я пишу свои идеи, мысли, описываю события своей жизни и просто делаю личные и рабочие заметки. «А Вы что, собираетесь жить вечно?»

Позднее Ctrl + ↑

Немного о 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 источниками данных.

Плагин SMS Pilot Sender для Symphony CMS

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

SMS Pilot Sender

Данный плагин добавляет новый фильтр событий для отправки СМС сообщений через сервис SMSPilot.

Установка плагина SMS Pilot Sender

  1. Скачиваем плагин на Github.
  2. Создаём каталог «sms_pilot_sender» в каталоге расширений движка и копируем в него файлы плагина.
  3. Теперь в разделе управления расширениями движка находим и включаем плагин «SMS Pilot Sender».
Включаем плагин SMS Pilot Sender

Настройка плагина SMS Pilot Sender

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

API ключ для работы с системой SMS Pilot

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

Дополнительные поля настроек плагина SMS Pilot

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

В поле «Номера телефонов» перечисляют номера телефонов абонентов, которые должны получить СМС при срабатывании события в системе.

Поле «Текст сообщения» служит для ввода текста сообщения, которое будет отправлено абонентам, чьи номера указаны в поле «Номера телефонов».

Использование плагина SMS Pilot Sender

После того, как все настройки плагина произведены, вы можете добавить появившийся фильтр SMS Pilot: Отправка СМС к любому из имеющихся в системе событий.

После того, как система инициирует данное событие, и данные будут успешно обработаны, сработает фильтр отправки СМС сообщения.

Проверка

Проверка отправки SMS

Вот такой вот первый небольшой плагин для движка Symphony CMS.

P.S. Если вы знакомы с работой системы Событий и Фильтров в Symphony CMS, то вы без проблем сможете разобраться в работе данного плагина.

Разборка и ремонт нетбука Lenovo IdeaPad S10-3

Недавно попал ко мне вот такой нетбук Lenovo IdeaPad S10-3.

Lenovo IdeaPad S10-3

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

И так, приступаем к полной разборке.
Переворачиваем нетбук и выкручиваем 4 болта, которыми прикручена нижняя крышка нетбука.

4 болта на нижней крышке нетбука. 4 болта на нижней крышке нетбука.

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

Откручивам 2 болта крепления жёсткого диска. Извлекаем модуль оперативной памяти.

Далее необходимо снять модуль WiFi. Для этого достаточно открутить 1 болтик, которым прикручен модуль и вытащить его из разъёма.

Извлекаем WiFi модуль.

После того, как мы открутили вытащили все мешающие элементы, необходимо открутить 3 болтика, которые держат клавиатуру.

Болтики, закрепляющие клавиатуру.

Выкрутив болтлики, переворачиваем нетбуки аккуратно снимаем клавиатуру, отсоединив при это от материнской платы шлейф.

Аккуратно снимаем клавиатуру.

Под клавиатурой расположены ещё 3 болтика, которые необходимо выкрутить, чтобы верхнюю часть корпуса нетбука.

Затем, переворачиваем нетбук и выкручиваем все болты по краю корпуса.

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

Материнская плата Lenovo IdeaPad S10-3 Материнская плата Lenovo IdeaPad S10-3

Снимаем шлейф, который соединяет материнскую плату и плату с интерфейсами.

Шлейф материнской платы

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

Вынимаем материнскую плату и убираем в сторону. Теперь можно продолжить разборку нетбука. Извлекаем плату с интерфесами, она прикручена всего одним болтиком.

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

Откручиваем крепления матрицы. Откручиваем крепления матрицы.

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

Разобранная верхняя часть нетбука.

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

Заменяем матрицу на новую.

После замены шлейфа и матрицы, можем приступать к обратной сборке нетбука. А раз уж нетбук полностью разобран, произведём заодно и замену термопасты и термопрокладок. Термопрокладки уже имелись в наличии, а в качестве термопасты используем, отлично зарекомендовавшую себя, КПТ-8.

Замена термопасты и термопрокладок. Замена термопасты и термопрокладок.

И так, нетбук собран и отлично работает, проблем с экраном больше не наблюдается, а средняя температура процессора снизилась на 3 градуса.

Магнитики IT 4 People

Вчера наконец-то сделал себе небольшие рекламные магнитики для IT 4 People, чем и спешу поделиться.

Магинитики IT 4 People Магинитики IT 4 People

Кстати, сделал магнитики в студии дизайна Манти. Сделали быстро и недорого. Так что если кто-нибудь решит делать магнитики или визитки, советую.

USB зарядное устройство для мотоцикла

Не так давно заказал на Ebay очередную полезную вещицу, USB зарядное устройство для мотоцикла.

USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла

Сегодня получил посылку. Устройство предназначено для крепления либо в отверстие подходящего диаметра, либо в на выносное крепление. Само устройство выглядит вот так:

USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла

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

Товар пришёл немного бракованный, но к счастью, это не имело никакого значения. Внутри девайса отпаялся провод. В любом случае, штатные провода были сразу обрезаны, а на их место подобраны новые подлинее. Т. к. я планирую закрепить зарядное устройство на руле, то мне потребовалось сделать провода практически в 2 раза длиннее. И вот что вышло:

Дело осталось за малым, пропустить провод и установить зарядное устройство на мотоцикле.

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

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

USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла USB зарядное устройство для мотоцикла
Ранее Ctrl + ↓