+10.49
Рейтинг
27.37
Сила

Николай Прокопов

Релиз LiveStreet 2.0.0

Основные изменения относительно версии 1.0 описаны в этом посте — livestreet.ru/blog/dev_livestreet/17704.html
В текущем релизе постарались исправить баги бета-версии.
--------------------------------------------------------
Сам уже не верил, что что-то произойдет, не говоря уже о сообществе :)
За это время успел обзавестись двумя сыновьями, а тут какую-то версию не мог выпилить :)
В общем, гора с плеч, одним словом.

За эти четыре года уже всех могу не вспомнить, но хочу сказать большое спасибо deniart , что хватило терпения из года в год перелопачивать фронт. PSNet за реализацию админки (точно не помню, но версия эдак четвертая по счету), gran , kerby , Chiffa , lifecom , Chiliec , kpoxas , prokopov за несчетное число багов, и всему сообществу. Отдельно спасибо LeX — отличный источник заряда энергии.

Вот такие дела. Всем спасибо!
--------------------------------------------------------
Скачать можно здесьlivestreetcms.ru/download/get/
Документация по новой структуре фронта — github.com/livestreet/livestreet/wiki + в дистрибутиве идет плагин docs с доками по каждому компоненту.

Поддержать новость на Хабре — habrahabr.ru/post/320848/

Бесплатный шаблон «Good Inc»

10 фото
Тема ленты топиков
image

Описание


Бесплатный адаптивный шаблон для LiveStreet CMS. Верстался с нуля. 2 слайдера с 3 темами, 5 видов топиков, выбор пользователем темы оформления сайта.


Показать все 10 фото →

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

В новой версии 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',
		),
	);


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

INKA - новый шаблон для LiveStreet CMS

Inka

Разрешите представить вам свой новый шаблон под названием «INKA». Наверное еще ни один из своих шаблонов не делал так долго — свободного времени сейчас практически не бывает, но по чуть-чуть все же допилил до конца. Шаблон три раза менял свой вид и структуру пока не получилось что-то, чем можно поделиться с общественностью.

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

Обновление модулей кеширования и логирования

В разрабатываемой версии мы переработали модули Cache и Logger — код стал проще, меньше и более функционален.

Модуль кеширования (Cache)
Реализован новый принцип работы с разными бекендами, теперь каждый бекенд представляет из себя отдельную сущность (наследуется от ModuleCache_EntityBackend). Такой подход позволяет легко добавлять новые типы бекендов — достаточно создать сущность с нужным типом кеша, например, вот так выглядит XCache:
/**
 * Бекенд xcache
 */
