+10.35
Рейтинг
25.74
Сила

Плагин «Администрирование, управление и создание пользователей (Admin users)», обновление


НОВОЕ


  • небольшие улучшения кода
  • фикс бага, когда пароль не отправлялся на почту для вновь созданного пользователя при быстрой регистрации
  • длина автоматически создаваемого пароля для новых пользователей выставляется в конфиге плагина
  • в меню профиля пользователя добавлен пункт «Добавить в «последние маски»», который добавит маску пользователя на панель последних масок для быстрого доступа
  • исправлен вид иконки смены автора топика для шаблонов основанных на шаблоне «developer»
  • добавлена возможность простой смены почты, пароля и логина пользователя
  • в профиле пользователя панель управления стала больше по размерам, поэтому пришлось её переместить в сайдбар, где она смотрится значительно лучше

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

Выносим обработку евентов в отдельный файл

В транковой версии на github.com появилась возможность выносить объемную обработку евентов из экшена в отдельные файлы.

Эти файлы размещаются в каталоге /classes/actions/[action]/Event[Name].class.php, где [action] — это название экшена, которому принадлежит евент, [Name] — название внешнего обработчика евента.

Рассмотрим более подробно.
Пусть у нас будет экшен ActionBlog.class.php:
<?php

class ActionBlog extends Action {

	public $oUserCurrent=null;

	public function Init() {
		$this->oUserCurrent=$this->User_GetUserCurrent();

		$this->SetDefaultEvent('index');
	}

	/**
	 * Регистрируем евенты
	 *
	 */
	protected function RegisterEvent() {
		/**
		 * Регистрируем внешние обработчики евентов
		 */
		$this->RegisterEventExternal('Topic','ActionBlog_EventTopic');

		$this->AddEvent('index','EventIndex');
		$this->AddEventPreg('/^topic$/i','/^(\d+)\.html$/i','/^$/i','Topic::EventShowTopic');
		$this->AddEventPreg('/^topic$/i','/^list$/i','/^$/i','Topic::EventList');
	}


	protected function EventIndex() {
		/**
		 * Устанавливаем шаблон для вывода
		 */
		$this->SetTemplateAction('index');
	}
}
?>

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

Они вернулись. Минусы.

Мы возвращаем на сайт минусы, но теперь они будут под присмотром плагина «Magic Rule»

Настройки у нас такие:
/**
 * Список правил
 * Для каждого действия составляется отдельная группа правил, групп может быть несколько
 * Список действий: vote_comment, vote_topic, vote_user, create_comment, create_topic
 * В параметре msg можно указать сообщение, которое будет отображаться пользователю, можно использовать просто текст или указать ключ из языкового файла, например, 'message_cant_vote'
 *
 * Список доступных критериев:
 *	registration_time - время в секундах с момента регистрации пользователя
 *	rating - необходимый минимальный рейтинг
 *	skill - необходимая минимальная сила
 *	count_comment - необходимое минимальное количество комментариев у пользователя
 *	count_topic - необходимое минимальное количество топиков у пользователя
 *  rating_sum_topic - необходимый суммарный рейтинг топиков пользователя за период. По умолчанию период 14 дней, для изменения периода можно указать значение ввиде массива array(rating,period)
 *  rating_sum_comment - необходимый суммарный рейтинг комментариев пользователя за период. По умолчанию период 7 дней, для изменения периода можно указать значение ввиде массива array(rating,period)
 *
 * Любой из критериев можно опустить.
 */
$config['rule']=array(
	'vote_comment' => array(
		'msg' => 'Вы еще не достаточно окрепли!',
		'groups' => array(
			/**
			 * Голосовать за комментарии могут юзеры старше 3-х дней, рейтинг больше -5, написал больше 10 комментариев,
			 * суммарный рейтинг комментариве за последние 7 дней больше -10
			 */
			array(
				'registration_time' => 60*60*24*3,
				'rating' => -5,
				'count_comment' => 2,
				'rating_sum_comment' => array(-10,60*60*24*7),
			),
		),
	),
	'vote_topic' => array(
		'msg' => 'Вы еще не достаточно окрепли!',
		'groups' => array(
			/**
			 * Голосовать за топики могут юзеры старше 3-х дней, рейтинг больше -3, написал хотя бы 1 топик,
			 * суммарный рейтинг топиков за последние 14 дней больше -5
			 */
			array(
				'registration_time' => 60*60*24*3,
				'rating' => -3,
				'count_topic' => 1,
				'rating_sum_topic' => array(-5,60*60*24*14),
			),
		),
	),
	'vote_user' => array(
		'msg' => 'Вы еще не достаточно окрепли!',
		'groups' => array(
			/**
			 * Голосовать за пользователя могут юзеры старше 14 дней, рейтинг больше 3, написал хотя бы 3 топика,
			 * суммарный рейтинг топиков за последние 30 дней больше 0
			 */
			array(
				'registration_time' => 60*60*24*14,
				'rating' => 3,
				'count_topic' => 3,
				'rating_sum_topic' => array(0,60*60*24*30),
			),
		),
	),
);

/**
 * Правила для создания блокировок
 * Группы правил необходимо располагать по приоритету - вверху самые главные
 * Если группа правил сработала, то создается блокировка и обход нижестоящих правил прекращается
 *
 * Параметры правил:
 *	name - название правила блокировки, для учета в таблице блокировок. Название ограничено в 50 символов
 * 	type - список типов голосований, up - за, down - против
 *	target - список сущностей за которые голосуют
 * 	count - количество голосований
 * 	rating - максимальный порог рейтинга пользователя, блокировка используется только если рейтинг пользователя ниже этого
 * 	period - период, за который необходимо считать количество голосований, в секундах
 * 	block_time - время, на которое необходимо блокировать возможность голосования
 * 	block_msg - сообщение, которое будет видеть пользователь при попытке голосования
 */
