Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Karma Hack или Advanced Karma Hack?

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

ребят, а кто-нибудь может нарисовать кнопочку карма для subSilver, а то я ее хочу засунуть в один ряд с profile, email и pm, чтобы посолиднее смотрелось и было понятно куда лезть

Добавлено спустя 14 секунд:

:roll:
DanZer
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 5 месяцев

Сообщение DanZer »

2 Nome
Скачал, посмотрел... Или я чего-то не понимаю, или в моде есть просто детские ошибки:
1) вместо templates/subSilver/admin/board_config_body.tpl EasyMod-у почему-то приказано искать templates/subSilver/admin/board_config.tpl. Естественно, он такового не находит и жестоко обламывается.

2) Вот еще кусок

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

			if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
			{
				$sql = ( $HTTP_GET_VARS['k'] == 'p' ) ? "UPDATE " . USERS_TABLE . " SET karma_plus = karma_plus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'" : "UPDATE " . USERS_TABLE . " SET karma_minus = karma_minus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'" ;

				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not update user karma', '', __LINE__, __FILE__, $sql);
				}

				$db->sql_freeresult($result);
$result здесь - булевская переменная со значением true, а не результат запроса. И как ее должен обрабатывать sql_freeresult, позвольте узнать?

3) Несовместимость с EasyMod 0.3

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

#
#-----[ COPY ]------------------------------------------
#
templates/subSilver/images/icon_plus.gif to forum_root/templates/subSilver/images/icon_plus.gif
templates/subSilver/images/icon_minus.gif to forum_root/templates/subSilver/images/icon_plus.gif
приходится менять на

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

#
#-----[ COPY ]------------------------------------------
#
copy templates/subSilver/images/icon_plus.gif to templates/subSilver/images/icon_plus.gif
copy templates/subSilver/images/icon_minus.gif to templates/subSilver/images/icon_plus.gif
В остальном - претензий нет, искренне благодарен. Была б тут карма - с меня плюсик :)

PS Картинку нарисовать не проблема, только чего-то я не понял - какой смысл в кнопочке для кармы на каждом сообщении?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

DanZer я под EasyMod никогда не оптимизировал, поэтому не знаю, в следующей версии исправлю

насчет первого - лоханулся, уже исправил, причем давно, но еще не заливал, в следующей версии с комментариями, уже все исправлено

насчет второго посмотрю, может что писал уже на сонную голову :)

спасибо :) с меня уже просто море плюсиков :)

кнопка нужна для выхода на комментарии которые были оставлены в отношении данного человека
DanZer
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 5 месяцев

Сообщение DanZer »

Nome
Да завсегда пожалуйста :) Чем смогу - помогать буду.

А насчет кнопочки, гм... Чем-то не устраивает вариант из аддона, где ссылка добавляется в overall_header? Или это для того, чтобы все могли смотреть комменты к чужой карме? Нафиг-нафиг, требую уважения права на личную жизнь :!: Кто кому что и за что поставил - личное дело их двоих, остальным туда лезть нечего.
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

DanZer, да согласен, о праве неприкосновенности личной жизни я как-то не подумал :) но тогда тем проще :)

Добавлено спустя 1 минуту 30 секунд:

пысы, а что в эдоне я жестоко не помню :)
DanZer
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 5 месяцев

Сообщение DanZer »

а что в эдоне я жестоко не помню :)
Вот так оно выглядит. Имхо - простенько и со вкусом.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

ага, я типа того щас и делаю, будет полностью интегрированно, и со следующими модами будет уже идти в упаковке, только у меня все на всплывающих окнах, незнаю на сколько это правильно, но с дизайном явно меньше заморочек, и еще про 1 новый комментарий, я еще пока не сделал фишку...в процессе :)

а так хотел спросить, надо ли сделать опцию, которая полностью отключает всю карму, т.е. Karma Mod On/Off
DanZer
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 5 месяцев

Сообщение DanZer »

Имхо, смысла большого нет, хотя сделать и несложно. Если только для галочки, "шоб було"...

Попутно вопрос - зачем вот это надо? Имхо, тоже штука бесполезная.

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

$lang['Lag_Karmer'] = 'Lag the person who gives karma points';
$lang['Lag_Karmer_explain'] = 'Give time lag to a person who gives karma points. If set to no the person who receives the points will be lagged';
Добавлено спустя 1 минуту 13 секунд:

