+14.47
Рейтинг
52.59
Сила

Alexey Elizarov

Прогресс-бар для силы в профиле пользователя

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



Навеяно вот этим топиком.

У себя на сайте я реализовал это нижеописанным методом. На грандиозность кода не претендую, может кто что подправит :)

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

Раскрутка закрытого сообщества, раздача&розыгрыш инвайтов

Бренсон классный.Занялся раскруткой полностью закрытого сообщества, т.е. регистрация по инвайтам и закрытое содержание сайта. Не буду распространяться о причинах такого решения, тема не об этом. Тема о том, что из-за закрытости, совершенно не будет работать обычный способ продвижения, SEO, нужно что-то другое. Где-то в комментариях я видел совет по набору участников в сообщество через ВК, искать людей через группы и интересы, предлагать им вступить в сообщество. Идея интересная, в ВК сейчас весь рунет есть, найти можно кого угодно, но, из-за огромного количества спама отношение к рекламным письмам у людей резко негативное. К тому же, мне нужен определенный тип людей с определенными интересами. Хочу сделать упор на качество, а не на количество.

Какие варианты привлечения людей я надумал:

1. Поиск статей, постов, комментариев в блогах, на форумах и соц. сетях по своей тематике и отправка инвайта авторам текстов. Долго, затратно по времени, должно быть эффективно, если вместе с инвайтом написать письмо с восторженным отзывом о статье&комментарии.

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

Плагин "AntiUp"


Плагин блокирует написание первого комментария к топику от автора топика, в простонароде «АП».
Параметры настраиваются в конфиге плагина — /plugins/antiup/config/config.php

Два варианта блокировки:
  1. Блокировка добавления первого комментария
  2. Понижение рейтинга при добавлении первого комментария

Плагин активен на этом сайте.

Руководство по оформлению вопросов.

Уважаемые вопрошающие, перед тем, как опубликовать свой вопрос, убедитесь, что прочитали и осмыслили данное руководство и привели свой топик в соответствии с ним. Это поможет специалисту быстрее сориентироваться в вашей проблеме, а вам получить ее решение в кратчайшие сроки.

1. Убедитесь, что подобный вопрос еще не задавали. Просмотрите FAQ, воспользуйтесь поиском по сайту. Вы не первый, кто сталкивается с проблемой, и вполне возможно, что ваша проблема уже решена. Не тратьте свое время и время участников сайта на повтор ответа, это не очень вежливо с вашей стороны.

2. Опишите в заголовке топика суть проблемы. Заголовки типа "ошибка", "помогите, пжл" — прямая и быстрая дорога в минус. Заголовок должен точно выражать суть вашей проблемы. Например "Публикация топика проходит очень медленно", "Как убрать капчу при регистрации?". Если вы получаете сообщение об ошибке, то резонно будет выделить часть его в заголовок. Например "Ошибка permission denied во время загрузки изображений". После того как вам удалось сформулировать заголовок точно и лаконично, воспользуйтесь поиском еще раз.

3. Опишите в тексте сообщения вашу ошибку полностью. Особенно важны следующие данные:
— Ситуации в которых проявляется ошибка
— Текст ошибки, если есть
— Действия, после которых ошибка начала проявляться (переезд на новый хостинг, установлен новый плагин)

Дайте краткую информацию о вашем сайте. Очень важно указать:
— Версию движка
— Список установленных плагинов

Для ошибок, связанных с сервером, нужно указать:
— Тип хостинга (свой сервер, шаред хостинг)
— Параметры хостинга
— Используемые связки серверов (apache+mod_php, ngnix+apache+php, ngnix+php_fpm)
— Логи ошибок сервера (их желательно выгрузить на файловое хранилище Dropbox или Яндекс.Диск)
Если вы не можете предоставить эти данные, будьте готовы к тому, что доброволец, который захочет решить вашу проблему, попросит у вас данные доступа к панели управления хостингом, или к серверу.

Для ошибок связанных с производительностью укажите:
— Данные, показываемые панелью производительности (под администратором, в футере всех страниц)
— Вывод плагина Debug Toolbar
— Вывод команды top (если есть доступ к консоли сервера)

Не скромничайте. Чем больше информации получит специалист, тем лучше.

4. Опишите действия, которые вы уже предприняли для решение ошибки. Чистили кэш — напишите. Отключали плагины — напишите.

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

6. Будьте вежливы и грамотны. С вежливыми и грамотными людьми гораздо приятней иметь дело. Не требуйте помощи, никто не обязан вам помогать, а нахальным тоном вы только усугубите ситуацию. Если вы сомневаетесь в своем уровне владения языком — воспользуйтесь проверкой грамотности от Яндекса.

7. Если проблему удалось решить — обновите топик. Вставьте UPD с информацией о решении, или ссылкой на комментарий, который помог решить проблему. Также в заголовок было бы неплохо вставить фразу (решено), чтобы помочь людям, которые будут искать информацию о подобной проблеме.

