Плагин LSGallery Premium



Друзья, мы хотим поделиться с вами хорошей новостью — работа над первой версией LSGallery Premium наконец-то закончена (не прошло и два года :)), плагин прошел модерацию и доступен в каталоге! Если вкратце, то расширение добавляет много новых фич по работе с фотографиями и альбомами, а также возможность загружать фотографии с Android приложения. С работой плагина можно ознакомиться на ДЕМО-САЙТЕ (логин и пароль guest).

Сразу хочу поблагодарить всех, кто принимал участие в составлении ТЗ для коллективного заказа. Благодаря вам мы решили делать премиум версию LSGallery и многие фичи брались именно с этого ТЗ. Спасибо! И сорри, что так затянули с релизом.

За более детальной информацией прошу под кат :)

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

В разрабатываемой версии мы переработали модули 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.

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

Плагин PostArchive - просмотр публикаций по месяцам


Добавляет в подменю топиков пункт «Архив», в котором выводятся опубликованные топики сгруппированные по месяцам. Дизайн списка топиков выполнен в стиле водопада — публикации словно стекают вниз от самых новых до самых старых (похоже на Sinyo Flow). Также есть удобная переключалка по годам.

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

Плагин «Мультилогин» (обновление 15.09.2014)

Описание

Плагин позволяет пользователям быть авторизованными одновременно с разных устройств (без сброса cookie).

GitHub: github.com/wasja1982/livestreet_multilogin

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

Плагин «Цитирование комментариев» (обновление 25.04.2014)

Описание

Плагин добавляет возможность цитирования комментариев (в топиках и личных сообщениях).
Поддерживает возможность одновременного цитирования нескольких фрагментов (функция не совместима со старыми версиями IE).

Совместим со стандартными редакторами — markItUp и TinyMCE.

GitHub: github.com/wasja1982/livestreet_quotecomment

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

InstaGrab — граббер фоток instagram по тегу, локации и пользователю

InstaGrab — граббер фоток instagram по тегу, локации и пользователю. Работает с api instagram'а, в отличии от своего предшественника Insta.

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

Пример использования на in-crimea.com


Настойка плагина InstaGrab:
Читать дальше →

Плагин для Объявлений



В прошлом мы работали над сайтом по продаже и обсуждению косметических изделий.
На сайте был создан удобный поисковик объявлений по товарам.
Теперь появилась идея о создании плагина который будет упрощать работу с созданием и поиском желаемых объявлений.

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

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

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

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

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