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

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

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

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

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

suslik_s_gitaroy



Хомяк под кайфом
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот скачал скрипт display.cgi (в файловом архиве он, помоему, зовется forumqdisplay). Для тех, кто не знает - это альтернатива Активным темам на ru-борде...
Ну так вот... скачал я его, поставил... Ништяк... Стал я его коверкать... недоковеркал... просто врубиться не могу... как сделать, чтоб все темы (!)ИЗ РАЗНЫХ ФОРУМОВ(!) выписывались внесте??? ну как на руборде...
Для тех кто ниче не понял, что я тут ща написал (я тоже не понял :)), объясняю ситуацию... скрипт выдает список последних измененных тем, но выдает он их по-дибильному... вместо того, чтобы выдавать темы все вместе, сортируя тока по времени обновления, он сортирует их еще и по форуму, и по котегории... ваще дибилизм... а мне надо, чтоб он выдавал
Цитата:
все вместе, сортируя тока по времени обновления
...
Вообщем объяснил как мог, если вы не поняли, то я не виноват... :gigi:
и еще... вот мною исковерканый скрипт:

Код:
 
 
#!C:\usr\bin\perl\bin\perl
 
use CGI::Carp "fatalsToBrowser";          # Output errors to browser
use CGI qw(:standard);                    # Saves loads of work
$CGI::POST_MAX=1024 * 150;                # limit post data
$CGI::DISABLE_UPLOADS = 1;                # Disable uploads
 
eval {
($0 =~ m,(.*)/[^/]+,)   and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "ikon.lib";          # Require ikonboard ()
require "data/progs.cgi";    # Require prog names
require "data/boardinfo.cgi";# Require board info
require "data/styles.cgi";   # Require styles info
};
if ($@) {
    print header(); print start_html(-title=>"Ikonboard Error!");
    print "Could not find these files: $@\nIf you are running NT you may need to enter the full path in each require statement in each script";
    print end_html; exit;
}
 
$|++;                                     # Unbuffer the output
 
#################--- Begin the program ---###################
 
$thisprog = "display.cgi";
 
$query = new CGI;
 
$cookiepath = $query->url(-absolute=>1);
$cookiepath =~ s/$thisprog//sg;
 
$action                 = $query -> param('action');
$inmembername           = $query -> param("membername");
$inpassword             = $query -> param("password");
$inmembername           = &cleaninput($inmembername);
$inpassword             = &cleaninput($inpassword);
 
$news_displaynum = "10";
 
$inmembername = cookie("amembernamecookie");
$inpassword   = cookie("apasswordcookie");
 
 
if ($inmembername eq "") {
    $inmembername = "Guest";
    }
    else {
        &getmemberstime("$inmembername");
        }
 
if ($action eq "resetall") {
    $filetoopen = "$ikondir" . "data/allforums.cgi";
    $filetoopen = &stripMETA($filetoopen);
    open(FILE, "$filetoopen") or die "Could not locate the needed files";
    flock(FILE, 2);
    @forums = <FILE>;
    close(FILE);
    $currenttime = time;
    foreach (@forums) { #start foreach @forums
        ($tempno, $trash) = split(/\|/,$_);
        $lvisit .= "$tempno-$currenttime--";
        }
 
    $cookie     = cookie(-name    =>   "lastvisit",
                         -value   =>   "$lvisit",
                         -path    =>   "$cookiepath",
                         -expires =>   "+30d");
             
    $tempcookie = cookie(-name    =>   "templastvisit",
                         -value   =>   "$lvisit",
                         -path    =>   "$cookiepath");
    print header(-cookie  =>[$cookie, $tempcookie]);
    }
 
        &title;
         
        # Print the header
 
        $output .= qq~
         
    <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
        <tr>
            <td>
                <table cellpadding=3 cellspacing=1 border=0 width=100%>
 