Да, чтоб велосипед не изобретать (я про дизайн) - глянь аддон.
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

да я уже почти доизобрел...такчто будет свой уникальный :)
DanZer писал(а):Попутно вопрос - зачем вот это надо? Имхо, тоже штука бесполезная.
Код:
$lang['Lag_Karmer'] = 'Lag the person who gives karma points';
$lang['Lag_Karmer_explain'] = 'Give time lag to a person who gives karma points. If set to no the person who receives the points will be lagged';
меня в свое время кто-то просил, поэтому сделал, есть и есть, от этого ни тепло, ни холодно...галочку он офф наверно сделаю :) чтоб было :) вдруг понадобится комуто :)
OldMike
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 2 месяца

Сообщение OldMike »

Приветствую, господа!
Подскажите, плиз, по такому вопросу. Взял последнюю версию Advanced Karma Mod от Nome... Вроде все нормально работает, пока не щелкнешь на плюс/минус, страничка при этом обновляется, НО в самом верху страницы выскакивают ошибки обращения к MySQL и невозможности послать заголовок... Поставил версию с исправлениями от DanZer, при этом таких ошибок не выдается, НО появилась другая проблемка. После щелчка на плюс/минус форум выдает "Темы, которую вы запросили, не существует." В строке адреса "forum/viewtopic.php?t=0&start=0#345", то есть t всегда равна нулю, соответственно и $topic_id

Я глубоко не копался, но похоже, что проблема именно в этом скрипте
версия Nome

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

//
// Advanced Karma Mod
// 
if ( $userdata['session_logged_in'] && isset($HTTP_GET_VARS['k']) && isset($HTTP_GET_VARS[POST_USERS_URL]) )
{
	if ( $HTTP_GET_VARS['k'] == 'p' || $HTTP_GET_VARS['k'] == 'm' )
	{
		if ( $userdata['user_posts'] >= $board_config['min_post_karma'] || ( $board_config['admin_karma'] == 1 && $userdata['user_level'] == ADMIN ) )
		{
			$karma_time = $userdata['karma_time'];

			if ( $board_config['lag_karmer'] == 0 )
			{
				$sql = "SELECT karma_time FROM " . USERS_TABLE . " WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'";
				if ($result = $db->sql_query($sql))
				{
					while ($row = $db->sql_fetchrow($result))
					{
						$db->sql_freeresult($result);
						$karma_time = $row['karma_time'];
					}	
				}
				$db->sql_freeresult($result); 
 			}

			if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
			{
				$sql = ( $HTTP_GET_VARS['k'] == 'p' ) ? "UPDATE " . USERS_TABLE . " SET karma_plus = karma_plus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'" : "UPDATE " . USERS_TABLE . " SET karma_minus = karma_minus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'" ;

				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not update user karma', '', __LINE__, __FILE__, $sql);
				}

				$db->sql_freeresult($result);

				$sql = ( $board_config['lag_karmer'] == 1 ) ? "UPDATE " . USERS_TABLE . " SET karma_time = '" . time() . "' WHERE user_id = '" . $userdata['user_id'] . "'" : "UPDATE " . USERS_TABLE . " SET karma_time = '" . time() . "' WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'";

				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not update user karma time', '', __LINE__, __FILE__, $sql);
				}

				$db->sql_freeresult($result);
				$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $HTTP_GET_VARS[POST_POST_URL] . "&start=" . $start) . "#" . $HTTP_GET_VARS[POST_POST_URL];
				header("Location: " . $temp_url);
			}
		}
	}
}
версия DanZer

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

