From 992986465cfdeee5a3d6964457e26478e05b7d31 Mon Sep 17 00:00:00 2001 From: quix0r Date: Sun, 30 Sep 2012 19:55:52 +0000 Subject: [PATCH] Added caching of 'payments' table, rewrote another 'else' block --- .gitattributes | 1 + inc/classes/cachesystem.class.php | 5 +- inc/loader/load-payments.php | 73 +++++++++++++++++++++++++ inc/modules/admin/what-payments.php | 13 +++-- inc/modules/member/what-unconfirmed.php | 21 ++++--- 5 files changed, 101 insertions(+), 12 deletions(-) create mode 100644 inc/loader/load-payments.php diff --git a/.gitattributes b/.gitattributes index e8d1746f45..69ce45db49 100644 --- a/.gitattributes +++ b/.gitattributes @@ -402,6 +402,7 @@ inc/loader/load-extensions.php svneol=native#text/plain inc/loader/load-filter.php svneol=native#text/plain inc/loader/load-imprint.php svneol=native#text/plain inc/loader/load-modules.php svneol=native#text/plain +inc/loader/load-payments.php svneol=native#text/plain inc/loader/load-points_data.php svneol=native#text/plain inc/loader/load-refdepths.php svneol=native#text/plain inc/loader/load-refsystem.php svneol=native#text/plain diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php index 729197a03d..713c1696ce 100644 --- a/inc/classes/cachesystem.class.php +++ b/inc/classes/cachesystem.class.php @@ -213,6 +213,9 @@ class CacheSystem { } elseif ($this->name == 'earning') { // Table 'earning' $GLOBALS['cache_array']['earning'][$k][$data['earning_id']] = $v; + } elseif ($this->name == 'payments') { + // Table 'payments' + $GLOBALS['cache_array']['payments'][$k][$data['id']] = $v; } elseif (is_array($v)) { // Serialize and BASE64-encode the array $v = base64_encode(serialize($v)); @@ -224,7 +227,7 @@ class CacheSystem { $this->removeCacheFile(true); // Unsupported/unhandled cache detected - reportBug(__METHOD__, __LINE__, 'Unsupported cache ' . $this->name . ' detected.'); + reportBug(__METHOD__, __LINE__, 'Unsupported cache ' . $this->name . ' detected, data=' . print_r($data, true) . ',k=' . $k . ',v=' . $v); } // Write cache line to file diff --git a/inc/loader/load-payments.php b/inc/loader/load-payments.php new file mode 100644 index 0000000000..c11c58f63f --- /dev/null +++ b/inc/loader/load-payments.php @@ -0,0 +1,73 @@ +loadCacheFile('payments')) && ($GLOBALS['cache_instance']->extensionVersionMatches('payments'))) { + // Load cache + $GLOBALS['cache_array']['payments'] = $GLOBALS['cache_instance']->getArrayFromCache(); +} elseif (isHtmlOutputMode()) { + // Create cache file + $GLOBALS['cache_instance']->init(); + + // Load every data from DB to cache file + //$add = runFilterChain('sql_admin_extra_data'); + + // Query the database about this + $result = SQL_QUERY('SELECT * FROM `{?_MYSQL_PREFIX?}_payments` ORDER BY `id` ASC', __FILE__, __LINE__); + while ($dummy = SQL_FETCHARRAY($result)) { + // Save row + $GLOBALS['cache_instance']->addRow($dummy); + } // END - while + + // Free memory + SQL_FREERESULT($result); + + // Close cache + $GLOBALS['cache_instance']->storeExtensionVersion('payments'); + $GLOBALS['cache_instance']->finalize(); +} + +// [EOF] +?> diff --git a/inc/modules/admin/what-payments.php b/inc/modules/admin/what-payments.php index ef16f138e4..66e61a4694 100644 --- a/inc/modules/admin/what-payments.php +++ b/inc/modules/admin/what-payments.php @@ -70,15 +70,20 @@ if (isFormSent()) { break; } // END - switch + // Nothing has changed by default + $content = '{--SETTINGS_NOT_SAVED--}'; + // Save settings if (countSqls() > 0) { // Run all queries runFilterChain('run_sqls'); + + // Purge cache + rebuildCache('payments', 'payments'); + + // Change message $content = '{--SETTINGS_SAVED--}'; - } else { - // Nothing has changed! - $content = '{--SETTINGS_NOT_SAVED--}'; - } + } // END - if // Output template displayMessage($content); diff --git a/inc/modules/member/what-unconfirmed.php b/inc/modules/member/what-unconfirmed.php index 16e247338a..1da948a63c 100644 --- a/inc/modules/member/what-unconfirmed.php +++ b/inc/modules/member/what-unconfirmed.php @@ -94,20 +94,27 @@ LIMIT 1", } elseif (isGetRequestElementSet('mailid')) { // Display regular member mail by loading its full data $result_data = SQL_QUERY_ESC("SELECT - s.id, s.subject, p.text, s.timestamp_ordered AS `timestamp`, - s.cat_id, pay.price AS `points`, p.sender, pay.time, p.data_type + s.`id`, + s.`subject`, + p.`text`, + s.`timestamp_ordered` AS `timestamp`, + s.`cat_id`, + pay.`price` AS `points`, + p.`sender`, + pay.`time`, + p.`data_type` FROM - `{?_MYSQL_PREFIX?}_user_stats` AS s + `{?_MYSQL_PREFIX?}_user_stats` AS `s` LEFT JOIN - `{?_MYSQL_PREFIX?}_pool` AS p + `{?_MYSQL_PREFIX?}_pool` AS `p` ON s.pool_id=p.id LEFT JOIN - `{?_MYSQL_PREFIX?}_payments` AS pay + `{?_MYSQL_PREFIX?}_payments` AS `pay` ON - p.payment_id=pay.id + p.`payment_id`=pay.`id` WHERE - s.id=%s + s.`id`=%s LIMIT 1", array(bigintval(getRequestElement('mailid'))), __FILE__, __LINE__); -- 2.39.5