From c0492f72cb322af878f09f745dfd6a65b45da555 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 11 Sep 2011 11:04:02 +0000 Subject: [PATCH] Fixes for purging inactive users --- inc/extensions/ext-network.php | 5 +++-- inc/functions.php | 4 ++-- inc/libs/network_functions.php | 6 ++++++ inc/purge/purge-general.php | 4 +++- inc/purge/purge-inact.php | 35 +++++++++++++++++++--------------- network-vcheck.php | 8 ++++++-- 6 files changed, 40 insertions(+), 22 deletions(-) diff --git a/inc/extensions/ext-network.php b/inc/extensions/ext-network.php index 4d756d46c5..481cb141d5 100644 --- a/inc/extensions/ext-network.php +++ b/inc/extensions/ext-network.php @@ -149,7 +149,7 @@ UNIQUE INDEX `code_type` (`network_type_code_value`,`network_type_id`), INDEX (`network_type_id`)", 'Error codes for all types'); - // V-Check error codes + // V-check error codes addDropTableSql('network_vcheck_errors'); addCreateTableSql('network_vcheck_errors', " `network_vcheck_error_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, @@ -6636,7 +6636,7 @@ UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)", addAdminMenuSql('network', NULL, 'Werbenetzwerke', 'Verwalten Sie hier Werbenetzwerke (API-Anbindung), versenden Sie deren Mails, oder übernehmen Sie deren Textlinks und vieles mehr. VORSICHT: Das Einrichten von weiteren Werbenetzwerken ist nicht leicht, dafür aber sehr flexibel! Sollte ein Netzwerk fehlen, so melden Sie dies bitte im Forum!',4); addAdminMenuSql('network', 'config_network_api', 'API-Zugangsdaten', 'Stellen Sie Ihre Affiliate- Webseiten-Id und API-Passwort ein. Diese erhalten Sie aus dem Affiliate-Bereich des jeweiligen Werbenetzwerkes. Sollten Sie bei einem Werbenetzwerk noch nicht angemeldet sein, verwenden Sie bitte meinen Referral-Link dazu.',1); addAdminMenuSql('network', 'config_network_types', 'Werbearten', 'Stellen Sie hier Reload-Zeiten, Mindestauffenthalt und so weiter pro Werbeart und Werbenetzwerk ein. Es werden sonst Ausgangswerte (Mimimumwerte: 0, Maximumwerte: sehr gross, Erotik: aus) angenommen, die Sie meistens nicht wollen.',2); - addAdminMenuSql('network', 'config_network_vcheck', 'V-Check', 'Aktivieren Sie hier den Vergütungscheck (V-Check) oder richten Sie einen neuen Zugangsschlüssel ("Passwort") für das Werbenetzwerk ein. Nicht jedes Werbenetzwerk unterstützt dies! Am besten schauen Sie in Ihrem Affiliate-Bereich des jeweiligen Werbenetzwerkes nach, ob dort der V-Check angeboten wird.',3); + addAdminMenuSql('network', 'config_network_vcheck', 'Vergütungscheck', 'Aktivieren Sie hier den Vergütungscheck (V-Check) oder richten Sie einen neuen Zugangsschlüssel ("Passwort") für das Werbenetzwerk ein. Nicht jedes Werbenetzwerk unterstützt dies! Am besten schauen Sie in Ihrem Affiliate-Bereich des jeweiligen Werbenetzwerkes nach, ob dort der Vergütungscheck angeboten wird.',3); addAdminMenuSql('network', 'query_network_apis', 'APIs abfragen', 'Fragt alle eingestellten APIs ab. Die Ergebnisse werden dann für einen einstellbaren Zeitraum gecacht und nicht erneut angefordert.',4); addAdminMenuSql('network', 'config_network', 'Einstellungen', 'Stellen Sie generelle Einstellungen ein, die für alle Werbenetzwerke gelten, wie z.B. Cache-Erneuerungsinterval. Generell sind aber die Einstellungen in Ordnung, da z.B. sonst Ihre freien Abfragen beim Werbenetzwerk sich zu schnell abbauen.',5); addAdminMenuSql('network', 'list_network_reloads', 'Reload-Sperren', 'Listen oder löschen Sie hier Reload-Sperren. Vorsicht: Die hier gespeicherten Reload-Sperren sind vom jeweiligen Werbenetzwerk übernommen. Eventuell verdienen Sie nichts, wenn Sie z.B. eine Mail innerhalb der Reload-Sperre erneut versenden.',6); @@ -6646,6 +6646,7 @@ UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)", addAdminMenuSql('network', 'list_network_vcheck_params', 'Dev-VCheck-Parameter', 'Entwicklereinstellungen! Hier stellen Sie die Abfrageparameter für network-vcheck.php pro Werbenetzwerk ein, damit dies vom Werbenetzwerk zurück korrekt aufgerufen wird. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.', 10); addAdminMenuSql('network', 'list_network_array_translation', 'Dev-Antwort-Array', 'Entwicklereinstellungen! Hier stellen Sie die Zuweisungen der aus der analysierten API-Antwort Array-Elementen zu den Datenspalten ein. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.', 11); addAdminMenuSql('network', 'list_network_error_codes', 'Dev-Fehlercodes', 'Entwicklereinstellungen! Hier stellen Sie die Fehlercodes ein, die im Falle eines Fehlers pro API-Script kommen können. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.', 12); + addAdminMenuSql('network', 'list_network_vcheck_errors', 'Dev-VCheck-Fehler', 'Entwicklereinstellungen! Hier stellen Sie die Fehlercodes ein, die im Falle eines Fehlers vom Werbenetzwerk an network-vcheck.php gemeldet werden. Auch ob alles in Ordnung gegangen ist, wird hier eingestellt. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.', 13); // Configuration entries addConfigAddSql('network_cache_refresh', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 15)); diff --git a/inc/functions.php b/inc/functions.php index f35ee954c6..b142253bab 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -1372,11 +1372,11 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $inserted, $seek=0 function sendAdminNotification ($subject, $templateName, $content = array(), $userid = NULL) { if ((isExtensionInstalledAndNewer('admins', '0.4.1')) && (function_exists('sendAdminsEmails'))) { // Send new way - /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'admins=Y,subject=' . $subject . ',templateName=' . $templateName); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'admins=Y,subject=' . $subject . ',templateName=' . $templateName . ' - OKAY!'); sendAdminsEmails($subject, $templateName, $content, $userid); } else { // Send out-dated way - /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'admins=N,subject=' . $subject . ',templateName=' . $templateName); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'admins=N,subject=' . $subject . ',templateName=' . $templateName . ' - OUT-DATED!'); $message = loadEmailTemplate($templateName, $content, $userid); sendAdminEmails($subject, $message); } diff --git a/inc/libs/network_functions.php b/inc/libs/network_functions.php index d6ca362e25..1dad40cf32 100644 --- a/inc/libs/network_functions.php +++ b/inc/libs/network_functions.php @@ -905,6 +905,12 @@ function isNetworkTypeHandlerConfigured ($networkId, $networkTypeId) { return $GLOBALS[__FUNCTION__][$networkId][$networkTypeId]; } +// Handles the network-payment-check request +function handleNetworkPaymentCheckRequest () { + // @TODO Implement this function + debug_report_bug(__FUNCTION__, __LINE__, 'Not yet implemented.'); +} + //------------------------------------------------------------------------------ // Call-back functions //------------------------------------------------------------------------------ diff --git a/inc/purge/purge-general.php b/inc/purge/purge-general.php index 896442769b..ad9ad46475 100644 --- a/inc/purge/purge-general.php +++ b/inc/purge/purge-general.php @@ -132,7 +132,9 @@ ORDER BY } // END - while // Add points to jackpot - if (isExtensionActive('jackpot')) addPointsToJackpot($points); + if (isExtensionActive('jackpot')) { + addPointsToJackpot($points); + } // END - if // Add points for the admin $admin_points += $points; diff --git a/inc/purge/purge-inact.php b/inc/purge/purge-inact.php index e70c0164b8..6786cb1714 100644 --- a/inc/purge/purge-inact.php +++ b/inc/purge/purge-inact.php @@ -53,23 +53,25 @@ if (isAutopurgeInactiveEnabled()) { // Init exclusion list // @TODO Rewrite these if() blocks to a filter - $EXCLUDE_LIST = ''; - if (isValidUserId(getDefRefid())) $EXCLUDE_LIST .= ' AND `userid` != {?def_refid?}'; + $excludeUserids = ''; + if (isValidUserId(getDefRefid())) $excludeUserids .= ' AND `userid` != {?def_refid?}'; // Check for more extensions - if (isExtensionActive('beg')) $EXCLUDE_LIST .= ' AND `userid` != {?beg_userid?}'; - if (isExtensionActive('bonus')) $EXCLUDE_LIST .= ' AND `userid` != {?bonus_userid?}'; - if (isExtensionActive('doubler')) $EXCLUDE_LIST .= ' AND `userid` != {?doubler_userid?}'; + if (isExtensionActive('beg')) $excludeUserids .= ' AND `userid` != {?beg_userid?}'; + if (isExtensionActive('bonus')) $excludeUserids .= ' AND `userid` != {?bonus_userid?}'; + if (isExtensionActive('doubler')) $excludeUserids .= ' AND `userid` != {?doubler_userid?}'; // Check for new holiday extension if (isExtensionInstalledAndNewer('holiday', '0.1.3')) { // Include only users with no active holiday - $EXCLUDE_LIST .= " AND `holiday_active`='N'"; + $excludeUserids .= " AND `holiday_active`='N'"; } // END - if // Check for all accounts $result_inactive = SQL_QUERY("SELECT - `userid`,`email`,`last_online` + `userid`, + `email`, + `last_online` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE @@ -77,13 +79,13 @@ WHERE (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_since?} - " . $EXCLUDE_LIST . " + " . $excludeUserids . " ORDER BY `userid` ASC", __FILE__, __LINE__); if (!SQL_HASZERONUMS($result_inactive)) { // Prepare variables and constants... - $useridsContent = ''; + $userids = array(); $content['since'] = (getApInactiveSince() / 60 / 60); $content['time'] = (getApInactiveTime() / 60 / 60); @@ -93,7 +95,7 @@ ORDER BY $content = merge_array($content, $row); // Remember userids for the admin - $useridsContent .= $content['userid'] . ', '; + $userids[] = $content['userid']; // Get date/time from timestamp $content['last_online'] = generateDateTime($content['last_online'], 0); @@ -108,7 +110,7 @@ ORDER BY } // END - while // Remove last comma - $useridsContent = str_replace(', ', "\n", substr($useridsContent, 0, -2)); + $useridsContent = implode("\n", $userids); // Send mail notification to admin sendAdminNotification('{--ADMIN_AUTOPURGE_INACTIVE_SUBJECT--}', 'admin_autopurge_inactive', $useridsContent); @@ -120,15 +122,18 @@ ORDER BY // Now let's have a look for inactive accounts we want to delete we newly use the same exclude list // here for e.g. excluding holiday users $result_inactive = SQL_QUERY("SELECT - `userid`,`email`,`last_online` + `userid`, + `email`, + `last_online` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED' AND (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND - (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_time?} -" . $EXCLUDE_LIST . " + (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_time?} AND + `ap_notified` > 0 +" . $excludeUserids . " ORDER BY `userid` ASC", __FILE__, __LINE__); @@ -139,7 +144,7 @@ ORDER BY // Delete inactive accounts while ($content = SQL_FETCHARRAY($result_inactive)) { // Remember userids for the admin - $useridsContent[] = $content['userid']; + $userids[] = $content['userid']; // Get date/time from timestamp $content['last_online'] = generateDateTime($content['last_online'], 0); diff --git a/network-vcheck.php b/network-vcheck.php index 3d379f4d19..49e36aa69c 100644 --- a/network-vcheck.php +++ b/network-vcheck.php @@ -8,7 +8,7 @@ * -------------------------------------------------------------------- * * Short description : Payment check script for extension ext-network * * -------------------------------------------------------------------- * - * Kurzbeschreibung : V-Check Script fuer Erweiterung ext-network * + * Kurzbeschreibung : VCheck Script fuer Erweiterung ext-network * * -------------------------------------------------------------------- * * $Revision:: $ * * $Date:: $ * @@ -54,7 +54,11 @@ setContentType('text/plain'); // Load header loadIncludeOnce('inc/header.php'); -// @TODO Add processing of request here +// Is the required extension installed? +if (isExtensionInstalled('network')) { + // It is installed, so handle the request + handleNetworkPaymentCheckRequest(); +} // END - if // Load footer loadIncludeOnce('inc/footer.php'); -- 2.39.5