Таких, как «Флуд», например
Писалось скорее от желания поближе узнать движок форума, нежели написать какой-то мод.
1.
Для начала открываем файл setforums.php, находим функцию addforum() и в ней строку
CODE:
$button = $lang['Forum_create'];
сразу после неё пишем
CODE:
/*USER COUNTER FREEZE*/
$cfreeze_on='';
$cfreeze_off='checked="checked"';
/*USER COUNTER FREEZE*/
$cfreeze_on='';
$cfreeze_off='checked="checked"';
/*USER COUNTER FREEZE*/
2.
Далее ищем функцию createforum() в ней, после строки
CODE:
$allforums[$newforumid]['icon'] = $vars['forumgraphic'];
вставляем
CODE:
/*USER COUNTER FREEZE*/
$allforums[$newforumid]['cfreeze'] = $vars['cfreeze'] == '1') ? true : false;
/*USER COUNTER FREEZE*/
$allforums[$newforumid]['cfreeze'] = $vars['cfreeze'] == '1') ? true : false;
/*USER COUNTER FREEZE*/
3.
Дальше беремся за функцию editform(), в которой после строки
CODE:
$access_no = ($allforums[$inforum]['status'] == 'no') ? 'selected' : '';
вставляем
CODE:
/*USER COUNTER FREEZE*/
$cfreeze_on = ( $allforums[$inforum]['cfreeze'] ) ? 'checked="checked"' : '';
$cfreeze_off = ( !$allforums[$inforum]['cfreeze'] ) ? 'checked="checked"' : '';
/*USER COUNTER FREEZE*/
$cfreeze_on = ( $allforums[$inforum]['cfreeze'] ) ? 'checked="checked"' : '';
$cfreeze_off = ( !$allforums[$inforum]['cfreeze'] ) ? 'checked="checked"' : '';
/*USER COUNTER FREEZE*/
4.
Ищем функцию doedit(), в которой после
CODE:
$allforums[$inforum]['status'] = $vars['startnewthreads'];
вставляем
CODE:
/*USER COUNTER FREEZE*/
$allforums[$inforum]['cfreeze'] = ($vars['cfreeze'] == '1') ? true : false;
/*USER COUNTER FREEZE*/
$allforums[$inforum]['cfreeze'] = ($vars['cfreeze'] == '1') ? true : false;
/*USER COUNTER FREEZE*/
5.
Далее открываем файл admin/addforum.tpl и после
CODE:
<tr class="gen">
<td class="row1">$lang[Forum_pic]<br /><span class="gensmall">$lang[Forum_pic_mes]</span></td>
<td class="row2"><input class="post" type="text" maxlength="255" size="40" name="forumgraphic" value="$forumgraphic" /></td>
</tr>
<td class="row1">$lang[Forum_pic]<br /><span class="gensmall">$lang[Forum_pic_mes]</span></td>
<td class="row2"><input class="post" type="text" maxlength="255" size="40" name="forumgraphic" value="$forumgraphic" /></td>
</tr>
вставляем
CODE:
<!-- USER COUNTER FREEZE -->
<tr class="gen">
<td class="row1">Заморозить счетчик сообщений пользователей в этом форуме</td>
<td class="row2"><input type="radio" name="cfreeze" value="1" $cfreeze_on/> $lang[yes] <input type="radio" name="cfreeze" value="0" $cfreeze_off /> $lang[no]</td>
</tr>
<!-- USER COUNTER FREEZE -->
<tr class="gen">
<td class="row1">Заморозить счетчик сообщений пользователей в этом форуме</td>
<td class="row2"><input type="radio" name="cfreeze" value="1" $cfreeze_on/> $lang[yes] <input type="radio" name="cfreeze" value="0" $cfreeze_off /> $lang[no]</td>
</tr>
<!-- USER COUNTER FREEZE -->
6.
Открываем файл post.php и перед всеми строками
CODE:
$curuser['posts']++;
вставляем строку
CODE:
/*USER COUNTER FREEZE*/
if (!$allforums[$inforum]['cfreeze'])
/*USER COUNTER FREEZE*/
if (!$allforums[$inforum]['cfreeze'])
/*USER COUNTER FREEZE*/
7.
Открываем файл postings.php и после
CODE:
access_log($exbb['member'].' - удалил сообщение из темы - '.$list[$intopic]['name'].' - в форуме '.$forum[$inforum]['name']);
вставляем
CODE:
/*USER COUNTER FREEZE*/
if ($forum[$inforum]['cfreeze']) $cfreeze=true; else $cfreeze=false;
/*USER COUNTER FREEZE*/
if ($forum[$inforum]['cfreeze']) $cfreeze=true; else $cfreeze=false;
/*USER COUNTER FREEZE*/
8.
в том же файле меняем
CODE:
if ($user['posts'] > 0) $user['posts']--;
на
CODE:
if ($user['posts'] > 0 && !$cfreeze ) $user['posts']--; unset($cfreeze);
Вот вообщем-то и все.
ps. единственное, что следует иметь ввиду, это то что в эмуляции посика всех сообщений (в профиле пользователей) незащитанные таким образом сообщения все-таки будут отображаться. Я намерянно не стал это исправлять