Strict Standards: Resource ID#29 used as offset, casting to integer (29) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#31 used as offset, casting to integer (31) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#32 used as offset, casting to integer (32) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Заморозка счетчика сообщений пользователя
ТвойWeb » » Моды, хаки, скины и дополнения » Заморозка счетчика сообщений пользователя

Страниц (1): [1]
 

1. SKIF - 04 Мая, 2006 - 09:59:51 - перейти к сообщению
Появилась необходимость в том, чтобы заморозить счетчик сообщений пользователей в определенных форумах.

Таких, как «Флуд», например


Писалось скорее от желания поближе узнать движок форума, нежели написать какой-то мод.

1.
Для начала открываем файл setforums.php, находим функцию addforum() и в ней строку
CODE:
$button = $lang['Forum_create'];

сразу после неё пишем
CODE:
/*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*/

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*/

4.
Ищем функцию doedit(), в которой после
CODE:
$allforums[$inforum]['status'] = $vars['startnewthreads'];

вставляем
CODE:
/*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>


вставляем

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 -->

6.
Открываем файл post.php и перед всеми строками
CODE:
$curuser['posts']++;

вставляем строку
CODE:
/*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*/

8.
в том же файле меняем
CODE:
if ($user['posts'] > 0) $user['posts']--;

на
CODE:
if ($user['posts'] > 0 && !$cfreeze ) $user['posts']--; unset($cfreeze);



Вот вообщем-то и все.

ps. единственное, что следует иметь ввиду, это то что в эмуляции посика всех сообщений (в профиле пользователей) незащитанные таким образом сообщения все-таки будут отображаться. Я намерянно не стал это исправлять
2. Vovich - 26 Мая, 2006 - 04:31:25 - перейти к сообщению
SKIF пишет:

$allforums[$inforum]['cfreeze'] = ($vars['cfreeze'] == '1'Подмигивание ? true : false;


без
CODE:
)
Закатив глазки

Если добавлять даный хак и в Фулл Модс то с тэгом hide

п.с.
Учитываются сообщения оставленые до установки хака (в "замороженной" теме) - ещё один плюс к интеграции фичи изначально в движок.
3. Vovich - 29 Мая, 2006 - 05:17:21 - перейти к сообщению
SKIF пишет:
это то что в эмуляции посика всех сообщений (в профиле пользователей) незащитанные таким образом сообщения все-таки будут отображаться. Я намерянно не стал это исправлять


А как сделать? Когда идут сообщения на форуме (вот как сейчас) всё ок. Сообщения замороженные не учитываются... Но если даже удаляешь темы из форума - в профиле они учитываются
4. Леголегс - 29 Мая, 2006 - 10:35:47 - перейти к сообщению
Vovich пишет:
А как сделать?
Имхо, забейте. Может человек только во флуде сидит, пусть тамошние его мессаги отображаются. И так всё хорошо.
SKIF, Круто
5. Vovich - 30 Мая, 2006 - 02:13:53 - перейти к сообщению
Леголегс пишет:
Vovich пишет:
А как сделать?
Имхо, забейте. Может человек только во флуде сидит, пусть тамошние его мессаги отображаются. И так всё хорошо.
SKIF, Круто


Не в том дело.... Те сообщения уже удалены но всё равно отображаются...

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0369]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33