Merge pull request #427 from TheSerapher/issue-309

Issue 309
This commit is contained in:
Sebastian Grewe 2013-07-11 02:35:24 -07:00
commit 83c979b260
20 changed files with 191 additions and 111 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/public/include/config/global.inc.php /public/include/config/global.inc.php
/public/templates/compile/*.php /public/templates/compile/*.php
/cronjobs/logs/*.txt /cronjobs/logs/*.txt
/public/templates/cache/*.php

View File

@ -360,8 +360,36 @@ $config['cookie']['path'] = '/';
$config['cookie']['name'] = 'POOLERCOOKIE'; $config['cookie']['name'] = 'POOLERCOOKIE';
$config['cookie']['domain'] = ''; $config['cookie']['domain'] = '';
// Disable or enable smarty cache /**
// This is usually not required, default: 0 * Enable or disable the Smarty cache
$config['cache'] = 0; *
* Explanation:
* Smarty implements a file based cache for all HTML output generated
* from dynamic scripts. It can be enabled to cache the HTML data on disk,
* future request are served from those cache files.
*
* This may or may not work as expected, in general Memcache is used to cache
* all data so rendering the page should not take too long anyway.
*
* You can test this out and enable (1) this setting but it's not guaranteed to
* work with mmcfe-ng.
*
* Ensure that the folder `templates/cache` is writable by the webserver!
*
* cache = Enable/Disable the cache
* cache_lifetime = Time to keep files in seconds before updating them
*
* Options:
* cache:
* 0 = disabled
* 1 = enabled
* cache_lifetime:
* time in seconds
*
* Defaults:
* cache = 0, disabled
* cache_lifetime = 30 seconds
**/
$config['smarty']['cache'] = 0;
$config['smarty']['cache_lifetime'] = 30;
?> ?>

View File

@ -6,6 +6,6 @@ if ($user->isAuthenticated()) {
$aTransactions = $transaction->getTransactions($_SESSION['USERDATA']['id']); $aTransactions = $transaction->getTransactions($_SESSION['USERDATA']['id']);
if (!$aTransactions) $_SESSION['POPUP'][] = array('CONTENT' => 'Could not find any transaction', 'TYPE' => 'errormsg'); if (!$aTransactions) $_SESSION['POPUP'][] = array('CONTENT' => 'Could not find any transaction', 'TYPE' => 'errormsg');
$smarty->assign('TRANSACTIONS', $aTransactions); $smarty->assign('TRANSACTIONS', $aTransactions);
$smarty->assign('CONTENT', 'default.tpl');
} }
$smarty->assign('CONTENT', 'default.tpl');
?> ?>

View File

@ -2,10 +2,20 @@
// Make sure we are called from index.php // Make sure we are called from index.php
if (!defined('SECURITY')) die('Hacking attempt'); if (!defined('SECURITY')) die('Hacking attempt');
if ($user->isAuthenticated()) {
// Check user to ensure they are admin
if (!$user->isAuthenticated() || !$user->isAdmin($_SESSION['USERDATA']['id'])) {
header("HTTP/1.1 404 Page not found");
die("404 Page not found");
}
if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
$debug->append('No cached version available, fetching from backend', 3);
$aTransactions = $transaction->getAllTransactions(@$_REQUEST['start']); $aTransactions = $transaction->getAllTransactions(@$_REQUEST['start']);
if (!$aTransactions) $_SESSION['POPUP'][] = array('CONTENT' => 'Could not find any transaction', 'TYPE' => 'errormsg'); if (!$aTransactions) $_SESSION['POPUP'][] = array('CONTENT' => 'Could not find any transaction', 'TYPE' => 'errormsg');
$smarty->assign('TRANSACTIONS', $aTransactions); } else {
$smarty->assign('CONTENT', 'default.tpl'); $debug->append('Using cached page', 3);
} }
$smarty->assign('TRANSACTIONS', $aTransactions);
$smarty->assign('CONTENT', 'default.tpl');
?> ?>

View File

@ -9,15 +9,22 @@ if (!$user->isAuthenticated() || !$user->isAdmin($_SESSION['USERDATA']['id'])) {
die("404 Page not found"); die("404 Page not found");
} }
if ($bitcoin->can_connect() === true){ if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
$dBalance = $bitcoin->query('getbalance'); $debug->append('No cached version available, fetching from backend', 3);
if ($bitcoin->can_connect() === true){
$dBalance = $bitcoin->query('getbalance');
} else {
$dBalance = 0;
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to wallet RPC service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
}
// Fetch locked balance from transactions
$dLockedBalance = $transaction->getLockedBalance();
} else { } else {
$dBalance = 0; $debug->append('Using cached page', 3);
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to wallet RPC service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
} }
$smarty->assign("BALANCE", $dBalance); $smarty->assign("BALANCE", $dBalance);
$smarty->assign("LOCKED", $transaction->getLockedBalance()); $smarty->assign("LOCKED", $dLockedBalance);
// Tempalte specifics // Tempalte specifics
$smarty->assign("CONTENT", "default.tpl"); $smarty->assign("CONTENT", "default.tpl");

View File

@ -6,16 +6,21 @@ if (!defined('SECURITY')) die('Hacking attempt');
// Include markdown library // Include markdown library
use \Michelf\Markdown; use \Michelf\Markdown;
// Fetch active news to display if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
$aNews = $news->getAllActive(); $debug->append('No cached version available, fetching from backend', 3);
if (is_array($aNews)) { // Fetch active news to display
foreach ($aNews as $key => $aData) { $aNews = $news->getAllActive();
// Transform Markdown content to HTML if (is_array($aNews)) {
$aNews[$key]['content'] = Markdown::defaultTransform($aData['content']); foreach ($aNews as $key => $aData) {
// Transform Markdown content to HTML
$aNews[$key]['content'] = Markdown::defaultTransform($aData['content']);
}
} }
$smarty->assign("NEWS", $aNews);
} else {
$debug->append('Using cached page', 3);
} }
// Load news entries for Desktop site and unauthenticated users // Load news entries for Desktop site and unauthenticated users
$smarty->assign("NEWS", $aNews);
$smarty->assign("CONTENT", "default.tpl"); $smarty->assign("CONTENT", "default.tpl");
?> ?>

View File

@ -4,18 +4,23 @@
if (!defined('SECURITY')) if (!defined('SECURITY'))
die('Hacking attempt'); die('Hacking attempt');
if ($bitcoin->can_connect() === true){ if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
$dDifficulty = $bitcoin->query('getdifficulty'); $debug->append('No cached version available, fetching from backend', 3);
if (is_array($dDifficulty) && array_key_exists('proof-of-work', $dDifficulty)) if ($bitcoin->can_connect() === true){
$dDifficulty = $dDifficulty['proof-of-work']; $dDifficulty = $bitcoin->query('getdifficulty');
$iBlock = $bitcoin->query('getblockcount'); if (is_array($dDifficulty) && array_key_exists('proof-of-work', $dDifficulty))
$dDifficulty = $dDifficulty['proof-of-work'];
$iBlock = $bitcoin->query('getblockcount');
} else {
$dDifficulty = 1;
$iBlock = 0;
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to litecoind RPC service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
}
$smarty->assign("CURRENTBLOCK", $iBlock);
$smarty->assign("DIFFICULTY", $dDifficulty);
} else { } else {
$dDifficulty = 1; $debug->append('Using cached page', 3);
$iBlock = 0;
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to litecoind RPC service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
} }
$smarty->assign("CURRENTBLOCK", $iBlock);
$smarty->assign("DIFFICULTY", $dDifficulty);
$smarty->assign("CONTENT", "default.tpl"); $smarty->assign("CONTENT", "default.tpl");
?> ?>

View File

