This will fix an issue with templates of other users being applied to different users logged in. Basically the first cached page would be displayed for all users. Created a new cache key for smarty to allow the user ID to be reference in the cache key. Hence each user has their own cached file which will be used. Improved caching by creating subdirectories for cached files. This way we won't run into a file limit per directory with a lot of cached files. This fixes #430 and the mentioned issue in that report.
69 lines
2.6 KiB
PHP
69 lines
2.6 KiB
PHP
<?php
|
|
|
|
// Make sure we are called from index.php
|
|
if (!defined('SECURITY')) die('Hacking attempt');
|
|
|
|
if (!$smarty->isCached('master.tpl', $smarty_cache_key)) {
|
|
$debug->append('No cached version available, fetching from backend', 3);
|
|
// Fetch data from wallet
|
|
if ($bitcoin->can_connect() === true){
|
|
$dDifficulty = $bitcoin->getdifficulty();
|
|
if (is_array($dDifficulty) && array_key_exists('proof-of-work', $dDifficulty))
|
|
$dDifficulty = $dDifficulty['proof-of-work'];
|
|
$iBlock = $bitcoin->getblockcount();
|
|
} else {
|
|
$dDifficulty = 1;
|
|
$iBlock = 0;
|
|
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to wallet RPC service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
|
|
}
|
|
|
|
// Top share contributors
|
|
$aContributorsShares = $statistics->getTopContributors('shares', 15);
|
|
|
|
// Top hash contributors
|
|
$aContributorsHashes = $statistics->getTopContributors('hashes', 15);
|
|
|
|
// Grab the last 10 blocks found
|
|
$iLimit = 5;
|
|
$aBlocksFoundData = $statistics->getBlocksFound($iLimit);
|
|
count($aBlocksFoundData) > 0 ? $aBlockData = $aBlocksFoundData[0] : $aBlockData = array();
|
|
|
|
// Estimated time to find the next block
|
|
$iCurrentPoolHashrate = $statistics->getCurrentHashrate();
|
|
|
|
// Time in seconds, not hours, using modifier in smarty to translate
|
|
$iCurrentPoolHashrate > 0 ? $iEstTime = $dDifficulty * pow(2,32) / ($iCurrentPoolHashrate * 1000) : $iEstTime = 0;
|
|
|
|
// Time since last block
|
|
$now = new DateTime( "now" );
|
|
if (!empty($aBlockData)) {
|
|
$dTimeSinceLast = ($now->getTimestamp() - $aBlockData['time']);
|
|
} else {
|
|
$dTimeSinceLast = 0;
|
|
}
|
|
|
|
// Propagate content our template
|
|
$smarty->assign("ESTTIME", $iEstTime);
|
|
$smarty->assign("TIMESINCELAST", $dTimeSinceLast);
|
|
$smarty->assign("BLOCKSFOUND", $aBlocksFoundData);
|
|
$smarty->assign("BLOCKLIMIT", $iLimit);
|
|
$smarty->assign("CONTRIBSHARES", $aContributorsShares);
|
|
$smarty->assign("CONTRIBHASHES", $aContributorsHashes);
|
|
$smarty->assign("CURRENTBLOCK", $iBlock);
|
|
count($aBlockData) > 0 ? $smarty->assign("LASTBLOCK", $aBlockData['height']) : $smarty->assign("LASTBLOCK", 0);
|
|
$smarty->assign("DIFFICULTY", $dDifficulty);
|
|
$smarty->assign("REWARD", $config['reward']);
|
|
} else {
|
|
$debug->append('Using cached page', 3);
|
|
}
|
|
|
|
// Public / private page detection
|
|
if ($config['website']['acl']['statistics']['pool'] == 'public') {
|
|
$smarty->assign("CONTENT", "authenticated.tpl");
|
|
} else if ($user->isAuthenticated() && $config['website']['acl']['statistics']['pool'] == 'private') {
|
|
$smarty->assign("CONTENT", "authenticated.tpl");
|
|
} else {
|
|
$smarty->assign("CONTENT", "../default.tpl");
|
|
}
|
|
?>
|