//
// Advanced Karma Mod
// 
if ( $userdata['session_logged_in'] && isset($HTTP_GET_VARS['k']) && isset($HTTP_GET_VARS[POST_USERS_URL]) )
{
	if ( $HTTP_GET_VARS['k'] == 'p' || $HTTP_GET_VARS['k'] == 'm' )
	{
		if ( $userdata['user_posts'] >= $board_config['min_post_karma'] || ( $board_config['admin_karma'] == 1 && $userdata['user_level'] == ADMIN ) )
		{
			$karma_time = $userdata['karma_time'];

			if ( $board_config['lag_karmer'] == 0 )
			{
				$sql = "SELECT karma_time FROM " . USERS_TABLE . " WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'";
				if ($result = $db->sql_query($sql))
				{
					while ($row = $db->sql_fetchrow($result))
					{
						$db->sql_freeresult($result);
						$karma_time = $row['karma_time'];
					}	
				}
				$db->sql_freeresult($result); 
 			}

			if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
			{
				$sql = ( $HTTP_GET_VARS['k'] == 'p' ) ? "UPDATE " . USERS_TABLE . " SET karma_plus = karma_plus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'" : "UPDATE " . USERS_TABLE . " SET karma_minus = karma_minus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'" ;

				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not update user karma', '', __LINE__, __FILE__, $sql);
				}

				$sql = ( $board_config['lag_karmer'] == 1 ) ? "UPDATE " . USERS_TABLE . " SET karma_time = '" . time() . "' WHERE user_id = '" . $userdata['user_id'] . "'" : "UPDATE " . USERS_TABLE . " SET karma_time = '" . time() . "' WHERE user_id = '" . intval($HTTP_GET_VARS[POST_USERS_URL]) . "'";

				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not update user karma time', '', __LINE__, __FILE__, $sql);
				}

				$temp_url = append_sid("viewtopic.$phpEx?t=" . $topic_id . "&start=" . $start . '#'  . $post_id);
				header("Location: " . $temp_url);
			}
		}
	}
}
P.S. Уверен (ну, почти :lol: ), что мод поставил правильно. Подскажите где копать???
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

хм, DanZer не прав при форматировании $temp_url для редиректа

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

$temp_url = append_sid("viewtopic.$phpEx?t=" . $topic_id . "&start=" . $start . '#'  . $post_id); 
$topic_id вообще ниразу не обязательно передается в скрипт, попробуй мой воткнуть

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

$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $HTTP_GET_VARS[POST_POST_URL] . "&start=" . $start) . "#" . $HTTP_GET_VARS[POST_POST_URL]; 
и что это за скьюл ошибка, поподробнее плз!
OldMike
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 2 месяца

Сообщение OldMike »

YES!!! Строку формирования временного урла заменил в скрипте с поправками DanZer и все заработало как часы :) Не поленился потом заменить весь скрипт изначальным от Nome - опять ошибки, ну собсно варнинги, вот такие:

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

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in z:\home\123\www\forum\db\mysql4.php on line 318

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in z:\home\123\www\forum\db\mysql4.php on line 318

Warning: Cannot modify header information - headers already sent by (output started at z:\home\123\www\forum\db\mysql4.php:318) in z:\home\123\www\forum\viewtopic.php on line 242

Warning: Cannot modify header information - headers already sent by (output started at z:\home\123\www\forum\db\mysql4.php:318) in z:\home\123\www\forum\viewtopic.php on line 612

Warning: Cannot modify header information - headers already sent by (output started at z:\home\123\www\forum\db\mysql4.php:318) in z:\home\123\www\forum\includes\page_header.php on line 483

Warning: Cannot modify header information - headers already sent by (output started at z:\home\123\www\forum\db\mysql4.php:318) in z:\home\123\www\forum\includes\page_header.php on line 485

Warning: Cannot modify header information - headers already sent by (output started at z:\home\123\www\forum\db\mysql4.php:318) in z:\home\123\www\forum\includes\page_header.php on line 486
Надеюсь эта инфа поможет пофиксить баги! Похоже насчет ошибки с freeresult он был прав...
Nome, как скоро можем ожидать нового пака/версии?
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

да насчет фри резалта он видимо прав, интересно почему у меня это не выводилось в ошибки..а нового пака можно было ждать уже сегодня, но ввиду того что я пришел к мысли что всеже нужно все еще раз потестить, то наверно завтра, хотя если я никуда не пойду то возможно сеня ночью
OldMike
phpBB 1.2.1
Сообщения: 21
Стаж: 17 лет 2 месяца

Сообщение OldMike »

Ну, все-таки варнинг это не ошибка, если строго говорить :lol: может варнинги были просто отключены...
поставил чуть позже на исправленнй скрипт карма инфу - все встало без проблем, и в целом получилась очень приятная штучка :D

Всем спасибо!!!
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 19 лет 2 месяца

Сообщение Nome »

слушай, DanZer, у меня такой вопрос а нафига вообще я стал делать комменты? :)))

Вернуться в «Поддержка модов для phpBB 2.0.x»