[BETA] Democracy MOD 0.2.1 (reputation + warnings + reports)
-
- phpBB Guru
- Сообщения: 7522
- Стаж: 21 год 1 месяц
- Откуда: СССР
- Благодарил (а): 4 раза
- Поблагодарили: 94 раза
Siava, SoftCreator
А по мозгам?
А по мозгам?
Правила конференции (30.05.2011) | Общие ошибки новичков (07.11.2005) | Шаблон запроса | FAQ (phpBB 3.0.x) / Мини [FAQ] по phpBB 3.1.x
Последние и единственно актуальные на сегодня версии - 3.1.12 и 3.2.2!
Небесплатно накачаю ваш VPS/VDS/DS стероидами и заставлю ваши CMS летать =)
phpBB Guru blog | Тестируем phpBB 3.3 здесь! |
Последние и единственно актуальные на сегодня версии - 3.1.12 и 3.2.2!
Небесплатно накачаю ваш VPS/VDS/DS стероидами и заставлю ваши CMS летать =)
phpBB Guru blog | Тестируем phpBB 3.3 здесь! |
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 4 месяца
- Откуда: Челябинск
-
- phpBB 1.0.0
- Сообщения: 9
- Стаж: 19 лет 6 месяцев
- Откуда: Павлодар, Казахстан
Из описания в файле MOD`а скопировал соответственно 20 файлов, и внес исправления в 15-ти файлах… Ребят, ну не настолько я тормоз как можно себе позволить… Все-таки я не просто так спрашиваю. Просто надо для форума компании, в которой я работаю, такой мод, это не просто форум на домашней страничке…Поэтому серьезно спрашиваю. Простите, если это оффтоп, но нервы-то не железные…
Файл admin_democracy.php присутствует…
Файл admin_democracy.php присутствует…
Никто не проиграл, пока никто не выиграл...
-
- phpBB 2.0.2
- Сообщения: 334
- Стаж: 19 лет 4 месяца
- Благодарил (а): 15 раз
Ребята, утановил этот мод у себя - отличный мод. Все прекрасно работает! Однако, как Вы знаете, нет предела совершенству.
Не подскажете, где нужно внести изменения, чтобы первоначальная репутация была не ноль, а, к примеру, "5". И еще, хотелось бы увидеть такую добавочку к этому моду:
Если у участника репутация становится выше "50", то этот участник может уже не единичку прибавить к репутации, а двойку. Если репутация выше сотни, то чтоб уже мог тройку или четверку прибавить к репутации другого участника. Можно это число сделать кратным, как на форуме forum.searchengines.ru. Правда там не phpbb, но это не важно, так как у меня phpbb, которым я доволен, нужно только немного дорабоать. :-)
Не подскажете, где нужно внести изменения, чтобы первоначальная репутация была не ноль, а, к примеру, "5". И еще, хотелось бы увидеть такую добавочку к этому моду:
Если у участника репутация становится выше "50", то этот участник может уже не единичку прибавить к репутации, а двойку. Если репутация выше сотни, то чтоб уже мог тройку или четверку прибавить к репутации другого участника. Можно это число сделать кратным, как на форуме forum.searchengines.ru. Правда там не phpbb, но это не важно, так как у меня phpbb, которым я доволен, нужно только немного дорабоать. :-)
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 4 месяца
- Откуда: Челябинск
Начальная репутация - это очень легко. Надо выполнить запрос (число 5 в обеих строках - начальная репутация):
А вот масштабирование возможности менять репутацию - это серьезно, надо обсудить с автором.
Код: Выделить всё
ALTER TABLE phpbb_users ALTER reputation SET DEFAULT 5;
UPDATE phpbb_users SET reputation = 5 WHERE user_id <> -1;
-
- phpBB 2.0.2
- Сообщения: 334
- Стаж: 19 лет 4 месяца
- Благодарил (а): 15 раз
Спасибо за SQL код!
Я же думал, что начальная репутация где-то в php проставляется, наподобие мода, который запрещает прописывание адреса сайта в профиле, пока не наберется нужное количество сообщений. У меня, например, пока пользователь пять сообщений не напишет, - он не может прописать адрес своего сайта в профиле. Начальная установка количества необходимых сообщений прописывается в php. Я вот и думал, что здесь тоже в php, а оказывается в SQL! Приятно слышать, действительно легко.
Масштабирование - это очень нужная вещь, ведь новички будут стремиться получить положительный отзыв именно от старичков и одновременно не смогут серьезно заминусовать какой-то нормальный пост, а вот старички получают много приятных возможностей!
Нужно подумать как это сделать!
Я же думал, что начальная репутация где-то в php проставляется, наподобие мода, который запрещает прописывание адреса сайта в профиле, пока не наберется нужное количество сообщений. У меня, например, пока пользователь пять сообщений не напишет, - он не может прописать адрес своего сайта в профиле. Начальная установка количества необходимых сообщений прописывается в php. Я вот и думал, что здесь тоже в php, а оказывается в SQL! Приятно слышать, действительно легко.
Масштабирование - это очень нужная вещь, ведь новички будут стремиться получить положительный отзыв именно от старичков и одновременно не смогут серьезно заминусовать какой-то нормальный пост, а вот старички получают много приятных возможностей!
Нужно подумать как это сделать!
-
- phpBB 1.0.0
- Сообщения: 9
- Стаж: 19 лет 6 месяцев
- Откуда: Павлодар, Казахстан
Такой вопрос: когда заходишь в профиль выдается ошибка
Подскажите пожалуйста в чем проблема?
Код: Выделить всё
Parse error: parse error, unexpected T_ELSE in /home/uborevich/www.g-net.forum/profile.php on line 108
Никто не проиграл, пока никто не выиграл...
-
- Former team member
- Сообщения: 3942
- Стаж: 19 лет 11 месяцев
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
Проблема в руках, которые устанавливали этот мод
Добавлено спустя 9 минут 35 секунд:
возможно типа таких, хоть это и другой мод
Добавлено спустя 9 минут 35 секунд:
возможно типа таких, хоть это и другой мод
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
- phpBB 1.0.0
- Сообщения: 9
- Стаж: 19 лет 6 месяцев
- Откуда: Павлодар, Казахстан
-
- phpBB 2.0.5
- Сообщения: 490
- Стаж: 20 лет 5 месяцев
- Откуда: Санкт-Петербург
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 19 лет
Код: Выделить всё
SQL
CREATE TABLE `phpbb_reputation` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`modification` tinyint(1) NOT NULL default '0',
`user_id` mediumint(8) NOT NULL default '0',
`voter_id` mediumint(8) NOT NULL default '0',
`post_id` mediumint(8) NOT NULL default '0',
`forum_id` smallint(5) unsigned NOT NULL default '0',
`poster_ip` varchar(8) NOT NULL default '',
`date` int(11) default NULL,
`expire` int(11) default NULL,
`edit_time` int(11) default NULL,
`edit_count` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `voter_id` (`voter_id`),
KEY `post_id` (`post_id`),
KEY `forum_id` (`forum_id`),
KEY `date` (`date`)
);
CREATE TABLE `phpbb_reputation_text` (
`id` mediumint(8) unsigned NOT NULL default '0',
`text` text,
`bbcode_uid` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
);
CREATE TABLE `phpbb_post_reports` (
`report_id` mediumint(8) NOT NULL auto_increment,
`post_id` mediumint(8) NOT NULL default '0',
`review_id` mediumint(8) NOT NULL default '0',
`forum_id` smallint(5) unsigned NOT NULL default '0',
`user_id` mediumint(8) NOT NULL default '0',
`report_time` int(11) NOT NULL default '0',
`reports_num` mediumint(8) NOT NULL default '0',
PRIMARY KEY (`report_id`),
KEY `post_id` (`post_id`),
KEY `review_id` (`review_id`),
KEY `forum_id` (`forum_id`)
);
ALTER TABLE `phpbb_users` ADD `reputation` smallint(8) NOT NULL default '0';
ALTER TABLE `phpbb_users` ADD `warnings` tinyint(4) unsigned NOT NULL default '0';
ALTER TABLE `phpbb_posts` ADD `post_reviews` smallint(8) unsigned NOT NULL default '0';
ALTER TABLE `phpbb_posts` ADD `post_locked` tinyint(1) unsigned NOT NULL default '0';
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES
('reputation_last_check_time', '0'),
('warnings_enabled', '0'),
('reputation_enabled', '0'),
('reputation_mode', '1'),
('reputation_users_can_edit', '0'),
('reputation_users_can_delete', '0'),
('reputation_anonymous_can_view', '0'),
('reputation_enable_reports', '1'),
('reputation_reports_per_page', '20'),
('reputation_reviews_per_page', '20'),
('reputation_moderators_can_ban', '1'),
('reputation_expire_mod_defined', '1'),
('reputation_expire_lower', '1'),
('reputation_expire_upper', '-1'),
('reputation_expire_default', '30'),
('reputation_check_rate', '3600'),
('reputation_delete_expired', '0'),
('reputation_auto_ban', '1'),
('reputation_num_warnings', '2'),
('reputation_check_reports', '1'),
('reputation_reports_color', 'FF0000'),
('reputation_ban_expire', '0'),
('reputation_ban_expire_lower', '0'),
('reputation_ban_expire_upper', '-1'),
('reputation_ban_expire_default', '3');
#
#-----[ OPEN ]------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------
#
$newest_uid = $newest_userdata['user_id'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
//////////democracy///////////////////////////////
//
// Get user(s) with the most reputation points
//
if ( $board_config['reputation_enabled'] )
{
$sql = 'SELECT MAX(reputation) AS maxrep FROM ' . USERS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Couldn\'t retrieve the reputation stats', '', __LINE__, __FILE__, $sql);
}
$reputation_max = $db->sql_fetchrow($result);
if ( $reputation_max['maxrep'] > 0 )
{
$sql = 'SELECT username, user_id, reputation FROM ' . USERS_TABLE . '
WHERE user_id <> ' . ANONYMOUS . '
AND reputation = ' . $reputation_max['maxrep'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Couldn\'t retrieve the reputation stats', '', __LINE__, __FILE__, $sql);
}
$respect_set = $db->sql_fetchrowset($result);
if ( count($respect_set) > 1 )
{
$l_respected_user_s = $lang['reputation_most_respected_users'];
}
else
{
$l_respected_user_s = $lang['reputation_most_respected_user'];
}
for ( $i = 0; $i < count($respect_set); $i++ )
{
$respected_user_link = '<b><a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $respect_set[$i]['user_id']) . '">' . $respect_set[$i]['username'] . '</a></b>';
$s_respected_user_s .= ( $s_respected_user_s != '' ) ? ', ' . $respected_user_link : $respected_user_link;
}
$s_respected_user_s .= '<br />';
}
}
//
// Check for post reports
//
if ( $board_config['reputation_check_reports'] == 1 && ( $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD || $userdata['user_level'] == GLOBAL_MOD || $userdata['user_level'] == MAIN_MOD ) )
{
switch ( $userdata['user_level'] )
{
case ADMIN:
// Select all reports
$from = POST_REPORTS_TABLE . ' r';
$where = '1';
break;
case MOD:
// Select reports from only those forums user can moderate
$from = POST_REPORTS_TABLE . ' r, ' . USER_GROUP_TABLE . ' g, ' . AUTH_ACCESS_TABLE . ' a';
$where = 'a.auth_mod = 1
AND a.forum_id = r.forum_id
AND a.group_id = g.group_id
AND g.user_id = ' . $userdata['user_id'];
break;
}
//
// Get reports count
//
$sql = 'SELECT COUNT(r.report_id) AS num_reports
FROM ' . $from . '
WHERE ' . $where;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not obtain limited reports count information", '', __LINE__, __FILE__, $sql);
}
$total_post_reports = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_reports']) : 0;
}
///////////////////////////////////////////////
#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
#
#-----[ AFTER, ADD ]------------------------------------------
#
///////democracy///////
//
// Make a link to reported posts (for authorized ppl only)
//
if ( $board_config['reputation_enable_reports'] == 1 && ( $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD || $userdata['user_level'] == GLOBAL_MOD || $userdata['user_level'] == MAIN_MOD ) )
{
$link_color = '';
if ( isset($total_post_reports) )
{
$l_reported_posts = $lang['reputation_reported_posts'] . ': ' . ( $total_post_reports == 0 ? '0' : "<b>$total_post_reports</b>" );
if ( $board_config['reputation_reports_color'] != '' && $total_post_reports > 0 )
{
$link_color = ' style="color:#' . $board_config['reputation_reports_color'] . '"';
}
}
else
{
$l_reported_posts = $lang['reputation_view_reported_posts'];
}
$u_reported_posts = '<a href="' . append_sid("post_report.$phpEx?mode=view") . '" class="gensmall"' . $link_color . '>' . $l_reported_posts . '</a><br />';
}
//////////////
#
#-----[ FIND ]------------------------------------------
#
'FORUM_LOCKED_IMG' => $images['forum_locked'],
'L_FORUM' => $lang['Forum'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
////////////////democracy//////////////////////
'RESPECTED_USERS' => $l_respected_user_s . $s_respected_user_s,
'U_VIEW_REPORTED' => $u_reported_posts,
///////////////////////////////////////////
Could not obtain limited reports count information
DEBUG MODE
SQL Error : 1146 Table 'mycity.POST_REPORTS_TABLE' doesn't exist
SELECT COUNT(r.report_id) AS num_reports FROM POST_REPORTS_TABLE r WHERE 1
Line : 154
File : index.php

help pls
inde.php
154==> message_die(GENERAL_ERROR, "Could not obtain limited reports count information", '', __LINE__, __FILE__, $sql);
}
phpmyadmin 2.6.4 pl4
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 4.0.26
MYSQL_MODULE_TYPE external
PHPBB 2.0.19
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 4 месяца
- Откуда: Челябинск
crzy
Ошибка в том, что не определена константа POST_REPORTS_TABLE, в которой должно быть имя таблицы с репортами.
Вы изменили файл constants.php ? В нем присутствует строка?
Ошибка в том, что не определена константа POST_REPORTS_TABLE, в которой должно быть имя таблицы с репортами.
Вы изменили файл constants.php ? В нем присутствует строка
Код: Выделить всё
define('POST_REPORTS_TABLE', $table_prefix.'post_reports');
-
- Former team member
- Сообщения: 3942
- Стаж: 19 лет 11 месяцев
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
Что-то знакомое. Случайно не это
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
- phpBB 1.4.4
- Сообщения: 158
- Стаж: 20 лет 1 месяц
-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Заметил один косячок.. хотя реальной возможности проверить пока нет.
Когда пользователь получает последнюю жёлтую карточку, то отправляется в бан.. так вот со следующим заходом в форум этого пользователя последнее выданное замечание куда-то пропадает и пользователь снова разбанен.
Попробую протестировать на тестовом форуме.
Когда пользователь получает последнюю жёлтую карточку, то отправляется в бан.. так вот со следующим заходом в форум этого пользователя последнее выданное замечание куда-то пропадает и пользователь снова разбанен.
Попробую протестировать на тестовом форуме.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb