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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

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

Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот когда человек редактирует сообщение, то в конце мессаги появляется сообщение.
Как сделать, чтобы это сообщение появлялось ПОСЛЕ сообщения (у меня никаких br почему-то не вставляется, хотя вроде прописал).
Это вот:

Код:
$post =~ s/\($ibtxt{'1537'}(.+?)\)/<br><font size=$dfontsize1 face=$font>\($ibtxt{'1537'}$1\)\<\/font\>/isg;
 

ну и наверное вряд ли такое возможно, чтобы эта надпись была одна, а менялось только время редактирования (если редкатировать несколько раз)?
зы. старею видать.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 08:23 21-04-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik, можно сделать как на Ру-Борде. Т.е. отредактировано выносится внередактируемое поле. Хак by Ausw

Код:
 
##############################################################################
# Хак позволяет вставлять надпись "Отредактировано - ..."                
# не в само сообщение, что крайне неудобно и портит вид,
# а ниже сообщения, наряду с надписями  
# "Всего записей, Дата рег-ции, Отправлено, IP"
# (или вообще, где уму взбредет;) )
#
# PS> хак тестировался на Ikonboard 2.1.9 Beta
#  
# Автор хака - Ausw. e-mail: ausw@ru-board.com
##############################################################################
 
Редактрируемые файлы - postings.cgi, topic.cgi
Не забывайте делать backup редактируемых файлов
 
#############
#postings.cgi
#############
 
Найти:  
#########
unless ($membercode eq "ad") {
$inpost = qq~$inpost<p>($ibtxt{'1537'} $inmembername $ibtxt{'0010'} $editpostdate)~;
}
 
заменить на:
##########
unless ($membercode eq "ad") {
$editered = qq~Исправлено: $inmembername - $editpostdate~ ;  
}
 
 
Найти:
###########
$processed_data .= "$postermembername|$topictitle|$postipaddress|$inshowemoticons|$inshowsignature|$postdate|$inpost\n";
 
Заменить на:
#########                
$processed_data .= "$postermembername|$topictitle|$postipaddress|$inshowemoticons|$inshowsignature|$postdate|$inpost|$editered\n";
 
 
####### Сохраняем и закрываем.
 
###########
# topic.cgi
###########
 
Найти:
##################
$editpostnumber = $startarray; $editpostnumber++; $postcountnumber = 0;
foreach (@threads[$startarray .. $endarray]) {
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post) = split(/\|/,$_);
 
 
Заменить на:
#################
$editpostnumber = $startarray; $editpostnumber++; $postcountnumber = 0;
foreach (@threads[$startarray .. $endarray]) {
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post, $editered) = split(/\|/,$_);
 
 
 
Найти:
#################
<tr>
<td class="bottomline" bgcolor="$postbackcolor">
<hr size=1 width=100% color=$tablebordercolor>
    <font face="$font" color=$postfontcolor size=$dfontsize1>$ibtxt{'0212'} <b>$numberofposts</b> | $ibtxt{'3012'} <b>$joineddate</b> | $ibtxt{'0319'}: <b>$postdate</b> | <a href="$viewipprog?forum=$inforum&topic=$intopic&postno=$editpostnumber">$ibtxt{'3013'}</a></font>
    </td>
</tr>
 
Заменить:
#################
<tr>
<td class="bottomline" bgcolor="$postbackcolor">
<hr size=1 width=100% color=$tablebordercolor>
    <font face="$font" color=$postfontcolor size=$dfontsize1>$ibtxt{'0212'} <b>$numberofposts</b> | $ibtxt{'3012'} <b>$joineddate</b> | $ibtxt{'0319'}: <b>$postdate</b> | <a href="$viewipprog?forum=$inforum&topic=$intopic&postno=$editpostnumber">$ibtxt{'3013'}</a> $editered</font>
    </td>
</tr>
 
####### Сохраняем и закрываем.



----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 16:59 21-04-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vasya Pupkin
во, спасибо.
просто очень ломало выносить, я хотел попроще...

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 18:44 21-04-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выносить по-идее надо, здешний вариант может ОЧЕНЬ сильно заглючить при установки других хаков, добавляющих доп. параметры в thd-шки.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 12:46 23-04-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexander Ipp, я с этим столкнулся Но так как писал хак сам, то все обошлось.


----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 17:50 23-04-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vasya Pupkin
Тогда надо поля не в конец совать, а перед этим полем с мессагой о правке.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 09:56 25-04-2002
Shurik



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

Код:
$editpostdate = time;
$editpostdate = $editpostdate + ($timezone*3600) + $timedifferencevalue*3600);
$editpostdate = &dateformat("$editpostdate");  

вот этот кусок определяет время редактирования мессаги.
а время сообщения определяется:

Код:
$postdate = $postdate + ($timedifferencevalue*3600) + ($timezone*3600);
$postdate = &dateformat("$postdate");  

в свою очередь $postdate уже имеет какое-то число, которое берется вот так:

Код:
foreach (@threads[$startarray .. $endarray]) {  
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post, $editered) = split(/\|/,$_);
 

