[DEV] Reputation System / Система репутации

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Fantom3D
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 3 месяца

Re: [DEV] Reputation System / Система репутации

Сообщение Fantom3D »

А у меня такая фигня.... все сделал.. где ошибка? :?: Помогите...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: [DEV] Reputation System / Система репутации

Сообщение FladeX »

Ошибки нет, просто настройки такие. Установите минимальное количество сообщений для изменения репутации.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
Аватара пользователя
Fantom3D
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 3 месяца

Re: [DEV] Reputation System / Система репутации

Сообщение Fantom3D »

Понял, спасибо. Только я вот не могу найти меню репутации в админке. :oops: Не подскажите, пожалуйста, где?

Добавлено спустя 45 минут 12 секунд:
Не дождался, понял сам. :) Админка - Общие - Функции конференции ;)
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 17 лет 6 месяцев
Благодарил (а): 17 раз
Поблагодарили: 34 раза

Re: [DEV] Reputation System / Система репутации

Сообщение Kot »

boloto писал(а):доделайте мой аддон topic23115-240.html#p266181 ;) там не так много работы. Просто надо не только выборку сделать, но и посчитать кол-во позитивных, ну а негатив = общее-позитив
Лично мне это кажется баловством и лишней нагрузкой, имхо просто достаточно видеть что есть отзывы и их количество.
Человек, это реально круто, ты сэкономил мне как минимум пару часов времени, спасибо! Жаль, что на этом форуме нет системы репутации. :)
amBX
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 8 месяцев
Благодарил (а): 4 раза

Re: [DEV] Reputation System / Система репутации

Сообщение amBX »

Где то эта тема уже затрагивалась, но я не видел такого момента: (может проглядел). Когда смотрел репутацию у пользователя кто ему повышал увидел, то увидел что админ когда должен был отобразится оранжевым, показался зеленым как модер =)

ЗЫ: Говорю просто для заметки разработчика мода.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: [DEV] Reputation System / Система репутации

Сообщение FladeX »

amBX
было решение этого глюка в теме, посмотрите внимательнее.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 17 лет 6 месяцев
Благодарил (а): 17 раз
Поблагодарили: 34 раза

Re: [DEV] Reputation System / Система репутации

Сообщение Kot »

boloto писал(а):
Kot писал(а):А еще было бы забавно под каждым сообщением видеть репутацию непосредственно сообщения. Столько-то плюс, столько-то минус.
доделайте мой аддон [DEV] Reputation System / Система репутации ;) там не так много работы. Просто надо не только выборку сделать, но и посчитать кол-во позитивных, ну а негатив = общее-позитив
Лично мне это кажется баловством и лишней нагрузкой, имхо просто достаточно видеть что есть отзывы и их количество.
Чтобы оказаться немного полезным, привожу здесь свои изменения, которыми я доработал указанный выше аддон, чтобы под постом отображалось не только количество сообщений, но еще и рейтинг самого сообщения.

Итак, указанные ниже изменения нужно вносить ПОСЛЕ изменений от автора аддона. Запрос к базе остался один, хоть и усложнился. Кстати, рекомендую в таблицу _reputation добавить соответствующие ключи.



Файл \language\ru\mods\reputation.php
Заменить:

Код: Выделить всё

	'REVIEWS'							=> 'Отзывы',
На:

Код: Выделить всё

	'REVIEWS'							=> 'отзывов',
После:

Код: Выделить всё

	'REVIEWS_HISTORY'					=> 'Посмотреть историю отзывов на это сообщение',
Вставить:

Код: Выделить всё

	'REVIEWS_MESSAGE_RATING'			=> 'Рейтинг сообщения',
Файл \styles\subsilver2\template\viewtopic_body.html (уж извините, делал только под себя, поэтому только subsilver2):
Удалить:

Код: Выделить всё

<!-- IF postrow.POST_REVIEWS --><b>{postrow.POST_REVIEWS}</b><!-- ENDIF -->
После:

Код: Выделить всё

						<table width="100%" cellspacing="0">
						<tr valign="middle">
Вставить:

Код: Выделить всё

							<td class="genmed" align="{S_CONTENT_FLOW_BEGIN}">
								<!-- IF postrow.POST_REVIEWS -->{postrow.POST_REVIEWS}<!-- ENDIF -->
							</td>
Файл \styles\subsilver2\theme\stylesheet.css:
Добавить в конец:

Код: Выделить всё

/* reputation 
 ------------ */
.positive {
	color: green;
	font-size: 1.5em;
}
.negative {
	color: red;
	font-size: 1.5em;
}


Файл \viewtopic.php:
Заменить:

Код: Выделить всё

		$sql = 'SELECT COUNT(*) AS rev_cnt
		FROM ' . REPUTATION_TABLE .
		' WHERE reputation_post =' . $row['post_id'];
На:

Код: Выделить всё

		$sql = 'SELECT COUNT(*) as rep_cnt 
		FROM ' . REPUTATION_TABLE . '
		WHERE reputation_post =' . $row['post_id'] . '
		UNION ALL
		SELECT COUNT(*) as rep_cnt 
		FROM ' . REPUTATION_TABLE . '
		WHERE reputation_post =' . $row['post_id'] . ' AND reputation_type = 1
		UNION ALL
		SELECT COUNT(*) as rep_cnt 
		FROM ' . REPUTATION_TABLE . '
		WHERE reputation_post =' . $row['post_id'] . ' AND reputation_type = 0';
Заменить:

Код: Выделить всё

