Перейти к контенту

PostWarn v. 1.2 beta


Garret

Рекомендуемые сообщения

  • 3 недели спустя...
  • Ответы 91
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

А этот мод возможно чуть подправить для версии IPB 1.3 Практически все есть, только при установках в адмике ссылается на ad_array.php которого нет.
Ссылка на комментарий
Поделиться на других сайтах

Этот мод не дописывается и не поддерживается уже.

Это в смысле не поддерживается для IPB 1.3 ?

А есть ли что-то аналогичное для IPB 1.3 ?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Продолжение этого мода Advanced warn для IPB 2.0.x доступно здесь

http://www.proger.in.ua/index.php?showtopic=337

 

Для IPB 2.1.x мод будет через день.

Ссылка на комментарий
Поделиться на других сайтах

Продолжение этого мода Advanced warn для IPB 2.0.x доступно здесь

http://www.proger.in.ua/index.php?showtopic=337

 

Для IPB 2.1.x мод будет через день.

 

 

Решена ли там проблема с каскадным выводом сообщений в теме?

А если у меня нет никакого желания регистрироваться на форуме и писать 10 сообщений!

Или это теперь метод привлечения посетителей?

Почему мод не выложить например сюда, тут его протестируют значительно большее кол-во людей!

Ссылка на комментарий
Поделиться на других сайтах

Решена ли там проблема с каскадным выводом сообщений в теме?
Да

 

А если у меня нет никакого желания регистрироваться на форуме и писать 10 сообщений!
Никто не заставляет.

 

Или это теперь метод привлечения посетителей?
Да

 

Почему мод не выложить например сюда, тут его протестируют значительно большее кол-во людей!
Я что искал тестеров?
Ссылка на комментарий
Поделиться на других сайтах

Я что искал тестеров?

 

ADD `warned_by` VARCHAR(30) NOT NULL; - а как быть с никами большей длины, чем 30 символов, например такими Администрация форума Proger.in.ua? В исходниках IPB на поле name в таблице members по-моему отводится 255 символов.

 

Мод хороший, но на каждый хороший мод найдется хороший баг! :D (Извини заранее за то, что докапываюсь до мелочей, но тестеры всегда нужны, хотя в данном случае они отпишутся на proger.in.ua).

Ссылка на комментарий
Поделиться на других сайтах

Ну если администратор думает что у него есть пользователи с таким количеством символов в нике(честно говоря никогда не встречал), то поставит побольше :D
Ссылка на комментарий
Поделиться на других сайтах

Еще немного о мелочах!

 

if ($warn_level > 10) :D

 

по-моему чтобы управлять максимальным числом предупреждений (у меня на форуме их 20) лучше сделать так

 

if ( $warn_level > $ibforums->vars['warn_max'] )

 

и искать в коде надо не if ( $warn_level < 1 ), а if ( $warn_level < intval($ibforums->vars['warn_min']) )

 

(вообще эту часть кода в warn.php я еще покопаю поточнее, что-то меня терзают смутные сомнения)

Ссылка на комментарий
Поделиться на других сайтах

Блин ты такой умный, чего сам моды не пишешь?

 

if ( $warn_level > $ibforums->vars['warn_max'] )
Как пожелаешь.

 

и искать в коде надо не if ( $warn_level < 1 ), а if ( $warn_level < intval($ibforums->vars['warn_min']) )
Что у тебя за версия? У меня было именно так.
Ссылка на комментарий
Поделиться на других сайтах

Едем дальше или как? Как я и говорил, что меня терзали сомнения по этой части кода и вот вердикт!

 

При простом изменении рейтинга пользователя, даже если я не выбираю никакую из причин то подпись все равно заменяется и ставится ризон: - длительность 1 день и мой ник!

 

А это не гут, я бы хотел чтобы замена подписи предупреждением работала только тогда, когда указана причина или выбрана из списка! Это получается что каждое изменение рейтинга будет сопровождаться заменой подписи на 1 день?

 

Дальше следующая фича! Юзер не отправляется в бан как заложено в конструкции $DB->do_update( 'members', array ( 'mgroup' => 5 ), "id={$this->warn_member['id']}" );

после достижения максимума заложенного на форуме скорее всего из-за ниже следующей конструкции от IPB

 

DB->do_update( 'members', array (

'mod_posts' => $mod_queue,

'restrict_post' => $restrict_post,

'temp_ban' => $susp,

'warn_level' => $warn_level,

'warn_lastwarn' => time(),

) , "id={$this->warn_member['id']}" );

 

В инструкции слов о модифицировании этой части кода нет, хотя если юзер не уходит в бан это не страшно, страшнее первое, замена подписи в любом случае!

 

Надо срочно добавить условие в warn.php что если reason не указана, то не ставить 1 день замены подписи.

 

Если логика заложенная в моде была следующая, что при любом изменении рейтинга пользователя ставить замену подписи, то позвольте заметить, что это не правильная логика. Иногда приходится менять рейтинг, отправляя при этом ПМ и записывая событие в логе предупреждений, но блокировка подписи - это отдельная мера, так сказать опционально прикладываемая к управлению рейтингом!

 

 

У себя я пока пофиксил так, просто не стал модифицировать skin_mod.php и warn.php, чтобы не давать на откуп модераторам данную опцию временно.

 

Отдельное спасибо за пофиксенный каскадный вид форума ибо ждал только этого!

Ссылка на комментарий
Поделиться на других сайтах

