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

[BETA] Democracy MOD 0.2.1 (reputation + warnings + reports)

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
dj_maxx
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 9 месяцев

Сообщение dj_maxx »

Даже в самой последней версии мода имеет место проблема с отображением "Наши самые уважаемые пользователи". А именно, я выбрал показывать 3 самых уважаемых пользователя. Сначала всё показывалось нормально, но когда я поставил показывать 5 самых уважаемых пользователей - они стали отображаьтся без сортировки ро репутации, т.е. вторым стал тот кто должен быть 5-м и т.д.
PS: ну и где там order by вставить? ;)
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

Carbofos и ETZel, а когда можно будет ждать кратность репутации?
Аватара пользователя
Carbofos
phpBB 1.4.4
Сообщения: 158
Стаж: 19 лет 2 месяца

Сообщение Carbofos »

dj_maxx
С кодом вроде все нормально... и order by там стоит :roll:

Thanx
Не позже следующего выпуска :)
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

Карбофос, очень надеюсь. Общаясь на форуме оптимизаторов forum.searchengines.ru я бы сказал, что кратность иногда стимулирует опытных оптимизаторов делится секретами, как это ни странно. :) Да и вообще, кратность - мощная вещь. Вроде бы кто за ней гонится из пользователей? Да никто, все взрослые люди. Однако, она несомненно работает на подсознательном уровне.
Аватара пользователя
Carbofos
phpBB 1.4.4
Сообщения: 158
Стаж: 19 лет 2 месяца

Сообщение Carbofos »

dj_maxx
Все-таки баг имел место...
Вот фикс: (ничего, что дифф-ом?)
index.php:

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

 				$reputation = $row['user_reputation'];
 			}
 

-			if ($reputation && ($rep_cache['num_most_respected'] = reputation_user_list('user_reputation >= ' . $reputation, $rep_list)))

+			if ($reputation && ($rep_cache['num_most_respected'] = reputation_user_list('user_reputation >= ' . $reputation . ' ORDER BY user_reputation DESC', $rep_list)))

 			{
 				$rep_cache['most_respected'] = $rep_list;
 			}

@@ -150,7 +150,7 @@

 				$reputation = $row['user_reputation'];
 			}
 

-			if ($reputation && ($rep_cache['num_least_respected'] = reputation_user_list('user_reputation <= ' . $reputation, $rep_list)))

+			if ($reputation && ($rep_cache['num_least_respected'] = reputation_user_list('user_reputation <= ' . $reputation . ' ORDER BY user_reputation ASC', $rep_list)))

 			{
 				$rep_cache['least_respected'] = $rep_list;
 			}
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

А почему в таблице reputation значение по умолчанию меняется с нуля на -1 и у поля forum_id убирается значение unsigned?

`post_id` mediumint(8) NOT NULL default '-1',
`forum_id` smallint(5) NOT NULL default '-1',
Аватара пользователя
Carbofos
phpBB 1.4.4
Сообщения: 158
Стаж: 19 лет 2 месяца

Сообщение Carbofos »

-1 означает что обзор не связан с конкретным постом, или по причине того, что пост был удален, или когда обзор был сделан из профиля юзера (то есть изначально без ссылки на пост).
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

Спасибо.

Еще момент.
Почему forum_id в ключах этой таблицы удаляется, а expire добавляется?
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 4 месяца
Откуда: Челябинск

Сообщение ETZel »

Thanx
Thanx писал(а):А почему в таблице reputation значение по умолчанию меняется с нуля на -1 и у поля forum_id убирается значение unsigned?
post_id = -1, forum_id = -1 => отзыв не за пост (из профиля)
post_id = -1, forum_id != -1 => отзыв на удаленный пост в форуме forum_id
Thanx писал(а):Почему forum_id в ключах этой таблицы удаляется, а expire добавляется?
Очевидно, потому что индекс forum_id не используется,
а индекс expire используется в запросе на определение истекших предупреждений/банов в page_header.php.
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

Данные админки не сохраняются, в чем может быть проблема?

Добавлено спустя 4 минуты 6 секунд:

Ой, извините, это у меня в config все поля с началом "reputation" пропали.

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

Теперь все в порядке. Извините за беспокойство.

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

При настройке posting.php
в файле democracy020.txt написано:

#
#-----[ FIND ]------------------------------------------
#
case 'newtopic':
case 'reply':
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';

