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; }
$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']);
} //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']) {
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();
} ///////////////////////////////////// $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');