0.00
Рейтинг
0.00
Сила

Вторая альфа версия LiveStreet 2.0

Сообщаем о выходе второй альфа версии LiveStreet CMS. Версия стала существенно стабильнее прошлой, проделана большая работа по доработке.

Изменения относительно первой альфа версии:
  • Доработан механизм фронт-компонентов, поддержка наследования и переопределения
  • Доработка большого количества компонентов
  • Базовые компоненты перенесены во фреймворк
  • Удалены лишние экшены — ActionMy и ActionPersonalBlog
  • Универсальная каптча с возможностью смены типа (сейчас поддерживается стандартная и рекаптча)
  • Доработка инсталлятора
  • Поддержка Open Graph
  • Авторизация и регистрация перенесены в отдельный экшен ActionAuth
  • Изображения в топик теперь вставляются с относительными путями, а не полными
  • В опросах в топиках теперь можно голосовать гостям
  • Переработана система инвайтов, теперь можно приглашать на сайт по реферальной ссылке, даже если сайт не закрытый. Дополнительно админ может сам генерировать инвайты с расширенными настройками — количество приглашений, дата действия.
  • Поддержка настраиваемого ЧПУ для топиков (плагин NiceURL больше не нужен)
  • Модуль Notify перенесен во фреймворк
  • Возможность задавать свой шаблон для редактирования топиков разных типов
  • У топиков появилось новое поле date_publish, именно по нему происходит сортировка и фильтрация топиков. Для плагинов это дает возможность делать запланированные публикации на будущее.
  • Доработка ORM (в том числе поддержка json полей)
  • Обновлены различные используемые библиотеки до актуальных версий
  • Оптимизация скорости работы
  • Большое число мелких доработок и фиксов

Скачать Alfa 2 можно по той же ссылке — livestreetcms.com/download/get-alfa/
Дополнительно доступна ежедневная сборка — livestreetcms.ru/uploads/ls_last.zip
Просьба всех принять участие в тестировании версии, это поможет ускорить процесс поиска и фикса багов.

Демо версия — alfa.demo.livestreetcms.com

Новогодняя альфа

Первым делом хотим поздравить всех с наступающим Новым 2015 Годом! Прошлый год выдался не простым, как для страны в целом, так и для LS ) Нам не удалось полностью выполнить намеченные планы, а именно, выпустить стабильный релиз LS 2.0. Но мы провели достаточно большую работу и довели разработку до альфа версии, которую и хотим сегодня презентовать.

Почему она альфа? Альфа, т.к. не успели зафиксировать все необходимые правки по frontend'у, который претерпел значительные изменения (подробнее в отдельном посте — livestreet.ru/blog/dev_livestreet/17706.html). В остальном функционал достаточно устаканившийся, но требует тестирование и мелкие фиксы.

Ниже список основных новых возможностей альфы LS относительно LS 1.0:

  • Новая структура файлов/каталог движка. Фреймворк полностью отделен от приложения.
  • Механизм универсальных категорий. Возможность привязки категорий к разным объектам.
  • Механизм дополнительных полей (EAV) для различных объектов
  • Универсальный механизм управления медиа-файлами
  • Управление типами топиков и их кастомизация
  • Встроенная поддержка превью для топиков
  • Возможность вставлять в топик несколько опросов
  • Система управления правами пользователей
  • Центральный крон
  • Новый удобный механизм загрузки фото и аватара пользователя
  • Поддержка жалоб на пользователей
  • Новый продвинутый поиск пользователей
  • Упрощения системы рейтинга
  • Поиск по сайту «из коробки» (без sphinx)
  • Новый поиск блогов
  • Категории для блогов
  • Возможность постить топики в несколько блогов
  • Опционально каптча при авторизации
  • Новый инсталлятор
  • Возможность запустить процесс обновления LS из консоли (для крупных проектов)
  • Упрощена навигация по топикам
  • Официальная админ-панель (отдельный плагин в комплекте)
  • Редактирование комментариев
  • Поддержка мульти-авторизаций для пользователей (можно одновременно логиниться с разных браузеров)
  • Поддержка работы через https, в том числе принудительное использование для страниц регистрации/авторизации
  • Возможность расширения эвентов отдельными классами
  • Существенная доработка ORM
  • Возможность не только переопределять файлы шаблона, но и наследовать их
  • Для плагинов теперь не обязательно дублировать tpl файлы для всех шаблонов. Можно их все держать в шаблоне default, а в конкретный шаблон копировать только измененные
  • Поддержка разных конфигов для разных окружений
  • Конфиги плагинов теперь можно переопределять в каталоге с главным конфигом (/application/config/plugins/[plugin_name]/config.php)
  • Удобный механизм интеграции плагинов в админ-панель — управление конфигом и собственный функционал
  • Новый модуль кеширования и логирования
  • Новый модуль для работы с изображениями
  • Поддержка миграций для плагинов
  • Весь код отформатирован под PSR-2
  • Большое число мелких фиксов и улучшений ядра
  • Переработанный фронт

Самое главное! Скачать альфу можно по ссылке — livestreetcms.com/download/get-alfa/
Дополнительно мы сделали ежедневную ночную сборку девел версии, специально для самых ативных тестеров. Скачать ее можно здесь.
Демо версия доступна на сайте — alfa.demo.livestreetcms.com

Админ-панель сейчас может отображаться не совсем корректно — она еще не адаптирована к новым стилям/компонентам ядра. Не пугайтесь )

Еще раз всех с наступающим Новым Годом!

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 5.0.0


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

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

Полный список изменений и новшеств — около 180, но некоторые могут показаться скучными конечному пользователю, поэтому я опишу только некоторые интересные, а полный список — в history.txt.

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

Универсальные категории

