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 = ''.$LANG_GF02['msg111'].''; } else { $folderimg = ''.$LANG_GF02['quietforum'].''; } } else { $folderimg = ''.$LANG_GF02['quietforum'].''; } $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 = ''.$LANG_GF02['quietforum'].''; } 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 = ''.$LANG_GF01['FORUMSUBSCRIBE'].''; $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 = ''.$LANG_GF01['FORUMUNSUBSCRIBE'].''; $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 = ''.$LANG_GF01['NEWTOPIC'].''; $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 = ''; $showuserlink .= "{$record['name']}"; $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 = ''.$LANG_GF02['msg115'].''; } elseif ($record['locked'] == 1) { $folderimg = ''.$LANG_GF02['msg116'].''; } else { $folderimg = ''.$LANG_GF02['msg60'].''; } } elseif ($record['sticky'] == 1) { $folderimg = ''.$LANG_GF02['msg61'].''; } elseif ($record['locked'] == 1) { $folderimg = ''.$LANG_GF02['msg114'].''; } else { $folderimg = ''.$LANG_GF02['msg59'].''; } } elseif ($record['sticky'] == 1) { $folderimg = ''.$LANG_GF02['msg61'].''; } elseif ($record['locked'] == 1) { $folderimg = ''.$LANG_GF02['msg114'].''; } else { $folderimg = ''.$LANG_GF02['msg59'].''; } 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; ?>