Ejemplo n.º 1
0
function createForumVars($res, $readoutMods = true)
{
    global $apx, $db, $set, $user;
    global $collapse, $readthreads, $foruminfo;
    //Link
    $link = mkrellink('forum.php?id=' . $res['forumid'], 'forum,' . $res['forumid'] . ',1' . urlformat($res['title']) . '.html');
    //Moderatoren
    $moddata = array();
    if ($readoutMods) {
        //$mods=dash_unserialize($res['moderator']);
        $mods = $res['moderator'];
        if (count($mods)) {
            $userdata = $db->fetch("SELECT userid,username FROM " . PRE . "_user WHERE userid IN (" . implode(',', $mods) . ") ORDER BY username ASC");
            if (count($userdata)) {
                foreach ($userdata as $modres) {
                    ++$mi;
                    $moddata[$mi]['USERID'] = $modres['userid'];
                    $moddata[$mi]['USERNAME'] = replace($modres['username']);
                }
            }
        }
    }
    $forumdata['ID'] = $res['forumid'];
    $forumdata['ISCAT'] = $res['iscat'];
    $forumdata['LEVEL'] = $res['level'];
    $forumdata['TITLE'] = $res['title'];
    $forumdata['DESCRIPTION'] = $res['description'];
    $forumdata['LINKTO'] = $res['link'];
    $forumdata['LINK'] = $link;
    $forumdata['THREADS'] = '-';
    $forumdata['POSTS'] = '-';
    $forumdata['CLOSED'] = iif($res['open'], 0, 1);
    $forumdata['MODERATOR'] = $moddata;
    $forumdata['COLLAPSE'] = in_array($res['forumid'], $collapse);
    //Neues Thema erstellen, wenn Schreibrechte
    if (forum_access_open($res)) {
        $forumdata['LINK_NEWTHREAD'] = 'newthread.php?id=' . $res['forumid'];
    }
    //Nur anzeigen, wenn Leserechte
    if (forum_access_read($res) && correct_forum_password($res)) {
        $thread = false;
        //Lastvisit bestimmen
        $lastview = max(array($user->info['forum_lastonline'], forum_readtime($res['forumid'])));
        $forumdata['NEWPOSTS'] = iif($res['lastposttime'] && $res['lastposttime'] > $lastview, 1, 0);
        $forumdata['THREADS'] = number_format($res['threads'], 0, '', '.');
        $forumdata['POSTS'] = number_format($res['posts'], 0, '', '.');
        //Letzter Beitrag
        //if ( $res['lastposttime'] && $thread==false ) $thread=$db->first("SELECT threadid,title,icon FROM ".PRE."_forum_threads WHERE ( del=0 AND moved=0 AND forumid='".$res['forumid']."' ) ORDER BY lastposttime DESC LIMIT 1");
        if ($res['lastthread_icon'] != -1 && isset($set['forum']['icons'][$res['lastthread_icon']])) {
            $icon = $set['forum']['icons'][$res['lastthread_icon']]['file'];
        } else {
            $icon = '';
        }
        $forumdata['LASTPOST_THREADID'] = $res['lastthread'];
        $forumdata['LASTPOST_THREADTITLE'] = replace($res['lastthread_title']);
        $forumdata['LASTPOST_THREADPREFIX'] = forum_get_prefix($res['lastthread_prefix']);
        $forumdata['LASTPOST_USERNAME'] = replace($res['lastposter']);
        $forumdata['LASTPOST_USERID'] = $res['lastposter_userid'];
        $forumdata['LASTPOST_TIME'] = $res['lastposttime'];
        $forumdata['LASTPOST_LINK'] = 'thread.php?id=' . $res['lastthread'] . '&goto=lastpost';
        $forumdata['LASTPOST_ICON'] = $icon;
    }
    return $forumdata;
}
Ejemplo n.º 2
0
     $notify = $apx->lang->get('SUBSCRIPTION_NONE');
 } elseif ($notification == 'instant') {
     $notify = $apx->lang->get('SUBSCRIPTION_INSTANT');
 } elseif ($notification == 'daily') {
     $notify = $apx->lang->get('SUBSCRIPTION_DAILY');
 } elseif ($notification == 'weekly') {
     $notify = $apx->lang->get('SUBSCRIPTION_WEEKLY');
 }
 $forumdata[$i]['ID'] = $res['forumid'];
 $forumdata[$i]['TITLE'] = $res['title'];
 $forumdata[$i]['DESCRIPTION'] = $res['description'];
 $forumdata[$i]['LINK'] = $link;
 $forumdata[$i]['CLOSED'] = iif($res['open'], 0, 1);
 $forumdata[$i]['NOTIFICATION'] = $notify;
 //Nur anzeigen, wenn Leserechte
 if (correct_forum_password($res)) {
     $forumdata[$i]['NEWPOSTS'] = iif($res['lastposttime'] && $res['lastposttime'] > $user->info['forum_lastonline'], 1, 0);
     //Letztes Thema auslesen
     if ($res['lastposttime']) {
         $thread = $db->first("SELECT threadid,prefix,title FROM " . PRE . "_forum_threads WHERE ( del=0 AND moved=0 AND forumid='" . $res['forumid'] . "' ) ORDER BY lastposttime DESC LIMIT 1");
     }
     $forumdata[$i]['LASTPOST_THREADID'] = $thread['threadid'];
     $forumdata[$i]['LASTPOST_THREADTITLE'] = $thread['title'];
     $forumdata[$i]['LASTPOST_THREADPREFIX'] = forum_get_prefix($thread['prefix']);
     $forumdata[$i]['LASTPOST_USERNAME'] = replace($res['lastposter']);
     $forumdata[$i]['LASTPOST_USERID'] = $res['lastposter_userid'];
     $forumdata[$i]['LASTPOST_TIME'] = $res['lastposttime'];
     $forumdata[$i]['LASTPOST_LINK'] = HTTPDIR . $set['forum']['directory'] . '/' . 'thread.php?id=' . $thread['threadid'] . '&goto=lastpost';
     //Optionen
     $forumdata[$i]['LINK_DEL'] = mklink('user.php?action=subscribe&option=delete&id=' . $subsrcinfo_forums[$forumid]['id'], 'user,subscribe.html?option=delete&id=' . $subsrcinfo_forums[$forumid]['id']);
     $forumdata[$i]['LINK_EDIT'] = mklink('user.php?action=subscribe&option=edit&id=' . $subsrcinfo_forums[$forumid]['id'], 'user,subscribe.html?option=edit&id=' . $subsrcinfo_forums[$forumid]['id']);
Ejemplo n.º 3
0
}
//Prüfen, ob der Nutzer Zugang hat
$data = $db->fetch("SELECT forumid FROM " . PRE . "_forum_anndisplay WHERE id='" . $_REQUEST['id'] . "'");
$forumids = get_ids($data, 'forumid');
//Keine Foren-Ids vorhanden
if (!count($forumids)) {
    filenotfound();
} elseif (!in_array(0, $forumids)) {
    $access = false;
    foreach ($forumids as $fid) {
        $foruminfo = forum_info($fid);
        if (!$foruminfo['forumid']) {
            continue;
        }
        //Zugang erlaubt, alles ok
        if (forum_access_read($foruminfo) && correct_forum_password($foruminfo)) {
            $access = true;
            break;
        }
    }
    //Kein Zugang
    if (!$access) {
        tmessage('noright', array(), false, false);
    }
}
//Lastvisit für dieses Thema bestimmen
$lastvisit = max(array($user->info['forum_lastonline'], announcement_readtime($anninfo['id'])));
announcement_isread($anninfo['id']);
///////////////////////////////////////////////////////////////////////////////////////// BEITRAG
//Userinfo auslesen
if ($anninfo['userid']) {
Ejemplo n.º 4
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();
Ejemplo n.º 5
0
    }
    /////////////////////////////////////
    $apx->tmpl->assign('PATHEND', $apx->lang->get('HEADLINE_SEARCHRESULT'));
    titlebar($apx->lang->get('HEADLINE_SEARCHRESULT'));
    require 'lib/_end.php';
    require '../lib/_end.php';
}
//////////////////////////////////////////////////////////////////////////////////////// NEUE BEITRÄGE
$apx->lang->drop('search');
if ($_REQUEST['newposts']) {
    $searchstart = microtime();
    $inforum = array();
    $data = forum_readout();
    foreach ($data as $res) {
        //Nicht sichtbare Foren überspringen
        if (!forum_access_visible($res) || !forum_access_read($res) || !correct_forum_password($res)) {
            continue;
        }
        //Keine Kategorien durchsuchen
        if ($res['iscat']) {
            continue;
        }
        $inforum[] = $res['forumid'];
    }
    //Keine Foren zum Durchsuchen
    if (!count($inforum)) {
        message($apx->lang->get('MSG_EMPTYSEARCH'), 'javascript:history.back();');
    }
    //Themen nach Suchkriterien filtern
    $data = $db->fetch("SELECT threadid FROM " . PRE . "_forum_threads WHERE ( forumid IN (" . implode(',', $inforum) . ") AND lastposttime>'" . $user->info['forum_lastonline'] . "' AND del=0 AND moved=0 ) ORDER BY threadid ASC");
    $result = get_ids($data, 'threadid');