class ModuleCache_EntityBackendXcache extends ModuleCache_EntityBackend {
	/**
	 * Проверяет доступность использования текущего бекенда
	 *
	 * @return mixed
	 */
	public function IsAvailable() {
		if (extension_loaded('xcache')) {
			return true;
		}
		return 'The xcache extension must be loaded for using this backend!';
	}
	/**
	 * Проверяет доступность использование мульти-get запросов к кешу (указывать сразу несколько ключей)
	 *
	 * @return mixed
	 */
	public function IsAllowMultiGet() {
		return true;
	}
	/**
	 * Инициализация бекенда
	 *
	 * @param array $aParams
	 *
	 * @return mixed
	 */
	public function Init($aParams=array()) {
		require_once(LS_DKCACHE_PATH.'Cache/Backend/TagEmuWrapper.php');
		require_once(LS_DKCACHE_PATH.'Zend/Cache/Backend/Xcache.php');
		$aConfig=Config::Get('xcache');

		$oCahe = new Zend_Cache_Backend_Xcache(is_array($aConfig) ? $aConfig : array());
		if (isset($aParams['stats_callback'])) {
			$this->oCacheBackend=new Dklab_Cache_Backend_TagEmuWrapper(new Dklab_Cache_Backend_Profiler($oCahe,$aParams['stats_callback']));
		} else {
			$this->oCacheBackend=new Dklab_Cache_Backend_TagEmuWrapper($oCahe);
		}
	}
	/**
	 * Получить значение из кеша
	 *
	 * @param string $sName	Имя ключа
	 * @return mixed|bool
	 */
	public function Get($sName) {
		return $this->oCacheBackend->load($sName);
	}
	/**
	 * Записать значение в кеш
	 *
	 * @param  mixed  $mData	Данные для хранения в кеше
	 * @param  string $sName	Имя ключа
	 * @param  array  $aTags	Список тегов, для возможности удалять сразу несколько кешей по тегу
	 * @param  int|bool    $iTimeLife	Время жизни кеша в секундах
	 * @return bool
	 */
	public function Set($mData,$sName,$aTags=array(),$iTimeLife=false) {
		return $this->oCacheBackend->save($mData,$sName,$aTags,$iTimeLife);
	}
	/**
	 * Удаляет значение из кеша по ключу(имени)
	 *
	 * @param string $sName	Имя ключа
	 * @return bool
	 */
	public function Delete($sName) {
		return $this->oCacheBackend->remove($sName);
	}
	/**
	 * Чистит кеши
	 *
	 * @param string $cMode	Режим очистки кеша
	 * @param array $aTags	Список тегов, актуально для режима Zend_Cache::CLEANING_MODE_MATCHING_TAG
	 * @return bool
	 */
	public function Clean($cMode=Zend_Cache::CLEANING_MODE_ALL,$aTags=array()) {
		return $this->oCacheBackend->clean($cMode,$aTags);
	}
}

На данный момент в стандартном комплекте идет поддержка File, XCache и Memcached. Также добавлены дополнительные бекенды — FileOrm и Life. FileOrm служит для отдельного файлового кеширования схем таблиц в БД, автоматически применяется в функционале ORM. Life — это сохранение данных на время выполнения скрипта, т.е. аналог паттерна Registry. Применяется он в методах GetLife и SetLife.

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

Шаблон "Old Street" v.0.1.0

Закончена работа над очередным шаблоном. На этот раз получился трехколоночный шаблон с большим изображением в шапке.

Особенности шаблона
  1. Адаптивность.
  2. Три колонки.
  3. Стена на странице информации профиля.
  4. Блок последних топиков в сайдбаре профиля.
  5. Блок друзей в сайдбаре.
  6. Возможность простого ручного брендирования.
  7. Два вида верхнего (главного) меню — светлое и темное.

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

Новый модуль для работы с изображениями и модуль FS

В разрабатываемой новой версии мы обновили модуль Image для работы с изображениями.
Теперь он основан на библиотеке Imagine и предоставляет удобные методы для манипуляции с изображениями. Дополнительной особенностью является поддержка разных PHP библиотек (драйверов): gd, imagick и gmagick. Нужный драйвер устанавливается в конфиге $config['module']['image']['driver']='imagick';

/**
 * Получаем параметры
 */
$aParams=$this->Image_BuildParams('gallery');
/**
 * Создаем объект изображения
 */
if(!$oImage=$this->Image_Open($sFileSource,$aParams)) {
	$sMsgError=$this->Image_GetLastError();
}


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

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

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

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

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

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

Плагин "301 редирект"


Всем привет!

Разрабатывая сайты на livestreet столкнулся с проблемой сохранения весов старых адресов. Исходя из этого написал плагин «301 редирект».
С помощью этого плагина можно легко настроить переадресацию со старых урлов на новые.

Всех кому пригодился этот плагин просьба поставить плюсик к посту)

Плагин "CSRF Blocker (Антиспам)"


Всем привет!

Хочу представить Вам свой второй плагин «Антиспам». У меня на livestreet есть пару сайтов и постоянный спам заставил написать это плагин. В настоящий момент плагин имеет уже вторую версию и в нем были исправлены некоторые недочеты. Цену на плагин назначил чисто символическую (100 рублей). Основными мотивами создания платного плагина стали желание понять на сколько этот плагин востребован и чтобы при необходимости можно было отвлечься от повседневной работы и улучшить его.

Плагин можно приобрести в каталоге.