'LAN_FORUM_2046', 'LAN_400' => 'LAN_EDIT', 'LAN_401' => 'LAN_FORUM_2041', 'LAN_406' => 'LAN_EDIT', 'LAN_435' => 'LAN_DELETE', 'LAN_397' => 'LAN_FORUM_2044', 'LAN_398' => 'LAN_FORUM_4007' ); e107::getLanguage()->bcDefs($bcDefs); } define('NAVIGATION_ACTIVE','forum'); $e107 = e107::getInstance(); $tp = e107::getParser(); $ns = e107::getRender(); if (!e107::isInstalled('forum')) { e107::redirect(); exit; } //---- orphan $highlight_search?????? $highlight_search = isset($_POST['highlight_search']); if (!e_QUERY) { //No parameters given, redirect to forum home $url = e107::url('forum','index','full'); e107::getRedirect()->go($url); exit; } include_once(e_PLUGIN.'forum/forum_class.php'); $forum = new e107forum(); $thread = new e107ForumThread(); // check if user wants to download a file if(vartrue($_GET['id']) && isset($_GET['dl'])) { $forum->sendFile($_GET); exit; } if(e_AJAX_REQUEST) { if(varset($_POST['action']) == 'quickreply') { $forum->ajaxQuickReply(); } if(varset($_POST['action']) == 'track') { $forum->ajaxTrack(); } if(MODERATOR) { $forum->ajaxModerate(); } } if (isset($_GET['last'])) { $_GET['f'] = 'last'; } if(isset($_GET['f']) && $_GET['f'] == 'post') { $thread->processFunction(); } $thread->init(); /* if(isset($_POST['track_toggle'])) { $thread->toggle_track(); exit; }*/ if(!empty($_GET['f'])) { $retext = $thread->processFunction(); if($retext) { require_once(HEADERF); // e107::getMessage()->addWarning($retext); // echo e107::getmessage()->render(); echo $retext; require_once(FOOTERF); exit; } if($_GET['f'] != 'last') { $thread->init(); } } //---- getScBatch here?????? e107::getScBatch('view', 'forum')->setScVar('thread', $thread); //---- orphan $pm_installed?????? $pm_installed = e107::isInstalled('pm'); //Only increment thread views if not being viewed by thread starter if (USER && (USERID != $thread->threadInfo['thread_user'] || $thread->threadInfo['thread_total_replies'] > 0) || !$thread->noInc) { $forum->threadIncview($thread->threadInfo['thread_id']); } define('e_PAGETITLE', strip_tags($tp->toHTML($thread->threadInfo['thread_name'], true, 'no_hook, emotes_off')).' / '.$tp->toHTML($thread->threadInfo['forum_name'], true, 'no_hook, emotes_off').' / '.LAN_FORUM_1001); $forum->modArray = $forum->forumGetMods($thread->threadInfo['forum_moderators']); define('MODERATOR', (USER && $forum->isModerator(USERID))); e107::getScBatch('view', 'forum')->setScVar('forum', $forum); //var_dump(e107::getScBatch('forum', 'forum')); if(MODERATOR && isset($_POST['mod'])) { require_once(e_PLUGIN."forum/forum_mod.php"); $thread->message = forum_thread_moderate($_POST); $thread->threadInfo = $forum->threadGet($thread->threadId); } $num = $thread->page ? $thread->page - 1 : 0; $postList = $forum->PostGet($thread->threadId, $num * $thread->perPage, $thread->perPage); // SEO - meta description (auto) if(count($postList)) { define("META_DESCRIPTION", $tp->text_truncate( str_replace( array('"', "'"), '', strip_tags($tp->toHTML($postList[0]['post_entry'])) ), 250, '...')); } //---- Orphan $gen???? $gen = new convert; if($thread->message) { //$ns->tablerender('', $thread->message, array('forum_viewtopic', 'msg')); e107::getMessage()->add($thread->message); } //if (isset($thread->threadInfo['thread_options']['poll'])) //XXX Currently Failing - misconfigured thread-options. //{ if(e107::isInstalled('poll')) { $_qry = 'SELECT p.*, u.user_id, u.user_name FROM `#polls` AS p LEFT JOIN `#user` AS u ON p.poll_admin_id = u.user_id WHERE p.poll_datestamp = ' . $thread->threadId; if($sql->gen($_qry)) { if (!defined('POLLCLASS')) { include_once(e_PLUGIN . 'poll/poll_class.php'); } $poll = new poll; $pollstr = "
" . $poll->render_poll($_qry, 'forum', 'query', true) . '
'; } } //} //Load forum templates // FIXME - new template paths! if(file_exists(THEME.'forum_design.php')) // legacy file { include_once (THEME.'forum_design.php'); } // New in v2.x if(deftrue('BOOTSTRAP',false)) { $FORUM_VIEWTOPIC_TEMPLATE = e107::getTemplate('forum','forum_viewtopic'); // print_a($FORUM_VIEWTOPIC_TEMPLATE); $FORUMCAPTION = $FORUM_VIEWTOPIC_TEMPLATE['caption']; $FORUMSTART = $FORUM_VIEWTOPIC_TEMPLATE['start']; $FORUMTHREADSTYLE = $FORUM_VIEWTOPIC_TEMPLATE['thread']; $FORUMEND = $FORUM_VIEWTOPIC_TEMPLATE['end']; $FORUMREPLYSTYLE = $FORUM_VIEWTOPIC_TEMPLATE['replies']; $FORUMDELETEDSTYLE = $FORUM_VIEWTOPIC_TEMPLATE['deleted']; } else { if (!vartrue($FORUMSTART)) { if(file_exists(THEME.'forum_viewtopic_template.php')) { require_once(THEME.'forum_viewtopic_template.php'); } elseif(file_exists(THEME.'templates/forum/forum_viewtopic_template.php')) { require_once(THEME.'templates/forum/forum_viewtopic_template.php'); } elseif(file_exists(THEME.'forum_template.php')) { require_once(THEME.'forum_template.php'); } else { require_once(e_PLUGIN.'forum/templates/forum_viewtopic_template.php'); } } } //TODO Clean up this mess!! // get info for main thread ------------------------------------------------------------------------------------------------------------------------------------------------------------------- //---- Moved here to enclose $tVars..... $sc = e107::getScBatch('view', 'forum'); //---- $tVars = new e_vars; //---- $forum->set_crumb(true, '', $tVars); // Set $BREADCRUMB (and BACKLINK) $forum->set_crumb(true, '', $thread->threadInfo); // Set $BREADCRUMB (and BACKLINK) //$tVars->BREADCRUMB = $crumbs['breadcrumb']; //$tVars->BACKLINK = $tVars->BREADCRUMB; //$tVars->FORUM_CRUMB = $crumbs['forum_crumb']; //---- $tVars->THREADNAME = $tp->toHTML($thread->threadInfo['thread_name'], true, 'no_hook, emotes_off'); /*---- $prev = $forum->threadGetNextPrev('prev', $thread->threadId,$thread->threadInfo['forum_id'], $thread->threadInfo['thread_lastpost']); $next = $forum->threadGetNextPrev('next', $thread->threadId,$thread->threadInfo['forum_id'], $thread->threadInfo['thread_lastpost']); $options = array(); if($prev !== false) { $options[] = "« " . LAN_FORUM_2001 . ""; } if($next !== false) { $options[] = "" . LAN_FORUM_2002 . " »"; } $tVars->NEXTPREV = implode(" | ", $options); ----*/ /* $tVars->NEXTPREV = " $thread->threadId)) . "'>« " . LAN_FORUM_2001 . ""; $tVars->NEXTPREV .= ' | '; // enabled to make it look better on v1 templates $tVars->NEXTPREV .= " $thread->threadId)) . "'>" . LAN_FORUM_2002 . " »"; */ /*---- if ($forum->prefs->get('track') && USER) { // BC Fix for old template. if(!defined('IMAGE_track')) { define('IMAGE_track', ''.LAN_FORUM_4009.''); } if(!defined('IMAGE_untrack')) { define('IMAGE_untrack', ''.LAN_FORUM_4010.''); } $img = ($thread->threadInfo['track_userid'] ? IMAGE_track : IMAGE_untrack); /* $url = $e107->url->create('forum/thread/view', array('id' => $thread->threadId), 'encode=0'); // encoding could break AJAX call $url = e107::url('forum','index'); $tVars->TRACK .= " {$img} ";*/ /*---- $trackDiz = ($forum->prefs->get('trackemail',true)) ? LAN_FORUM_3040 : LAN_FORUM_3041; $tVars->TRACK = "".$img." "; } ----*/ /*---- $modUser = array(); foreach ( $forum->modArray as $user) { $modUser[] = "".$user['user_name'].""; } $tVars->MODERATORS = LAN_FORUM_2003.": ". implode(', ', $modUser); unset($modUser); ----*/ //---- $tVars->THREADSTATUS = (!$thread->threadInfo['thread_active'] ? LAN_FORUM_2004 : ''); /*---- if ($thread->pages > 1) { if(!$thread->page) $thread->page = 1; // $url = rawurlencode(e107::getUrl()->create('forum/thread/view', array('name' => $thread->threadInfo['thread_name'], 'id' => $thread->threadId, 'page' => '[FROM]'))); // $url = e_REQUEST_SELF."?p=[FROM]"; // SEF URL Friendly. $url = e107::url('forum','topic', $thread->threadInfo)."&p=[FROM]"; $parms = "total={$thread->pages}&type=page¤t={$thread->page}&url=".urlencode($url)."&caption=off&tmpl=default&navcount=4&glyphs=1"; //XXX FIXME - pull-down template not practical here. Can we force another? $tVars->GOTOPAGES = $tp->parseTemplate("{NEXTPREV={$parms}}"); /* $parms = ($thread->pages).",1,{$thread->page},url::forum::thread::func=view&id={$thread->threadId}&page=[FROM],off"; $tVars->GOTOPAGES = $tp->parseTemplate("{NEXTPREV={$parms}}"); } ----*/ /*---- $tVars->BUTTONS = ''; if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'post') && $thread->threadInfo['thread_active']) { // print_a($thread->threadInfo); $url = e107::url('forum','post')."?f=rp&id=".$thread->threadInfo['thread_id']."&post=".$thread->threadId; // $url = $e107->url->create('forum/thread/reply', array('id' => $thread->threadId)); $tVars->BUTTONS .= "" . IMAGE_reply . ""; } if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'thread')) { $ntUrl = e107::url('forum','post')."?f=nt&id=". $thread->threadInfo['thread_forum_id']; // $ntUrl = $e107->url->create('forum/thread/new', array('id' => $thread->threadInfo['thread_forum_id'])); $tVars->BUTTONS .= "" . IMAGE_newthread . ""; } ----*/ /*---- $tVars->BUTTONSX = forumbuttons($thread); function forumbuttons($thread) { global $forum; if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'post') && $thread->threadInfo['thread_active']) { $url = e107::url('forum','post')."?f=rp&id=".$thread->threadInfo['thread_id']."&post=".$thread->threadId; // $url = e107::getUrl()->create('forum/thread/reply', array('id' => $thread->threadId)); $replyUrl = "".LAN_FORUM_2006.""; } if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'thread')) { $ntUrl = e107::url('forum','post')."?f=nt&id=". $thread->threadInfo['thread_forum_id']; // $ntUrl = e107::getUrl()->create('forum/thread/new', array('id' => $thread->threadInfo['thread_forum_id'])); $options[] = " ".LAN_FORUM_2005.""; } // $options[] = " $thread->threadId)) . "'>".LAN_FORUM_1017." ".LAN_FORUM_2001.""; // $options[] = " $thread->threadId)) . "'>".LAN_FORUM_1017." ".LAN_FORUM_2002.""; $prev = $forum->threadGetNextPrev('prev', $thread->threadId,$thread->threadInfo['forum_id'], $thread->threadInfo['thread_lastpost']); $next = $forum->threadGetNextPrev('next', $thread->threadId,$thread->threadInfo['forum_id'], $thread->threadInfo['thread_lastpost']); if($prev !== false) { $options[] = "".LAN_FORUM_1017." ".LAN_FORUM_2001.""; } if($next !== false) { $options[] = "".LAN_FORUM_1017." ".LAN_FORUM_2002.""; } $text = '
'.$replyUrl.'
'; return $text; } ----*/ //---- $tVars->POLL = vartrue($pollstr); //---- $tVars->FORUMJUMP = forumjump(); //---- $tVars->MESSAGE = $thread->message; $sc->setVars($thread->threadInfo); //$forum->set_crumb(true, '', $sc); // Set $BREADCRUMB (and BACKLINK) //---- $forstr = $tp->simpleParse($FORUMSTART, $tVars); $forstr = $tp->parseTemplate($FORUMSTART, true, $sc); unset($forrep); if (!$FORUMREPLYSTYLE) $FORUMREPLYSTYLE = $FORUMTHREADSTYLE; $alt = false; $i = $thread->page; //---- Moved upwards, to enclose $tVars... //---- $sc = e107::getScBatch('view', 'forum'); $mes = e107::getMessage(); // $sc->setVars($thread->threadInfo); //--->$forend = $tp->simpleParse($FORUMEND, $tVars); $forend = $tp->parseTemplate($FORUMEND, true, $sc); foreach ($postList as $c => $postInfo) { if($postInfo['post_options']) { $postInfo['post_options'] = unserialize($postInfo['post_options']); } $loop_uid = (int)$postInfo['post_user']; //---- Orphan $tnum???? $tnum = $i; $i++; //TODO: Look into fixing this, to limit to a single query per pageload $threadId = $thread->threadInfo['thread_id']; $e_hide_query = "SELECT post_id FROM `#forum_post` WHERE (`post_thread` = {$threadId} AND post_user= " . USERID . ' LIMIT 1'; $e_hide_hidden = LAN_FORUM_2008; $e_hide_allowed = USER; $sc->wrapper('forum_viewtopic/replies'); // default. if($thread->page ==1 && $c == 0) { $postInfo['thread_start'] = true; $sc->setScVar('postInfo', $postInfo); $sc->setVars($postInfo); // compatibility $sc->wrapper('forum_viewtopic/thread'); // $forum_shortcodes = e107::getScBatch('view', 'forum')->setScVar('postInfo', $postInfo)->wrapper('forum/viewtopic'); $forthr = $tp->parseTemplate($FORUMTHREADSTYLE, true, $sc) . "\n"; } else { $postInfo['thread_start'] = false; $alt = !$alt; $sc->setScVar('postInfo', $postInfo); $sc->setVars($postInfo); // compatibility if($postInfo['post_status']) { $_style = (isset($FORUMDELETEDSTYLE_ALT) && $alt ? $FORUMDELETEDSTYLE_ALT : $FORUMDELETEDSTYLE); $sc->wrapper('forum_viewtopic/deleted'); } else { $_style = (isset($FORUMREPLYSTYLE_ALT) && $alt ? $FORUMREPLYSTYLE_ALT : $FORUMREPLYSTYLE); $sc->wrapper('forum_viewtopic/replies'); } // $forum_shortcodes = e107::getScBatch('view', 'forum')->setScVar('postInfo', $postInfo)->wrapper('forum/viewtopic'); $forrep .= $tp->parseTemplate($_style, true, $sc) . "\n"; } } unset($loop_uid); /*----> if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'post') && $thread->threadInfo['thread_active']) { //XXX Show only on the last page?? if (!vartrue($forum_quickreply)) { $ajaxInsert = ($thread->pages == $thread->page || $thread->pages == 0) ? 1 : 0; // $ajaxInsert = 1; // echo "AJAX-INSERT=".$ajaxInsert ."(".$thread->pages." vs ".$thread->page.")"; $frm = e107::getForm(); $urlParms = array('f'=>'rp','id'=>$thread->threadInfo['thread_id'], 'post'=>$thread->threadInfo['thread_id']); $url = e107::url('forum','post', null, array('query'=>$urlParms));; // ."?f=rp&id=".$thread->threadInfo['thread_id']."&post=".$thread->threadInfo['thread_id']; $tVars->QUICKREPLY = "
"; if(E107_DEBUG_LEVEL > 0) { // echo "
Thread id: ".$threadId."
"; // print_a($this); } // Preview should be reserved for the full 'Post reply' page.   } else { $tVars->QUICKREPLY = $forum_quickreply; } } <----*/ /*---> $mes = e107::getMessage(); $sc->setVars($thread->threadInfo); //--->$forend = $tp->simpleParse($FORUMEND, $tVars); $forend = $tp->parseTemplate($FORUMEND, true, $sc); <---*/ $forumstring = $forstr . $forthr . vartrue($forrep) . $forend; //If last post came after USERLV and not yet marked as read, mark the thread id as read //---- Orphan $currentUser??? $threadsViewed = explode(',', $currentUser['user_plugin_forum_viewed']); if ($thread->threadInfo['thread_lastpost'] > USERLV && !in_array($thread->threadId, $threadsViewed)) { $tst = $forum->threadMarkAsRead($thread->threadId); $mes->addDebug("Marking Forum as read: ".$thread->threadId." result: ".$tst); } else { $ret = array('lastpost'=>$thread->threadInfo['thread_lastpost'], 'lastvisit'=>USERLV, 'thread'=>$thread->threadId, 'viewed'=>$threadsViewed); $mes->addDebug(print_a($ret,true)); unset($ret); } require_once (HEADERF); if ($forum->prefs->get('enclose')) { $forumTitle = empty($FORUMCAPTION) ? e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME) : $tp->parseTemplate($FORUMCAPTION, TRUE, $sc); $ns->tablerender($forumTitle, $mes->render().$forumstring, array('forum_viewtopic', 'main')); } else { echo $mes->render() . $forumstring; } // end ------------------------------------------------------------------------------------------------------------------------------------------------------------------- echo ""; require_once (FOOTERF); function showmodoptions() { global $thread, $postInfo; $e107 = e107::getInstance(); //---- Orphan $forum_id???? $forum_id = $thread->threadInfo['forum_id']; if ($postInfo['thread_start']) { $type = 'Thread'; // XXX _URL_ thread name? $ret = "
$postInfo['post_thread']))."' id='frmMod_{$postInfo['post_forum']}_{$postInfo['post_thread']}'>"; $delId = $postInfo['post_thread']; } else { $type = 'Post'; $ret = ""; $delId = $postInfo['post_id']; } $editQRY = array('f'=>'edit', 'id'=>$postInfo['post_thread'], 'post'=>$postInfo['post_id']); $editURL = e107::url('forum','post','', array('query'=> $editQRY)); // $e107->url->create('forum/thread/edit', array('id' => $postInfo['post_id'])) $ret .= "
" . IMAGE_admin_edit . " "; if ($type == 'Thread') { $moveUrl = e107::url('forum','move', array('thread_id'=>$postInfo['post_thread'])); $ret .= "" . IMAGE_admin_move2 . ""; } else { $ret .= " $postInfo['post_id']))."'>" . defset('IMAGE_admin_split') . ''; } $ret .= "
"; return $ret; } /*---- function forumjump() { global $forum; $jumpList = $forum->forumGetAllowed(); $text = "

".LAN_FORUM_1017.":

"; return $text; } ----*/ function rpg($user_join, $user_forums) { global $FORUMTHREADSTYLE; if (strpos($FORUMTHREADSTYLE, '{RPG}') === false) { return ''; } // rpg mod by Ikari ( kilokan1@yahoo.it | http://artemanga.altervista.org ) $lvl_post_mp_cost = 2.5; $lvl_mp_regen_per_day = 4; $lvl_avg_ppd = 5; $lvl_bonus_redux = 5; $lvl_user_days = max(1, round((time() - $user_join) / 86400)); $lvl_ppd = $user_forums / $lvl_user_days; if ($user_forums < 1) { $lvl_level = 0; } else { $lvl_level = floor(pow(log10($user_forums), 3)) + 1; } if ($lvl_level < 1) { $lvl_hp = "0 / 0"; $lvl_hp_percent = 0; } else { $lvl_max_hp = floor((pow($lvl_level, (1 / 4))) * (pow(10, pow($lvl_level + 2, (1 / 3)))) / (1.5)); if ($lvl_ppd >= $lvl_avg_ppd) { $lvl_hp_percent = floor((.5 + (($lvl_ppd - $lvl_avg_ppd) / ($lvl_bonus_redux * 2))) * 100); } else { $lvl_hp_percent = floor($lvl_ppd / ($lvl_avg_ppd / 50)); } if ($lvl_hp_percent > 100) { $lvl_max_hp += floor(($lvl_hp_percent - 100) * pi()); $lvl_hp_percent = 100; } else { $lvl_hp_percent = max(0, $lvl_hp_percent); } $lvl_cur_hp = floor($lvl_max_hp * ($lvl_hp_percent / 100)); $lvl_cur_hp = max(0, $lvl_cur_hp); $lvl_cur_hp = min($lvl_max_hp, $lvl_cur_hp); $lvl_hp = $lvl_cur_hp . '/' . $lvl_max_hp; } if ($lvl_level < 1) { $lvl_mp = '0 / 0'; $lvl_mp_percent = 0; } else { $lvl_max_mp = floor((pow($lvl_level, (1 / 4))) * (pow(10, pow($lvl_level + 2, (1 / 3)))) / (pi())); $lvl_mp_cost = $user_forums * $lvl_post_mp_cost; $lvl_mp_regen = max(1, $lvl_user_days * $lvl_mp_regen_per_day); $lvl_cur_mp = floor($lvl_max_mp - $lvl_mp_cost + $lvl_mp_regen); $lvl_cur_mp = max(0, $lvl_cur_mp); $lvl_cur_mp = min($lvl_max_mp, $lvl_cur_mp); $lvl_mp = $lvl_cur_mp . '/' . $lvl_max_mp; $lvl_mp_percent = floor($lvl_cur_mp / $lvl_max_mp * 100); } if ($lvl_level < 1) { $lvl_exp = "0 / 0"; $lvl_exp_percent = 100; } else { $lvl_posts_for_next = floor(pow(10, pow($lvl_level, (1 / 3)))); if ($lvl_level == 1) { $lvl_posts_for_this = max(1, floor(pow(10, (($lvl_level - 1))))); } else { $lvl_posts_for_this = max(1, floor(pow(10, pow(($lvl_level - 1), (1 / 3))))); } $lvl_exp = ($user_forums - $lvl_posts_for_this) . "/" . ($lvl_posts_for_next - $lvl_posts_for_this); $lvl_exp_percent = floor((($user_forums - $lvl_posts_for_this) / max(1, ($lvl_posts_for_next - $lvl_posts_for_this))) * 100); } $bar_image = THEME . "images/bar.jpg"; if (!is_readable($bar_image)) { $bar_image = e_PLUGIN . "forum/images/" . IMODE . "/bar.jpg"; } $rpg_info = "
"; $rpg_info .= "Level = " . $lvl_level . "
"; $rpg_info .= "HP = " . $lvl_hp . "

"; $rpg_info .= "EXP = " . $lvl_exp . "

"; $rpg_info .= "MP = " . $lvl_mp . "

"; $rpg_info .= "
"; return $rpg_info; } class e107ForumThread { public $message; public $threadId; public $forumId; public $perPage; public $noInc; public $pages; public $page; function init() { global $forum; $e107 = e107::getInstance(); $this->threadId = (int)varset($_GET['id']); $this->perPage = (varset($_GET['perpage']) ? (int)$_GET['perpage'] : $forum->prefs->get('postspage')); $this->page = (varset($_GET['p']) ? (int)$_GET['p'] : 1); if(!$this->threadId && e_QUERY) //BC Links fix. { list($id,$page) = explode(".",e_QUERY); $this->threadId = intval($id); $this->page = intval($page); } //If threadId doesn't exist, or not given, redirect to main forum page if (!$this->threadId || !$this->threadInfo = $forum->threadGet($this->threadId)) { if(E107_DEBUG_LEVEL > 0) { e107::getMessage()->addError("Thread not found or query error: ". __METHOD__ .' Line: '.__LINE__ ); return; // exit; } $url = e107::url('forum','index','full'); e107::getRedirect()->go($url); // header('Location:' . $e107->url->create('forum/forum/main', array(), 'encode=0&full=1')); exit; } //If not permitted to view forum, redirect to main forum page if (!$forum->checkPerm($this->threadInfo['thread_forum_id'], 'view')) { if(E107_DEBUG_LEVEL > 0) { echo __METHOD__ .' Line: '.__LINE__; exit; } $url = e107::url('forum','index','full'); e107::getRedirect()->go($url); // header('Location:' . $e107->url->create('forum/forum/main', array(), 'encode=0&full=1')); exit; } $totalPosts = $this->threadInfo['thread_total_replies'] + 1; // add +1 for the original post. ie. not a reply. $this->pages = ceil(($totalPosts) / $this->perPage); $this->noInc = false; } /* function toggle_track() { global $forum, $thread; $e107 = e107::getInstance(); if (!USER || !isset($_GET['id'])) { return; } if($thread->threadInfo['track_userid']) { $forum->track('del', USERID, $_GET['id']); $img = IMAGE_untrack; } else { $forum->track('add', USERID, $_GET['id']); $img = IMAGE_track; } if(e_AJAX_REQUEST) { $url = $e107->url->create('forum/thread/view', array('name' => $this->threadInfo['thread_name'], 'id' => $thread->threadId)); echo "{$img}"; exit(); } } */ /** * @return bool|null|string|void */ function processFunction() { global $forum, $thread; // $e107 = e107::getInstance(); $ns = e107::getRender(); $sql = e107::getDb(); $tp = e107::getParser(); //Orphan $frm variable???? $frm = e107::getForm(); if (empty($_GET['f'])) { return; } $function = trim($_GET['f']); switch ($function) { case 'post': $postId = varset($_GET['id']); $postInfo = $forum->postGet($postId,'post'); $postNum = $forum->postGetPostNum($postInfo['post_thread'], $postId); $postPage = ceil($postNum / $forum->prefs->get('postspage')); $url = e107::url('forum', 'topic', $postInfo, array( 'query' => array( 'p' => $postPage, // proper page number ), 'fragment' => 'post-' . $postId, // jump page to post 'mode'=>'full' )); e107::redirect($url); exit; break; case 'last': $pages = ceil(($thread->threadInfo['thread_total_replies'] + 1) / $thread->perPage); $thread->page = $_GET['p'] = $pages; break; /* // Now linked directly - no more redirect. case 'next': $next = $forum->threadGetNextPrev('next', $this->threadId, $this->threadInfo['forum_id'], $this->threadInfo['thread_lastpost']); if ($next) { $url = e107::getUrl()->create('forum/thread/view', array('id' => $next), array('encode' => false, 'full' => 1)); // no thread name info at this time header("location: {$url}"); exit; } $this->message = LAN_FORUM_2013; break; case 'prev': $prev = $forum->threadGetNextPrev('prev', $this->threadId, $this->threadInfo['forum_id'], $this->threadInfo['thread_lastpost']); if ($prev) { $url = e107::getUrl()->create('forum/thread/view', array('id' => $prev), array('encode' => false, 'full' => 1));// no thread name info at this time header("location: {$url}"); exit; } $this->message = LAN_FORUM_2012; break; */ // Moved to form_post.php /* case 'report': $threadId = (int)$_GET['id']; $postId = (int)$_GET['post']; $postInfo = $forum->postGet($postId, 'post'); if(!empty($_POST['report_thread'])) { $report_add = $tp->toDB($_POST['report_add']); if($forum->prefs->get('reported_post_email')) { require_once(e_HANDLER.'mail.php'); $report = LAN_FORUM_2018." ".SITENAME." : ".(substr(SITEURL, -1) == "/" ? SITEURL : SITEURL."/") . $e107->getFolder('plugins') . "forum/forum_viewtopic.php?" . $this->threadId . ".post\n ".LAN_FORUM_2019.": ".USERNAME. "\n" . $report_add; $subject = LAN_FORUM_2020." ". SITENAME; sendemail(SITEADMINEMAIL, $subject, $report); } // no reference of 'head' $threadInfo['head']['thread_name'] $insert = array( 'gen_id' => 0, 'gen_type' => 'reported_post', 'gen_datestamp' => time(), 'gen_user_id' => USERID, 'gen_ip' => $tp->toDB($postInfo['thread_name']), 'gen_intdata' => intval($this->threadId), 'gen_chardata' => $report_add, ); $url = e107::getUrl()->create('forum/thread/post', array('id' => $postId, 'name' => $postInfo['thread_name'], 'thread' => $threadId)); // both post info and thread info contain thread name $result = $sql->insert('generic', $insert); if($result) { $text = "

".LAN_FORUM_2021 . "

".LAN_FORUM_2022.'
'; } else { $text = "

".LAN_FORUM_2021 . "

".LAN_FORUM_2022.'
'; } define('e_PAGETITLE', LAN_FORUM_1001 . " / " . LAN_FORUM_2021); return $ns->tablerender(LAN_FORUM_2023, $text, array('forum_viewtopic', 'report'), true); } else { $thread_name = e107::getParser()->toHTML($postInfo['thread_name'], true, 'no_hook, emotes_off'); define('e_PAGETITLE', LAN_FORUM_1001.' / '.LAN_FORUM_2024.': '.$thread_name); $url = e107::getUrl()->create('forum/thread/post', array('id' => $postId, 'name' => $postInfo['thread_name'], 'thread' => $threadId)); $actionUrl = e107::getUrl()->create('forum/thread/report', "id={$threadId}&post={$postId}"); if(deftrue('BOOTSTRAP')) //v2.x { $text = $frm->open('forum-report-thread','post'); $text .= "

".LAN_FORUM_2025.': '.$thread_name."

".LAN_FORUM_2027."
".str_replace(array('[', ']'), array('', ''), LAN_FORUM_2028)." View Post
".$tp->toHtml($postInfo['post_entry'],true)."
".$frm->textarea('report_add','',10,35,array('size'=>'xxlarge'))."
".$frm->button('report_thread',1,'submit',LAN_FORUM_2029)."
"; $text .= $frm->close(); // $text .= print_a($postInfo['post_entry'],true); } else //v1.x legacy layout. { $text = "
".LAN_FORUM_2025.': '.$thread_name." ".LAN_FORUM_2026."
".LAN_FORUM_2027."
".str_replace(array('[', ']'), array('', ''), LAN_FORUM_2028)."

"; } return e107::getRender()->tablerender(LAN_FORUM_2023, $text, array('forum_viewtopic', 'report2'), true); } exit; break;*/ } } } ?>