Новички! Когда вы создаете топики, в которых смутно понятна суть вопроса, вы неуважительно относитесь к людям, которые будут читать эти топики, тратить время на то, чтобы разобраться в сути вашей проблемы, тратить время на задание дополнительных вопросов, людей, которые будут просматривать блог «Вопросы» в поисках ответов, но будут натыкаться на гору топиков «Памагите!!», «Как сделать чтобы было хорошо?» и ваш топик в том числе.
Когда вы создаете подобные топики из одного предложения, они плохо индексируются поисковиком, и людям с подобными проблемами необходимо создавать похожий топик вместо того, чтобы воспользоваться готовым решением. Это неуважение к сообществу и в какой-то мере эгоизм с вашей стороны. Руководство по составлению вопросов сделано для того, чтобы проблемы решались один раз, быстро и навсегда. Чтобы польза была не только вам, а и остальным участникам. Вы просите уделить внимание вашей проблеме? Уделите ей внимание сначала вы, составив грамотно вопрос, а потом уже просите об этом остальных.

Специалисты! Перед тем как отвечать в топик с проблемой, попросите пользователя привести его к минимальному соответствию с этим руководством, чтобы блог «Вопросы» не тонул в пустых топиках «Помогите!», «Нужна помощь».

Создано по мотивам этого текста. Дополнения и исправления приветствуются. Благодарю за внимание.

Релиз мобильного шаблона


Рады сообщить о выходе релиза мобильной версии для LiveStreet!
За время тестирования мы внесли ряд правок/фиксов и изменили основной принцип — теперь мобильная версия не отключает плагины, все плагины активны. Здесь стоит относиться к мобильной версии как к обычному шаблону, для которого в ряде случаев придется адаптировать другие плагины.

Поэтому если вы используете на сайте другие плагины и хотите их адаптировать к мобильному шаблону, то у вас есть два варианта:
  1. Создать адаптацию под мобильный шаблон в каталоге /templates/skin/mobile/ необходимого плагина, по аналогии с адаптацией под любой другой шаблон.
  2. Отключить функционал необходимого плагина в мобильном шаблоне.

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

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

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


Всем удачи!

Делаем плагин "causeedit" более красивым.

Заходим в плагин и находим два шаблона topic.form_end.tpl и topic.show_end.tpl.

Открвываем topic.form_end.tpl и заменям весь код на:


{if $aCauses}
<div class="editdate">
    {foreach from=$aCauses item=aCause name=c key=k}
		Отредактировал {$aCause.user_login} - {date_format date=$aCause.date}
		
Причина: {$aCause.text}
	{if $oUserCurrent and $oUserCurrent->isAdministrator()}
                <a href="#" onclick="deleteCause('{$iTopicId}', '{$k}', this); return false;" class="delete">{$aLang.topic_delete}</a>
        {/if}<br /><br />
	{/foreach}
	</div>
  
{/if}
<p>
    <label for="topic_cause_edit">{$aLang.plugin.causeedit.cause_title}:</label>
    <input type="text" id="topic_cause_edit" name="topic_cause_edit" value="{$_aRequest.topic_cause_edit}" class="input-text input-width-full" />
</p>



Открвываем topic.show_end.tpl и заменям весь код на:


{assign var="aCauses" value=$oTopic->getCauseArray()}
{if $aCauses}
<br />
<div class="editdate">
    {foreach from=$aCauses item=aCause name=c key=k}
		Отредактировал {$aCause.user_login} - {date_format date=$aCause.date}
		
Причина: {$aCause.text}
	{if $oUserCurrent and $oUserCurrent->isAdministrator()}
                <a href="#" onclick="deleteCause('{$iTopicId}', '{$k}', this); return false;" class="delete">{$aLang.topic_delete}</a>
    {/if}<br /><br />
	{/foreach}
	</div>
{/if}



Дальше открываем стили, заменям весь код на:


.editdate {
color: #84AE1B;
font-style: italic;
font-size: 0.9em;
text-align: right;
padding-right: 24px;
background: url("../images/editdate.png") no-repeat 100% 0;
margin-bottom: 15px;
}
.editdate .delete { color: red; }


Создаем папку images и загружаем туда картинку:

И что у меня получилось? А вот что:



Было:


Всех с наступающим!

Плагин для IDE PhpStorm - автодополнение

Для разработчиков у нас отличная новость!
Рады представить плагин для IDE PhpStorm (лучшей IDE для разработки на PHP), теперь разрабатывать на LS стало еще проще — плагин поддерживает автодополнения методов LS + есть поддержка наследования через Inherit.

пример автодополнения

Скачать можно на странице docs.livestreetcms.com

Надеемся в Новом Году разрабатывать с помощью LS станет еще приятнее!
С наступающим!

UPD: выложили исходники github.com/livestreet/ide-plugin-phpstorm