+0.53
Рейтинг
10.87
Сила

Lex

Посылаем красиво. Шаблон для рассылки LSDigest :) [Обновлено]

Здравствуйте! У нас на сайте стоит замечательный шаблон Vintage. Его разрабатывает — и очень активно — пользователь angelsmedia . Он очень нравится всем — и пользователям, и мне, и моей бабушке. Она мне прямо так и скзала: «Это просто замечательный шаблон!»

А ещё у нас стоит бесплатный плагин LSDigest. Его написал известный в сообществе программист stfalcon , за что ему огромное спасибо! Плагин этот выполняет очень нужную функцию — он рассылает уведомления о том, какие самые интересные записи появились на сайте за прошедший период. Но у него есть одна особенность — он не занимается форматированием текста. Поэтому, если в начале топиков есть картинки, верстка едет. Да и сами письма выглядят как plain text.

Нас это очень расстраивало. Поэтому мы привлекли сообщество для «модернизации» шаблона письма таким образом, что бы пользователь, глядя на него, мог сразу сказать: «О! Опять они!». То есть, что бы сохранить узнаваемость, шаблон письма должен был быть похож на шаблон Vintage.

Первым откликнулся пользователь refik . И пока я ходил за сигаретами он успел сверстать шаблон рассылки. Это, надо сказать, поразило меня до глубины души. Шаблон рассылки оказался настолько хорошим, что мне подумалось: «Иван, безусловно, великолепный фрилансер и его можно рекомендовать к сотрудничеству смело.»

И когда все было готово и все вопросы улажены, я сказал себе: «А чо? Не отдать ли шаблон пользователям?». Иван был не против, Анатолий (автор Vintag'а) — тоже. Посему я от имени нас троих выкладываю в общий доступ шаблон рассылки. Что бы ваши пользователи были довольны и никогда не отписывались!
Посмотреть превью шаблона и скачать

Плагин "TrickyTitle" 2.0 - не менее хитрые ключевые слова

Привет друзья!

С неизменным удовольствием представляю вам новую версию модуля.


Что нового
  1. Новая конфигурационная опция «include_personal_blogs». Позволяет исключить названия персональных блогов (аля «Блог им. Вася») из генерируемых списков блогов. И по умолчанию делает это :).
  2. Конфигурация «по умолчанию» расширена поддержкой разделов коллективных и персональных блогов. Речь о конфигурации для акций personal_blog(раньше не было вообще) и blog(существенно расширена сравнительно с версией 1.0).
  3. Формальная поддержка LiveStreet 0.5.1. Мне известен случай успешного применения плагина для этой версии LS, поэтому в requires плагина теперь стоит 0.5.1(это и есть, собственно, формальная поддержка :) ) Однако, стандартная конфигурация не покрывает особенности этой версии. Что-то работает сразу, что-то придётся до-конфигурировать.
  4. Автоматическая генерация содержимого мета-тега keywords. Основная особенность этой версии, о ней подробно ниже.

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

Как убрать Вотермарк на превюшках

Здравствуйте уважаемые знатоки.
Вопрос в следующем.
На сайте настроены вотермарки (подпись в правом нижнем углу картинки). Но есть потребность НЕ ВЫВОДИТЬ вотермарки на превюшках.

Подскажите в какую сторону копать

Создание своей главной страницы

Друзья, может быть кто-нибудь может объяснить мне на пальцах, как сделать свою главную страницу?

Чего хочется достичь: главная страница — что-то типа презентации: какие-то свои блоки и прочая инфа, дефолтная главная страница с выводом интересных топиков остается в наличии, просто доступна по какому-нибудь другому адресу.

Настраиваем сервер для LiveStreet. Часть VIII. APC, Memcached & Sphinx.

Предыдущие части:

На мой взгляд, на данный момент, есть только два осмысленных варианта настроить кэширование кода и данных (учитывая то, что LiveStreet поддерживает, конечно). Первый вариант — APC + Memcached. Второй вариант — XCache.

Почему?
  • Во-первых все остальные PHP оптимизаторы(eAccelerator, например) сильно проигрывают современным версиям APC и XCache. Всесторонне, особенно в разрезе надёжности. ( Особый случай это ZendOptimiser+ — оно, по отзывам, быстрое и надёжное, но не очень открытое и не очень бесплатное. И я, лично, не тестировал )
  • Во-вторых, как opcode кэшер APC, актуальных версий, лучше XCache. И быстрее и стабильней. Да, это субъективное мнение. Да, выигрыш незначителен. Но лучше. :)
  • А вот с кэшированием данных XCache справляется намного лучше Memcached. И поэтому если говорить именно об общей производительности, то выигрывает XCache. И это вполне ожидаемо, учитывая что Memcached — софт предназначенный, прежде всего, для многосерверных конфигураций.

Из вышеописанного проистекает моё личное мнение:
  • Высокая надежность и хорошая производительность = APC + Memcached( и ниже будет описан именно этот вариант).
  • Максимально возможная производительность с приемлемой надёжностью = XCache.

Еще одно важное замечание: коммуникации между сервисами лучше настраивать не через TCP/IP, а через UNIX socket. В рамках «всё на одном сервере» это и быстрее и надёжней. Именно таким образом настраивалась связка Apache + php-fpm в прошлых частях. Таким же образом, по возможности, будем действовать и дальше.

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

MyWriter - социальные публикации. Набираем тестеров.

Приглашаем желающих принять участие в закрытом альфа-тестирование нового сервис социального репостинга — MyWriter.ru.



Описание
MyWriter — сервис для удобного репостинга контента в различные социальные сети. Сейчас поддерживаются три — Facebook, Twitter и ВКонтакте. Можно подключать RSS каналы или использовать свои каналы поступления контента через API. Для LS есть специальный плагин, который добавляет чекбокс (для отправки топика в сервис) в форму создания топика.

Тестирование
Если вам интересен подобный сервис, то можете принять участие в закрытом тестировании.
При регистрации укажите код приглашения — livestreet, код рассчитан на 15 30 50 60 100 человек. Ошибки/баги/пожелания можно оставлять в этом топике.

Некоторые технические подробности.
Сервис сделан на основе фреймворка LiveStreet и в нем применили несколько новых для LS решений — работа с очередями resque, ajax обработчики блоков(когда простой обработчик Block занимается и ajax обработкой) и новый механиз ajax-модальных окон. Как только обкатаем эти решения, то выложим их в паблик.

Создание на сайте страницы FAQ

Уважаемые пользователи LS! Помогите реализовать на сайте страницу FAQ на подобие ЭТОЙ страницы. Спасибо, буду рад каждому совету и даже платному предложению.

UPD: Вопрос конкретно о дизайне страницы, а не о том, где редактировать собственные страницы.

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

Мы возвращаем на сайт минусы, но теперь они будут под присмотром плагина «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' => 'Вы слишком агрессивны, нужно отдохнуть!',
	),
);


Всем удачи!