$reviews_total_items = $db->sql_fetchfield('rev_cnt');
На:

Код: Выделить всё

$reviews_total_items = $db->sql_fetchfield('rep_cnt', 0);
Заменить:

Код: Выделить всё

			$reviews = '<a href="' . append_sid("{$phpbb_root_path}reputation.$phpEx", "mode=reviews&p=" . $row['post_id']) . '" title="' . $user->lang['REVIEWS_HISTORY'] . '">' . $user->lang['REVIEWS'] . '(' . $reviews_total_items . ')' . '</a>';
На:

Код: Выделить всё

			$reviews_plus_items = $db->sql_fetchfield('rep_cnt', 1);
			$reviews_minus_items = $db->sql_fetchfield('rep_cnt', 2);
			$reviews_diff = $reviews_plus_items - $reviews_minus_items;

			$reviews = $user->lang['REVIEWS_MESSAGE_RATING'] . ': <strong class=' . ($reviews_diff > 0 ? '"positive">+' : '"negative">') . $reviews_diff . '</strong> (<a href="' . append_sid("{$phpbb_root_path}reputation.$phpEx", "mode=reviews&p=" . $row['post_id']) . '" title="' . $user->lang['REVIEWS_HISTORY'] . '">' . $user->lang['REVIEWS'] . ": $reviews_total_items</a>)";
После:

Код: Выделить всё

		else
		{
			$reviews = '';
		}
Вставить:

Код: Выделить всё

		$db->sql_freeresult($result);
Как выглядит итоговый результат можно глянуть вот здесь: http://scooterclub.by/nforum/viewtopic. ... 377#p66377

Добавлено спустя 20 минут 1 секунду:
Ага, оказывается, для гостей репутация сообщения не показывается... Точно-точно, видел где-то в коде такое условие.

Тогда вот скрин:
screen.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
boloto
phpBB 1.4.4
Сообщения: 126
Стаж: 16 лет 11 месяцев
Благодарил (а): 57 раз
Поблагодарили: 10 раз

Re: [DEV] Reputation System / Система репутации

Сообщение boloto »

Kot писал(а):привожу здесь свои изменения, которыми я доработал указанный выше аддон, чтобы под постом отображалось не только количество сообщений, но еще и рейтинг самого сообщения.
О! Чётко! Мне такое представление больше нравится, чем что, что придумал я. Сейчас себе внесу. Спасибо.

Отлично. Все работает.
amBX
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 8 месяцев
Благодарил (а): 4 раза

Re: [DEV] Reputation System / Система репутации

Сообщение amBX »

Слушайте, может возможно сделать так, если карма -5 то она высвечивалась красным, если карма 0 то обычным цветом, если +5 то зеленым?
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: [DEV] Reputation System / Система репутации

Сообщение FladeX »

На два сообщения выше показано, как это сделать.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
amBX
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 8 месяцев
Благодарил (а): 4 раза

Re: [DEV] Reputation System / Система репутации

Сообщение amBX »

У меня другой стиль(( просильвер
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 21 год 10 месяцев
Поблагодарили: 13 раз

Re: [DEV] Reputation System / Система репутации

Сообщение VVVas »

amBX
Там от стиля то 1 строка меняется — место где выводить. www.htmlbook.ru вам в помощь.
я люблю daft punk | новый sugoi.ru
amBX
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 8 месяцев
Благодарил (а): 4 раза

Re: [DEV] Reputation System / Система репутации

Сообщение amBX »

Что только не делал что только не пробывал, не получается сделать положительную карму зеленым, а отрицательную красным.

Добавлено спустя 6 минут 12 секунд:
VVVas писал(а):amBX
Там от стиля то 1 строка меняется — место где выводить. http://www.htmlbook.ru вам в помощь.
Какая именно? С html дружу я. Мне надо всё попрежднему оставить, только цвет поменять, рейтинг сообщения мне не нужен.

Попробовал сделать так:

Код: Выделить всё

......
	$reputation = ' <strong class=' . ($reviews_diff > 0 ? '"positive">+' : '"negative">') . $reviews_diff . '' . (($user_cache[$poster_id]['reputation'] < 0) ? '&minus;' . abs($user_cache[$poster_id]['reputation']) : $user_cache[$poster_id]['reputation']) . '</strong> ' . $reputation_advanced_text;
	}
	else
	{
		$reputation = '';
	}
	// Reputation END
Репутация отображается большим шрифтом как надо, но цвет не меняет.
ЗЫ: Из приведенного части кода я убрал ссылку на просмотр репутации.
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 17 лет 6 месяцев
Благодарил (а): 17 раз
Поблагодарили: 34 раза

Re: [DEV] Reputation System / Система репутации

Сообщение Kot »

amBX писал(а):Слушайте, может возможно сделать так, если карма -5 то она высвечивалась красным, если карма 0 то обычным цветом, если +5 то зеленым?
А разве в моем коде не так сделано? :)

Обратите внимание на изменение css файла.

Добавлено спустя 1 минуту 5 секунд:
Разве что только 0 тоже зеленым показывается, не заморачивался насчет "обычного" цвета.
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 21 год 10 месяцев
Поблагодарили: 13 раз

Re: [DEV] Reputation System / Система репутации

Сообщение VVVas »

amBX писал(а):С html дружу я.
Судя по отсутствию результата надо подружиться с CSS или улучшить дружбу с HTML.
я люблю daft punk | новый sugoi.ru

Вернуться в «Бета-версии модов для phpBB 3.0.x»