В новой версии LS появится функционал универсальных категорий.
Плагины смогут привязывать древовидные категории к любым объектам (полная интеграция с ORM), управления такими категориями доступно из админки. Из коробки категории будут работать для блогов (как сейчас на сайте livestreet.ru).



Интеграция в плагинах
Интеграция функционала категорий основана на механизме поведений. Поэтому для начала необходимо в класс объекта (сущность, к которой привязываем категории) и класс модуля добавить описание поведений.
Для сущности:
	protected $aBehaviors=array(
		// Настройка категорий
		'category'=>array(
			'class'=>'ModuleCategory_BehaviorEntity',
			'target_type'=>'article',
			'form_field'=>'category',
			'multiple'=>true,
		),
	);

Для модуля:
	protected $aBehaviors=array(
		// Настройка категорий
		'category'=> array(
			'class'=>'ModuleCategory_BehaviorModule',
			'target_type'=>'article',
		),
	);


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

Плагин "игнор" версии 1.1.0


Возможности

Пользователь может добавить другого пользователя в игнор и при этом поставить ему один или несколько из приведенных параметров:

  • Запрет получения личных сообщений от пользователя (функция есть в движке ЛС)
  • Запрет показа комментариев пользователя (я не вижу его комментарии вообще)
  • Запрет пользователю отвечать на мой комментарий
  • Запрет пользователю комментировать мои топики
  • Запрет пользователю отвечать на мой комментарий в определённом топике
  • Запрет пользователю комментировать в моём топике
  • Запрет пользователю писать на моей стене

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

jQuery плагин для создания вкладок

simple tabs jquery plugin

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

jQuery плагин для быстрого и простого создания вкладок. Не нуждается в инициализации, работает сразу после готовности DOM, использует on (live) события, поэтому будет работать на динамично формируемых страницах.

Для вкладок задается группа и id (для возможности размещать на странице несколько разных групп вкладок даже если у них пересекаются id).

GitHub: github.com/psnet/simple_tabs
Demo: demo simple_tabs

Инструкция по подключению находится на гитхабе.

UPD: Может и Simple Tree — простое сворачиваемое дерево на чистом CSS без использования JS и изображений понадобится кому-то.

Дополнительные поля - использование в плагинах

В новой разрабатываемой версии LiveStreet есть функционал дополнительных (пользовательских) полей. Сейчас он задействован для топиков. Суть сводится к удобной возможности добавлять в различные объекты новые поля разных типов.

Сейчас поддерживаются следующие типы полей:
  • Целое число
  • Дробное число
  • Строка
  • Текст
  • Чекбокс
  • Дата
  • Выпадающий список
  • Теги
  • Ссылка на видео
  • Файл
  • Изображение

Постепенно мы наращиваем функционал и количество типов.
За весь функционал по полям отвечает модуль Property. Рассмотрим пример подключения функционала дополнительных полей к плагину «Статьи» на базе ORM.

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

Интеграция плагинов с админ-панелью LS

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

Рассмотрим основные технические моменты. Есть два варианта интеграции:
  1. Визуальное управление конфигом плагина
  2. Встраивание функционала в интерфейс админки (для более сложных плагинов)

Визуальное управление конфигом плагина
Все что нужно сделать, это описать так называемую схему конфига. Она состоит из двух частей — описание всех параметров конфига и описание групп/разделов параметров, которые формируют визуальную группировку на странице редактирование параметров.
Описание всех параметров задается в конфиге плагина в специальном ключе $config_scheme$, например
$config['$config_scheme$'] = array(
	'per_page' => array(
		/*
		 * тип: integer, string, array, boolean, float
		 */
		'type' => 'integer',
		/*
		 * отображаемое имя параметра, ключ языкового файла относительно плагина, или просто текст
		 */
		'name' => 'Количество элементов на страницу',
		/*
		 * отображаемое описание параметра, ключ языкового файла относительно плагина, или просто текст
		 */
		'description' => 'config.per_page.description',
		/*
		 * валидатор (не обязательно)
		 */
		'validator' => array(
			/*
			 * тип валидатора, существующие типы валидаторов движка:
			 * Boolean, Compare, Date, Email, Number, Regexp, Required, String, Tags, Type, Url, + Array (специальный валидатор, см. документацию)
			 */
			'type' => 'Number',
			/*
			 * параметры, которые будут переданы в валидатор
			 */
			'params' => array(
				'min' => 1,
				'max' => 20,
				/*
				 * разрешить только целое число
				 */
				'integerOnly' => true,
				/*
				 * не допускать пустое значение
				 */
				'allowEmpty' => false,
			),
		),
	),
	'param_string_1' => array(
		'type' => 'string',
		'name' => 'config.param_string_1.name',
		'description' => 'config.param_string_1.description',
		'validator' => array(
			'type' => 'String',
			'params' => array(
				'min' => 5,
				'max' => 50,
				'allowEmpty' => true,
			),
		),
	),
);


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

ORM и ActiveRecord в 0.5 и выше

Выход версии 0.5 для меня было нечто большим, чем добавление страницы активности и ленты топиков из подписанных блогов. В новой версии реализованы ORM и ActiveRecord. Вместе они дают мощнейший инструментарий для разработчика, избавляя того от кучи однотипного кода, который приходилось писать каждый раз при разработке плагина. Тот-же форум, о котором будет идти речь в статье, после обновления похудел на 2177 строк кода. В этой статье я хочу углубиться в ORM и AR на примере создания плагина для LiveStreet.

Читаем дальше...

Связи many to many в ORM

В транковой версии появилась полноценная поддержка связей типа many to many. Это значит, что теперь вся забота о поддержании, например, тегов в ваших плагинах ложится на ОРМ.

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