YourAdmin
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Всем привет. Вот решил написать хак, вроде получилось. Кое-где видел подобное, возможно на Ру-Борде он уже был выложен. Но я его здесь не видел. Итак, нам нужно будет редактировать 2 файла: post.cgi и ikonboard.cgi Открываем post.cgi Ищем Код: ############### sub addnewthread ############# sub addnewthread { # start routine | Где-то через 100 строк находим Код: # Update stats for member, and board | Добавляем после этой строки Код: ## Последнее сообщение для ikonboard.cgi ## if ($privateforum ne "yes") { $filetomake = "$ikondir" . "lastpost.cgi"; $filetomake = ($filetomake); open(FILE, ">$filetomake"); print FILE "$inforum|$newthreadnumber|$intopictitle|$inpost"; close(FILE); } ########################################### | Если у вас установлено голосование, то находим Код: ############### sub addnewpoll ############# sub addnewpoll { # start routine | Опять же через 100 строк находим Код: # Update stats for member, and board | Добавляем ниже Код: ## Последнее сообщение для ikonboard.cgi ## if ($privateforum ne "yes") { $filetomake = "$ikondir" . "lastpost.cgi"; $filetomake = ($filetomake); open(FILE, ">$filetomake"); print FILE "$inforum|$newthreadnumber|$intopictitle|$inpost"; close(FILE); } ########################################### | Так, с новыми темами и голосованиями мы проблему решили. Теперь займемся ответами. Находим Код: ##### add the replyto the file. sub addreply { # start routine | Через много строк ниже находим Код: $threadposts = @allmessages; open(FILE, ">$file"); flock(FILE, 2); print FILE "$intopic|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$inmembername|$currenttime"; close(FILE); | ПЕРЕД этим кодом добавляем Код: ## Последнее сообщение для ikonboard.cgi ## if ($privateforum ne "yes") { $filetomake = "$ikondir" . "lastpost.cgi"; $filetomake = ($filetomake); open(FILE, ">$filetomake"); print FILE "$inforum|$intopic|$topictitle|$inpost"; close(FILE); } ########################################### | Сохраняем post.cgi и можно его закрывать. Теперь открываем наш любимый ikonboard.cgi Ищем Код: $output .= qq~ <!-- Cgi-bot Begin Board logo and navigation --> | ПЕРЕД этим кодом добавляем Код: ##################################### ###### Последний пост ### # $filetoopen = "$ikondir" . "lastpost.cgi"; open(FILE,"$filetoopen"); @lastpost = <FILE>; close(FILE); foreach $lastpost (@lastpost) { chomp $lastpost; ($forumnumb, $threadnumb, $topictit, $postmessage) = split(/\|/,$lastpost); } $postmessage =~ s/\[b\]/<b>/isg; $postmessage =~ s/\[\/b\]/<\/b>/isg; $postmessage =~ s/\[i\]/<i>/isg; $postmessage =~ s/\[\/i\]/<\/i>/isg; $postmessage =~ s/\[u\]/<u>/isg; $postmessage =~ s/\[\/u\]/<\/u>/isg; $postmessage =~ s/\[font=\s*(.*?)\s*\]\s*(.*?)\s*\[\/font\]/<font face=\"$1\">$2<\/font>/isg; $postmessage =~ s/\[color=(\S+?)\]/<font color=\"$1\">/isg; $postmessage =~ s/\[\/color\]/<\/font>/isg; if (length($postmessage) > 50) { $postmessage = substr($postmessage, 0, 47); $postmessage .= '...'; } $postmessage = "\"$postmessage\<\/b><\/u><\/i><\/font><font face=\"$font\" color=$fontcolormisc size=$dfontsize1> \""; ## Если нужны все смайлики, разкомментируй строку ## #$postmessage = &doemoticons("$postmessage"); #################################################### $postmessage =~ s/\:\)/<img src=\"$imagesurl\/emoticons\/smile.gif\" border=\"0\">/g; $postmessage =~ s/\;\)/<img src=\"$imagesurl\/emoticons\/wink.gif\" border=\"0\">/g; $postmessage =~ s/\:\(/<img src=\"$imagesurl\/emoticons\/sad.gif\" border=\"0\">/g; $postmessage =~ s/\:o/<img src=\"$imagesurl\/emoticons\/shocked.gif\" border=\"0\">/g; $postmessage =~ s/<br>/ /g; $postmessage =~ s/<p>/ /g; # ### ###### Последний пост ##################################### | Далее опять возвращаемся ниже, смотрим Код: $output .= qq~ <!-- Cgi-bot Begin Board logo and navigation --> <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center> <tr> <td valign=bottom align=right><font face="$font" color=$fontcolormisc size=$dfontsize2> $ibtxt{'0001'} $cleanlastregistered<br> $ibtxt{'0002'} <b>$totalmembers</b> $ibtxt{'0003'} <b>$totalposts</b> $ibtxt{'0004'} <b>$totalthreads</b> $ibtxt{'0024'} </td> </tr> | Меняем этот код на Код: #------- HTML $output .= qq~ <!-- Cgi-bot Begin Board logo and navigation --> <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center> <tr> <td align="left" valign="bottom"> <font face="$font" color=$fontcolormisc size=$dfontsize2> Последнее сообщение:<br> <a href="$threadprog?forum=$forumnumb&topic=$threadnumb&allpagesview=yes">$topictit</a><br> $postmessage </td> <td valign=bottom align=right><font face="$font" color=$fontcolormisc size=$dfontsize2> $ibtxt{'0001'} $cleanlastregistered<br> $ibtxt{'0002'} <b>$totalmembers</b> $ibtxt{'0003'} <b>$totalposts</b> $ibtxt{'0004'} <b>$totalthreads</b> $ibtxt{'0024'} </td> </tr> </table> | C ikonboard.cgi мы разобрались. Сохраняем его и можно закрыть. Итак, хак установлен. Тестируйте и заценивайте. Создайте новую тему и загляните в ваш ikonboard.cgi Говорите здесь недочеты, если такие имеются. Это только первая версия этого хака (надеюсь что последяя, и что мне писать больше ничего не придеться ) А пока я расскажу пор плюсы этого хака: - отображаются смайлики - отображаются и другие смайлики, если раскомментировать строку #$postmessage = &doemoticons("$postmessage"); - отображается тип шрифта - отображается цвет шрифта - отображается наклонный, выделенный и подчеркнутый текст - переносы строки не отбражаются Спасибо за внимание. Жду комментариев в эту тему. Thanks. | Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 15:50 19-06-2002 | Исправлено: YourAdmin, 17:02 19-06-2002 |
|