Пример #1
0
        $forumdata['LASTPOST_TIME'] = $res['lastposttime'];
        $forumdata['LASTPOST_LINK'] = 'thread.php?id=' . $res['lastthread'] . '&goto=lastpost';
        $forumdata['LASTPOST_ICON'] = $icon;
    }
    return $forumdata;
}
//Forum-Liste abarbeiten
$forumRec = array();
if (count($data)) {
    //Erzeuge eine rekursive Datenstruktur
    $superForum = array();
    foreach ($data as $key => $res) {
        $right_visible = dash_unserialize($res['right_visible']);
        $right_read = dash_unserialize($res['right_read']);
        //Foren, die der Benutzer nicht lesen darf überspringen
        if (!forum_access_visible($res)) {
            continue;
        }
        //Level 1 Foren in die Liste schreiben
        if ($res['level'] == 1) {
            $forumRec[] =& $data[$key];
        }
        //Letztes Forum pro Level merken
        $superForum[$res['level']] =& $data[$key];
        //Beim übergeordneten Forum hinzufügen
        if (isset($superForum[$res['level'] - 1])) {
            $superForum[$res['level'] - 1]['subforums'][] =& $data[$key];
        }
    }
    //Posts und Threadcount, sowieso Lastpost nach oben propagieren
    function propagateInfo(&$forumList)
Пример #2
0
 if (is_array($icons)) {
     $icons = array_sort($icons, 'ord', 'ASC');
 }
 if (count($icons)) {
     foreach ($icons as $key => $res) {
         ++$ii;
         $icondata[$ii]['ID'] = $key;
         $icondata[$ii]['IMAGE'] = $res['file'];
     }
 }
 //Foren auflisten
 $data = forum_readout();
 foreach ($data as $res) {
     ++$i;
     //Nicht sichtbare Foren überspringen
     if (!forum_access_visible($res) || !forum_access_read($res)) {
         $jump = $res['level'];
         continue;
     }
     if ($jump && $res['level'] > $jump) {
         continue;
     } else {
         $jump = 0;
     }
     if (!$res['iscat']) {
         $forumdata[$i]['ID'] = $res['forumid'];
     }
     $forumdata[$i]['TITLE'] = replace($res['title']);
     $forumdata[$i]['LEVEL'] = $res['level'];
     $forumdata[$i]['ISCAT'] = $res['iscat'];
     $forumdata[$i]['SELECTED'] = iif($_POST['forum'] == $res['forumid'], 1, 0);
Пример #3
0
list($userCount, $guestCount, $activelist) = forum_get_activity('forum', $foruminfo['forumid'], $foruminfo['moderator']);
$apx->tmpl->assign('ACTIVITY_USERS', $userCount);
$apx->tmpl->assign('ACTIVITY_GUESTS', $userCount);
$apx->tmpl->assign('ACTIVITY', $activelist);
$apx->tmpl->parse('forum');
////////////////////////////////////////////////////////////////////////////////////////////////////////
$apx->tmpl->assign_static('STYLESHEET', compatible_hsc($foruminfo['stylesheet']));
$apx->tmpl->assign('PATH', forum_path($foruminfo));
$apx->tmpl->assign('PATHEND', replace($foruminfo['title']));
titlebar($foruminfo['title']);
///////////////////////////////////////////////////////////////////////////////////////////////// GELESEN-STATUS
$isread = true;
//Fieser Hack: Verwende die Daten, die forum_assign.php erzeugt hat,
//denn da steht schon die lastposttime des Forums (inklusive Unterforen) drin.
foreach ($forumRec as $forum) {
    if (forum_access_visible($forum) && forum_access_read($forum) && correct_forum_password($forum)) {
        $forumLastview = max(array($user->info['forum_lastonline'], forum_readtime($forum['forumid'])));
        if ($forumLastview < $forum['lastposttime']) {
            $isread = false;
            break;
        }
    }
}
//Themen brauchen wir nur anzuschauen, wenn die Unterforen alle gelesen sind
if ($isread) {
    //Eine detaillierte Prüfung ist nur notwendig, wenn es in diesem Forum etwas neues gibt
    $forumLastview = max(array($user->info['forum_lastonline'], forum_readtime($foruminfo['forumid'])));
    if ($forumLastview < $foruminfo['lastposttime']) {
        //Alle ungelesenen Themen bestimmen und prüfen, ob bereits gelesen
        $data = $db->fetch("\n\t\t\tSELECT threadid, lastposttime\n\t\t\tFROM " . PRE . "_forum_threads\n\t\t\tWHERE forumid='" . $foruminfo['forumid'] . "' AND del=0 AND moved=0 AND lastposttime>'" . $forumLastview . "'\n\t\t\tORDER BY lastposttime DESC\n\t\t");
        $readThreads = threads_get_read();