From e255180539a9fdfac8a8b51d1aefc6f4909d8e07 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org> 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 @@ +<?php +/************************************************************************ + * Mailer v0.2.1-FINAL Start: 09/30/2012 * + * =================== Last change: 09/30/2012 * + * * + * -------------------------------------------------------------------- * + * File : load-payments.php * + * -------------------------------------------------------------------- * + * Short description : Load more cache files * + * -------------------------------------------------------------------- * + * Kurzbeschreibung : Mehr Cache-Dateien nachladen * + * -------------------------------------------------------------------- * + * $Revision:: $ * + * $Date:: $ * + * $Tag:: 0.2.1-FINAL $ * + * $Author:: $ * + * -------------------------------------------------------------------- * + * Copyright (c) 2003 - 2009 by Roland Haeder * + * Copyright (c) 2009 - 2012 by Mailer Developer Team * + * For more information visit: http://mxchange.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ************************************************************************/ + +// Some security stuff... +if (!defined('__SECURITY')) { + die(); +} elseif (isInstallationPhase()) { + // Use this code if you don't want to run this cache loader on installation phase + return; +} + +// Let's start with the admins table... +if (($GLOBALS['cache_instance']->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 = '<span class="bad">{--SETTINGS_NOT_SAVED--}</span>'; + // Save settings if (countSqls() > 0) { // Run all queries runFilterChain('run_sqls'); + + // Purge cache + rebuildCache('payments', 'payments'); + + // Change message $content = '<span class="good">{--SETTINGS_SAVED--}</span>'; - } else { - // Nothing has changed! - $content = '<span class="bad">{--SETTINGS_NOT_SAVED--}</span>'; - } + } // 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