Обсуждение вектора развития LiveStreet CMS с ведущими разработчиками

LiveStreet — Взгляд в будущее

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


Читать дальше →

Пользовательская документация

А есть ли где-то в открытом доступе пользовательска докумнтация по LS? Как писать топики, как вступать в блоги, чем блог от топика отличаеться и т.д…
Может кто-то будет не против дать ссылку на свой ресурс и отдать его гайд как подстрочник?

Модуль GEO. Документация

Подскажите, пожалуйста, где можно подробнее ознакомиться с новым модулем GEO?
На сколько я понял, пока базовая гео-абстракция основывается только на работе с страна/регион/город?
Т.е., реализации работы с координатами, привязками и тп — в базовом варианте нет?

Связка MODx Revolution + LiveStreet

Уважаемое сообщество!
У меня для вас сразу две заметки.

Первая для новичков: кто еще не освоил создание плагинов под Livestreet с нуля, подробная мана: modxlivestreet.ru/blog/livestreet-lessons/9.html

А вот вторая — повод для холиваров, которые мы уже развернули на хабре ( habrahabr.ru/post/155063/ ) и community.modx-cms.ru ( community.modx-cms.ru/blog/social-network/8766.html ) (правда в MODX-сообществе отдельные люди оценили идею и скорее всего в ближайшее время мыс моим модулем будем осуществлять перенос сообщество с MODx Evolution + Livestreet на MODX Revolution). Заметки об этой связке MODX-сообщества уже были здесь ( livestreet.ru/blog/sites/2111.html ).

В чем суть этого модуля? Этот модуль позволяет подружить MODX Revolution с Livestreet. Вот посмотрите на мой сайт: modxlivestreet.ru/
Типичный с виду Livestreet. Да только не совсем типичный. Вообще-то это MODX. Просто он дергает нужный ему контент из Livestreet.
Читать дальше →

Хуки JS в LS, краткое руководство для тех, кто запутался

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

Вступление


Механизм делегирования кода ЖС в ЛС можно осуществлять такими наиболее часто употребляемыми методами в зависимости от поставленной задачи:

Читать дальше →

Новое в LiveStreet 1.0 для разработчиков

Для разработчиков плагинов и шаблонов в LiveStreet 1.0 есть некоторые изменения.
Постараюсь их все собрать в одном месте.
Изменений, на самом деле, не так много.

Список:
  1. Модуль GEO, теперь в своих плагинах с помощью него можно делать географические привязки различных объектов
  2. Модуль Subscribe, организация подписок пользователей на различные события и рассылка по ним. Например, через него реализован механизм подписки на комментарии к топикам
  3. js вынесены за пределы шаблона в библиотеки, теперь в шаблонах достаточно только переопределить необходимый функционал
  4. Механизм валидации данных, подробнее — livestreet.ru/blog/dev_documentation/10221.html
  5. Возможность в тулбар добавлять свои элементы через стандартных механизм блоков
  6. Консоль для автоматической генерации каркаса плагина
  7. Переопределять настройки редактора стало проще, теперь они находятся в ls.settings
  8. Класс Object переименован в LsObject, позволит избежать проблем с некоторыми IDE и подключить автоподстановку методов
  9. Доработан модуль Image, теперь для сохранения изображения на другой сервер, достаточно переопределить методы SaveFile() и RemoveFile()
  10. Каптча вынесена в блочный хук {hookb run=«popup_registration_captcha»}, что позволит ее переопределить
  11. Возможность делать всплывающие подсказки через poshytip или infobox.js (с погрузкой данных через ajax)
  12. Появился модуль Tools, сейчас в нем только один метод — формирование облака тегов
  13. Шаблоны блоков перенесены в отдельный каталог /blocks/
  14. При ручном определении сеттеров в сущностях теперь следует возвращать данные как return $this->_getDataOne('blog_id'); — это позволит избежать проблемы с Notice ошибками
  15. Прямой эфир теперь автоматически группирует вкладки, если их много, в выпадающий список
  16. Смена приоритетов при загрузке блоков — теперь блоки из конфига загружаются после блоков, объявленных в коде экшенов, соответственно блоки из конфига имеют более высокий приоритет. Это позволит применять правила к блокам после окончательного определения экшена/евента, которые можно переопределить в ходе выполнения логики экшена/хуков.
  17. Возможность делать именованные евенты и управлять блоками из конфига о их именам. Например для евента на основе регулярно выражения можно задать имя и его использовать в правилах блоков. Если имя не задать, то оно автоматически определится как имя метода евента.
  18. Теперь все текстовки плагинов помещаются в пространство 'plugin.name', например, Get_Lang('plugin.page.admin_title');


Если есть вопросы, то отвечу более подробно.

Валидация данных в LiveStreet 0.6

В транковую версию LS на github.com добавлен новый функционал — валидация данных и полей сущностей. Этот функционал призван заменить функцию func_check(). За основу был взят функционал валидации Yii.

На данный момент доступны следующие типы валидации:
  • Boolean — проверка значения на булевый тип
  • Date — проверка значения на формат даты и времени
  • Email — проверка корректности емайл
  • Inline — валидация произвольным методом сущности или другого объекта
  • Number — проверка на числа
  • Required — проверка на пустое или конкретное значение
  • String — проверка строк на длину
  • Type — проверка на тип значения
  • Url — проверка на корректность URL


Как использовать

В сущности необходимо составить список правил валидации.
class PluginTest_ModuleMain_EntityTest extends Entity {

	protected $aValidateRules=array(
		array('login, name','string','max'=>7,'min'=>'3'),
		array('title','my','on'=>'register'),
	);

	public function ValidateMy($sValue,$aParams) {
		if ($sValue!='Мега заголовок') {
                    return 'Ошибочный заголовок';
                }
		return true;
	}
}


Читать дальше →

Блог плагина XText

Здравствуйте, уважаемые лайвстритяне.

Описание плагина гласит, что XText — это средство разработки (сейчас, я бы сказал «жиденькая платформочка»), а тема сисек до сих пор не раскрыта. Пора исправлять этот недочет, я считаю ;)

Этот блог станет частью документации плагина, здесь я буду публиковать примеры программирования с XText в виде уроков, разжевывать тонкости и всякое такое.