db_Connect($mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb);
}
if (!is_object($eTraffic)) {
$eTraffic = new e107_traffic;
$eTraffic->Bump('Lost Traffic Counters');
}
//
// B.1 Clear cache if over a week old
//
if (ADMIN == TRUE) {
if ($pref['cachestatus']) {
if (!$sql->db_Select('generic', '*', "gen_type='empty_cache'"))
{
$sql->db_Insert('generic', "0,'empty_cache','".time()."','0','','0',''");
} else {
$row = $sql->db_Fetch();
if (($row['gen_datestamp']+604800) < time()) // If cache not cleared in last 7 days, clear it.
{
require_once(e_HANDLER."cache_handler.php");
$ec = new ecache;
$ec->clear();
$sql->db_Update('generic', "gen_datestamp='".time()."' WHERE gen_type='empty_cache'");
}
}
}
}
//
// B.2 Send footer template
//
if(varset($e107_popup)!=1){
if (strpos(e_SELF.'?'.e_QUERY, 'menus.php?configure') === FALSE) {
parse_admin($ADMIN_FOOTER);
}
//
// C Dump all debug and traffic information
//
$eTimingStop = microtime();
global $eTimingStart;
$rendertime = number_format($eTraffic->TimeDelta( $eTimingStart, $eTimingStop ), 4);
$db_time = number_format($db_time,4);
$rinfo = '';
if($pref['displayrendertime']){ $rinfo .= CORE_LAN11.$rendertime.CORE_LAN12.$db_time.CORE_LAN13; }
if($pref['displaysql']){ $rinfo .= CORE_LAN15.$sql -> db_QueryCount().". "; }
if(isset($pref['display_memory_usage']) && $pref['display_memory_usage']){ $rinfo .= CORE_LAN16.$e107->get_memory_usage(); }
if(isset($pref['displaycacheinfo']) && $pref['displaycacheinfo']){ $rinfo .= $cachestring."."; }
echo ($rinfo ? "\n
{$rinfo}
\n" : "");
if ((ADMIN || $pref['developer']) && E107_DEBUG_LEVEL) {
global $db_debug;
echo "\n\n";
$db_debug->Show_All();
}
/*
changes by jalist 24/01/2005:
show sql queries
usage: add ?showsql to query string, must be admin
*/
if(ADMIN && isset($queryinfo) && is_array($queryinfo))
{
$c=1;
$mySQLInfo = $sql->mySQLinfo;
echo "
ID | SQL Queries | \n
\n";
foreach ($queryinfo as $infovalue)
{
echo "\n\n
\n";
$c++;
}
echo "
";
}
} // End of regular-page footer (the above NOT done for popups)
//
// D Close DB connection. We're done talking to underlying MySQL
//
$sql -> db_Close(); // Only one is needed; the db is only connected once even with several $sql objects
//
// Just before we quit: dump quick timer if there is any
// Works any time we get this far. Not calibrated, but it is quick and simple to use.
// To use: eQTimeOn(); eQTimeOff();
//
$tmp = eQTimeElapsed();
if (strlen($tmp)) {
global $ns;
$ns->tablerender('Quick Admin Timer',"Results: {$tmp} microseconds");
}
if ($pref['developer']) {
global $oblev_at_start,$oblev_before_start;
if (ob_get_level() != $oblev_at_start) {
$oblev = ob_get_level();
$obdbg = "Software defect detected; ob_*() level {$oblev} at end instead of ($oblev_at_start). POPPING EXTRA BUFFERS!
";
while (ob_get_level() > $oblev_at_start) {
ob_end_flush();
}
echo $obdbg;
}
// 061109 PHP 5 has a bug such that the starting level might be zero or one.
// Until they work that out, we'll disable this message.
// Devs can re-enable for testing as needed.
//
if (0 && $oblev_before_start != 0) {
$obdbg = "Software warning; ob_*() level {$oblev_before_start} at start; this page not properly integrated into its wrapper.
";
echo $obdbg;
}
}
if((ADMIN == true || $pref['developer']) && $error_handler->debug == true) {
echo "
PHP Errors:
".$error_handler->return_errors()."
";
}
//
// E Last themed footer code, usually JS
//
if (function_exists('theme_foot'))
{
echo theme_foot();
}
//
// F any included JS footer scripts
//
global $footer_js;
if(isset($footer_js) && is_array($footer_js))
{
$footer_js = array_unique($footer_js);
foreach($footer_js as $fname)
{
echo "\n";
$js_included[] = $fname;
}
}
//
// G final JS script keeps user and server time in sync.
// It must be the last thing created before sending the page to the user.
//
// see e107.js and class2.php
// This must be done as late as possible in page processing.
$_serverTime=time();
$lastSet = isset($_COOKIE['e107_tdSetTime']) ? $_COOKIE['e107_tdSetTime'] : 0;
if (abs($_serverTime - $lastSet) > 120) {
/* update time delay every couple of minutes.
* Benefit: account for user time corrections and changes in internet delays
* Drawback: each update may cause all server times to display a bit different
*/
echo "\n";
}
//
// H Final HTML
//
echo "