~;
             
                     
     
    # Lets grab the current forums
                     
    $filetoopen = "$ikondir" . "data/allforums.cgi";
    $filetoopen = &stripMETA($filetoopen);
    open(FILE, "$filetoopen");
    @forums = <FILE>;
    close(FILE);
 
    foreach $forum (@forums) { #start foreach @forums
        chomp $forum;
        ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate, $idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc) = split(/\|/,$forum);
         
        # Trim some fat off the search. If the poster doesn't have access, or has never been to a forum
        # or has visited since, and no new posts found - move on to the next forum
         
        if (($privateforum eq "yes") && ($allowedentry{$forumid} ne "yes")) { next; }
         
        $rearrange = ("$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$ratings|$misc|$forumid");
        push (@rearrangedforums, $rearrange);
         
        } # end foreach (@forums)
 
 
        @finalsortedforums = sort numerically(@rearrangedforums);
         
        # Lets search through the remaining forums with new posts.
         
        foreach (@finalsortedforums) {
         
            ($categoryplace, $category, $forumname, $forumdescription,$forummoderator, $htmlstate, $idmbcodestate, $privateforum, $startnewthreads, $lastposter, $lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc, $forumid) = split(/\|/,$_);
         
            $filetoopen = "$ikondir" . "forum$forumid/list.cgi";
            $filetoopen = &stripMETA($filetoopen);
            open(FILE, "$filetoopen");
            @topics = <FILE>;
            close(FILE);
 
     
            foreach $topic (@topics) { # start topic foreach
                chomp $topic;
                ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$topic);
         
                if ($forumlastvisit < $lastpostdate) {
                    $found = ("$categoryplace|$category|$forumid|$topicid|$forumname|$topictitle|$lastposter|$lastpostdate");
                    push (@founditems, $found);
                    }
                     
            } # end foreach @topics
             
        } # end foreach @finalsortedforums
     
     
     
    # if none are found...
     
    $totals = @founditems;
     
    if ($totals eq 0) {
        $output .= qq~<tr><td bgcolor=$forumcolortwo colspan=4><font face="$font" color=$forumfontcolor size=2><b>Нет новых сообщений.</b>
</font></td></tr>\n~;
        }
   
    # Otherwise, lets print the results
     
    foreach (@founditems) {
     
    ($categoryplace, $categoryname, $forumid, $topicid, $forumname, $topictitle, $lastposter, $lastpostdate) = split (/\|/,$_);
     
#        if ($categoryplace ne $lastcategoryplace) { #start if $categoryplace
#            $output .= qq~<tr><td bgcolor=$catback colspan=4><font face="$font" color=$catfontcolor size=3><b>$categoryname</b></font></td></tr>\n~;
#            }  
#        if ($forumid ne $lastforumid) { #start if $forumid
#            $output .= qq~<tr><td bgcolor=$forumcolortwo colspan=4><font face="$font" color=$forumfontcolor size=2><b>&raquo; <a href="$forumsprog?forum=$forumid">$forumname</a></b></font></td></tr>\n~;
#            }
         
        $lastpostdate = $lastpostdate + ($timedifferencevalue*3600) + ($timezone*3600);
        $longdate = &longdate("$lastpostdate");
        $shorttime = &shorttime("$lastpostdate");
        $topiclastpost = qq~<font size="1" face="$font" color="$lastpostfontcolor">$longdate в <font size="1" face="$font" color="$lastpostfontcolor">$shorttime</font>~;
         
         
        $output .= qq~
                    <tr>
                        <td bgcolor=$forumcolortwo><font face="$font" color=$forumfontcolor size=1><a href="$threadprog?forum=$forumid&topic=$topicid" target="_source">$topictitle</a></td>
                        <td bgcolor=$forumcolortwo><font face="$font" color=$forumfontcolor size=1 colspan=3>Последнне сообщение от <a href="$profileprog?action=show&member=$lastposter">$lastposter</a> $topiclastpost</td>
                    </tr>
                    ~;
                     
        #$lastcategoryplace = $categoryplace;
        #$lastforumid = $forumid;        
         
        } # end foreach
               
                     
                     
    $output .= "</table></td></tr></table>\n";
     
print header();
&output(
-Title   => $boardname,  
-ToPrint => $output,  
-Version => $versionnumber  
);
 
 

Всего записей: 1791 | Зарегистр. 23-12-2001 | Отправлено: 19:07 12-03-2002
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » display.cgi aka Активные темы


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru