From 50554746c7ba931988a6eb0377c6bf0bd930920f Mon Sep 17 00:00:00 2001 From: e107steved <steved@e107.org> Date: Sun, 6 Jan 2008 09:38:39 +0000 Subject: [PATCH] Bugtracker #4284 - handle case of no members online, plus a tidy up --- e107_languages/English/lan_online.php | 13 +- e107_themes/templates/online_template.php | 14 +- online.php | 287 ++++++++++++---------- 3 files changed, 176 insertions(+), 138 deletions(-) diff --git a/e107_languages/English/lan_online.php b/e107_languages/English/lan_online.php index 194455a99..785450867 100644 --- a/e107_languages/English/lan_online.php +++ b/e107_languages/English/lan_online.php @@ -4,9 +4,9 @@ | e107 website system - Language File. | | $Source: /cvs_backup/e107_0.8/e107_languages/English/lan_online.php,v $ -| $Revision: 1.1.1.1 $ -| $Date: 2006-12-02 04:34:39 $ -| $Author: mcfly_e107 $ +| $Revision: 1.2 $ +| $Date: 2008-01-06 09:38:33 $ +| $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -26,8 +26,10 @@ define("ONLINE_EL12", "Replying to"); define("ONLINE_EL13", "Forum"); define("ONLINE_EL14", "Thread"); define("ONLINE_EL15", "Page"); +define("ONLINE_EL16", "Information not available"); + define("CLASSRESTRICTED", "Class Restricted Page"); -define("ARTICLEPAGE", "Article/Review"); +//define("ARTICLEPAGE", "Article/Review"); define("CHAT", "Chat"); define("COMMENT", "Comments"); define("DOWNLOAD", "Downloads"); @@ -48,7 +50,7 @@ define("USERSETTINGS", "User Settings"); define("ONLINE", "Online Users"); define("LISTNEW", "List New Items"); define("USERPOSTS", "User Posts"); -define("SUBCONTENT", "Submit Article/Review"); +define("SUBCONTENT", "Submit Content"); define("TOP", "Top Posters/Most Active Threads"); define("ADMINAREA", "Admin Area"); define("BUGTRACKER", "Bugtracker"); @@ -60,5 +62,6 @@ define("SURVEY", "Survey"); define("ARTICLE", "Article"); define("CONTENT", "Content Page"); define("REVIEW", "Review"); +define('OTHER', 'Other page: '); ?> \ No newline at end of file diff --git a/e107_themes/templates/online_template.php b/e107_themes/templates/online_template.php index e69f53100..cd77ea64e 100644 --- a/e107_themes/templates/online_template.php +++ b/e107_themes/templates/online_template.php @@ -1,5 +1,4 @@ <?php -// $Id: online_template.php,v 1.2 2007-12-06 21:35:55 e107steved Exp $ if (!defined('e107_INIT')) { exit; } if (!defined("USER_WIDTH")){ define("USER_WIDTH","width:96%"); } @@ -7,7 +6,7 @@ if (!defined("USER_WIDTH")){ define("USER_WIDTH","width:96%"); } // ##### ONLINE TABLE ----------------------------------------------------------------------------- if(!isset($ONLINE_TABLE_START)) { - $ONLINE_TABLE_START = " + $ONLINE_TABLE_START = " <div style='text-align:center'> <table class='fborder' style='".USER_WIDTH."'> <tr> @@ -18,7 +17,7 @@ if(!isset($ONLINE_TABLE_START)) } if(!isset($ONLINE_TABLE)) { - $ONLINE_TABLE = " + $ONLINE_TABLE = " <tr> <td class='forumheader3' style='width:3%;text-align:center'>{ONLINE_TABLE_ICON}</td> <td class='forumheader3' style='width:45%'>{ONLINE_TABLE_USERNAME}</td> @@ -27,11 +26,14 @@ if(!isset($ONLINE_TABLE)) } if(!isset($ONLINE_TABLE_END)) { - $ONLINE_TABLE_END = " + $ONLINE_TABLE_END = " </table> </div> - <br /> - ".ONLINE_EL1.GUESTS_ONLINE.", + <br />"; +} +if (!isset($ONLINE_TABLE_MISC)) +{ + $ONLINE_TABLE_MISC = ONLINE_EL1.GUESTS_ONLINE.", ".ONLINE_EL2.MEMBERS_ONLINE." ...<br /> <br />{ONLINE_TABLE_MOST_EVER_ONLINE} <br />({ONLINE_TABLE_MOST_MEMBERS_ONLINE}, {ONLINE_TABLE_MOST_GUESTS_ONLINE}) ".ONLINE_EL9." {ONLINE_TABLE_DATESTAMP}<br /> diff --git a/online.php b/online.php index 1757ffd9e..a7f3457ab 100644 --- a/online.php +++ b/online.php @@ -11,121 +11,147 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/online.php,v $ -| $Revision: 1.3 $ -| $Date: 2007-10-06 17:36:10 $ -| $Author: mcfly_e107 $ +| $Revision: 1.4 $ +| $Date: 2008-01-06 09:38:33 $ +| $Author: e107steved $ +----------------------------------------------------------------------------+ */ require_once("class2.php"); require_once(HEADERF); +if (!$pref['track_online']) +{ + $ns->tablerender(ONLINE_EL4, ONLINE_EL16); + require_once(FOOTERF); + exit; +} + +if (file_exists(THEME."online_template.php")) +{ + require_once(THEME."online_template.php"); +} +else +{ + require_once(e_THEME."templates/online_template.php"); +} + global $listuserson; -foreach($listuserson as $uinfo => $pinfo) { - $class_check = TRUE; - list($oid, $oname) = explode(".", $uinfo, 2); - $sql2 = new db; - $sql2->db_Select("user", "user_id", "user_admin > 0 "); - $row_2 = $sql2->db_Fetch(); - $online_location = $pinfo; - $online_location_page = substr(strrchr($online_location, "/"), 1); - if (!strstr($online_location, "forum_") || !strstr($online_location, "content.php") || !strstr($online_location, "comment.php")) { - $online_location_page = str_replace(".php", "", substr(strrchr($online_location, "/"), 1)); - } - if ($online_location_page == "log" || $online_location_page == "error") { - $online_location = "news.php"; - $online_location_page = NEWS; - } - if ($online_location_page == "request") { - $online_location = "download.php"; - } - if ($online_location_page == "article") { - $online_location_page = ARTICLEPAGE; - } - if ($online_location_page == "chat") { - $online_location_page = CHAT; - } - //if($online_location_page == "comment"){$online_location_page = COMMENT;} - if ($online_location_page == "content") { - $online_location_page = CONTENT; - } - if ($online_location_page == "download") { - $online_location_page = DOWNLOAD; - } - if ($online_location_page == "email") { - $online_location_page = EMAIL; - } - if ($online_location_page == "forum") { - $online_location_page = FORUM; - } - if ($online_location_page == "links") { - $online_location_page = LINKS; - } - if ($online_location_page == "news") { - $online_location_page = NEWS; - } +foreach($listuserson as $uinfo => $pinfo) +{ + $class_check = TRUE; + list($oid, $oname) = explode(".", $uinfo, 2); + $online_location = $pinfo; + $online_location_page = substr(strrchr($online_location, "/"), 1); + if (!strstr($online_location, "forum_") || !strstr($online_location, "content.php") || !strstr($online_location, "comment.php")) + { + $online_location_page = str_replace(".php", "", substr(strrchr($online_location, "/"), 1)); + } + + switch ($online_location_page) + { + case 'log' : + case 'error' : + $online_location = "news.php"; + $online_location_page = NEWS; + break; + case 'request' : + $online_location = "download.php"; + break; + case 'chat' : + $online_location_page = CHAT; + break; + case 'content' : + $online_location_page = CONTENT; + break; + case 'download' : + $online_location_page = DOWNLOAD; + break; + case 'email' : + $online_location_page = EMAIL; + break; + case 'forum' : + $online_location_page = FORUM; + break; + case 'links' : + $online_location_page = LINKS; + break; + case 'news' : + $online_location_page = NEWS; + break; + case 'login' : + $online_location_page = LOGIN; + break; + case 'search' : + $online_location_page = SEARCH; + break; + case 'submitnews' : + $online_location_page = SUBMITNEWS; + break; + case 'upload' : + $online_location_page = UPLOAD; + break; + case 'user' : + $online_location_page = USERPAGE; + break; + case 'usersettings' : + $online_location_page = USERSETTINGS; + break; + case 'new' : + $online_location_page = LISTNEW; + break; + case 'online' : + $online_location_page = ONLINE; + break; + case 'userposts' : + $online_location_page = USERPOSTS; + break; + case 'subcontent' : + $online_location_page = SUBCONTENT; + break; + case 'top' : + $online_location_page = TOP; + break; + //commonly used plugin pages + case 'bugtracker' : + $online_location_page = BUGTRACKER; + break; + case 'event' : + $online_location_page = EVENT; + break; + case 'calendar' : + $online_location_page = CALENDAR; + break; + case 'pm' : + $online_location_page = PM; + break; + case 'survey' : + $online_location_page = SURVEY; + break; + case 'faq' : + $online_location_page = FAQ; + break; + default : + $online_location_page = OTHER.$online_location_page; + } + +/* +Think these are no longer used + case 'article' : + $online_location_page = ARTICLEPAGE; + break; if ($online_location_page == "oldpolls") { $online_location_page = OLDPOLLS; } if ($online_location_page == "print") { $online_location_page = PRINTPAGE; } - if ($online_location_page == "login") { - $online_location_page = LOGIN; - } - if ($online_location_page == "search") { - $online_location_page = SEARCH; - } if ($online_location_page == "stats") { $online_location_page = STATS; } - if ($online_location_page == "submitnews") { - $online_location_page = SUBMITNEWS; - } - if ($online_location_page == "upload") { - $online_location_page = UPLOAD; - } - if ($online_location_page == "user") { - $online_location_page = USERPAGE; - } - if ($online_location_page == "usersettings") { - $online_location_page = USERSETTINGS; - } - if ($online_location_page == "new") { - $online_location_page = LISTNEW; - } - if ($online_location_page == "online") { - $online_location_page = ONLINE; - } - if ($online_location_page == "userposts") { - $online_location_page = USERPOSTS; - } - if ($online_location_page == "subcontent") { - $online_location_page = SUBCONTENT; - } - if ($online_location_page == "top") { - $online_location_page = TOP; - } - //commonly used plugin pages - if ($online_location_page == "bugtracker") { - $online_location_page = BUGTRACKER; - } - if ($online_location_page == "event") { - $online_location_page = EVENT; - } - if ($online_location_page == "calendar") { - $online_location_page = CALENDAR; - } - if ($online_location_page == "faq") { - $online_location_page = FAQ; - } - if ($online_location_page == "pm") { - $online_location_page = PM; - } - if ($online_location_page == "survey") { - $online_location_page = SURVEY; - } - if (strstr($online_location, "content.php")) { +*/ + if (strstr($online_location, "content.php")) + { $tmp = explode(".", substr(strrchr($online_location, "php."), 2)); if ($tmp[0] == "article") { $sql->db_Select("content", "content_heading, content_class", "content_id='".intval($tmp[1])."'"); @@ -155,8 +181,10 @@ foreach($listuserson as $uinfo => $pinfo) { $online_location_page = CONTENT.": \"".CLASSRESTRICTED."\""; } } - } - if (strstr($online_location, "comment.php")) { + } + + if (strstr($online_location, "comment.php")) + { $tmp = explode(".php.", $online_location); $tmp = explode(".", $tmp[1]); if ($tmp[1] == "news") { @@ -179,8 +207,10 @@ foreach($listuserson as $uinfo => $pinfo) { $online_location_page = COMMENT; $class_check = FALSE; } - } - if (strstr($online_location, "forum")) { + } + + if (strstr($online_location, "forum")) + { $tmp = explode(".", substr(strrchr($online_location, "php."), 2)); if (strstr($online_location, "_viewtopic")) { if ($tmp[2]) { @@ -219,30 +249,26 @@ foreach($listuserson as $uinfo => $pinfo) { $online_location_page = ONLINE_EL12.": ".ONLINE_EL13." .:. ".$forum['forum_name']."->".ONLINE_EL14." .:. ".$forum_t['thread_name']; $online_location = e_PLUGIN."forum/forum_viewtopic.php?$tmp[0].$tmp[1]"; } - } - if (strstr($online_location, "admin")) { - $class_check = FALSE; - $online_location_page = ADMINAREA; - } + } + + if (strstr($online_location, "admin")) + { + $class_check = FALSE; + $online_location_page = ADMINAREA; + } - $ONLINE_TABLE_ICON = (varsettrue($pref['plug_installed']['pm']) && $oid != USERID ? $tp->parseTemplate("{SENDPM={$oid}}", 'sendpm.sc') : "<img src='".e_PLUGIN."online_extended_menu/images/user.png' alt='' style='vertical-align:middle' />"); - - $ONLINE_TABLE_USERNAME = "<a href='".e_BASE."user.php?id.$oid'>$oname</a>"; - $ONLINE_TABLE_LOCATION = ($class_check ? "<a href='$online_location'>$online_location_page</a>" : $online_location_page); - - if (!$ONLINE_TABLE) { - if (file_exists(THEME."online_template.php")) { - require_once(THEME."online_template.php"); - } else { - require_once(e_BASE.$THEMES_DIRECTORY."templates/online_template.php"); - } - } - $textstring .= preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE); + $ONLINE_TABLE_ICON = (varsettrue($pref['plug_installed']['pm']) && $oid != USERID ? $tp->parseTemplate("{SENDPM={$oid}}", 'sendpm.sc') : "<img src='".e_PLUGIN."online_extended_menu/images/user.png' alt='' style='vertical-align:middle' />"); + + $ONLINE_TABLE_USERNAME = "<a href='".e_BASE."user.php?id.$oid'>{$oname}</a>"; + $ONLINE_TABLE_LOCATION = ($class_check ? "<a href='{$online_location}'>{$online_location_page}</a>" : $online_location_page); + + $textstring .= preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE); } $ONLINE_TABLE_MEMBERS_ONLINE = ONLINE_EL1.GUESTS_ONLINE; $ONLINE_TABLE_GUESTS_ONLINE = ONLINE_EL2.MEMBERS_ONLINE; -if ((MEMBERS_ONLINE + GUESTS_ONLINE) > ($menu_pref['most_members_online'] + $menu_pref['most_guests_online'])) { +if ((MEMBERS_ONLINE + GUESTS_ONLINE) > ($menu_pref['most_members_online'] + $menu_pref['most_guests_online'])) +{ global $sysprefs; $menu_pref['most_members_online'] = MEMBERS_ONLINE; $menu_pref['most_guests_online'] = GUESTS_ONLINE; @@ -250,8 +276,9 @@ if ((MEMBERS_ONLINE + GUESTS_ONLINE) > ($menu_pref['most_members_online'] + $men $sysprefs->setArray('menu_pref'); } -if (!isset($gen) || !is_object($gen)) { - $gen = new convert; +if (!isset($gen) || !is_object($gen)) +{ + $gen = new convert; } $datestamp = $gen->convert_date($menu_pref['most_online_datestamp'], "short"); @@ -271,10 +298,16 @@ if ($total_members > 1) $ONLINE_TABLE_MEMBERS_TOTAL = "<br />".ONLINE_EL5.": ".$total_members; $ONLINE_TABLE_MEMBERS_NEWEST = "<br />".ONLINE_EL6.": ".(USER ? "<a href='".e_BASE."user.php?id.".$row['user_id']."'>".$row['user_name']."</a>" : $row['user_name']); } + -$textstart = preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE_START); -$textend = preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE_END); -$text = $textstart.$textstring.$textend; +$text = ''; +if (count($listuserson)) +{ + $textstart = preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE_START); + $textend = preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE_END); + $text = $textstart.$textstring.$textend; +} +$text .= preg_replace("/\{(.*?)\}/e", '$\1', $ONLINE_TABLE_MISC); $ns->tablerender(ONLINE_EL4, $text);