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

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

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

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


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

> Описание: как это делал я
SKIF
Отправлено: 04 Мая, 2006 - 09:59:51
Post Id



Advanced Member


Покинул форум
Сообщений всего: 339
Дата рег-ции: Март 2005  
Откуда: nnov

Карма 3




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

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


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

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. единственное, что следует иметь ввиду, это то что в эмуляции посика всех сообщений (в профиле пользователей) незащитанные таким образом сообщения все-таки будут отображаться. Я намерянно не стал это исправлять
 
 Top
Vovich
Отправлено: 26 Мая, 2006 - 04:31:25
Post Id



Full Member


Покинул форум
Сообщений всего: 240
Дата рег-ции: Июль 2005  

Карма 0




SKIF пишет:

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


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

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

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



Full Member


Покинул форум
Сообщений всего: 240
Дата рег-ции: Июль 2005  

Карма 0




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


А как сделать? Когда идут сообщения на форуме (вот как сейчас) всё ок. Сообщения замороженные не учитываются... Но если даже удаляешь темы из форума - в профиле они учитываются
 
 Top
Леголегс Администратор
Отправлено: 29 Мая, 2006 - 10:35:47
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




Vovich пишет:
А как сделать?
Имхо, забейте. Может человек только во флуде сидит, пусть тамошние его мессаги отображаются. И так всё хорошо.
SKIF, Круто
 
 Top
Vovich
Отправлено: 30 Мая, 2006 - 02:13:53
Post Id



Full Member


Покинул форум
Сообщений всего: 240
Дата рег-ции: Июль 2005  

Карма 0




Леголегс пишет:
Vovich пишет:
А как сделать?
Имхо, забейте. Может человек только во флуде сидит, пусть тамошние его мессаги отображаются. И так всё хорошо.
SKIF, Круто


Не в том дело.... Те сообщения уже удалены но всё равно отображаются...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« Моды, хаки, скины и дополнения »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


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

[Script Execution time: 0.0449]     [ 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