@ -4,12 +4,18 @@
if (!defined('SECURITY')) die('Hacking attempt'); if (!defined('SECURITY')) die('Hacking attempt');
// Grab the last blocks found // Grab the last blocks found
$iLimit = 20; if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
$aBlocksFoundData = $statistics->getBlocksFound($iLimit); $debug->append('No cached version available, fetching from backend', 3);
// Grab the last blocks found
$iLimit = 20;
$aBlocksFoundData = $statistics->getBlocksFound($iLimit);
// Propagate content our template // Propagate content our template
$smarty->assign("BLOCKSFOUND", $aBlocksFoundData); $smarty->assign("BLOCKSFOUND", $aBlocksFoundData);
$smarty->assign("BLOCKLIMIT", $iLimit); $smarty->assign("BLOCKLIMIT", $iLimit);
} else {
$debug->append('Using cached page', 3);
}
if ($config['website']['acl']['statistics']['blocks'] == 'public') { if ($config['website']['acl']['statistics']['blocks'] == 'public') {
$smarty->assign("CONTENT", "default.tpl"); $smarty->assign("CONTENT", "default.tpl");

View File

@ -1,16 +1,19 @@
<?php <?php
// Make sure we are called from index.php // Make sure we are called from index.php
if (!defined('SECURITY')) if (!defined('SECURITY')) die('Hacking attempt');
die('Hacking attempt');
if ($user->isAuthenticated()) { if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
$aHourlyHashRates = $statistics->getHourlyHashrateByAccount($_SESSION['USERDATA']['id']); $debug->append('No cached version available, fetching from backend', 3);
$aPoolHourlyHashRates = $statistics->getHourlyHashrateByPool(); if ($user->isAuthenticated()) {
$aHourlyHashRates = $statistics->getHourlyHashrateByAccount($_SESSION['USERDATA']['id']);
$aPoolHourlyHashRates = $statistics->getHourlyHashrateByPool();
}
$smarty->assign("YOURHASHRATES", @$aHourlyHashRates);
$smarty->assign("POOLHASHRATES", @$aPoolHourlyHashRates);
} else {
$debug->append('Using cached page', 3);
} }
// Propagate content our template
$smarty->assign("YOURHASHRATES", @$aHourlyHashRates);
$smarty->assign("POOLHASHRATES", @$aPoolHourlyHashRates);
$smarty->assign("CONTENT", "default.tpl"); $smarty->assign("CONTENT", "default.tpl");
?> ?>

View File

@ -1,58 +1,63 @@
<?php <?php
// Make sure we are called from index.php // Make sure we are called from index.php
if (!defined('SECURITY')) if (!defined('SECURITY')) die('Hacking attempt');
die('Hacking attempt');
// Fetch data from wallet if (!$smarty->isCached('master.tpl', md5(serialize($_REQUEST)))) {
if ($bitcoin->can_connect() === true){ $debug->append('No cached version available, fetching from backend', 3);
$dDifficulty = $bitcoin->getdifficulty(); // Fetch data from wallet
if (is_array($dDifficulty) && array_key_exists('proof-of-work', $dDifficulty)) if ($bitcoin->can_connect() === true){
$dDifficulty = $dDifficulty['proof-of-work']; $dDifficulty = $bitcoin->getdifficulty();
$iBlock = $bitcoin->getblockcount(); 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 { } else {
$dDifficulty = 1; $debug->append('Using cached page', 3);
$iBlock = 0;
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to wallet RPC service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
} }
// Top share contributors // Public / private page detection
$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']);
if ($config['website']['acl']['statistics']['pool'] == 'public') { if ($config['website']['acl']['statistics']['pool'] == 'public') {
$smarty->assign("CONTENT", "authenticated.tpl"); $smarty->assign("CONTENT", "authenticated.tpl");
} else if ($user->isAuthenticated() && $config['website']['acl']['statistics']['pool'] == 'private') { } else if ($user->isAuthenticated() && $config['website']['acl']['statistics']['pool'] == 'private') {

View File

@ -20,6 +20,10 @@ $smarty->template_dir = BASEPATH . 'templates/' . THEME . '/';
$smarty->compile_dir = BASEPATH . 'templates/compile/'; $smarty->compile_dir = BASEPATH . 'templates/compile/';
// Optional smarty caching, check Smarty documentation for details // Optional smarty caching, check Smarty documentation for details
$smarty->caching = $config['cache']; if ($config['smarty']['cache']) {
$smarty->cache_dir = BASEPATH . "templates/cache"; $debug->append('Enable smarty cache');
$smarty->setCaching(Smarty::CACHING_LIFETIME_SAVED);
$smarty->cache_lifetime = $config['smarty']['cache_lifetime'];
$smarty->cache_dir = BASEPATH . "templates/cache";
}
?> ?>

View File

@ -1,12 +1,12 @@
<?php <?php
// Make sure we are called from index.php // Make sure we are called from index.php
if (!defined('SECURITY')) if (!defined('SECURITY')) die('Hacking attempt');
die('Hacking attempt');
// Globally available variables // Globally available variables
$debug->append('Global smarty variables', 3); $debug->append('Global smarty variables', 3);
$debug->append('No cached page detected, loading smarty globals', 3);
// Defaults to get rid of PHP Notice warnings // Defaults to get rid of PHP Notice warnings
$dDifficulty = 1; $dDifficulty = 1;
$aRoundShares = 1; $aRoundShares = 1;
@ -109,7 +109,7 @@ if (@$_SESSION['USERDATA']['id']) {
// Site-wide notifications, based on user events // Site-wide notifications, based on user events
if ($aGlobal['userdata']['balance']['confirmed'] >= $config['ap_threshold']['max']) if ($aGlobal['userdata']['balance']['confirmed'] >= $config['ap_threshold']['max'])
$_SESSION['POPUP'][] = array('CONTENT' => 'You have exceeded the pools configured ' . $config['currency'] . ' warning threshold. Please initiate a transfer!', 'TYPE' => 'warning'); $_SESSION['POPUP'][] = array('CONTENT' => 'You have exceeded the pools configured ' . $config['currency'] . ' warning threshold. Please initiate a transfer!', 'TYPE' => 'errormsg');
if ($user->getUserFailed($_SESSION['USERDATA']['id']) > 0) if ($user->getUserFailed($_SESSION['USERDATA']['id']) > 0)
$_SESSION['POPUP'][] = array('CONTENT' => 'You have ' . $user->getUserFailed($_SESSION['USERDATA']['id']) . ' failed login attempts! <a href="?page=account&action=reset_failed">Reset Counter</a>', 'TYPE' => 'errormsg'); $_SESSION['POPUP'][] = array('CONTENT' => 'You have ' . $user->getUserFailed($_SESSION['USERDATA']['id']) . ' failed login attempts! <a href="?page=account&action=reset_failed">Reset Counter</a>', 'TYPE' => 'errormsg');
} }

View File

@ -7,9 +7,9 @@
<tbody><tr><td>Username: </td><td>{$GLOBAL.userdata.username}</td></tr> <tbody><tr><td>Username: </td><td>{$GLOBAL.userdata.username}</td></tr>
<tr><td>User Id: </td><td>{$GLOBAL.userdata.id}</td></tr> <tr><td>User Id: </td><td>{$GLOBAL.userdata.id}</td></tr>
<tr><td>API Key: </td><td><a href="{$smarty.server.PHP_SELF}?page=api&action=getuserstatus&api_key={$GLOBAL.userdata.api_key}&id={$GLOBAL.userdata.id}">{$GLOBAL.userdata.api_key}</a></td></tr> <tr><td>API Key: </td><td><a href="{$smarty.server.PHP_SELF}?page=api&action=getuserstatus&api_key={$GLOBAL.userdata.api_key}&id={$GLOBAL.userdata.id}">{$GLOBAL.userdata.api_key}</a></td></tr>
<tr><td>E-Mail: </td><td><input type="text" name="email" value="{$GLOBAL.userdata.email|escape}" size="20"></td></tr> <tr><td>E-Mail: </td><td><input type="text" name="email" value="{nocache}{$GLOBAL.userdata.email|escape}{/nocache}" size="20"></td></tr>
<tr><td>Payment Address: </td><td><input type="text" name="paymentAddress" value="{$smarty.request.paymentAddress|default:$GLOBAL.userdata.coin_address|escape}" size="40"></td></tr> <tr><td>Payment Address: </td><td><input type="text" name="paymentAddress" value="{nocache}{$smarty.request.paymentAddress|default:$GLOBAL.userdata.coin_address|escape}{nocache}" size="40"></td></tr>
<tr><td>Donation %: </td><td><input type="text" name="donatePercent" value="{$smarty.request.donatePercent|default:$GLOBAL.userdata.donate_percent|escape}" size="4"><font size="1"> [donation amount in percent (example: 0.5)]</font></td></tr> <tr><td>Donation %: </td><td><input type="text" name="donatePercent" value="{nocache}{$smarty.request.donatePercent|default:$GLOBAL.userdata.donate_percent|escape}{nocache}" size="4"><font size="1"> [donation amount in percent (example: 0.5)]</font></td></tr>
<tr><td>Automatic Payout Threshold: </td><td valign="top"><input type="text" name="payoutThreshold" value="{$smarty.request.payoutThreshold|default:$GLOBAL.userdata.ap_threshold|escape}" size="5" maxlength="5"> <font size="1">[{$GLOBAL.config.ap_threshold.min}-{$GLOBAL.config.ap_threshold.max} {$GLOBAL.config.currency}. Set to '0' for no auto payout]</font></td></tr> <tr><td>Automatic Payout Threshold: </td><td valign="top"><input type="text" name="payoutThreshold" value="{$smarty.request.payoutThreshold|default:$GLOBAL.userdata.ap_threshold|escape}" size="5" maxlength="5"> <font size="1">[{$GLOBAL.config.ap_threshold.min}-{$GLOBAL.config.ap_threshold.max} {$GLOBAL.config.currency}. Set to '0' for no auto payout]</font></td></tr>
<tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"><font size="1"> [The 4 digit PIN you chose when registering]</font></td></tr> <tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"><font size="1"> [The 4 digit PIN you chose when registering]</font></td></tr>
</tbody></table> </tbody></table>
@ -23,8 +23,8 @@
<input type="hidden" name="action" value="{$smarty.request.action|escape}"> <input type="hidden" name="action" value="{$smarty.request.action|escape}">
<input type="hidden" name="do" value="cashOut"> <input type="hidden" name="do" value="cashOut">
<table> <table>
<tbody><tr><td>Account Balance: &nbsp;&nbsp;&nbsp;</td><td>{$GLOBAL.userdata.balance.confirmed|escape} {$GLOBAL.config.currency}</td></tr> <tbody><tr><td>Account Balance: &nbsp;&nbsp;&nbsp;</td><td>{nocache}{$GLOBAL.userdata.balance.confirmed|escape}{/nocache} {$GLOBAL.config.currency}</td></tr>
<tr><td>Payout to: </td><td><h6>{$GLOBAL.userdata.coin_address|escape}</h6></td></tr> <tr><td>Payout to: </td><td><h6>{nocache}{$GLOBAL.userdata.coin_address|escape}{/nocache}</h6></td></tr>
<tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"></td></tr> <tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"></td></tr>
</tbody></table> </tbody></table>
<input type="submit" class="submit mid" value="Cash Out"></form> <input type="submit" class="submit mid" value="Cash Out"></form>

View File

@ -12,7 +12,7 @@
<td class="left">IDLE Worker</td> <td class="left">IDLE Worker</td>
<td class="center"> <td class="center">
<input type="hidden" name="data[idle_worker]" value="0" /> <input type="hidden" name="data[idle_worker]" value="0" />
<input type="checkbox" name="data[idle_worker]" id="data[idle_worker]" value="1"{if $SETTINGS['idle_worker']}checked{/if} /> <input type="checkbox" name="data[idle_worker]" id="data[idle_worker]" value="1"{nocache}{if $SETTINGS['idle_worker']}checked{/if}{/nocache} />
<label for="data[idle_worker]"></label> <label for="data[idle_worker]"></label>
</td> </td>
</tr> </tr>
@ -20,7 +20,7 @@
<td class="left">New Blocks</td> <td class="left">New Blocks</td>
<td class="center"> <td class="center">
<input type="hidden" name="data[new_block]" value="0" /> <input type="hidden" name="data[new_block]" value="0" />
<input type="checkbox" name="data[new_block]" id="data[new_block]" value="1"{if $SETTINGS['new_block']}checked{/if} /> <input type="checkbox" name="data[new_block]" id="data[new_block]" value="1"{nocache}{if $SETTINGS['new_block']}checked{/if}{/nocache} />
<label for="data[new_block]"></label> <label for="data[new_block]"></label>
</td> </td>
</tr> </tr>
@ -28,7 +28,7 @@
<td class="left">Auto Payout</td> <td class="left">Auto Payout</td>
<td class="center"> <td class="center">
<input type="hidden" name="data[auto_payout]" value="0" /> <input type="hidden" name="data[auto_payout]" value="0" />
<input type="checkbox" name="data[auto_payout]" id="data[auto_payout]" value="1"{if $SETTINGS['auto_payout']}checked{/if} /> <input type="checkbox" name="data[auto_payout]" id="data[auto_payout]" value="1"{nocache}{if $SETTINGS['auto_payout']}checked{/if}{/nocache} />
<label for="data[auto_payout]"></label> <label for="data[auto_payout]"></label>
</td> </td>
</tr> </tr>
@ -36,7 +36,7 @@
<td class="left">Manual Payout</td> <td class="left">Manual Payout</td>
<td class="center"> <td class="center">
<input type="hidden" name="data[manual_payout]" value="0" /> <input type="hidden" name="data[manual_payout]" value="0" />
<input type="checkbox" name="data[manual_payout]" id="data[manual_payout]" value="1"{if $SETTINGS['manual_payout']}checked{/if} /> <input type="checkbox" name="data[manual_payout]" id="data[manual_payout]" value="1"{nocache}{if $SETTINGS['manual_payout']}checked{/if}{/nocache} />
<label for="data[manual_payout]"></label> <label for="data[manual_payout]"></label>
</td> </td>
</tr> </tr>

View File

@ -15,6 +15,7 @@
<td>&nbsp;</td> <td>&nbsp;</td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
{nocache}
{section worker $WORKERS} {section worker $WORKERS}
{assign var="username" value="."|escape|explode:$WORKERS[worker].username:2} {assign var="username" value="."|escape|explode:$WORKERS[worker].username:2}
<tr> <tr>
@ -29,6 +30,7 @@
<td align="right"><a href="{$smarty.server.PHP_SELF}?page={$smarty.request.page|escape}&action={$smarty.request.action|escape}&do=delete&id={$WORKERS[worker].id|escape}"><button style="padding:5px" type="button">Delete</button></a></td> <td align="right"><a href="{$smarty.server.PHP_SELF}?page={$smarty.request.page|escape}&action={$smarty.request.action|escape}&do=delete&id={$WORKERS[worker].id|escape}"><button style="padding:5px" type="button">Delete</button></a></td>
</tr> </tr>
{/section} {/section}
{/nocache}
</tbody> </tbody>
</table> </table>
<input type="submit" value="Update Workers" style="padding:5px"> <input type="submit" value="Update Workers" style="padding:5px">

View File

@ -17,6 +17,7 @@
</table> </table>
</form> </form>
{include file="global/block_footer.tpl"} {include file="global/block_footer.tpl"}
{nocache}
{section name=news loop=$NEWS} {section name=news loop=$NEWS}
{include {include
file="global/block_header.tpl" file="global/block_header.tpl"
@ -35,4 +36,5 @@
</form> </form>
{include file="global/block_footer.tpl"} {include file="global/block_footer.tpl"}
{/section} {/section}
{/nocache}
{include file="global/block_footer.tpl"} {include file="global/block_footer.tpl"}

View File

@ -10,7 +10,7 @@
Active Active
</th> </th>
<td> <td>
<input type="checkbox" name="active" value="1" id="active" {if $NEWS.active}checked{/if} /> <input type="checkbox" name="active" value="1" id="active" {nocache}{if $NEWS.active}checked{/if}{/nocache} />
<label for="active"></label> <label for="active"></label>
</td> </td>
</tr> </tr>
@ -18,13 +18,13 @@
<th> <th>
Header Header
</th> </th>
<td><input name="header" type="text" size="30" value="{$NEWS.header}" required /></td> <td><input name="header" type="text" size="30" value="{nocache}{$NEWS.header}{/nocache}" required /></td>
</tr> </tr>
<tr> <tr>
<th> <th>
Content Content
</th> </th>
<td><textarea name="content" rows="500" type="text" required>{$NEWS.content}</textarea></td> <td><textarea name="content" rows="500" type="text" required>{nocache}{$NEWS.content}{/nocache}</textarea></td>
</tr> </tr>
</table> </table>
<input type="submit" value="Save" class="submit small" /> <input type="submit" value="Save" class="submit small" />

View File

@ -16,7 +16,7 @@
<td> <td>
<select name="data[maintenance]"> <select name="data[maintenance]">
<option value="1">Yes</option> <option value="1">Yes</option>
<option value="0"{if !$MAINTENANCE} selected{/if}>No</option> <option value="0"{nocache}{if !$MAINTENANCE} selected{/if}>{/nocache}No</option>
</select> </select>
</td> </td>
</tr> </tr>
@ -26,7 +26,7 @@
<td> <td>
<select name="data[lock_registration]"> <select name="data[lock_registration]">
<option value="1">Yes</option> <option value="1">Yes</option>
<option value="0"{if !$LOCKREGISTRATION} selected{/if}>No</option> <option value="0"{nocache}{if !$LOCKREGISTRATION} selected{/if}{/nocache}>No</option>
</select> </select>
</td> </td>
</tr> </tr>

View File

@ -44,6 +44,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{nocache}
{section name=user loop=$USERS|default} {section name=user loop=$USERS|default}
<tr> <tr>
<td class="center">{$USERS[user].id}</td> <td class="center">{$USERS[user].id}</td>
@ -70,6 +71,7 @@
<td colspan="10"></td> <td colspan="10"></td>
</tr> </tr>
{/section} {/section}
{/nocache}
</tbody> </tbody>
<tfoot> <tfoot>
<tr> <tr>

View File

@ -69,7 +69,7 @@
</div> </div>
</div> </div>
<div id="debug"> <div id="debug">
{include file="system/debugger.tpl"} {nocache}{include file="system/debugger.tpl"}{/nocache}
</div> </div>
</div> </div>
</body> </body>