#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////////democracy/////
if ( $post_data['poster_id'] != $userdata['user_id'] )
{
$post_data['post_locked'] = ( !empty($HTTP_POST_VARS['lock_post']) ? 1 : 0 );
}
//////////////////////


Могу сказать, что точно не [ BEFORE, ADD ], т.к. нарушается структура switch. Да и пхп сразу выругалось

Parse error: parse error, unexpected T_IF, expecting T_CASE or T_DEFAULT or '}' in /home/avflowe7/public_html/flower/posting.php on line 360

вот здесь:

////////////democracy/////
--->(error) if ( $post_data['poster_id'] != $userdata['user_id'] )
{
$post_data['post_locked'] = ( !empty($HTTP_POST_VARS['lock_post']) ? 1 : 0 );
}
//////////////////////

case 'newtopic':
$redirect = "mode=newtopic&" . POST_FORUM_URL . "=" . $forum_id;
break;
case 'reply':
case 'topicreview':
$redirect = "mode=reply&" . POST_TOPIC_URL . "=" . $topic_id;
break;
case 'quote':
case 'editpost':
$redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id;
break;
}

Добавлено спустя 11 часов 3 минуты 14 секунд:

'reputation_least_respected_user' => 'Наш самый неуважаемый пользователь: ',
'reputation_least_respected_users' => 'Наши самые неуважаемые пользователи: ',

это этичнее переписать так, чтобы не распугивать форумчан:

'reputation_least_respected_user' => 'Пользователь с самой низкой репутацией: ',
'reputation_least_respected_users' => 'Пользователи с самой низкой репутацией: ',
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 4 месяца
Откуда: Челябинск

Сообщение ETZel »

Thanx писал(а):Могу сказать, что точно не [ BEFORE, ADD ], т.к. нарушается структура switch.
Не должна нарушаться, потому что после вставки код выглядит так:

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

		case 'editpost':
////////////democracy/////
			if ( $post_data['poster_id'] != $userdata['user_id'] )
			{
				$post_data['post_locked'] = ( !empty($HTTP_POST_VARS['lock_post']) ? 1 : 0 );
			}
//////////////////////
		case 'newtopic':
		case 'reply':
			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
Вы неправильно сделали FIND, нашли не то место. Надо искать все 3 строки.
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

Вот вырезка из исходника, проверьте!

switch( $mode )
{
case 'newtopic':
$redirect = "mode=newtopic&" . POST_FORUM_URL . "=" . $forum_id;
break;
case 'reply':
case 'topicreview':
$redirect = "mode=reply&" . POST_TOPIC_URL . "=" . $topic_id;
break;
case 'quote':
case 'editpost':
$redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id;
break;
}

и если сделать

#
#-----[ FIND ]------------------------------------------
#
case 'newtopic':
case 'reply':
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';

#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////////democracy/////
if ( $post_data['poster_id'] != $userdata['user_id'] )
{
$post_data['post_locked'] = ( !empty($HTTP_POST_VARS['lock_post']) ? 1 : 0 );
}
//////////////////////

то получится

switch( $mode )
{

////////////democracy/////
if ( $post_data['poster_id'] != $userdata['user_id'] )
{
$post_data['post_locked'] = ( !empty($HTTP_POST_VARS['lock_post']) ? 1 : 0 );
}
//////////////////////

case 'newtopic':
$redirect = "mode=newtopic&" . POST_FORUM_URL . "=" . $forum_id;
break;
case 'reply':
case 'topicreview':
$redirect = "mode=reply&" . POST_TOPIC_URL . "=" . $topic_id;
break;
case 'quote':
case 'editpost':
$redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id;
break;
}

и будет ошибка
Аватара пользователя
Carbofos
phpBB 1.4.4
Сообщения: 158
Стаж: 19 лет 2 месяца

Сообщение Carbofos »

Это не то, вот нужная вырезка :)

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

	//
	// Submit post/vote (newtopic, edit, reply, etc.)
	//
	$return_message = '';
	$return_meta = '';

	switch ( $mode )
	{
		case 'editpost':
		case 'newtopic':
		case 'reply':
			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
			$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
			$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 4 месяца
Благодарил (а): 16 раз

Сообщение Thanx »

Карбофос, спасибо!

А что значит Ваш ник? Сам карбофос, как средство борьбы с насекомыми - инсектицид - давно устарел. Сейчас используют средства с содержанием имидаклоприда при борьбе, например, с корневым мучнистым червецом. :wink:
dj_maxx
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 9 месяцев

Сообщение dj_maxx »

ну не дихлофосом же называться :)

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