вообщем, хелп плз!

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 23:38 12-06-2002 | Исправлено: Shurik, 23:44 12-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik
Имхо просто ввести отдельное поле, и в нём держать дату в Unix'овом формате. А переводить в цифри уже при выводе.
А так - имхо трабла имеенно из-за локального времени...

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 09:51 13-06-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alexander Ipp
погоди, ведь многие тот хак заюзали. вряд ли они какие-то поля добавляли.
ALL! как у вас?

Цитата:
А так - имхо трабла имеенно из-за локального времени...
вся трабла похоже из-за ($timezone*3600)... т.е. один парень тоже отредактировал мессагу, я посмотрел - время правильное (у него такой же часовой пояс).
у остальных разное время, но прикол - ставят и "-5", и "+3", а разница с постом в "-2" часа!

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 21:38 13-06-2002
Alexander Ipp



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

Код:
$editpostdate = $editpostdate + ($timezone*3600) + $timedifferencevalue*3600);  

Попробуй закомментить.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 18:49 15-06-2002
Shurik



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

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 02:20 16-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik
Время сервера.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 10:21 16-06-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alexander Ipp
все, воткнул! просто 5:20 утра было, тормозил.
логично не изменять полученное время никакими там таймдиффернс и т.д.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 19:16 16-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik
Иди изменять глобальной разницей конференции (та, что в АЦ), но не мемберской.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:57 16-06-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
этот хак вообще не правильный!
надо в топик.цги вообще прибавлять время - часовой пояс юзера, а тут в постингс.цги это делается - вообще неверно.
блииин. переделывать надо. а чтобы все было четко - нужно еще одно поле заводить - имя того, кто отредактировал.
мда, буду делать.
 
Добавлено
все, сделал как полагается.
блин, тока благодаря тому хаку, что Вася дал теперь глючно все. формат в файле-то изменился.
встану - дам нормальный хак.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 01:55 19-06-2002
Raw Rider

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

Цитата:
все, сделал как полагается.  
блин, тока благодаря тому хаку, что Вася дал теперь глючно все.  формат в файле-то изменился.  
встану - дам нормальный хак.

Поделись, плиз, нормальным хаком...

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 10:27 16-08-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Raw Rider
ой, тяжело это
у меня конфа настолько изменена...
Могу лишь суть сказать.
Из thd-шек вытаскивается так:
 
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post, $editered, $namewhoedit) = split(/\|/, @threads[$posttoget]);
 
$editered - время сервера (т.е. $editered = time;), когда изменяют мессагу. Соответственно, в topic.cgi в соответствии с настройками юзера выводим правильное время редактирования сообщения.
$namewhoedit - ник того, кто изменил мессагу.
 
Т.е. от тебя требуется везде прописать эти самые $editered, $namewhoedit.
Не забывай про прием параметров. Я про:  
for ('forum','topic','membername','password','action','postno','notify','deletepost','previewfirst' и т.д.) {
    next unless defined $_;  
    next if $_ eq 'SEND_MAIL';  
    $tp = $query->param($_);
    $tp = &cleaninput("$tp");
    ${$_} = $tp;
    }
 
Далее в topic.cgi:
Там тоже везде прописываешь, что везде, где вытаскивается инфа из thd - тебе надо прописать $editered, $namewhoedit.
Например, тут:
     foreach (@threads[$startarray .. $endarray]) {  
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post, $editered, $namewhoedit = split(/\|/,$_);  
 
Далее, есть такой код:

Код:
if ($editered ne "") {
           $editpostdate = $editered + ($timezone*3600) + ($timedifferencevalue*3600);
           $editpostdate = &dateformat3("$editpostdate");
           $editered = qq~ | Исправлено: $namewhoedit - $editpostdate~ ;
}
 

хотя первую строку, наверное, можно заменить на покороче

Код:
if ($editered) {

 
Далее. $editered - это уже хтмл-код типа. Его мы и вставляем.

Код:
<td class="bottomline" bgcolor="$postbackcolor">  
<hr size=1 width=100% color=$tablebordercolor>
<font class=f6>$ibtxt{'0212'} <b>$numberofposts</b> | $ibtxt{'3012'} <b>$joineddate</b> | <a href="$thisprog?forum=$inforum&topic=$intopic&start=$nfp#$editpostnumber"><u>$ibtxt{'0319'}</u></a>: <b>$postdate</b> $editered</font>  
</td>

 
Может, чего лишнего в коде оставил - я старался лишний код не приводить (а то его много было ).
 
Если чего непонятно - пиши... Просто надо ручками 2 файла поисправлять, потестить и всё.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 00:47 21-08-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raw Rider
 
Что-то я не поняла, а эта статья и Вайсов хак?
http://ru-board.com/new/article.php?sid=74
Не помогли тебе?
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 03:45 22-08-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Да нет, помогли...Просто вопрос был о некорректном отображении времени редактирования поста, вот меня и заинтересовало решение этой проблемы...Если конечно оно есть

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 12:05 23-08-2003
Shurik



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

Цитата:
Просто вопрос был о некорректном отображении времени редактирования поста, вот меня и заинтересовало решение этой проблемы...Если конечно оно есть  

выше мессагу видишь?  
$editered = time;
потом просто выводишь корректное время: "+ ($timezone*3600) + ($timedifferencevalue*3600);"
вот и всё, делов-то.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 16:07 24-08-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Надпись при редактировании сообщения


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru