From b9ab0fb109ebf70c6e498a0c3ff72ceb8d2a5c08 Mon Sep 17 00:00:00 2001 From: rica-carv Date: Tue, 31 May 2016 20:32:14 +0100 Subject: [PATCH] Add files via upload --- e107_plugins/forum/forum.php | 1629 ++++++++++++++++++---------------- 1 file changed, 842 insertions(+), 787 deletions(-) diff --git a/e107_plugins/forum/forum.php b/e107_plugins/forum/forum.php index d2280ceec..a6d2e4036 100644 --- a/e107_plugins/forum/forum.php +++ b/e107_plugins/forum/forum.php @@ -1,787 +1,842 @@ -isInstalled('forum')) -{ - // FIXME GLOBAL - get rid of all e_BASE|e_HTTP|Whatever/index.php - just point to SITEURL - e107::redirect(); - exit; -} -e107::lan('forum', "front", true); -// include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum.php'); // using English_front.php now - -if(!deftrue('BOOTSTRAP')) -{ - $bcDefs = array( - 'FORLAN_11' => 'LAN_FORUM_0039', - 'FORLAN_12' => 'LAN_FORUM_0040', - 'FORLAN_18' => 'LAN_FORUM_0041', - ); - - e107::getLanguage()->bcDefs($bcDefs); -} - - -require_once(e_PLUGIN.'forum/forum_class.php'); -$forum = new e107forum; - -if(e_AJAX_REQUEST) -{ - if(varset($_POST['action']) == 'track') - { - $forum->ajaxTrack(); - } - -} - -/* -if ($untrackId = varset($_REQUEST['untrack'])) -{ - $forum->track('del', USERID, $untrackId); - header('location:'.$e107->url->create('forum/thread/track', array(), 'full=1&encode=0')); - exit; -} -*/ - -if(isset($_GET['f'])) -{ - if(isset($_GET['id'])) - { - $id = (int)$_GET['id']; - } - - switch($_GET['f']) - { - case 'mfar': - $forum->forumMarkAsRead($id); - header('location:'.e_SELF); - exit; - break; - - case 'rules': - include_once(HEADERF); - - forum_rules('show'); - include_once(FOOTERF); - exit; - break; - - case 'track': - include_once(HEADERF); - - forum_track(); - include_once(FOOTERF); - exit; - break; - } -} -$fVars = new e_vars; -$gen = new convert; - -$fVars->FORUMTITLE = e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME); -$fVars->THREADTITLE = LAN_FORUM_0002; -$fVars->REPLYTITLE = LAN_FORUM_0003; -$fVars->LASTPOSTITLE = LAN_FORUM_0004; -$fVars->INFOTITLE = LAN_FORUM_0009; -$fVars->LOGO = IMAGE_e; -$fVars->NEWTHREADTITLE = LAN_FORUM_0075; -$fVars->POSTEDTITLE = LAN_FORUM_0074; -$fVars->NEWIMAGE = IMAGE_new_small; -$fVars->TRACKTITLE = LAN_FORUM_0073; - -$rules_text = forum_rules('check'); - -$fVars->USERINFO = "".LAN_FORUM_0010." | ".LAN_FORUM_0011.""; -if(USER) -{ - $fVars->USERINFO .= " | ".LAN_FORUM_0012." | ".LAN_FORUM_0013." | ".LAN_FORUM_0014.""; - if($forum->prefs->get('attach') && (check_class($pref['upload_class']) || getperms('0'))) - { - $fVars->USERINFO .= " | ".LAN_FORUM_0015.""; - } -} -if(!empty($rules_text)) -{ - $fVars->USERINFO .= " | ".LAN_FORUM_0016.''; -} - - -// v2.x -------------------- -$uInfo = array(); -$uInfo[0] = "".LAN_FORUM_6013.''; - -if(!empty($rules_text)) -{ - $uInfo[1] = "".LAN_FORUM_0016.''; -} - -$trackPref = $forum->prefs->get('track'); -if(!empty($trackPref)) -{ - $uInfo[2] = "".LAN_FORUM_0030.""; -} -$fVars->USERINFOX = implode(" | ",$uInfo); -// ----------- - - - - -$total_topics = $sql->count("forum_thread", "(*)"); -$total_replies = $sql->count("forum_post", "(*)"); -$total_members = $sql->count("user"); -$newest_member = $sql->select("user", "*", "user_ban='0' ORDER BY user_join DESC LIMIT 0,1"); -list($nuser_id, $nuser_name) = $sql->fetch('num'); // FIXME $nuser_id & $user_name return empty even though print_a($newest_member); returns proper result. - -if(!defined('e_TRACKING_DISABLED')) -{ - $member_users = $sql->select("online", "*", "online_location REGEXP('forum.php') AND online_user_id!='0' "); - $guest_users = $sql->select("online", "*", "online_location REGEXP('forum.php') AND online_user_id='0' "); - $users = $member_users+$guest_users; - $fVars->USERLIST = LAN_FORUM_0036.": "; - global $listuserson; - $c = 0; - if(is_array($listuserson)) - { - foreach($listuserson as $uinfo => $pinfo) - { - list($oid, $oname) = explode(".", $uinfo, 2); - $c ++; - $fVars->USERLIST .= "$oname".($c == MEMBERS_ONLINE ? "." :", "); - } - } - $fVars->USERLIST .= "
".LAN_FORUM_0037." ".LAN_FORUM_0038; -} -$fVars->STATLINK = "".LAN_FORUM_0017."\n"; -$fVars->ICONKEY = " -\n - - - - - - -\n
".IMAGE_new_small."".LAN_FORUM_0039."".IMAGE_nonew_small."".LAN_FORUM_0040."".IMAGE_closed_small."".LAN_FORUM_0041."
\n"; - -if(!$srchIcon = $tp->toGlyph('fa-search')) -{ - $srchIcon = LAN_SEARCH; -} - -$fVars->SEARCH = " -
-
- - - - - - - -
- -
\n"; - -$fVars->PERMS = (USER == TRUE || ANON == TRUE ? LAN_FORUM_0043." - ".LAN_FORUM_0045." - ".LAN_FORUM_0047 : LAN_FORUM_0044." - ".LAN_FORUM_0046." - ".LAN_FORUM_0048); - -$fVars->INFO = ""; -if (USER == TRUE) -{ - $total_new_threads = $sql->count('forum_thread', '(*)', "WHERE thread_datestamp>'".USERLV."' "); - if (USERVIEWED != "") - { - $tmp = explode(".", USERVIEWED); // List of numbers, separated by single period - $total_read_threads = count($tmp); - } - else - { - $total_read_threads = 0; - } - - $fVars->INFO = LAN_FORUM_0018." ".USERNAME."
"; - $lastvisit_datestamp = $gen->convert_date(USERLV, 'long'); - $datestamp = $gen->convert_date(time(), "long"); - if (!$total_new_threads) - { - $fVars->INFO .= LAN_FORUM_0019." "; - } - elseif($total_new_threads == 1) - { - $fVars->INFO .= LAN_FORUM_0020; - } - else - { - $fVars->INFO .= LAN_FORUM_0021." ".$total_new_threads." ".LAN_FORUM_0022." "; - } - $fVars->INFO .= LAN_FORUM_0023; - if ($total_new_threads == $total_read_threads && $total_new_threads != 0 && $total_read_threads >= $total_new_threads) - { - $fVars->INFO .= LAN_FORUM_0029; - $allread = TRUE; - } - elseif($total_read_threads != 0) - { - $fVars->INFO .= " (".LAN_FORUM_0027." ".$total_read_threads." ".LAN_FORUM_0028.")"; - } - - $fVars->INFO .= "
- ".LAN_FORUM_0024." ".$lastvisit_datestamp."
- ".LAN_FORUM_0025." ".$datestamp; -} -else -{ - $fVars->INFO .= ''; - if (ANON == TRUE) - { - $fVars->INFO .= LAN_FORUM_0049.'
'.LAN_FORUM_0050." ".LAN_FORUM_0051." ".LAN_FORUM_0052; - } - elseif(USER == FALSE) - { - $fVars->INFO .= LAN_FORUM_0049.'
'.LAN_FORUM_0053." ".LAN_FORUM_0054." ".LAN_FORUM_0055; - } -} - -if (USER && vartrue($allread) != TRUE && $total_new_threads && $total_new_threads >= $total_read_threads) -{ - $fVars->INFO .= "
".LAN_FORUM_0057.''.(e_QUERY != 'new' ? ", ".LAN_FORUM_0058."" : ''); -} - -$trackPref = $forum->prefs->get('track'); -if (USER && vartrue($trackPref) && e_QUERY != 'track') -{ - $fVars->INFO .= "
".LAN_FORUM_0030.''; -} - -$fVars->FORUMINFO = -str_replace("[x]", ($total_topics+$total_replies), LAN_FORUM_0031)." ($total_topics ".($total_topics == 1 ? LAN_FORUM_0032 : LAN_FORUM_0033).", $total_replies ".($total_replies == 1 ? LAN_FORUM_0034 : LAN_FORUM_0035).") -".(!defined("e_TRACKING_DISABLED") ? "" : "
".$users." ".($users == 1 ? LAN_FORUM_0059 : LAN_FORUM_0060)." (".$member_users." ".($member_users == 1 ? LAN_FORUM_0061 : LAN_FORUM_0062).", ".$guest_users." ".($guest_users == 1 ? LAN_FORUM_0063 : LAN_FORUM_0064).")
".LAN_FORUM_0066." ".$total_members."
".LAN_FORUM_0065." ".$nuser_name.".\n"); // FIXME cannot find other references to e_TRACKING_DISABLED, use pref? - -// FIX - core template always override theme template -// Include core template -include(e_PLUGIN.'forum/templates/forum_template.php'); - -// Override with theme template -if (file_exists(THEME.'forum_template.php')) -{ - include_once(THEME.'forum_template.php'); -} -elseif(file_exists(THEME.'templates/forum/forum_template.php')) -{ - require_once(THEME.'templates/forum/forum_template.php'); -} - - - - -if(is_array($FORUM_TEMPLATE) && deftrue('BOOTSTRAP',false)) // new v2.x format. -{ - - if(varset($FORUM_TEMPLATE['main-start'])) // correction of previous v2.x setup. - { - $FORUM_TEMPLATE['main']['start'] = $FORUM_TEMPLATE['main-start']; - $FORUM_TEMPLATE['main']['parent'] = $FORUM_TEMPLATE['main-parent']; - $FORUM_TEMPLATE['main']['forum'] = $FORUM_TEMPLATE['main-forum']; - $FORUM_TEMPLATE['main']['end'] = $FORUM_TEMPLATE['main-end']; - } - - $FORUM_MAIN_START = $FORUM_TEMPLATE['main']['start']; - $FORUM_MAIN_PARENT = $FORUM_TEMPLATE['main']['parent']; - $FORUM_MAIN_FORUM = $FORUM_TEMPLATE['main']['forum']; - $FORUM_MAIN_END = $FORUM_TEMPLATE['main']['end']; - - $FORUM_NEWPOSTS_START = $FORUM_TEMPLATE['main']['start']; // $FORUM_TEMPLATE['new-start']; - $FORUM_NEWPOSTS_MAIN = $FORUM_TEMPLATE['main']['forum']; // $FORUM_TEMPLATE['new-main']; - $FORUM_NEWPOSTS_END = $FORUM_TEMPLATE['main']['end']; // $FORUM_TEMPLATE['new-end']; - - -} - - -require_once(HEADERF); - -$forumList = $forum->forumGetForumList(); -$newflag_list = $forum->forumGetUnreadForums(); - -if (!$forumList) -{ - $ns->tablerender(LAN_PLUGIN_FORUM_NAME, "
".LAN_FORUM_0067.'
', array('forum', '51')); - require_once(FOOTERF); - exit; -} - -$forum_string = ''; -$pVars = new e_vars; -$frm = e107::getForm(); - -foreach ($forumList['parents'] as $parent) -{ - $status = parse_parent($parent); - $pVars->PARENTSTATUS = $status; - - $pVars->PARENTID = $parent['forum_id']; -// $pVars->PARENTNAME = "".$parent['forum_name'].""; - $pVars->PARENTNAME = $parent['forum_name']; - $forum_string .= $tp->simpleParse($FORUM_MAIN_PARENT, $pVars); - if (!count($forumList['forums'][$parent['forum_id']])) - { - $text .= "".LAN_FORUM_0068.""; - } - else - { - //TODO: Rework the restricted string - foreach($forumList['forums'][$parent['forum_id']] as $f) - { - if ($f['forum_class'] == e_UC_ADMIN && ADMIN) - { - $forum_string .= parse_forum($f, LAN_FORUM_0005); - } - elseif($f['forum_class'] == e_UC_MEMBER && USER) - { - $forum_string .= parse_forum($f, LAN_FORUM_0006); - } - elseif($f['forum_class'] == e_UC_READONLY) - { - $forum_string .= parse_forum($f, LAN_FORUM_0007); - } - elseif($f['forum_class'] && check_class($f['forum_class'])) - { - $forum_string .= parse_forum($f, LAN_FORUM_0008); - } - elseif(!$f['forum_class']) - { - $forum_string .= parse_forum($f); - } - } - if (isset($FORUM_MAIN_PARENT_END)) - { - $forum_string .= $tp->simpleParse($FORUM_MAIN_PARENT_END, $pVars); - } - } -} - -function parse_parent($parent) -{ - if(!check_class($parent['forum_postclass'])) - { - $status = '('.LAN_FORUM_0056.')'; - } - return vartrue($status); -} - -function parse_forum($f, $restricted_string = '') -{ - global $FORUM_MAIN_FORUM, $gen, $forum, $newflag_list, $forumList; - $fVars = new e_vars; - $e107 = e107::getInstance(); - $tp = e107::getParser(); - - if(USER && is_array($newflag_list) && in_array($f['forum_id'], $newflag_list)) - { - $fVars->NEWFLAG = "".IMAGE_new.''; - } - elseif(empty($f['forum_replies']) && defined('IMAGE_noreplies')) - { - $fVars->NEWFLAG = IMAGE_noreplies; - } - else - { - $fVars->NEWFLAG = IMAGE_nonew; - } - - if(substr($f['forum_name'], 0, 1) == '*') - { - $f['forum_name'] = substr($f['forum_name'], 1); - } - $f['forum_name'] = $tp->toHTML($f['forum_name'], true, 'no_hook'); - $f['forum_description'] = $tp->toHTML($f['forum_description'], TRUE, "BODY"); - - - //$url= $e107->url->create('forum/forum/view', $f); - $url = e107::url('forum', 'forum', $f); - $fVars->FORUMNAME = "{$f['forum_name']}"; - $fVars->FORUMDESCRIPTION = $f['forum_description'].($restricted_string ? "
$restricted_string" : ""); - $fVars->THREADS = $f['forum_threads']; - $fVars->REPLIES = $f['forum_replies']; - $fVars->FORUMSUBFORUMS = ''; - - - - - - $badgeReplies = ($f['forum_replies']) ? "badge-info" : ""; - $badgeThreads = ($f['forum_threads']) ? "badge-info" : ""; - - $fVars->THREADSX = "".$f['forum_threads'].""; - $fVars->REPLIESX = "".$f['forum_replies'].""; - - - $subId = $f['forum_id']; - if(!empty($forumList['subs']) && is_array($forumList['subs'][$subId])) - { - list($lastpost_datestamp, $lastpost_thread) = explode('.', $f['forum_lastpost_info']); - $ret = parse_subs($forumList, $f['forum_id'], $lastpost_datestamp); - $fVars->FORUMSUBFORUMS = "
".LAN_FORUM_0069.": {$ret['text']}
"; - $fVars->THREADS += $ret['threads']; - $fVars->REPLIES += $ret['replies']; - if(isset($ret['lastpost_info'])) - { - $f['forum_lastpost_info'] = $ret['lastpost_info']; - $f['forum_lastpost_user'] = $ret['lastpost_user']; - $f['forum_lastpost_user_anon'] = $ret['lastpost_user_anon']; - $f['user_name'] = $ret['user_name']; - } - } - - if ($f['forum_lastpost_info']) - { - list($lastpost_datestamp, $lastpost_thread) = explode('.', $f['forum_lastpost_info']); - if ($f['user_name']) - { - - $lastpost_name = " $f['user_name'], 'id' => $f['forum_lastpost_user']))."'>{$f['user_name']}"; - } - else - { - $lastpost_name = $tp->toHTML($f['forum_lastpost_user_anon']); - } - - $lastpost = $forum->threadGetLastpost($lastpost_thread); //XXX TODO inefficient to have SQL query here. - - $fVars->LASTPOSTUSER = $lastpost_name; - // {forum_sef}/{thread_id}-{thread_sef} - - $urlData = array('forum_sef'=>$f['forum_sef'], 'thread_id'=>$lastpost['post_thread'],'thread_sef'=>$lastpost['thread_sef']); - $url = e107::url('forum', 'topic', $urlData)."?last=1#post-".$lastpost['post_id']; - $fVars->LASTPOSTDATE .= "". $gen->computeLapse($lastpost_datestamp, time(), false, false, 'short').""; - $lastpost_datestamp = $gen->convert_date($lastpost_datestamp, 'forum'); - $fVars->LASTPOST = $lastpost_datestamp.'
'.$lastpost_name." $lastpost_name, 'id' => $lastpost_thread))."'>".IMAGE_post2.''; - - } - else - { - $fVars->LASTPOSTUSER = ""; - $fVars->LASTPOSTDATE = "-"; - $fVars->LASTPOST = '-'; - } - - - return $tp->simpleParse($FORUM_MAIN_FORUM, $fVars); -} - - - -function parse_subs($forumList, $id ='', $lastpost_datestamp) -{ - - $tp = e107::getParser(); - $ret = array(); - - $subList = $forumList['subs'][$id]; - - $ret['text'] = ''; - $ret['threads'] = 0; - $ret['replies'] = 0; - - foreach($subList as $sub) - { - // print_a($sub); - - $ret['text'] .= ($ret['text'] ? ', ' : ''); - - $urlData = $sub; - $urlData['parent_sef'] = $forumList['all'][$sub['forum_sub']]['forum_sef']; // = array('parent_sef'=> - $suburl = e107::url('forum','forum', $urlData); - - $ret['text'] .= "".$tp->toHTML($sub['forum_name']).''; - $ret['threads'] += $sub['forum_threads']; - $ret['replies'] += $sub['forum_replies']; - $tmp = explode('.', $sub['forum_lastpost_info']); - - if($tmp[0] > $lastpost_datestamp) - { - $ret['lastpost_info'] = $sub['forum_lastpost_info']; - $ret['lastpost_user'] = $sub['forum_lastpost_user']; - $ret['lastpost_user_anon'] = $sub['forum_lastpost_user_anon']; - $ret['user_name'] = $sub['user_name']; - $lastpost_datestamp = $tmp[0]; - } - } - - - return $ret; -} - - - -if (e_QUERY == 'track') -{ - -} - - - -if (e_QUERY == 'new') -{ - $nVars = new e_vars; - $newThreadList = $forum->threadGetNew(10); - foreach($newThreadList as $thread) - { - $author_name = ($thread['user_name'] ? $thread['user_name'] : $thread['lastuser_anon']); - - $datestamp = $gen->convert_date($thread['thread_lastpost'], 'forum'); - if(!$thread['user_name']) - { - $nVars->STARTERTITLE = $author_name.'
'.$datestamp; - } - else - { - $nVars->STARTERTITLE = " $thread['thread_lastuser'], 'name' => $author_name))."'>{$author_name}
".$datestamp; - } - $nVars->NEWSPOSTNAME = "".$tp->toHTML($thread['thread_name'], TRUE, 'no_make_clickable, no_hook').''; - - $forum_newstring .= $tp->simpleParse($FORUM_NEWPOSTS_MAIN, $nVars); - } - - if (empty($newThreadList)) - { - $nVars->NEWSPOSTNAME = LAN_FORUM_0029; - $forum_newstring = $tp->simpleParse($FORUM_NEWPOSTS_MAIN, $nVars); - - } - $forum_new_start = $tp->simpleParse($FORUM_NEWPOSTS_START, $nVars); - $forum_new_end = $tp->simpleParse($FORUM_NEWPOSTS_END, $nVars); - - if ($forum->prefs->get('enclose')) - { - $ns->tablerender($forum->prefs->get('title'), $forum_new_start.$forum_newstring.$forum_new_end, array('forum', 'main2')); - } - else - { - echo $forum_new_start.$forum_newstring.$forum_new_end; - } -} - -$frm = e107::getForm(); - -$breadarray = array( - array('text'=> $forum->prefs->get('title'), 'url' => e107::url('forum','index') ) -); - -$fVars->FORUM_BREADCRUMB = $frm->breadcrumb($breadarray); - -$forum_main_start = $tp->simpleParse($FORUM_MAIN_START, $fVars); -$forum_main_end = $tp->simpleParse($FORUM_MAIN_END, $fVars); - -if ($forum->prefs->get('enclose')) -{ - $ns->tablerender($forum->prefs->get('title'), $forum_main_start.$forum_string.$forum_main_end, 'forum'); -} -else -{ - echo $forum_main_start.$forum_string.$forum_main_end; -} - - - - - - - - -require_once(FOOTERF); - -function forum_rules($action = 'check') -{ - if (ADMIN == true) - { - $type = 'forum_rules_admin'; - } - elseif(USER == true) - { - $type = 'forum_rules_member'; - } - else - { - $type = 'forum_rules_guest'; - } - $result = e107::getDb()->select('generic', 'gen_chardata', "gen_type = '$type' AND gen_intdata = 1"); - if ($action == 'check') { return $result; } - - if ($result) - { - $row = e107::getDb()->fetch(); - $rules_text = e107::getParser()->toHTML($row['gen_chardata'], true); - } - else - { - $rules_text = LAN_FORUM_0072; - } - - $text = ''; - - if(deftrue('BOOTSTRAP')) - { - $breadarray = array( - array('text'=> e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME), 'url' => e107::url('forum','index') ), - array('text'=>LAN_FORUM_0016, 'url'=>null) - ); - - $text = e107::getForm()->breadcrumb($breadarray); - } - - $text .= "
".$rules_text."
"; - $text .= "
".e107::getForm()->pagination(e107::url('forum','index'), LAN_BACK)."
"; - - e107::getRender()->tablerender(LAN_FORUM_0016, $text, array('forum', 'forum_rules')); -} - - -function forum_track() -{ - global $forum; - - $trackPref = $forum->prefs->get('track'); - $trackEmailPref = $forum->prefs->get('trackemail',true); - - - if(empty($trackPref)) - { - echo "Disabled"; - return false; - } - - - $FORUM_TEMPLATE = null; - - include(e_PLUGIN.'forum/templates/forum_template.php'); - - // Override with theme template - if (file_exists(THEME.'forum_template.php')) - { - include(THEME.'forum_template.php'); - } - elseif(file_exists(THEME.'templates/forum/forum_template.php')) - { - require(THEME.'templates/forum/forum_template.php'); - } - - $IMAGE_nonew_small = IMAGE_nonew_small; - $IMAGE_new_small = IMAGE_new_small; - - if(is_array($FORUM_TEMPLATE) && deftrue('BOOTSTRAP',false)) // new v2.x format. - { - $FORUM_TRACK_START = $FORUM_TEMPLATE['track']['start']; // $FORUM_TEMPLATE['track-start']; - $FORUM_TRACK_MAIN = $FORUM_TEMPLATE['track']['item']; // $FORUM_TEMPLATE['track-main']; - $FORUM_TRACK_END = $FORUM_TEMPLATE['track']['end']; // $FORUM_TEMPLATE['track-end']; - - $IMAGE_nonew_small = IMAGE_nonew; - $IMAGE_new_small = IMAGE_new; - - } - - $sql = e107::getDb(); - $tp = e107::getParser(); - - $trackDiz = ($trackEmailPref) ? LAN_FORUM_3040 : LAN_FORUM_3041; - - - if($trackedThreadList = $forum->getTrackedThreadList(USERID, 'list')) - { - - $viewed = $forum->threadGetUserViewed(); - - $qry = "SELECT t.*,th.*, f.*,u.user_name FROM `#forum_track` AS t - LEFT JOIN `#forum_thread` AS th ON t.track_thread = th.thread_id - LEFT JOIN `#forum` AS f ON th.thread_forum_id = f.forum_id - LEFT JOIN `#user` AS u ON th.thread_lastuser = u.user_id - WHERE t.track_userid = ".USERID." ORDER BY th.thread_lastpost DESC"; - - $forum_trackstring = ''; - $data = array(); - if($sql->gen($qry)) - { - while($row = $sql->fetch()) - { - // e107::getDebug()->log($row); - $row['thread_sef'] = eHelper::title2sef($row['thread_name'],'dashl'); - - $data['NEWIMAGE'] = $IMAGE_nonew_small; - - if ($row['thread_datestamp'] > USERLV && !in_array($row['thread_id'], $viewed)) - { - $data['NEWIMAGE'] = $IMAGE_new_small; - } - - $data['LASTPOSTUSER'] = !empty($row['user_name']) ? " $row['user_name'], 'id' => $row['thread_lastuser']))."'>".$row['user_name']."" : LAN_ANONYMOUS; - $data['LASTPOSTDATE'] = $tp->toDate($row['thread_lastpost'],'relative'); - - $buttonId = "forum-track-button-".intval($row['thread_id']); - - $forumUrl = e107::url('forum','forum',$row); - $threadUrl = e107::url('forum','topic',$row, array('query'=>array('last'=>1))); // ('forum/thread/view', $row); // configs will be able to map thread_* vars to the url - $data['TRACKPOSTNAME'] = "". $row['forum_name']." / ".$tp->toHTML($row['thread_name'], false, 'TITLE').''; - // $data['UNTRACK'] = "".LAN_FORUM_0070.""; - - - $data['UNTRACK'] = "".IMAGE_track.""; - - $forum_trackstring .= $tp->simpleParse($FORUM_TRACK_MAIN, $data); - } - } - // print_a($FORUM_TRACK_START); - - - if(deftrue('BOOTSTRAP')) - { - $breadarray = array( - array('text'=> e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME), 'url' => e107::url('forum','index') ), - array('text'=>LAN_FORUM_0030, 'url'=>null) - ); - - $data['FORUM_BREADCRUMB'] = e107::getForm()->breadcrumb($breadarray); - } - - - $forum_track_start = $tp->simpleParse($FORUM_TRACK_START, $data); - $forum_track_end = $tp->simpleParse($FORUM_TRACK_END, $data); - - // if ($forum->prefs->get('enclose')) - { - // $ns->tablerender($forum->prefs->get('title'), $forum_track_start.$forum_trackstring.$forum_track_end, array('forum', 'main1')); - } - // else - { - $tracktext = $forum_track_start.$forum_trackstring.$forum_track_end; - } - } - - - $text =''; - - - - $text .= $tracktext; - $text .= "
".e107::getForm()->pagination(e107::url('forum','index'), LAN_BACK)."
"; - - e107::getRender()->tablerender(LAN_FORUM_0030, $text, array('forum', 'forum_track')); - - -} - - -?> +isInstalled('forum')) +{ + // FIXME GLOBAL - get rid of all e_BASE|e_HTTP|Whatever/index.php - just point to SITEURL + e107::redirect(); + exit; +} +e107::lan('forum', "front", true); +// include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum.php'); // using English_front.php now + +if(!deftrue('BOOTSTRAP')) +{ + $bcDefs = array( + 'FORLAN_11' => 'LAN_FORUM_0039', + 'FORLAN_12' => 'LAN_FORUM_0040', + 'FORLAN_18' => 'LAN_FORUM_0041', + ); + + e107::getLanguage()->bcDefs($bcDefs); +} + + +require_once(e_PLUGIN.'forum/forum_class.php'); +$forum = new e107forum; + +if(e_AJAX_REQUEST) +{ + if(varset($_POST['action']) == 'track') + { + $forum->ajaxTrack(); + } + +} + +/* +if ($untrackId = varset($_REQUEST['untrack'])) +{ + $forum->track('del', USERID, $untrackId); + header('location:'.$e107->url->create('forum/thread/track', array(), 'full=1&encode=0')); + exit; +} +*/ + +if(isset($_GET['f'])) +{ + if(isset($_GET['id'])) + { + $id = (int)$_GET['id']; + } + + switch($_GET['f']) + { + case 'mfar': + $forum->forumMarkAsRead($id); + header('location:'.e_SELF); + exit; + break; + + case 'rules': + include_once(HEADERF); + + forum_rules('show'); + include_once(FOOTERF); + exit; + break; + + case 'track': + include_once(HEADERF); + + forum_track(); + include_once(FOOTERF); + exit; + break; + } +} + +//echo "


