Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » убираем многочисленные "Re:" в ПМ

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Убираем многочисленные "Re:" в персональных сообщениях

 
Вам надоели многочисленные "Re:" в названиях ПМ-писем? Вот один из способов как это исправить
Все действия идут в messenger.cgi
 
после строк

Код:
 
$inmsgtitle       = $query -> param('msgtitle');
$inmessage        = $query -> param('message');

вставляем

Код:
 
$renum            = $query -> param('renum');
$retitle          = $query -> param('retitle');

 
в
Код:
elsif ($action eq "reply1") {

строку

Код:
($from, $readstate, $date, $messagetitle, $post) = split(/\|/,$msgtograb);

меняем на

Код:
($from, $readstate, $date, $messagetitle, $post, $renum) = split(/\|/,$msgtograb);

ниже, после

Код:
 
$post =~ s/\<br\>/\n/g;
$post =~ s/\<p\>/\n\n/g;

вставляем

Код:
$renum1 = $renum + 1;

чуть ниже, строки

Код:
 
<td bgcolor=$miscbackone valign=middle><input type=text name="touser" value="$from" size=40></a></td></tr>
            <tr>
            <td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'1107'}</b></font></td>
            <td bgcolor=$miscbackone valign=middle><input type=text name="msgtitle" value="RE:$messagetitle" size=40 maxlength=80></td>
            </tr>
            <tr>
            <td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'1108'}</b></td>
            <td bgcolor=$miscbackone valign=middle><textarea cols=40 rows=6 name="message">\[quote\]$post\[/quote\]\n</textarea></td>
            </tr>

меняем на

Код:
 
<td bgcolor=$miscbackone valign=middle>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=text name="touser" value="$from" size=40></a></td></tr>
            <tr>
            <td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'1107'}</b></font></td>
            <td bgcolor=$miscbackone valign=middle><input type="hidden" name="retitle" value="$messagetitle"><input type="hidden" name="renum" value="$renum"><font face="$font" color=$fontcolormisc size=1>Re[$renum1]:</font><input type=text name="msgtitle" value="$messagetitle" size=40 maxlength=80></td>
            </tr>
            <tr>
            <td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc size=1><b>$ibtxt{'1108'}</b></td>
            <td bgcolor=$miscbackone valign=middle>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea cols=40 rows=6 name="message">\[quote\]$post\[/quote\]\n</textarea></td>
            </tr>
            <td bgcolor=$miscbacktwo colspan=2><font face="$font" color=$fontcolormisc size=1><b>Внимание!</b> Если Вы измените тему письма, то это не будет считаться за ответ и "Re[...]" добавляться не будет!</td>

 
