mb_substr
//@@@@@20070620
→
require_once("../lib-common.php"); // Path to your lib-common.php
require_once ($_CONF['path_html'] . 'forum/include/gf_format.php');
require_once($_CONF['path'] . 'plugins/forum/debug.php'); // Common Debug Code
// Pass thru filter any get or post variables to only allow numeric values and remove any hostile data
$forum = COM_applyFilter($_REQUEST['forum'],true);
$show = COM_applyFilter($_REQUEST['show'],true);
$page = COM_applyFilter($_REQUEST['page'],true);
$order = COM_applyFilter($_REQUEST['order'],true);
$prevorder = COM_applyFilter($_REQUEST['prevorder']);
$direction = COM_applyFilter($_REQUEST['direction']);
$sort = COM_applyFilter($_REQUEST['sort'],true);
$cat_id = COM_applyFilter($_REQUEST['cat_id'],true);
$op = COM_applyFilter($_REQUEST['op']);
//Check is anonymous users can access
if ($CONF_FORUM['registration_required'] && $_USER['uid'] < 2) {
echo COM_siteHeader();
echo COM_startBlock();
alertMessage($LANG_GF02['msg01'],$LANG_GF02['msg171']);
echo COM_endBlock();
echo COM_siteFooter();
exit;
}
//@@@@@20070327(20070201)update ---->
//$todaysdate=date("l, F d, Y");
//$todaysdate=date("Y 年 n 月 j 日");
$todaysdate=date($_CONF['shortdate']);
//l フルスペルの英字で曜日を定義する
//F フルスペルの英字で月を定義する
//d 2桁の日付を定義する
//Y 西暦を4桁で示す年を定義する
//n 先頭に 0 をつけない (0 ~ 12) の月を定義する
//j 先頭に 0 をつけない (0 ~ 31)の日を定義する
//@@@@@20070327(20070201)update <----
// Check to see if request to mark all topics read was requested
if ($_USER['uid'] > 1 && $op == 'markallread') {
$now = time();
$categories = array();
if ($cat_id == 0) {
$csql = DB_query("SELECT id FROM {$_TABLES['gf_categories']} ORDER BY id");
while (list ($categoryID) = DB_fetchArray($csql)) {
$categories[] = $categoryID;
}
} else {
$categories[] = $cat_id;
}
foreach ($categories as $category) {
$fsql = DB_query("SELECT forum_id,grp_id FROM {$_TABLES['gf_forums']} WHERE forum_cat=$category");
while($frecord = DB_fetchArray($fsql)){
$groupname = DB_getItem($_TABLES['groups'],'grp_name',"grp_id='{$frecord['grp_id']}'");
if (SEC_inGroup($groupname)) {
DB_query("DELETE FROM {$_TABLES['gf_log']} WHERE uid=$_USER[uid] AND forum={$frecord['forum_id']}");
$tsql = DB_query("SELECT id FROM {$_TABLES['gf_topic']} WHERE forum={$frecord['forum_id']} and pid=0");
while($trecord = DB_fetchArray($tsql)){
$log_sql = DB_query("SELECT * FROM {$_TABLES['gf_log']} WHERE uid=$_USER[uid] AND topic={$trecord['id']} AND forum={$frecord['forum_id']}");
if (DB_numRows($log_sql) == 0) {
DB_query("INSERT INTO {$_TABLES['gf_log']} (uid,forum,topic,time) VALUES ('$_USER[uid]','$frecord[forum_id]','$trecord[id]','$now')");
}
}
}
}
}
echo COM_refresh($_CONF['site_url'] .'/forum/index.php');
exit();
}
// Display Common headers
ob_start();
echo COM_siteHeader( array('custom_showBlocks',$CONF_FORUM['leftblocks']) );
//Check if anonymous users allowed to access forum
forum_chkUsercanAccess();
if ($op == 'newposts' AND $_USER['uid'] > 1) {
$report = new Template($_CONF['path_layout'] . 'forum/layout');
$report->set_file (array ('report' => 'reports/report_results.thtml',
'records' => 'reports/report_record.thtml',
'outline_header'=>'forum_outline_header.thtml',
'outline_footer' => 'forum_outline_footer.thtml',
'markread' => 'links/markread.thtml',
'return' => 'links/return.thtml'));
switch($order) {
case 1:
$orderby = 'subject';
break;
case 2:
$orderby = 'views';
break;
case 3:
$orderby = 'replies';
break;
case 4:
$orderby = 'date';
break;
default:
$orderby = 'date';
$order = 1;
break;
}
if ($order == $prevorder) {
$direction = ($direction == "DESC") ? "ASC" : "DESC";
} else {
$direction = ($direction == "ASC") ? "ASC" : "DESC";
}
$report->set_var ('imgset', $CONF_FORUM['imgset']);
$report->set_var ('layout_url', $_CONF['layout_url']);
$report->set_var ('phpself',$_CONF['site_url'] . '/forum/index.php?op=newposts');
$report->set_var ('LANG_TITLE', $LANG_GF02['msg111']);
$report->set_var ('startblock', COM_startBlock($LANG_GF02['msg111']));
$report->set_var ('endblock', COM_endBlock());
$report->set_var ('markreadlink', 'href="'.$_CONF['site_url'] .'/forum/index.php?op=markallread">');
$report->set_var ('LANG_markread', $LANG_GF02['msg164']);
$report->set_var ('returnlink', "href=\"{$_CONF['site_url']}/forum/index.php\">");
$report->set_var ('LANG_return', $LANG_GF02['msg175']);
$report->set_var ('spacerwidth', '40%');
$report->set_var ('prevorder', $order);
$report->set_var ('direction', $direction);
$report->set_var ('op', '&op=newposts');
$report->set_var ('page', '1');
$report->set_var ('LANG_Heading1', $LANG_GF01['SUBJECT']);
$report->set_var ('LANG_Heading2', $LANG_GF01['REPLIES']);
$report->set_var ('LANG_Heading3', $LANG_GF01['VIEWS']);
$report->set_var ('LANG_Heading4', $LANG_GF01['DATE']);
$report->parse ('link1','return');
$report->parse ('link2','markread');
$report->parse ('header_outline','outline_header');
$report->parse ('footer_outline','outline_footer');
if ($forum > 0) {
$inforum = "AND forum = '$forum'";
} else {
$inforum = "";
}
$lastlogin = DB_getItem($_TABLES['userinfo'],'lastlogin',"uid='" . $_USER['uid'] ."'");
$sql = "SELECT lastupdated,subject,comment,replies,views,id,forum FROM {$_TABLES['gf_topic']} ";
$sql .= "WHERE (pid = 0) AND lastupdated > " . $lastlogin . " $inforum ORDER BY $orderby $direction LIMIT 100";
$result = DB_query($sql);
$nrows = DB_numRows($result);
$csscode = 1;
for ($i = 1; $i <= $nrows; $i++) {
$P = DB_fetchArray($result);
$forumgrpid = DB_getItem($_TABLES['gf_forums'],'grp_id',"forum_id='{$P['forum']}'");
$groupname = DB_getItem($_TABLES['groups'],'grp_name',"grp_id='$forumgrpid'");
if (SEC_inGroup($groupname)) {
$userlogtime = DB_getItem($_TABLES['gf_log'],"time", "uid=$_USER[uid] AND topic={$P['id']}");
if ($userlogtime == NULL OR $P['lastupdated'] > $userlogtime) {
$postdate = COM_getUserDateTimeFormat($P['lastupdated']);
$link = "";
$report->set_var('post_start_ahref', $link);
$report->set_var('post_subject', $P['subject']);
$report->set_var('csscode', $csscode);
$report->set_var('post_end_ahref', '');
$report->set_var('post_date',$postdate[0]);
$report->set_var('post_replies', $P['replies']);
$report->set_var('post_views', $P['views']);
$report->parse ('report_records', 'records',true);
if($csscode == 2) {
$csscode = 1;
} else {
$csscode++;
}
}
}
}
if ($forum > 0) {
$link = "{$LANG_GF02['msg144']}
";
$report->set_var ('bottomlink',$link);
} else {
$link = "{$LANG_GF02['msg175']}
";
$report->set_var ('bottomlink',$link);
}
$report->parse ('output', 'report');
echo $report->finish ($report->get_var('output'));
echo COM_siteFooter();
exit();
}
if ($op == 'search') {
$report = new Template($_CONF['path_layout'] . 'forum/layout');
$report->set_file (array ('report' => 'reports/report_results.thtml',
'records' => 'reports/report_record.thtml',
'outline_header'=>'forum_outline_header.thtml',
'outline_footer' => 'forum_outline_footer.thtml',
'return' => 'links/return.thtml'));
switch($order) {
case 1:
$orderby = 'subject';
break;
case 2:
$orderby = 'replies';
break;
case 3:
$orderby = 'views';
break;
case 4:
$orderby = 'lastupdated';
break;
default:
$orderby = 'lastupdated';
$order = 4;
break;
}
if ($order == $prevorder) {
$direction = ($direction == "DESC") ? "ASC" : "DESC";
} else {
$direction = ($direction == "ASC") ? "ASC" : "DESC";
}
$query = addslashes(strip_tags(COM_stripslashes($_REQUEST['query'])));
$report->set_var ('imgset', $CONF_FORUM['imgset']);
$report->set_var ('layout_url', $_CONF['layout_url']);
$report->set_var ('phpself',$_CONF['site_url'] . '/forum/index.php?op=search');
$report->set_var ('LANG_TITLE',$LANG_GF02['msg119']. ' ' .$query);
$report->set_var ('startblock', COM_startBlock( $LANG_GF02['msg119']. ' ' .$query));
$report->set_var ('endblock', COM_endBlock());
$report->set_var ('spacerwidth', '70%');
$report->set_var ('returnlink', "href=\"{$_CONF['site_url']}/forum/index.php\">");
$report->set_var ('LANG_return', $LANG_GF02['msg175']);
$report->parse ('link1','return');
$report->parse ('header_outline','outline_header');
$report->parse ('footer_outline','outline_footer');
$report->set_var ('LANG_Heading1', $LANG_GF01['SUBJECT']);
$report->set_var ('LANG_Heading2', $LANG_GF01['REPLIES']);
$report->set_var ('LANG_Heading3', $LANG_GF01['VIEWS']);
$report->set_var ('LANG_Heading4', $LANG_GF01['DATE']);
$report->set_var ('op', "&op=search&query=$query");
$report->set_var ('prevorder', $order);
$report->set_var ('direction', $direction);
$report->set_var ('page', '1');
if ($forum != 0) {
$inforum = "AND (forum = '$forum')";
} else {
$inforum = "";
}
if ($CONF_FORUM['mysql4+']) {
$sql = " (SELECT * FROM {$_TABLES['gf_topic']} WHERE (subject LIKE '%$query%') ) ";
$sql .= "UNION ALL (SELECT * FROM {$_TABLES['gf_topic']} WHERE (comment LIKE '%$query%') ";
$sql .= "$inforum) ORDER BY $orderby $direction LIMIT 100";
$result = DB_query($sql);
} else {
$sql = "SELECT * FROM {$_TABLES['gf_topic']} WHERE (subject LIKE '%$query%') OR ";
$sql .= "(comment LIKE '%$query%') $inforum GROUP BY $orderby ORDER BY $orderby $direction LIMIT 100";
$result = DB_query($sql);
}
$nrows = DB_numRows($result);
if ($nrows > 0) {
$csscode = 1;
for ($i = 1; $i <= $nrows; $i++) {
$P = DB_fetchArray($result);
$forumgrpid = DB_getItem($_TABLES['gf_forums'],'grp_id',"forum_id='{$P['forum']}'");
$groupname = DB_getItem($_TABLES['groups'],'grp_name',"grp_id='$forumgrpid'");
if (SEC_inGroup($groupname)) {
$postdate = COM_getUserDateTimeFormat($P['date']);
$link = "";
$report->set_var('post_start_ahref',$link);
$report->set_var('post_subject', $P['subject']);
$report->set_var('post_end_ahref', '');
$report->set_var('post_date',$postdate[0]);
$report->set_var('post_replies', $P['replies']);
$report->set_var('post_views', $P['views']);
$report->set_var ('csscode', $csscode);
$report->parse ('report_records', 'records',true);
if($csscode == 2) {
$csscode = 1;
} else {
$csscode++;
}
}
}
}
if ($forum == 0) {
$link = "{$LANG_GF02['msg175']}
";
$report->set_var ('bottomlink',$link);
} else {
$link = "{$LANG_GF02['msg175']}
";
$report->set_var ('bottomlink',$link);
}
$report->parse ('output', 'report');
echo $report->finish($report->get_var('output'));
echo COM_siteFooter();
exit();
}
if ($op == 'popular') {
$report = new Template($_CONF['path_layout'] . 'forum/layout');
$report->set_file (array ('report' => 'reports/report_results.thtml',
'records' => 'reports/report_record.thtml',
'outline_header'=>'forum_outline_header.thtml',
'outline_footer' => 'forum_outline_footer.thtml',
'return' => 'links/return.thtml'));
switch($order) {
case 1:
$orderby = 'subject';
break;
case 2:
$orderby = 'replies';
break;
case 4:
$orderby = 'date';
break;
default:
$orderby = 'views';
$order = 3;
break;
}
if ($order == $prevorder) {
$direction = ($direction == "DESC") ? "ASC" : "DESC";
} else {
$direction = ($direction == "ASC") ? "ASC" : "DESC";
}
if (($orderby == '1') || ($orderby == "")) {
$report->set_var ('LANG_TITLE',"{$LANG_GF02['msg120']} {$LANG_GF01['REPLIES']}");
$report->set_var ('startblock', COM_startBlock("{$LANG_GF02['msg120']} {$LANG_GF01['REPLIES']}") );
} else {
$report->set_var ('LANG_TITLE',"{$LANG_GF02['msg120']} {$LANG_GF01['VIEWS']}");
$report->set_var ('startblock', COM_startBlock("{$LANG_GF02['msg120']} {$LANG_GF01['VIEWS']}") );
}
$report->set_var ('imgset', $CONF_FORUM['imgset']);
$report->set_var ('layout_url', $_CONF['layout_url']);
$report->set_var ('phpself',$_CONF['site_url'] . '/forum/index.php?op=popular');
$report->set_var ('endblock', COM_endBlock());
$report->set_var ('spacerwidth', '70%');
$report->set_var ('returnlink', "href=\"{$_CONF['site_url']}/forum/index.php\">");
$report->set_var ('LANG_return', $LANG_GF02['msg175']);
$report->set_var ('LANG_Heading1', $LANG_GF01['SUBJECT']);
$report->set_var ('LANG_Heading2', $LANG_GF01['REPLIES']);
$report->set_var ('LANG_Heading3', $LANG_GF01['VIEWS']);
$report->set_var ('LANG_Heading4', $LANG_GF01['DATE']);
$report->set_var ('op', "&op=popular");
$report->set_var ('prevorder', $order);
$report->set_var ('direction', $direction);
$report->set_var ('page', '1');
$report->parse ('link1','return');
$report->parse ('header_outline','outline_header');
$report->parse ('footer_outline','outline_footer');
$result = DB_query("SELECT date,subject,comment,replies,views,id,forum FROM {$_TABLES['gf_topic']} WHERE (pid = '0') ORDER BY $orderby $direction");
$nrows = DB_numRows($result);
$displayrecs = 0;
for ($i = 1; $i <= $nrows; $i++) {
$P = DB_fetchArray($result);
$forumgrpid = DB_getItem($_TABLES['gf_forums'],'grp_id',"forum_id='{$P['forum']}'");
$groupname = DB_getItem($_TABLES['groups'],'grp_name',"grp_id='$forumgrpid'");
if (SEC_inGroup($groupname)) {
$displayrecs++;
$postdate = COM_getUserDateTimeFormat($P['date']);
$link = "";
$report->set_var('post_start_ahref',$link);
$report->set_var('post_subject', $P['subject']);
$report->set_var('post_end_ahref', '');
$report->set_var('post_date',$postdate[0]);
$report->set_var('post_replies', $P['replies']);
$report->set_var('post_views', $P['views']);
$report->set_var('csscode', $i%2+1);
$report->parse ('report_records', 'records',true);
if ($displayrecs >= $CONF_FORUM['show_popular_perpage']) {
break;
}
}
}
if ($forum == 0) {
$link = "{$LANG_GF02['msg175']}
";
$report->set_var ('bottomlink',$link);
} else {
$link = "{$LANG_GF02['msg175']}
";
$report->set_var ('bottomlink',$link);
}
$report->parse ('output', 'report');
echo $report->finish($report->get_var('output'));
echo COM_siteFooter();
exit();
}
if ($op == 'subscribe') {
if ($forum != 0) {
DB_query("INSERT INTO {$_TABLES['gf_watch']} (forum_id,topic_id,uid,date_added) VALUES ('$forum','0','{$_USER['uid']}', now() )");
// Delete all individual topic notification records
DB_query("DELETE FROM {$_TABLES['gf_watch']} WHERE uid='{$_USER['uid']}' AND forum_id='$forum' and topic_id > '0' " );
forum_statusMessage($LANG_GF02['msg134'],$_CONF['site_url'] .'/forum/index.php?forum=' .$forum,$LANG_GF02['msg135']);
} else {
BlockMessage($LANG_GF01['ERROR'],$LANG_GF02['msg136'],false);
}
echo COM_siteFooter();
exit();
}
// MAIN CODE BEGINS to view forums or topics within a forum
ForumHeader($forum,$showtopic);
// Check if the number of records was specified to show - part of page navigation.
// Will be 0 if not set - as I'm now passing this tru gf_applyFilte() at top of script
if ($show == 0 AND $CONF_FORUM['show_topics_perpage'] > 0) {
$show = $CONF_FORUM['show_topics_perpage'];
} elseif ($show == 0) {
$show = 20;
}
// Check if this is the first page.
if ($page == 0) {
$page = 1;
}
if($forum > 0) {
$addforumvar = "&forum=" .$forum;
$topiclistsql = DB_query("SELECT * FROM {$_TABLES['gf_topic']} WHERE pid=0 and forum='$forum'");
} else {
$topiclistsql = DB_query("SELECT * FROM {$_TABLES['gf_topic']} WHERE pid=0");
}
$topicCount = DB_numRows($topiclistsql);
$numpages = ceil($topicCount / $show);
$offset = ($page - 1) * $show;
$base_url = $_CONF['site_url'] . '/forum/index.php?forum='.$forum.'&show='.$show;
//Display Categories
if ($forum == 0) {
//$mytimer = new timerobject();
//$mytimer->startTimer();
//$exectime = $mytimer->stopTimer();
//COM_errorLog("Forum Listing - time:$exectime");
$groups = array ();
$usergroups = SEC_getUserGroups();
foreach ($usergroups as $group) {
$groups[] = $group;
}
$groupAccessList = implode(',',$groups);
$categoryQuery = DB_query("SELECT * FROM {$_TABLES['gf_categories']} ORDER BY cat_order ASC");
$numCategories = DB_numRows($categoryQuery);
$forumlisting = new Template($_CONF['path_layout'] . 'forum/layout');
$forumlisting->set_file (array ('forumlisting' => 'homepage.thtml',
'forum_outline_header'=>'forum_outline_header.thtml',
'forum_outline_footer'=>'forum_outline_footer.thtml',
'newposts' => 'links/newposts.thtml',
'markread' => 'links/markread.thtml',
'forum_record'=>'forumlisting_record.thtml',
'category_record'=>'categorylisting.thtml' ));
$forumlisting->set_var ('imgset', $CONF_FORUM['imgset']);
$forumlisting->set_var ('forumindeximg','
');
$forumlisting->set_var ('phpself', $_CONF['site_url'] .'/forum/index.php');
$forumlisting->set_var('layout_url', $_CONF['layout_url']);
$viewnewpostslink = false; // Set true when we have set the view newposts link template var
for ($i=1; $i <= $numCategories; $i++) {
//$exectime = $mytimer->stopTimer();
//COM_errorLog("Start Category Listing - time:$exectime");
$A = DB_FetchArray($categoryQuery,false);
$forumlisting->set_var ('cat_name', $A['cat_name']);
$forumlisting->set_var ('cat_desc', $A['cat_dscp']);
$forumlisting->set_var ('cat_id', $A['id']);
$forumlisting->set_var ('LANGGF91_forum', $LANG_GF91['forum']);
$forumlisting->set_var ('LANGGF01_TOPICS', $LANG_GF01['TOPICS']);
$forumlisting->set_var ('LANGGF01_POSTS', $LANG_GF01['POSTS']);
$forumlisting->set_var ('LANGGF01_LASTPOST', $LANG_GF01['LASTPOST']);
//Display all forums under each cat
$sql = "SELECT * FROM {$_TABLES['gf_forums']} AS f LEFT JOIN {$_TABLES['gf_topic']} AS t ON f.last_post_rec=t.id WHERE forum_cat='{$A['id']}' ";
$sql .= "AND grp_id IN ($groupAccessList) AND is_hidden=0 ORDER BY forum_order ASC";
$forumQuery = DB_query($sql);
$numForums = DB_numRows($forumQuery);
$numForumsDisplayed = 0;
while ($B = DB_FetchArray($forumQuery)) {
//$exectime = $mytimer->stopTimer();
//COM_errorLog("Start Forum Listing - time:$exectime");
$lastforum_noaccess = false;
$topicCount = $B['topic_count'];
$postCount = $B['post_count'];
if ( $CONF_FORUM['show_moderators'] ) {
$modsql = DB_query("SELECT * FROM {$_TABLES['gf_moderators']} WHERE mod_forum='{$B['forum_id']}'");
$moderatorcnt = 1;
if (DB_numRows($modsql) > 0) {
while($showmods = DB_fetchArray($modsql,false)) {
if ($showmods['mod_uid'] == '0') {
if ($showmods['mod_groupid'] > 0) {
$showmods['mod_username'] = DB_getItem($_TABLES['groups'], 'grp_name', "grp_id='{$showmods['mod_groupid']}'");
}
if($moderatorcnt == 1 OR $moderators == '') {
$moderators = $showmods['mod_username'];
} else {
$moderators .= ', ' . $showmods['mod_username'];
}
} else {
if($moderatorcnt == 1 OR $moderators == '') {
$moderators = COM_getDisplayName($showmods['mod_uid']);
} else {
$moderators .= ', ' . COM_getDisplayName($showmods['mod_uid']);
}
}
$moderatorcnt++;
}
} else {
$moderators = $LANG_GF01['no_one'];
}
$forumlisting->set_var ('moderator', sprintf($LANG_GF01['MODERATED'],$moderators));
} else {
$forumlisting->set_var ('moderator', '');
}
$numForumsDisplayed ++;
if ($postCount > 0) {
if ( strlen($B['subject']) > 25 ) {
//@@@@@20070321update---->
//$B['subject'] = substr($B['subject'],0,25);
$B['subject'] = mb_substr($B['subject'],0,25);
//@@@@@20070321update<----
$B['subject'] .= "..";
}
if ($_USER['uid'] > 1) {
// Determine if there are new topics since last visit for this user.
$lsql = DB_query("SELECT * FROM {$_TABLES['gf_log']} WHERE uid='{$_USER['uid']}' AND forum='{$B['forum_id']}' AND time > 0");
if ($topicCount > DB_numRows($lsql)) {
$folderimg = '
';
} else {
$folderimg = '
';
}
} else {
$folderimg = '
';
}
$lastdate1 = strftime('%d', $B['date']);
if ($lastdate1 == date('d')) {
$lasttime = strftime('%I:%M %p', $B['date']);
$lastdate = $LANG_GF01['TODAY'] .$lasttime;
} elseif ($CONF_FORUM['use_userdate_format']) {
$lastdate = COM_getUserDateTimeFormat($B['date']);
$lastdate = $lastdate[0];
} else {
//@@@@@20070327(20070201)----->
//$lastdate =strftime('%b/%d/%y %I:%M %p',$B['date']);
//$lastdate =strftime('%y/%m/%d/ %I:%M %p',$B['date']);
$lastdate =strftime($CONF_FORUM['default_Datetime_format'],$B['date']);
//@@@@@20070327(20070201)<-----
}
$lastpostmsgDate = '' . $LANG_GF01['ON']. '' .$lastdate;
if($B['uid'] > 1) {
$lastposterName = COM_getDisplayName($B['uid']);
$by = '' .$lastposterName. '';
} else {
$by = $B['name'];
}
$lastpostmsgBy = $LANG_GF01['BY']. $by;
$forumlisting->set_var ('lastpostmsgDate', $lastpostmsgDate);
$forumlisting->set_var ('lastpostmsgTopic', $B['subject']);
$forumlisting->set_var ('lastpostmsgBy', $lastpostmsgBy);
} else {
$forumlisting->set_var ('lastpostmsgDate', $LANG_GF01['nolastpostmsg']);
$forumlisting->set_var ('lastpostmsgTopic', '');
$forumlisting->set_var ('lastpostmsgBy', '');
$folderimg = '
';
}
if ($B['pid'] == 0) {
$topicparent = $B['id'];
} else {
$topicparent = $B['pid'];
}
$forumlisting->set_var ('folderimg', $folderimg);
$forumlisting->set_var ('forum_id', $B['forum_id']);
$forumlisting->set_var ('forum_name', $B['forum_name']);
$forumlisting->set_var ('forum_desc', $B['forum_dscp']);
$forumlisting->set_var ('topics', $topicCount);
$forumlisting->set_var ('posts', $postCount);
$forumlisting->set_var ('topic_id', $topicparent);
$forumlisting->set_var ('lastpostid', $B['id']);
$forumlisting->set_var ('LANGGF01_LASTPOST', $LANG_GF01['LASTPOST']);
$forumlisting->parse ('forum_records', 'forum_record',true);
}
if ($numForumsDisplayed > 0 ) {
if (isset($_USER['uid']) AND $_USER['uid'] > 1) {
$link = "href=\"{$_CONF['site_url']}/forum/index.php?op=markallread&cat_id={$A['id']}\">";
$forumlisting->set_var ('markreadlink',$link);
$forumlisting->set_var ('LANG_markread', $LANG_GF02['msg84']);
$forumlisting->parse ('markread_link','markread');
if (!$viewnewpostslink) {
$newpostslink = 'href="'.$_CONF['site_url'] .'/forum/index.php?op=newposts">';
$forumlisting->set_var ('newpostslink', $newpostslink);
$forumlisting->set_var ('LANG_newposts', $LANG_GF02['msg112']);
$viewnewpostslink = true;
$forumlisting->parse ('newposts_link','newposts');
} else {
$forumlisting->set_var ('newposts_link', '');
}
} else {
$forumlisting->set_var ('newposts_link', '');
$forumlisting->set_var ('markread_link', "");
}
$forumlisting->parse ('category_records', 'category_record',true);
$forumlisting->parse ('forum_records', '');
}
}
if ($numCategories == 0 ) { // Do we have any categories defined yet
echo 'No Categories or Forums Defined
';
}
$forumlisting->parse ('outline_header', 'forum_outline_header');
$forumlisting->parse ('outline_footer', 'forum_outline_footer');
$forumlisting->parse ('output', 'forumlisting');
echo $forumlisting->finish ($forumlisting->get_var('output'));
//$exectime = $mytimer->stopTimer();
//COM_errorLog("End of Listing - time:$exectime");
}
// Display Forums
if ($forum > 0) {
$topiclisting = new Template($_CONF['path_layout'] . 'forum/layout');
$topiclisting->set_file (array ('topiclisting' => 'topiclisting.thtml',
'forum_outline_header'=>'forum_outline_header.thtml',
'forum_outline_footer'=>'forum_outline_footer.thtml',
'subscribe' => 'links/subscribe_forum.thtml',
'new' => 'links/newtopic.thtml',
'topic_record'=>'topiclist_record.thtml' ));
$topiclisting->set_var ('imgset', $CONF_FORUM['imgset']);
$topiclisting->set_var('layout_url', $_CONF['layout_url']);
$topiclisting->set_var('site_url',$_CONF['site_url']);
$topiclisting->set_var ('LANG_HOME', $LANG_GF01['HOMEPAGE']);
$topiclisting->set_var('forum_home',$LANG_GF01['INDEXPAGE']);
$topiclisting->set_var ('navbreadcrumbsimg','
');
$topiclisting->set_var ('img_asc1', '
');
$topiclisting->set_var ('img_asc2', '
');
$topiclisting->set_var ('img_asc3', '
');
$topiclisting->set_var ('img_asc4', '
');
$topiclisting->set_var ('img_asc5', '
');
$topiclisting->set_var ('img_desc1', '
');
$topiclisting->set_var ('img_desc2', '
');
$topiclisting->set_var ('img_desc3', '
');
$topiclisting->set_var ('img_desc4', '
');
$topiclisting->set_var ('img_desc5', '
');
if(function_exists(prj_getSessionProject)) {
$projectid = prj_getSessionProject();
if($projectid > 0) {
$link = "{$strings['RETURN2PROJECT']}";
$topiclisting->set_var ('return2project',$link);
}
}
switch($sort) {
case 1:
if($order == 0) {
$sortOrder = "subject ASC";
$topiclisting->set_var ('img_asc1', '
');
} else {
$sortOrder = "subject DESC";
$topiclisting->set_var ('img_desc1', '
');
}
break;
case 2:
if($order == 0) {
$sortOrder = "views ASC";
$topiclisting->set_var ('img_asc2', '
');
} else {
$sortOrder = "views DESC";
$topiclisting->set_var ('img_desc2', '
');
}
break;
case 3:
if($order == 0) {
$sortOrder = "replies ASC";
$topiclisting->set_var ('img_asc3', '
');
} else {
$sortOrder = "replies DESC";
$topiclisting->set_var ('img_desc3', '
');
}
break;
case 4:
if($order == 0) {
$sortOrder = "name ASC";
$topiclisting->set_var ('img_asc4', '
');
} else {
$sortOrder = "name DESC";
$topiclisting->set_var ('img_desc4', '
');
}
break;
case 5:
if($order == 0) {
$sortOrder = "lastupdated ASC";
$topiclisting->set_var ('img_asc5', '
');
} else {
$sortOrder = "lastupdated DESC";
$topiclisting->set_var ('img_desc5', '
');
}
break;
default:
$sortOrder = "lastupdated DESC";
$topiclisting->set_var ('img_desc5', '
');
break;
}
$base_url .= "&order=$order&sort=$sort";
// Retrieve all the Topic Records - where pid is 0 - check to see if user does not want to see anonymous posts
if ($_USER['uid'] > 1 AND $CONF_FORUM['show_anonymous_posts'] == 0) {
$sql = "SELECT * FROM {$_TABLES['gf_topic']} topic WHERE forum = '$forum' AND pid = 0 AND uid > 1 ";
} else {
$sql = "SELECT * FROM {$_TABLES['gf_topic']} topic WHERE forum = '$forum' AND pid = 0 ";
}
$sql .= "ORDER BY sticky DESC, $sortOrder, id DESC LIMIT $offset, $show";
$topicResults = DB_query($sql);
$totalresults = DB_numRows($topicResults);
// Retrieve Forum details and Category name
$sql = "SELECT forum.forum_name,category.cat_name,forum.is_readonly FROM {$_TABLES['gf_forums']} forum ";
$sql .= "LEFT JOIN {$_TABLES['gf_categories']} category on category.id=forum.forum_cat ";
$sql .= "WHERE forum.forum_id = $forum";
$category = DB_fetchArray(DB_query($sql));
if($totalresults < 1) {
$LANG_MSG05 = $LANG_GF02['msg05'];
}
$subscribe = '';
if ($_USER['uid'] > 1) {
// Check for user subscription status
$sub_check = DB_getITEM($_TABLES['gf_watch'],"id","forum_id='$forum' AND topic_id=0 AND uid='{$_USER['uid']}'");
if ($sub_check == '') {
$subscribelinkimg = '
';
$subscribelink = "{$_CONF['site_url']}/forum/index.php?op=subscribe&forum=$forum";
$topiclisting->set_var ('subscribelink', $subscribelink);
$topiclisting->set_var ('subscribelinkimg', $subscribelinkimg);
$topiclisting->set_var ('LANG_subscribe', $LANG_GF01['FORUMSUBSCRIBE']);
$topiclisting->parse ('subscribe_link','subscribe');
} else {
$subscribelinkimg = '
';
$subscribelink = "{$_CONF['site_url']}/forum/notify.php?filter=2";
$topiclisting->set_var ('subscribelink', $subscribelink);
$topiclisting->set_var ('subscribelinkimg', $subscribelinkimg);
$topiclisting->set_var ('LANG_subscribe', $LANG_GF01['FORUMUNSUBSCRIBE']);
$topiclisting->parse ('subscribe_link','subscribe');
}
}
$topiclisting->set_var ('cat_name', $category['cat_name']);
$topiclisting->set_var ('forum_name', $category['forum_name']);
$topiclisting->set_var ('forum_id', $forum);
$topiclisting->set_var ('imgset', $CONF_FORUM['imgset']);
$topiclisting->set_var ('LANG_TOPIC', $LANG_GF01['TOPICSUBJECT']);
$topiclisting->set_var ('LANG_STARTEDBY', $LANG_GF01['STARTEDBY']);
$topiclisting->set_var ('LANG_REPLIES', $LANG_GF01['REPLIES']);
$topiclisting->set_var ('LANG_VIEWS', $LANG_GF01['VIEWS']);
$topiclisting->set_var ('LANG_LASTPOST',$LANG_GF01['LASTPOST']);
$topiclisting->set_var ('LANG_AUTHOR',$LANG_GF01['AUTHOR']);
$topiclisting->set_var ('LANG_MSG05',$LANG_GF01['LASTPOST']);
$topiclisting->set_var ('LANG_newforumposts', $LANG_GF02['msg113']);
if ($category['is_readonly'] == 0 OR forum_modPermission($forum,$_USER['uid'],'mod_edit')) {
$newtopiclinkimg = '
';
$topiclisting->set_var ('LANG_newtopic', $LANG_GF01['NEWTOPIC']);
$topiclisting->set_var('newtopiclinkimg',$newtopiclinkimg);
$topiclisting->set_var ('newtopiclink',"{$_CONF['site_url']}/forum/createtopic.php?method=newtopic&forum=$forum");
$topiclisting->parse ('newpost_link','new');
} else {
$topiclisting->set_var ('LANG_newtopic', '');
$topiclisting->set_var ('newtopiclink','#');
}
$displaypostpages .= $LANG_GF01['PAGES'] .':';
while ($record = DB_fetchArray($topicResults,false)) {
if(($record['replies']+1) <= $CONF_FORUM['show_posts_perpage']) {
$displaypageslink = "";
$gotomsg = "";
} else {
$displaypageslink = "";
$gotomsg = $LANG_GF02['msg85'] . " ";
if ($CONF_FORUM['show_posts_perpage'] > 0) {
$pages = ceil(($record['replies']+1)/$CONF_FORUM['show_posts_perpage']);
} else {
$pages = ceil(($record['replies']+1)/20);
}
for ($p=1; $p <= $pages; $p++) {
$displaypageslink .= "";
if ($p > 9) {
$displaypageslink .= '... ';
break;
} else {
$displaypageslink .= "$p ";
}
}
}
// Check if user is an anonymous poster
if($record['uid'] > 1) {
$showuserlink = '';
} else {
$showuserlink= $record['name'];
}
if ($record['last_reply_rec'] > 0) {
$lastreplysql = DB_query("SELECT * FROM {$_TABLES['gf_topic']} WHERE id={$record['last_reply_rec']}");
$lastreply = DB_fetchArray($lastreplysql);
if(strlen ($lastreply['subject']) > $CONF_FORUM['show_subject_length']){
//@@@@@20070327update---->
//$lastreply['subject'] = substr($record['subject'], 0, $CONF_FORUM['show_subject_length']);
$lastreply['subject'] = mb_substr($record['subject'], 0, $CONF_FORUM['show_subject_length']);
//@@@@@20070327update<----
$lastreply['subject'] .= "...";
}
//@@@@@20070327(20070201)update---->
//$lastdate1 = strftime('%m/%d/%Y', $lastreply['date']);
//if ($lastdate1 == date('m/d/Y')) {
$lastdate1 = strftime('%Y/%m/%d', $lastreply['date']);
if ($lastdate1 == date('Y/m/d')) {
//@@@@@20070327(20070201)update<----
$lasttime = strftime('%H:%M %p', $lastreply['date']);
$lastdate = $LANG_GF01['TODAY'] . $lasttime;
} elseif ($CONF_FORUM['use_userdate_format']) {
$lastdate = COM_getUserDateTimeFormat($lastreply['date']);
$lastdate = $lastdate[0];
} else {
//@@@@@20070327(20070201)update---->
//$lastdate = strftime('%b/%d/%y %I:%M %p',$lastreply['date']);
//$lastdate = strftime('%Y/%m/%d %I:%M %p',$lastreply['date']);
$lastdate = strftime($CONF_FORUM['default_Datetime_format'],$lastreply['date']);
//@@@@@20070327(20070201)update<----
}
} else {
//@@@@@20070327(20070201)update---->
//$lastdate = strftime('%b/%d/%y %I:%M %p',$record['lastupdated']);
//$lastdate = strftime('%Y/%m/%d %I:%M %p',$record['lastupdated']);
$lastdate = strftime($CONF_FORUM['default_Datetime_format'],$record['lastupdated']);
//@@@@@20070327(20070201)update<----
$lastreply = $record;
}
//@@@@@20070327(20070201)update---->
//$firstdate1 = strftime('%m/%d/%Y', $record['date']);
//if ($firstdate1 == date('m/d/Y')) {
$firstdate1 = strftime('%Y/%m/%d/', $record['date']);
if ($firstdate1 == date('Y/m/d')) {
//@@@@@20070327(20070201)update<----
$firsttime = strftime('%H:%M %p', $record['date']);
$firstdate = $LANG_GF01['TODAY'] . $firsttime;
} elseif ($CONF_FORUM['use_userdate_format']) {
$firstdate = COM_getUserDateTimeFormat($record['date']);
$firstdate = $firstdate[0];
} else {
//@@@@@20070327(20070201)update---->
//$firstdate = strftime('%b/%d/%y %I:%M %p',$record['date']);
//$firstdate = strftime('%y/%m/%d %I:%M %p',$record['date']);
$firstdate = strftime($CONF_FORUM['default_Datetime_format'],$record['date']);
//@@@@@20070327(20070201)update<----
}
if ($_USER['uid'] > 1) {
// Determine if there are new topics since last visit for this user.
// If topic has been updated or is new - then the user will not have record for this parent topic in the log table
$sql = "SELECT * FROM {$_TABLES['gf_log']} WHERE uid='{$_USER['uid']}' AND topic='{$record['id']}' AND time > 0";
$lsql = DB_query($sql);
if (DB_numRows($lsql) == 0) {
if ($record['sticky'] == 1) {
$folderimg = '
';
} elseif ($record['locked'] == 1) {
$folderimg = '
';
} else {
$folderimg = '
';
}
} elseif ($record['sticky'] == 1) {
$folderimg = '
';
} elseif ($record['locked'] == 1) {
$folderimg = '
';
} else {
$folderimg = '
';
}
} elseif ($record['sticky'] == 1) {
$folderimg = '
';
} elseif ($record['locked'] == 1) {
$folderimg = '
';
} else {
$folderimg = '
';
}
if($lastreply['uid'] > 1) {
$lastposter = COM_getDisplayName($lastreply['uid']);
} else {
$lastposter = $lastreply['name'];
}
if($record['moved'] == 1){
$moved = "{$LANG_GF01['MOVED']}: ";
} else {
$moved = "";
}
if(strlen ($record['subject']) > $CONF_FORUM['show_subject_length']) {
//@@@@@20070602(0327)update---->
//$subject = substr($record['subject'], 0, $CONF_FORUM['show_subject_length']) . '....';
$subject = mb_substr($record['subject'], 0, $CONF_FORUM['show_subject_length']) . '....';
//@@@@@20070602(0327)update<----
} else {
$subject = $record['subject'];
}
if($record['uid'] > 1) {
$firstposterName = COM_getDisplayName($record['uid']);
} else {
$firstposterName = $record['name'];
}
$topicinfo = "{$LANG_GF01['STARTEDBY']}{$firstposterName}, {$firstdate}
";
//@@@@@20070327update---->
//$topicinfo .= wordwrap(strip_tags(substr($record['comment'],0,$CONF_FORUM['contentinfo_numchars'])),$CONF_FORUM['linkinfo_width'],"
\n");
$topicinfo .= wordwrap(strip_tags(mb_substr($record['comment'],0,$CONF_FORUM['contentinfo_numchars'])),$CONF_FORUM['linkinfo_width'],"
\n");
//@@@@@20070327update<----
$topiclisting->set_var ('folderimg', $folderimg);
$topiclisting->set_var ('topicinfo', $topicinfo);
$topiclisting->set_var ('topic_id', $record['id']);
$topiclisting->set_var ('subject', $subject);
$topiclisting->set_var ('fullsubject', $record['subject']);
$topiclisting->set_var ('gotomsg', $gotomsg);
$topiclisting->set_var ('displaypageslink', $displaypageslink);
$topiclisting->set_var ('showuserlink', $showuserlink);
$topiclisting->set_var ('lastposter', $lastposter);
$topiclisting->set_var ('LANG_lastpost', $LANG_GF02['msg188']);
$topiclisting->set_var ('moved', $moved);
$topiclisting->set_var ('views', $record['views']);
$topiclisting->set_var ('replies', $record['replies']);
$topiclisting->set_var ('lastdate', $lastdate);
$topiclisting->set_var ('lastpostid', $lastreply['id']);
$topiclisting->set_var ('LANG_BY', $LANG_GF01['BY']);
$topiclisting->parse ('topic_records', 'topic_record',true);
}
$topiclisting->set_var ('pagenavigation', COM_printPageNavigation($base_url,$page, $numpages));
$topiclisting->parse ('outline_header', 'forum_outline_header');
$topiclisting->parse ('outline_footer', 'forum_outline_footer');
$topiclisting->parse ('output', 'topiclisting');
echo $topiclisting->finish ($topiclisting->get_var('output'));
}
BaseFooter();
echo COM_siteFooter();
$display = ob_get_contents();
ob_end_clean();
echo $display;
?>