$config['block_rule_vote']=array(
	/**
	 * Если пользователь за 20 минут успел поставить 5 минусов за комментарии и рейтинг пользователя меньше 3, то блокируем ему голосование на 5 часов
	 */
	array(
		'name' => 'block 1', //
		'type' => array('down'),
		'target' => array('comment'),
		'count' => 5,
		'rating' => 3,
		'period' => 60*20,
		'block_time' => 60*60*5,
		'block_msg' => 'Вы слишком агрессивны, нужно отдохнуть!',
	),
	/**
	 * Если пользователь за 48 часов успел поставить 10 минуса за топики и рейтинг пользователя меньше 5, то блокируем ему голосование на 24 часа
	 */
	array(
		'name' => 'block 2', //
		'type' => array('down'),
		'target' => array('topic'),
		'count' => 10,
		'rating' => 5,
		'period' => 60*60*48,
		'block_time' => 60*60*24,
		'block_msg' => 'Вы слишком агрессивны, нужно отдохнуть!',
	),
	/**
	 * Если пользователь за 3 часа успел поставить 4 минуса за топики и рейтинг пользователя меньше 5, то блокируем ему голосование на 12 часов
	 */
	array(
		'name' => 'block 3', //
		'type' => array('down'),
		'target' => array('topic'),
		'count' => 4,
		'rating' => 5,
		'period' => 60*60*3,
		'block_time' => 60*60*12,
		'block_msg' => 'Вы слишком агрессивны, нужно отдохнуть!',
	),
	/**
	 * Если пользователь за 8 часов успел поставить 3 минуса за пользователя и рейтинг пользователя меньше 10, то блокируем ему голосование на 1 день
	 */
	array(
		'name' => 'block 4', //
		'type' => array('down'),
		'target' => array('user'),
		'count' => 3,
		'rating' => 10,
		'period' => 60*60*8,
		'block_time' => 60*60*24*1,
		'block_msg' => 'Вы слишком агрессивны, нужно отдохнуть!',
	),
);


Всем удачи!

Фотосет. Как настроить?

Доброго времени суток.

Помогите решить пару задач с созданием фото сетов.

Вопросы:
  • Как сделать так, чтобы на главной при нажатии на картинку с указанием сколько фотографий в фотосете, не кидало сразу в низ топика, а начало отрывать сразу просмотр фотографий/картинок?
  • Возможно ли, чтобы картинка с указанием фотографий можно было вставлять в нужные мне места. А не сразу в шапке топика?
  • Как реализовать, чтобы текст при выравнивание картинки/фотографии обвивал ее правильно, а не одну строку?
  • Как сделать так же, чтобы например создавать вообще фотосеты в любом топике или опросе? И так же чтобы при нажатии, открывался сразу просмотр фотографий/картинок, а не кидало в самый низ топика?
Возможно ли решить вообще это? Как и где? Или что то можно придумать с модулем LSGallery?

Плагин "Magic Rule"


Плагин позволяет определить правила для голосования и добавления контента.
Есть возможность создавать правила для блокировки голосования на определенное время, например, тех, кто часто голосует в минус.

GitHubgithub.com/livestreet/lsplugin-magicrule

Пример стандартной конфигурации:
Читать дальше →

Оптимизация автоматической генерации мета тега keywords плагином "SEO"

Плагин «SEO» прекрасен в своей простоте, но результат выдаёт несколько прямолинейный. Этот вопрос уже как-то поднимал господин ETNO , но действительно интересного решения не предложил. К счастью, нет никакой магии в том, чтобы подправить нужные tpl-и и получить более интересный результат.

Чего хотелось?
  1. Всегда и везде исключить дублирование ключевых фраз.
  2. Добавить название блога в список ключевых фраз страницы топика и, собственно, самой страницы блога.
  3. Убрать запихивание стандартных ключевых фраз из конфигурации livestreet для страниц блога и топика, но всё же, кроме всего прочего, добавлять туда название сайта.
  4. Сформировать список ключевых слов для страниц «Блоги» из их названий.
  5. Ключевые фразы для списков топиков сформировать как стандартный список из конфигурации livestreet, расширенный названиями блогов, к которым относятся топики из списка.
  6. Ключевые фразы для страницы поиска по тегу сформировать как стандартный список из конфигурации livestreet, расширенный названием тега по которому искали и названиями блогов, к которым относятся найденные топики.
  7. Ключевые фразы для страницы поиска — стандартный список из конфигурации livestreet, расширенный фразой которую искали и названиями блогов, к которым относятся найденные топики или комментарии.

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

Еще раз про JS-хуки - мое представление о том, как должно быть

Ежу понятно, что гибкость и расширяемость – это одни из основных характеристик любой CMS. И LiveStreet в этом плане весьма неплохо организован. Но, на мой взгляд, иногда движку не хватает какой-то концептуальной структурированности. Давайте рассмотрим, как мы можем расширять и менять скины (шаблоны), серверную часть (PHP) и клиентскую часть (javascript).
Читать дальше →

Плагин «Отложенная публикация топика» для 1.0.*

Для Livestreet 1.0.* был обновлен плагин «Отложенная публикация топика»



Плагин добавляет возможность назначить публикацию топика на определенное время определенного дня.
Позволяет работать в двух режимах: «для всех» или «только для админов»
Цена: 7$ (каталог, обсуждение)