А почему в продвинутой версии мода отсутствует ad_postwarn.php или она не подразумевает управление предупреждениями из админской панели?

 

Вобщем тут тоже нестыковка:

в старой инструкции

ALTER TABLE `ibf_member_extra` 
ADD `warntext` TEXT NOT NULL ,
ADD `set_warn` FLOAT DEFAULT '0' NOT NULL,
ADD `warn_exp` INT DEFAULT '0' NOT NULL;

в новой инструкции

ALTER TABLE `ibf_member_extra` 
ADD `warntext` TEXT NOT NULL ,
ADD `set_warn` FLOAT DEFAULT '0' NOT NULL,
ADD `warn_exp` INT DEFAULT '0' NOT NULL,
ADD `warned_by` VARCHAR(30) NOT NULL;

Анализируя ad_postwarn.php мы увидим, что добавленное из админки предупреждение не будет полноценным, в нем не будет произведена запись в поле warned_by, таким образом оно останется анонимным.

 

К новому моду, при сохранении возможностей старой версии (работа через админку), необходимо сделать обновленный ad_postwarn.php, который будет уметь производить запись в warned_by!

 

Основные моменты которые надо подправить в ad_postwarn.php чтобы научить его работать с warned_by (cделать аттач я тут не могу). Кому надо сообразит по приведенным кусочкам кода, файл маленький и там все просто.

 

case 'pw_add':
$this->pw_add(intval($ibforums->input['id']), $ibforums->input['warntext'], $ibforums->input['dl'], $ibforums->input['name'], $ibforums->input['templ_warn'], $ibforums->input['addminn']);

 

 <tr>
<td width='30%' class='tdrow1' align='center'><b>Длительность(дней)</b></td>
<td width='70%' class='tdrow1' align='left'>
<input type=text size=5 maxlength=3 name='dl' class='realbutton'>
</tr>
<tr>
<td width='30%' class='tdrow1' align='center'><b>Кто предупредил?</b></td>
<td width='70%' class='tdrow1' align='left'>
<input type=text size=41 maxlength=32 name='addminn' class='realbutton'>
</tr>

 

maxlenght=32 (поставить по вкусу)

 

 $ar['set_warn'] = 0;
$ar['warntext'] = '';
$ar['warn_exp'] = 0;
$ar['warned_by'] = '';

 

$ar['warn_exp'] = time() + 60*60*24*$dl;
$ar['warned_by'] = $addminn;

$DB->do_update( 'member_extra', $ar, 'id='.$id );
$ibforums->main_msg = "Предупреждение добавлено!";
}
elseif (!empty($name))
{
$ar['set_warn'] = 1;

if (!empty($warn)) $ar['warntext'] = $warn;
else $ar['warntext'] = $temp_warn;

$ar['warn_exp'] = time() + 60*60*24*$dl;
$ar['warned_by'] = $addminn;

Аналогично надо в postwarn.php добавить очистку warned_by при снятии предупреждения после выполнения задачи, хотя это не так критично и форум от одного не очищенного поля не пострадает, но давайте уже соблюдать чистоту и убирать за собой. :D

 $ar['set_warn'] = 0;
$ar['warntext'] = '';
$ar['warn_exp'] = 0;
$ar['warned_by'] = '';

Сделано кустарно за пару минут на коленке, но работает! Имя администратора надо вводить ручками, но я думаю что у форумов не много админов и они сами разберутся как юзать мод и что там писать. К тому же очень удобно, можно вписать "Коллектив администраторов форума" или что-то более угрожающее! Можно еще немного подумать и сделать подстановку ника админа автоматически (хотя зачем это админу, он и так в теме), но вот с модераторами надо быть аккуратнее, они в массе своей обычные юзеры и любые недоработки просачивающиеся в модераторскую панель становятся достоянием форума!

Ссылка на комментарий
Поделиться на других сайтах

При простом изменении рейтинга пользователя, даже если я не выбираю никакую из причин то подпись все равно заменяется и ставится ризон: - длительность 1 день и мой ник!
Да, ты хочешь чтобы подпись можно было ставить выборочно? Учту пожелание.

 

Юзер не отправляется в бан как заложено в конструкции
Да он просто отправляется в группу забаненых. Это и означает "полный бан".

 

Юзер не отправляется в бан как заложено в конструкции
Что за старая инструкция?

 

Ты понимаешь что данный мод в теме которого мы пишем и Advanced warn это разные вещи? Есть пожелания, пиши в соответствующей теме. Если надо, будет возможность изменять предупреждение через админку.

 

Больше в теме отписываться не буду.

Ссылка на комментарий
Поделиться на других сайтах

Да, ты хочешь чтобы подпись можно было ставить выборочно? Учту пожелание.

На мой взгляд это намного логичнее! А то так глядишь полфорума будет сидеть с измененными подписями.

 

Да он просто отправляется в группу забаненых. Это и означает "полный бан".

Ну, если бы так происходило, то я наверняка бы тут не писал об этом!

 

Относительно фразы о том, что это другой мод, тебе как разработчику виднее, но лучше бы сделать это одним нормальным многофункциональным модом с админской и модераторской панелями, а не кучей разбросанных начинаний.

 

(Сегодня передам мод моим программерам, чтобы дописали (сам-то я в коде не очень) о результатах отпишу на proger.in.ua)

Ссылка на комментарий
Поделиться на других сайтах

Докладаю: программеры дописали мод, сделали его так сказать заточенным под выполнение боевых задач, если нужны советы, то обращайтесь!
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.