+19.32
Рейтинг
52.21
Сила

Новое в LiveStreet Framework: хранилище "ключ => значение" - модуль Storage

Сегодня я расскажу вам о ещё одном хорошем пополнении возможностей для разработчиков — в фреймворке LiveStreet, на котором построена LiveStreet CMS добавлен новый модуль — Storage (написан мной по заказу ООО «ЛС СОФТ»), который является хранилищем типа «ключ => значение». Данное хранилище позволяет легко и быстро работать с небольшими объемами данных, CRUD операции (создание, чтение, обновление и удаление) с которыми теперь занимают всего одну строку кода.

Хранилище является аналогом плагина «Хранилище настроек (Config Engine)», с небольшими отличиями в АПИ, но тем не менее имеет общие элементы и поэтому разработчикам, уже знакомым с указанным плагином будет легче разобраться с хранилищем лс.

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

Интеграция плагинов с админ-панелью 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,
			),
		),
	),
);


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

Плагин «ViewCount | Количество просмотров (обновление от 11.02.2013)»

В связи с настойчивой просьбой alfer о доработке плагина ViewCount выпущено небольшое обновление.

Теперь в конфигурационном файле плагина "[host]\plugins\viewcount\config\config.php" доступно 2 новых опции (просто процитирую конфиг):
/* 
	true - считаются посещения всех зарегистрированных/авторизованных пользователей кроме автора; 
	false - считаются посещени всех пользователей, кроме автора) 
	*/
	$config['OnlyAuthUser'] = false;
	
	/* 
	true - посещение засчитывается только один раз при открытии топика, 
		в дальнейшем при обновлении страницы (F5 в броузере) кол-во посещений не увеличивается; 
	false - посещение засчитывается каждый раз при обновлении страницы ) 
	*/
	$config['NoRefreshTopic'] = true;


Примечание
Должен заметить, что данное обновление защищает только от случая, когда просмотры наращиваются специально или, возможно, случайно через обновление страницы (F5, F5, F5, ...). Но если пользователь порядочно гуляя по сайту зашел в один топик, потом в другой, а затем снова вернулся к первому, то будет засчитано, что пользователь посетил исходный топик 2 раза. Мне кажется это справедливым и разумным.

Исправлено благодаря kpoxas :
1) При учете кол-ва посещений больше не очищается кэш;
2) Результат наращивания счетчика посещений отображается сразу при открытии топика, а не при следующем открытии как раньше;

Скачать можно тут: livestreetcms.ru/addons/view/467/
А пока не прошел модерацию, тут: rghost.ru/43783988

Список хуков LiveStreet CMS 1.0.1

На днях написал черновик по списку хуков и так забыл о нем, пока не увидел новое видео от Максима и сразу вспомнил об этом тексте, решив под общий шумок вокруг хуков добавить и эту статью. Я видел разные топики, где спрашивали "есть ли список хуков?". Да, есть. Вот он.

Привожу список стандартных хуков для чистой официальной ЛС 1.0.1, большинство из них неявно прописаны в движке, поэтому попытка найти их вызовы в коде у вас не выйдет т.к. часть их них автоматически формируется ядром движка.
Из стандартной поставки ЛС хуки в сумме вызываются 486 раз, некоторые по нескольку раз. Это нормально. Здесь приведены 161 хук, которые доступны в ЛС 1.0.1, в порядке их вызова, начиная с самого первого, исключая дальнейшие повторения.

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

Каталог мест (на базе DAO?)

На повестке два вопроса:

  • Нужно ли это кому-нибудь еще?
  • На каких условиях товарищ eXtravert согласится такое реализовать?


Хочу предложить идею для нового DAO-обновления — каталог мест. Оно будет полезно людям(и мне в первую очередь), которые держат «региональные сайты». Сама идея сперта отсюда, но немного более развита.

Каталог представляет из себя базу мест раскиданных по каким-либо признакам (клуб, кино, театр, кофе, вай-фай, туалет) все места отмечаются на общей карте. Каждое место имеет краткое и подробное описание. Ориентировочно это:
  • координаты
  • точный адрес
  • телефон
  • время работы
  • э-мэйл
  • сайт
  • описание
Разумеется не у каждого туалета в городе есть свой сайт по этому скорее всего страница «подробнее» должна быть опционной.

Какой я вижу навигацию:

В меню есть две вкладки:
  1. «карта города» — это обычная карта на которой находятся «какие-то метки», в сайд бар менюшка с доступными категориями и фильтром по городам. Категорию можно:
    • включить/выключить (в этом случае на карте появляются/ пропадают все метки данной категории). Это уже было реализовано тут, это видно на скрине
    • свернуть/развернуть в этом случае показывается полный список элементов данной категории для выбранного города. При нажатии на конкретный элемент он подсвечивается на карте и открывается краткое описание, в котором находится ссылка «более подробно».
  2. Каталог — этот раздел более-менее стандартен. Нас просят выбрать интересующий нас раздел(напомею, это клуб, кино, театр, кофе, вай-фай, туалет). Далее происходит вывод мест по алфавиту или рейтингу с кратким их описанием и ссылкой на «более подробно».


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

jqModal. Создание модальных окон и не только

Вроде бы по созданию и использованию модальных и всплывающих (pop-up) окон в LS публикации уже были, но видимо, то ли информации мало, то ли преподнесена она слишком кратко — вопросы опять появились.
Этим топиком я «убиваю сразу двух зайцев» — и свой багаж знаний пополню и у для кого-то текущие и будущие вопросы возможно помогу решить
Читать дальше →

Бесплатный миниплагин HideText

HideTextДобавляет тег <hide>text</hide> Текст в котором будет скрыт от незарегистрированных пользователей.
пример: test.kirnet.name/blog/13.html
Строку замены скрытого текста можно менять в конфиге

Плагин подкатегории для блогов

Создание/редактирование подкатегорий доступно администратору в настройках профиля
add_category
Адрес топика в подкатегории будет выглядеть следующим образом:
site.ru/blog/урл_блога/subcat/урл_категории/урл_подкатегории/1.html
categories
Блог может иметь неограниченное число категорий, но каждая категория может иметь только одну подкатегорию, которая может иметь свою подкатегорию.

посмотреть можно здесь
login: admin
pass: qwerty123
Отдельное спасибо netlanc за помощь в mootools