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; }
$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(); //Alle gelesenen Themen foreach ($data as $res) { //Thema wurde noch nicht gelesen bzw. es gibt neue Beiträge if (!isset($readThreads[$res['threadid']]) || $res['lastposttime'] > $readThreads[$res['threadid']]) { $isread = false; break; } } } } //Dieses Forum ist komplett gelesen
$foruminfo = forum_info($threadinfo['forumid']); if (!$foruminfo['forumid']) { message($apx->lang->get('MSG_FORUMNOTEXIST')); } if ($threadinfo['del'] && !($user->info['userid'] && ($user->is_admin() || in_array($user->info['userid'], $foruminfo['moderator'])))) { message($apx->lang->get('MSG_THREADNOTEXIST')); } if ($postinfo['del'] && !($user->info['userid'] && ($user->is_admin() || in_array($user->info['userid'], $foruminfo['moderator'])))) { message($apx->lang->get('MSG_POSTNOTEXIST')); } if (!forum_access_read($foruminfo)) { tmessage('noright', array(), false, false); } check_forum_password($foruminfo); //Lastvisit für dieses Thema bestimmen $lastvisit = max(array($user->info['forum_lastonline'], thread_readtime($threadinfo['threadid']), forum_readtime($foruminfo['forumid']))); ///////////////////////////////////////////////////////////////////////////////////////// BEITRAG $res = $postinfo; require_once BASEDIR . 'lib/class.mediamanager.php'; $mm = new mediamanager(); //Userinfo auslesen if ($res['userid']) { $userdat = $db->first("SELECT a.userid,a.groupid,a.reg_time,a.forum_posts,a.avatar,a.avatar_title,a.signature,a.homepage,a.city,a.icq,a.aim,a.yim,a.msn,a.skype,a.forum_lastactive,a.pub_invisible,a.custom1,a.custom2,a.custom3,a.custom4,a.custom5,a.custom6,a.custom7,a.custom8,a.custom9,a.custom10,b.gtype FROM " . PRE . "_user AS a LEFT JOIN " . PRE . "_user_groups AS b USING(groupid) WHERE a.userid='" . $res['userid'] . "' LIMIT 1"); } else { $userdat = array(); } $mods = $foruminfo['moderator']; //Text $text = forum_replace($postinfo['text'], $postinfo['allowcodes'], $postinfo['allowsmilies']); //Benutzerkennzeichen $siganture = $avatar = $avatar_title = '';
$data = $db->fetch("SELECT * FROM " . PRE . "_forum_threads WHERE ( del=0 AND threadid IN (" . implode(',', $search['result']) . ") ) " . getorder($orderdef) . getlimit($user->info['forum_tpp'])); //Zugehörige Foren auslesen $forums = get_ids($data, 'forumid'); $foruminfo = array(); $forumdata = $db->fetch("SELECT forumid,title FROM " . PRE . "_forums WHERE forumid IN (" . implode(',', $forums) . ")"); if (count($forumdata)) { foreach ($forumdata as $res) { $foruminfo[$res['forumid']] = $res; $foruminfo[$res['forumid']]['link'] = mkrellink('forum.php?id=' . $res['forumid'], 'forum,' . $res['forumid'] . ',1' . urlformat($res['title']) . '.html'); } } if (count($data)) { foreach ($data as $res) { ++$i; //Lastvisit bestimmen $lastview = max(array($user->info['forum_lastonline'], thread_readtime($res['threadid']), forum_readtime($res['forumid']))); //Link $link = mkrellink('thread.php?id=' . $res['threadid'] . iif($search['highlight'], '&highlight=' . $search['highlight']), 'thread,' . $res['threadid'] . ',1' . urlformat($res['title']) . '.html' . iif($search['highlight'], '?highlight=' . $search['highlight'])); //Icon if ($res['icon'] != -1 && isset($set['forum']['icons'][(int) $res['icon']])) { $icon = $set['forum']['icons'][(int) $res['icon']]['file']; } else { $icon = ''; } $threaddata[$i]['ID'] = $res['threadid']; $threaddata[$i]['TITLE'] = replace($res['title']); $threaddata[$i]['PREFIX'] = forum_get_prefix($res['prefix']); $threaddata[$i]['LINK'] = $link; $threaddata[$i]['ICON'] = $icon; $threaddata[$i]['OPENER_USERID'] = $res['opener_userid']; $threaddata[$i]['OPENER_USERNAME'] = replace($res['opener']);