"; + $sc = e107::getScBatch('forum', true); +//echo "
"; +//var_dump ($sc); +// $sc->forum = $forum; +//var_dump ($sc); +//echo $tp->parseTemplate("====>{FORUMTITLE}<====", false, $sc); +//echo "
"; +//var_dump (is_object($sc)); +//var_dump (is_array($sc)); + +//--$fVars = new e_vars; +$gen = new convert; + +/*-- +// Gonne directly to shortcode file +$fVars->FORUMTITLE = e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME); +// Gonne directly to template file +$fVars->THREADTITLE = LAN_FORUM_0002; +// Gonne directly to template file +$fVars->REPLYTITLE = LAN_FORUM_0003; +// Gonne directly to template file +$fVars->LASTPOSTITLE = LAN_FORUM_0004; +// Gonne directly to template file +$fVars->INFOTITLE = LAN_FORUM_0009; +// Gonne directly to shortcode file +$fVars->LOGO = IMAGE_e; +// Gonne directly to template file +$fVars->NEWTHREADTITLE = LAN_FORUM_0075; +// Gonne directly to template file +$fVars->POSTEDTITLE = LAN_FORUM_0074; +// Gonne directly to shortcode file +$fVars->NEWIMAGE = IMAGE_new_small; +// Gonne directly to template file +$fVars->TRACKTITLE = LAN_FORUM_0073; +--*/ +/*-- +// Gonne directly to shortcode file +$rules_text = forum_rules('check'); + +$fVars->USERINFO = "".LAN_FORUM_0010." | ".LAN_FORUM_0011.""; +if(USER) +{ + $fVars->USERINFO .= " | ".LAN_FORUM_0012." | ".LAN_FORUM_0013." | ".LAN_FORUM_0014.""; + if($forum->prefs->get('attach') && (check_class($pref['upload_class']) || getperms('0'))) + { + $fVars->USERINFO .= " | ".LAN_FORUM_0015.""; + } +} +if(!empty($rules_text)) +{ + $fVars->USERINFO .= " | ".LAN_FORUM_0016.''; +} + + +// v2.x -------------------- +$uInfo = array(); +$uInfo[0] = "".LAN_FORUM_6013.''; + +if(!empty($rules_text)) +{ + $uInfo[1] = "".LAN_FORUM_0016.''; +} + +$trackPref = $forum->prefs->get('track'); +if(!empty($trackPref)) +{ + $uInfo[2] = "".LAN_FORUM_0030.""; +} +$fVars->USERINFOX = implode(" | ",$uInfo); +// ----------- +--*/ + + +/*-- +// Gonne to foruminfo shortcode +$total_topics = $sql->count("forum_thread", "(*)"); +$total_replies = $sql->count("forum_post", "(*)"); +$total_members = $sql->count("user"); +$newest_member = $sql->select("user", "*", "user_ban='0' ORDER BY user_join DESC LIMIT 0,1"); +list($nuser_id, $nuser_name) = $sql->fetch('num'); // FIXME $nuser_id & $user_name return empty even though print_a($newest_member); returns proper result. + +if(!defined('e_TRACKING_DISABLED')) +{ + $member_users = $sql->select("online", "*", "online_location REGEXP('forum.php') AND online_user_id!='0' "); + $guest_users = $sql->select("online", "*", "online_location REGEXP('forum.php') AND online_user_id='0' "); + $users = $member_users+$guest_users; +// Gonne to shortcode file +/*-- + $fVars->USERLIST = LAN_FORUM_0036.": "; + global $listuserson; + $c = 0; + if(is_array($listuserson)) + { + foreach($listuserson as $uinfo => $pinfo) + { + list($oid, $oname) = explode(".", $uinfo, 2); + $c ++; + $fVars->USERLIST .= "$oname".($c == MEMBERS_ONLINE ? "." :", "); + } + } + $fVars->USERLIST .= "
".LAN_FORUM_0037." ".LAN_FORUM_0038; +} +--*/ +// Gonne directly to shortcode file +/*-- +$fVars->STATLINK = "".LAN_FORUM_0017."\n"; +$fVars->ICONKEY = " +\n + + + + + + +\n
".IMAGE_new_small."".LAN_FORUM_0039."".IMAGE_nonew_small."".LAN_FORUM_0040."".IMAGE_closed_small."".LAN_FORUM_0041."
\n"; + +if(!$srchIcon = $tp->toGlyph('fa-search')) +{ + $srchIcon = LAN_SEARCH; +} + +$fVars->SEARCH = " +
+
+ + + + + + + +
+ +
\n"; + +$fVars->PERMS = (USER == TRUE || ANON == TRUE ? LAN_FORUM_0043." - ".LAN_FORUM_0045." - ".LAN_FORUM_0047 : LAN_FORUM_0044." - ".LAN_FORUM_0046." - ".LAN_FORUM_0048); + +$fVars->INFO = ""; +if (USER == TRUE) +{ + $total_new_threads = $sql->count('forum_thread', '(*)', "WHERE thread_datestamp>'".USERLV."' "); + if (USERVIEWED != "") + { + $tmp = explode(".", USERVIEWED); // List of numbers, separated by single period + $total_read_threads = count($tmp); + } + else + { + $total_read_threads = 0; + } + + $fVars->INFO = LAN_FORUM_0018." ".USERNAME."
"; + $lastvisit_datestamp = $gen->convert_date(USERLV, 'long'); + $datestamp = $gen->convert_date(time(), "long"); + if (!$total_new_threads) + { + $fVars->INFO .= LAN_FORUM_0019." "; + } + elseif($total_new_threads == 1) + { + $fVars->INFO .= LAN_FORUM_0020; + } + else + { + $fVars->INFO .= LAN_FORUM_0021." ".$total_new_threads." ".LAN_FORUM_0022." "; + } + $fVars->INFO .= LAN_FORUM_0023; + if ($total_new_threads == $total_read_threads && $total_new_threads != 0 && $total_read_threads >= $total_new_threads) + { + $fVars->INFO .= LAN_FORUM_0029; + $allread = TRUE; + } + elseif($total_read_threads != 0) + { + $fVars->INFO .= " (".LAN_FORUM_0027." ".$total_read_threads." ".LAN_FORUM_0028.")"; + } + + $fVars->INFO .= "
+ ".LAN_FORUM_0024." ".$lastvisit_datestamp."
+ ".LAN_FORUM_0025." ".$datestamp; +} +else +{ + $fVars->INFO .= ''; + if (ANON == TRUE) + { + $fVars->INFO .= LAN_FORUM_0049.'
'.LAN_FORUM_0050." ".LAN_FORUM_0051." ".LAN_FORUM_0052; + } + elseif(USER == FALSE) + { + $fVars->INFO .= LAN_FORUM_0049.'
'.LAN_FORUM_0053." ".LAN_FORUM_0054." ".LAN_FORUM_0055; + } +} + +if (USER && vartrue($allread) != TRUE && $total_new_threads && $total_new_threads >= $total_read_threads) +{ + $fVars->INFO .= "
".LAN_FORUM_0057.''.(e_QUERY != 'new' ? ", ".LAN_FORUM_0058."" : ''); +} + +$trackPref = $forum->prefs->get('track'); +if (USER && vartrue($trackPref) && e_QUERY != 'track') +{ + $fVars->INFO .= "
".LAN_FORUM_0030.''; +} + +$fVars->FORUMINFO = +str_replace("[x]", ($total_topics+$total_replies), LAN_FORUM_0031)." ($total_topics ".($total_topics == 1 ? LAN_FORUM_0032 : LAN_FORUM_0033).", $total_replies ".($total_replies == 1 ? LAN_FORUM_0034 : LAN_FORUM_0035).") +".(!defined("e_TRACKING_DISABLED") ? "" : "
".$users." ".($users == 1 ? LAN_FORUM_0059 : LAN_FORUM_0060)." (".$member_users." ".($member_users == 1 ? LAN_FORUM_0061 : LAN_FORUM_0062).", ".$guest_users." ".($guest_users == 1 ? LAN_FORUM_0063 : LAN_FORUM_0064).")
".LAN_FORUM_0066." ".$total_members."
".LAN_FORUM_0065." ".$nuser_name.".\n"); // FIXME cannot find other references to e_TRACKING_DISABLED, use pref? +--*/ + +// FIX - core template always override theme template +// Include core template +include(e_PLUGIN.'forum/templates/forum_template.php'); + +// Override with theme template +if (file_exists(THEME.'forum_template.php')) +{ + include_once(THEME.'forum_template.php'); +} +elseif(file_exists(THEME.'templates/forum/forum_template.php')) +{ + require_once(THEME.'templates/forum/forum_template.php'); +} + +if(is_array($FORUM_TEMPLATE) && deftrue('BOOTSTRAP',false)) // new v2.x format. +{ + + if(varset($FORUM_TEMPLATE['main-start'])) // correction of previous v2.x setup. + { + $FORUM_TEMPLATE['main']['start'] = $FORUM_TEMPLATE['main-start']; + $FORUM_TEMPLATE['main']['parent'] = $FORUM_TEMPLATE['main-parent']; + $FORUM_TEMPLATE['main']['forum'] = $FORUM_TEMPLATE['main-forum']; + $FORUM_TEMPLATE['main']['end'] = $FORUM_TEMPLATE['main-end']; + } + + $FORUM_MAIN_START = $FORUM_TEMPLATE['main']['start']; + $FORUM_MAIN_PARENT = $FORUM_TEMPLATE['main']['parent']; + $FORUM_MAIN_FORUM = $FORUM_TEMPLATE['main']['forum']; + $FORUM_MAIN_END = $FORUM_TEMPLATE['main']['end']; + + $FORUM_NEWPOSTS_START = $FORUM_TEMPLATE['main']['start']; // $FORUM_TEMPLATE['new-start']; + $FORUM_NEWPOSTS_MAIN = $FORUM_TEMPLATE['main']['forum']; // $FORUM_TEMPLATE['new-main']; + $FORUM_NEWPOSTS_END = $FORUM_TEMPLATE['main']['end']; // $FORUM_TEMPLATE['new-end']; +} + +require_once(HEADERF); + +$forumList = $forum->forumGetForumList(); +$newflag_list = $forum->forumGetUnreadForums(); + +if (!$forumList) +{ + $ns->tablerender(LAN_PLUGIN_FORUM_NAME, "
".LAN_FORUM_0067.'
', array('forum', '51')); + require_once(FOOTERF); + exit; +} + +$forum_string = ''; +//--$pVars = new e_vars; +//--$frm = e107::getForm(); +foreach ($forumList['parents'] as $parent) +{ +// Gonne directly to shortcode file +//-- $status = parse_parent($parent); +//-- $pVars->PARENTSTATUS = $status; +//---- $sc->parentstatus = parse_parent($parent); + +// Gonne directly to shortcode file +// $pVars->PARENTNAME = "".$parent['forum_name'].""; +// $pVars->PARENTNAME = $parent['forum_name']; +//---- $sc->parentname = $parent['forum_name']; +//-- $forum_string .= $tp->simpleParse($FORUM_MAIN_PARENT, $pVars); +// $sc->fparent = $parent; + $sc->setVars($parent); + $forum_string .= $tp->parseTemplate($FORUM_MAIN_PARENT, false, $sc); + if (!count($forumList['forums'][$parent['forum_id']])) + { + $text .= "".LAN_FORUM_0068.""; + } + else + { + //TODO: Rework the restricted string + foreach($forumList['forums'][$parent['forum_id']] as $f) + { + if ($f['forum_class'] == e_UC_ADMIN && ADMIN) + { + $forum_string .= parse_forum($f, LAN_FORUM_0005); + } + elseif($f['forum_class'] == e_UC_MEMBER && USER) + { + $forum_string .= parse_forum($f, LAN_FORUM_0006); + } + elseif($f['forum_class'] == e_UC_READONLY) + { + $forum_string .= parse_forum($f, LAN_FORUM_0007); + } + elseif($f['forum_class'] && check_class($f['forum_class'])) + { + $forum_string .= parse_forum($f, LAN_FORUM_0008); + } + elseif(!$f['forum_class']) + { + $forum_string .= parse_forum($f); + } + } + if (isset($FORUM_MAIN_PARENT_END)) + { +//-- $forum_string .= $tp->simpleParse($FORUM_MAIN_PARENT_END, $pVars); + $forum_string .= $tp->parseTemplate($FORUM_MAIN_PARENT_END, false, $sc); + } + } +} + +/*---- +function parse_parent($parent) +{ + if(!check_class($parent['forum_postclass'])) + { + $status = '('.LAN_FORUM_0056.')'; + } + return vartrue($status); +} +*/ +function parse_forum($f, $restricted_string = '') +{ +//---- global $FORUM_MAIN_FORUM, $gen, $forum, $newflag_list, $forumList, $sc; + global $FORUM_MAIN_FORUM, $forumList, $sc; +//-- $fVars = new e_vars; +//---- $e107 = e107::getInstance(); + $tp = e107::getParser(); + +// Gonne directly to shortcode file +/*-- + if(USER && is_array($newflag_list) && in_array($f['forum_id'], $newflag_list)) + { + + $fVars->NEWFLAG = "".IMAGE_new.''; + } + elseif(empty($f['forum_replies']) && defined('IMAGE_noreplies')) + { + $fVars->NEWFLAG = IMAGE_noreplies; + } + else + { + $fVars->NEWFLAG = IMAGE_nonew; + } +--*/ + +// Gonne directly to shortcode file +/*-- + if(substr($f['forum_name'], 0, 1) == '*') + { + $f['forum_name'] = substr($f['forum_name'], 1); + } + $f['forum_name'] = $tp->toHTML($f['forum_name'], true, 'no_hook'); + $f['forum_description'] = $tp->toHTML($f['forum_description'], true, 'no_hook'); + + + //$url= $e107->url->create('forum/forum/view', $f); + $url = e107::url('forum', 'forum', $f); + $fVars->FORUMNAME = "{$f['forum_name']}"; + $fVars->FORUMDESCRIPTION = $f['forum_description'].($restricted_string ? "
$restricted_string" : ""); +--*/ +//-- $fVars->THREADS = $f['forum_threads']; +//---- $sc->threads = $f['forum_threads']; +//-- $fVars->REPLIES = $f['forum_replies']; +//---- $sc->replies = $f['forum_replies']; +//-- $fVars->FORUMSUBFORUMS = ''; + +//-- $badgeReplies = ($f['forum_replies']) ? "badge-info" : ""; +//-- $badgeThreads = ($f['forum_threads']) ? "badge-info" : ""; + +//-- $fVars->THREADSX = "".$f['forum_threads'].""; +//-- $fVars->REPLIESX = "".$f['forum_replies'].""; + + +//---- $subId = $f['forum_id']; +//---- if(!empty($forumList['subs']) && is_array($forumList['subs'][$subId])) + if(!empty($forumList['subs']) && is_array($forumList['subs'][$f['forum_id']])) + { +//---- list($lastpost_datestamp, $lastpost_thread) = explode('.', $f['forum_lastpost_info']); + $lastpost_datestamp = reset(explode('.', $f['forum_lastpost_info'])); + $ret = parse_subs($forumList, $f['forum_id'], $lastpost_datestamp); +// $fVars->FORUMSUBFORUMS = "
".LAN_FORUM_0069.": {$ret['text']}
"; +//-- $fVars->THREADS += $ret['threads']; +//-- $fVars->REPLIES += $ret['replies']; + $f['forum_threads'] += $ret['threads']; + $f['forum_replies'] += $ret['replies']; + if(isset($ret['lastpost_info'])) + { + $f['forum_lastpost_info'] = $ret['lastpost_info']; + $f['forum_lastpost_user'] = $ret['lastpost_user']; + $f['forum_lastpost_user_anon'] = $ret['lastpost_user_anon']; + $f['user_name'] = $ret['user_name']; + } + $f['text'] = $ret['text']; + } + + $sc->setVars($f); +/*-- + if ($f['forum_lastpost_info']) + { + list($lastpost_datestamp, $lastpost_thread) = explode('.', $f['forum_lastpost_info']); + if ($f['user_name']) + { + + $lastpost_name = " $f['user_name'], 'id' => $f['forum_lastpost_user']))."'>{$f['user_name']}"; + } + else + { + $lastpost_name = $tp->toHTML($f['forum_lastpost_user_anon']); + } + + $lastpost = $forum->threadGetLastpost($lastpost_thread); //XXX TODO inefficient to have SQL query here. + + $fVars->LASTPOSTUSER = $lastpost_name; + // {forum_sef}/{thread_id}-{thread_sef} + + $urlData = array('forum_sef'=>$f['forum_sef'], 'thread_id'=>$lastpost['post_thread'],'thread_sef'=>$lastpost['thread_sef']); + $url = e107::url('forum', 'topic', $urlData)."?last=1#post-".$lastpost['post_id']; + $fVars->LASTPOSTDATE .= "". $gen->computeLapse($lastpost_datestamp, time(), false, false, 'short').""; + $lastpost_datestamp = $gen->convert_date($lastpost_datestamp, 'forum'); + $fVars->LASTPOST = $lastpost_datestamp.'
'.$lastpost_name." $lastpost_name, 'id' => $lastpost_thread))."'>".IMAGE_post2.''; + + } + else + { + $fVars->LASTPOSTUSER = ""; + $fVars->LASTPOSTDATE = "-"; + $fVars->LASTPOST = '-'; + } +--*/ + +//-- return $tp->simpleParse($FORUM_MAIN_FORUM, $fVars); + return $tp->parseTemplate($FORUM_MAIN_FORUM, false, $sc); +} + + + +function parse_subs($forumList, $id ='', $lastpost_datestamp) +{ + + $tp = e107::getParser(); + $ret = array(); + + $subList = $forumList['subs'][$id]; + + $ret['text'] = ''; + $ret['threads'] = 0; + $ret['replies'] = 0; + + foreach($subList as $sub) + { + // print_a($sub); + + $ret['text'] .= ($ret['text'] ? ', ' : ''); + + $urlData = $sub; + $urlData['parent_sef'] = $forumList['all'][$sub['forum_sub']]['forum_sef']; // = array('parent_sef'=> + $suburl = e107::url('forum','forum', $urlData); + + $ret['text'] .= "".$tp->toHTML($sub['forum_name']).''; + $ret['threads'] += $sub['forum_threads']; + $ret['replies'] += $sub['forum_replies']; + $tmp = explode('.', $sub['forum_lastpost_info']); + + if($tmp[0] > $lastpost_datestamp) + { + $ret['lastpost_info'] = $sub['forum_lastpost_info']; + $ret['lastpost_user'] = $sub['forum_lastpost_user']; + $ret['lastpost_user_anon'] = $sub['forum_lastpost_user_anon']; + $ret['user_name'] = $sub['user_name']; + $lastpost_datestamp = $tmp[0]; + } + } + + + return $ret; +} + +if (e_QUERY == 'track') +{ + +} + +if (e_QUERY == 'new') +{ +//-- $nVars = new e_vars; + $newThreadList = $forum->threadGetNew(10); + foreach($newThreadList as $thread) + { +//-- $author_name = ($thread['user_name'] ? $thread['user_name'] : $thread['lastuser_anon']); +//---- $sc->author_name = ($thread['user_name'] ? $thread['user_name'] : $thread['lastuser_anon']); + +//-- $datestamp = $gen->convert_date($thread['thread_lastpost'], 'forum'); +//---- $sc->datestamp = $gen->convert_date($thread['thread_lastpost'], 'forum'); +/*-- + if(!$thread['user_name']) + { + $nVars->STARTERTITLE = $author_name.'
'.$datestamp; + } + else + { + $nVars->STARTERTITLE = " $thread['thread_lastuser'], 'name' => $author_name))."'>{$author_name}
".$datestamp; + } + + $nVars->NEWSPOSTNAME = "".$tp->toHTML($thread['thread_name'], TRUE, 'no_make_clickable, no_hook').''; +--*/ + +//-- $forum_newstring .= $tp->simpleParse($FORUM_NEWPOSTS_MAIN, $nVars); + $sc->setVars($thread); + $forum_newstring .= $tp->parseTemplate($FORUM_NEWPOSTS_MAIN, false, $sc); + } + + if (empty($newThreadList)) + { +//-- $nVars->NEWSPOSTNAME = LAN_FORUM_0029; +//-- $forum_newstring = $tp->simpleParse($FORUM_NEWPOSTS_MAIN, $nVars); + $forum_newstring = $tp->parseTemplate($FORUM_NEWPOSTS_MAIN, false, $sc); + + } +//-- $forum_new_start = $tp->simpleParse($FORUM_NEWPOSTS_START, $nVars); +//-- $forum_new_end = $tp->simpleParse($FORUM_NEWPOSTS_END, $nVars); + $forum_new_start = $tp->parseTemplate($FORUM_NEWPOSTS_START, false, $sc); + $forum_new_end = $tp->parseTemplate($FORUM_NEWPOSTS_END, false, $sc); + + if ($forum->prefs->get('enclose')) + { + $ns->tablerender($forum->prefs->get('title'), $forum_new_start.$forum_newstring.$forum_new_end, array('forum', 'main2')); + } + else + { + echo $forum_new_start.$forum_newstring.$forum_new_end; + } +} + +//$frm = e107::getForm(); + +$breadarray = array( + array('text'=> $forum->prefs->get('title'), 'url' => e107::url('forum','index') ) +); + +//-- $fVars->FORUM_BREADCRUMB = $frm->breadcrumb($breadarray); + +//-- $forum_main_start = $tp->simpleParse($FORUM_MAIN_START, $fVars); +$forum_main_start = $tp->parseTemplate($FORUM_MAIN_START, false, $sc); +//-- $forum_main_end = $tp->simpleParse($FORUM_MAIN_END, $fVars); +$forum_main_end = $tp->parseTemplate($FORUM_MAIN_END, false, $sc); + +if ($forum->prefs->get('enclose')) +{ + $ns->tablerender($forum->prefs->get('title'), $forum_main_start.$forum_string.$forum_main_end, 'forum'); +} +else +{ + echo $forum_main_start.$forum_string.$forum_main_end; +} + + + + + + + + +require_once(FOOTERF); + +function forum_rules($action = 'check') +{ + if (ADMIN == true) + { + $type = 'forum_rules_admin'; + } + elseif(USER == true) + { + $type = 'forum_rules_member'; + } + else + { + $type = 'forum_rules_guest'; + } + $result = e107::getDb()->select('generic', 'gen_chardata', "gen_type = '$type' AND gen_intdata = 1"); + if ($action == 'check') { return $result; } + + if ($result) + { + $row = e107::getDb()->fetch(); + $rules_text = e107::getParser()->toHTML($row['gen_chardata'], true); + } + else + { + $rules_text = LAN_FORUM_0072; + } + + $text = ''; + + if(deftrue('BOOTSTRAP')) + { + $breadarray = array( + array('text'=> e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME), 'url' => e107::url('forum','index') ), + array('text'=>LAN_FORUM_0016, 'url'=>null) + ); + + $text = e107::getForm()->breadcrumb($breadarray); + } + + $text .= "
".$rules_text."
"; + $text .= "
".e107::getForm()->pagination(e107::url('forum','index'), LAN_BACK)."
"; + + e107::getRender()->tablerender(LAN_FORUM_0016, $text, array('forum', 'forum_rules')); +} + + +function forum_track() +{ + global $forum; + + $trackPref = $forum->prefs->get('track'); + $trackEmailPref = $forum->prefs->get('trackemail',true); + + + if(empty($trackPref)) + { + echo "Disabled"; + return false; + } + + + $FORUM_TEMPLATE = null; + + include(e_PLUGIN.'forum/templates/forum_template.php'); + + // Override with theme template + if (file_exists(THEME.'forum_template.php')) + { + include(THEME.'forum_template.php'); + } + elseif(file_exists(THEME.'templates/forum/forum_template.php')) + { + require(THEME.'templates/forum/forum_template.php'); + } + + $IMAGE_nonew_small = IMAGE_nonew_small; + $IMAGE_new_small = IMAGE_new_small; + + if(is_array($FORUM_TEMPLATE) && deftrue('BOOTSTRAP',false)) // new v2.x format. + { + $FORUM_TRACK_START = $FORUM_TEMPLATE['track']['start']; // $FORUM_TEMPLATE['track-start']; + $FORUM_TRACK_MAIN = $FORUM_TEMPLATE['track']['item']; // $FORUM_TEMPLATE['track-main']; + $FORUM_TRACK_END = $FORUM_TEMPLATE['track']['end']; // $FORUM_TEMPLATE['track-end']; + + $IMAGE_nonew_small = IMAGE_nonew; + $IMAGE_new_small = IMAGE_new; + + } + + $sql = e107::getDb(); + $tp = e107::getParser(); + + $trackDiz = ($trackEmailPref) ? LAN_FORUM_3040 : LAN_FORUM_3041; + + + if($trackedThreadList = $forum->getTrackedThreadList(USERID, 'list')) + { + + $viewed = $forum->threadGetUserViewed(); + + $qry = "SELECT t.*,th.*, f.*,u.user_name FROM `#forum_track` AS t + LEFT JOIN `#forum_thread` AS th ON t.track_thread = th.thread_id + LEFT JOIN `#forum` AS f ON th.thread_forum_id = f.forum_id + LEFT JOIN `#user` AS u ON th.thread_lastuser = u.user_id + WHERE t.track_userid = ".USERID." ORDER BY th.thread_lastpost DESC"; + + $forum_trackstring = ''; + $data = array(); + if($sql->gen($qry)) + { + while($row = $sql->fetch()) + { + // e107::getDebug()->log($row); + $row['thread_sef'] = eHelper::title2sef($row['thread_name'],'dashl'); + + $data['NEWIMAGE'] = $IMAGE_nonew_small; + + if ($row['thread_datestamp'] > USERLV && !in_array($row['thread_id'], $viewed)) + { + $data['NEWIMAGE'] = $IMAGE_new_small; + } + + $data['LASTPOSTUSER'] = !empty($row['user_name']) ? " $row['user_name'], 'id' => $row['thread_lastuser']))."'>".$row['user_name']."" : LAN_ANONYMOUS; + $data['LASTPOSTDATE'] = $tp->toDate($row['thread_lastpost'],'relative'); + + $buttonId = "forum-track-button-".intval($row['thread_id']); + + $forumUrl = e107::url('forum','forum',$row); + $threadUrl = e107::url('forum','topic',$row, array('query'=>array('last'=>1))); // ('forum/thread/view', $row); // configs will be able to map thread_* vars to the url + $data['TRACKPOSTNAME'] = "". $row['forum_name']." / ".$tp->toHTML($row['thread_name'], false, 'TITLE').''; + // $data['UNTRACK'] = "".LAN_FORUM_0070.""; + + + $data['UNTRACK'] = "".IMAGE_track.""; + + $forum_trackstring .= $tp->simpleParse($FORUM_TRACK_MAIN, $data); + } + } + // print_a($FORUM_TRACK_START); + + + if(deftrue('BOOTSTRAP')) + { + $breadarray = array( + array('text'=> e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME), 'url' => e107::url('forum','index') ), + array('text'=>LAN_FORUM_0030, 'url'=>null) + ); + + $data['FORUM_BREADCRUMB'] = e107::getForm()->breadcrumb($breadarray); + } + + + $forum_track_start = $tp->simpleParse($FORUM_TRACK_START, $data); + $forum_track_end = $tp->simpleParse($FORUM_TRACK_END, $data); + + // if ($forum->prefs->get('enclose')) + { + // $ns->tablerender($forum->prefs->get('title'), $forum_track_start.$forum_trackstring.$forum_track_end, array('forum', 'main1')); + } + // else + { + $tracktext = $forum_track_start.$forum_trackstring.$forum_track_end; + } + } + + + $text =''; + + + + $text .= $tracktext; + $text .= "
".e107::getForm()->pagination(e107::url('forum','index'), LAN_BACK)."
"; + + e107::getRender()->tablerender(LAN_FORUM_0030, $text, array('forum', 'forum_track')); + + +} + + +?>