далее, в
Код:
elsif ($action eq "send") {

после строк

Код:
 
$memberfilename = $intouser;
$memberfilename =~ s/ /\_/g;
$currenttime = time;

вставляем

Код:
 
if (($renum eq "")||($retitle ne $inmsgtitle)){$renum = "0";}
else{$renum++;}

чуть ниже строку

Код:
print FILE "$membername|no|$currenttime|$inmsgtitle|$inmessage\n";

меняем на

Код:
print FILE "$membername|no|$currenttime|$inmsgtitle|$inmessage|$renum\n";

 
в
Код:
 elsif ($action eq "inbox") {

строку

Код:
($from, $readstate, $date, $messagetitle, $message) = split(/\|/,$_);

меняем на

Код:
($from, $readstate, $date, $messagetitle, $message, $renum) = split(/\|/,$_);

ниже, это

Код:
<a href="$thisprog?action=read&msg=$count">$messagetitle</a>

меняем на

Код:
 
<a href="$thisprog?action=read&msg=$count">~;
                    if ($renum != 0){
                    $output .= qq~Re[$renum]:~;}
                    $output .= qq~$messagetitle</a>

далее, в
Код:
elsif ($action eq "read") {

строку

Код:
($from, $readstate, $date, $messagetitle, $post) = split(/\|/,$msgtograb);  

меняем на

Код:
($from, $readstate, $date, $messagetitle, $post, $renum) = split(/\|/,$msgtograb);

чуть ниже, это

Код:
print FILE "$from|$ibtxt{'0130'}|$date|$messagetitle|$post";

меняем на

Код:
print FILE "$from|$ibtxt{'0130'}|$date|$messagetitle|$post|$renum";

еще ниже это

Код:
<b>$ibtxt{'1107'}: $messagetitle</b>

меняем на

Код:
 
<b>$ibtxt{'1107'}: ~;
if ($renum != 0){
$output .= qq~Re[$renum]:~;}
$output .= qq~ $messagetitle</b>

 
 
Вот, кажется и всё.
Тестируйте, господа

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 23:40 09-01-2003 | Исправлено: lynx, 23:42 25-06-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Xnom
не юзал, но вроде клевая фишка. мне поднадоело видеть кучу Re: ...
а че, кто-то предлагал хак, где эти Re: вообще появляются? А то в дефолтной версии IB 2.1.9 rus ПМке уделили КРАЙНЕ мало внимания - пришлось сильно доработать...

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 09:44 29-01-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik

Цитата:
а че, кто-то предлагал хак, где эти Re: вообще появляются?

В дефолтной конфе они появляются

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 12:37 29-01-2003
WSergey

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom
А к какому ПМ это  к стандартному, или расширеному, тому что с адресной книгой и другими делами.

Всего записей: 186 | Зарегистр. 14-07-2002 | Отправлено: 09:56 02-02-2003
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WSergey
Да к любому имхо.


----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 10:34 02-02-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WSergey
тестировалось все на стандартном ПМ. Попробуй поставить на "расширенный", потом скажешь что получилось

----------
Китайцы будут атаковать маленькими мобильными группами по 10 млн. человек в каждой....

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 14:56 02-02-2003
WSergey

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom
 
У меня нет такого  

Код:
elsif ($action eq "reply1") {  

так что не для всех....

Всего записей: 186 | Зарегистр. 14-07-2002 | Отправлено: 16:49 02-02-2003 | Исправлено: WSergey, 16:51 02-02-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а где есть расширенный ПМ? подскажите, плз.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 12:37 21-02-2003
WSergey

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik
Вот держи мой вариант:
http://web4you.ru/fff/messenger.txt
Т.к. не помню где я его брал.
+ переводить уже не надо
Успехов. (Эх... жаль мастериалки)

Всего записей: 186 | Зарегистр. 14-07-2002 | Отправлено: 11:20 22-02-2003
Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Недочет нашел.
В сабе

Код:
elsif ($action eq "send") {

В одну строчку |$renum вставлено, а в последующую - нет.
Т.е.
 

Код:
print FILE "$membername|no|$currenttime|$inmsgtitle|$inmessage\n";

 
меняем на
 

Код:
print FILE "$membername|no|$currenttime|$inmsgtitle|$inmessage|$renum\n";

Нужно вставить это же чуть ниже, иначе глючит.
 
И еще, в файле IkonRussian не хватает переменной:
$ibtxt{'1110'} = "Добро пожаловать в Исходящие(Outbox)";

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 23:55 14-03-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WSergey
спасибо.

Цитата:
(Эх... жаль мастериалки)

она у меня на компе лежит.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 11:31 25-03-2003
Glick

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WSergey
Скажи, пожалуйста, этот файл уже отредактирован, а то я в кодах полный ноль, боюсь туда даже влазить?

Всего записей: 49 | Зарегистр. 02-02-2003 | Отправлено: 19:31 25-03-2003
WSergey

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Glick
Все отредактировано, это файл с моего форума,  с моим переводом.

Всего записей: 186 | Зарегистр. 14-07-2002 | Отправлено: 03:10 26-03-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
поднял тему, ибо наконец-то руки дошли и до мессенджера у меня
 
Rick

Цитата:
Нужно вставить это же чуть ниже, иначе глючит.

интересно, как он глючит?
то, что там было ниже - это пишется в outbox... там нам $renum никак не нужен.
 
вообщем, пытался заюзать хак Xnom'а... да все че-то коряво получилось.
во-первых, я не очень воткнул в эту фишку:

Цитата:
$renum1 = $renum + 1;  

сколько я себе не отвечал - у меня нифига не увеличивалось число...
вообщем, я сделал немного иначе.
не буду приводить в виде крутого хака - ломает ужасно, уж простите
вместо вышеприведнной цитаты вставил:
 
$renum++;
 
далее, переоформил немного вид сообщения, ибо когда сдвигается <input> - выглядит это не очень как-то...
я сделал так:

Код:
 
<td bgcolor=$miscbackone valign=top width=24% class=td7><b>$ibtxt{'1107'}</b></td><td align=right class=td7>Re[$renum]:</td>
            <td bgcolor=$miscbackone valign=middle><input type="hidden" name="retitle" value="$title"><input type="hidden" name="renum" value="$renum"><input type=text name="msgtitle" size=60 maxlength=80 value="$title"></td>
 

т.е. добавил третью ячейку в таблицу, так что colspan вам придется менять с двух на три...
плюс Xnom почему-то заюзал это только в цитату (если reply1 - это цитата). Я это же сделал в обычный reply, ибо не всегда люди цитируют, получается уже один Re[] пропадает.
 
Дальше, т.к. убран $renum1, соответственно в action=send нам не надо делать это:

Код:
if (($renum eq "")||($retitle ne $inmsgtitle)){$renum = "0";}  
else{$renum++;}  

а делаем так:

Код:
 
if (($renum eq "")||($retitle ne $inmsgtitle)){$renum = "0";}  
 

зато меньше всяких вычислений.
вроде как бы и всё... все пашет даже
 
зы. еще я сделал вывод мессаг как вывод тем - постранично, ибо у меня лично бывает и по 100 мессаг - ждать на достаточно медленном модеме меня обламывает + я лично уже о трафике задумываюсь - лол...  
зачем грузить 98 сообщений, если нужно только 2?
вот... если людям очень надо будет - забацаем в хак
 
вот еще, хотел у Xnom'a спросить - а почему нельзя изменять тему? зачем ты так сделал? ну я пока так же оставил. но я думаю.

----------
Metal Bands...





Это я запретила редактировать темы. lynx

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 14:56 20-07-2003 | Исправлено: lynx, 23:56 20-07-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » убираем многочисленные "Re:" в ПМ


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru