Extension ext-network continued:
authorRoland Häder <roland@mxchange.org>
Sat, 10 Sep 2011 10:00:00 +0000 (10:00 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 10 Sep 2011 10:00:00 +0000 (10:00 +0000)
- Tables network_vcheck_params, network_vcheck_errors and network_vcheck_config
  added which will allow a per-advertising-network access on network-vcheck.php
  to report back from the network to the mailer that the payout was success
- A column was missing in one export function which results in broken SQL
  queries

inc/extensions/ext-network.php
inc/libs/network_functions.php

index ed5f0971fa6c43fc7f8844e45b6d9eec64db07da..4d756d46c5cd1e29a1f22bb4777073a4265868c4 100644 (file)
@@ -110,7 +110,7 @@ PRIMARY KEY (`network_type_id`),
 UNIQUE INDEX `provider_type` (`network_id`,`network_type_handler`)",
                        'Types provideable by networks');
 
-               // HTTP parameters (names) for URLs
+               // HTTP parameters (names) for URLs or POST fields
                addDropTableSql('network_request_params');
                addCreateTableSql('network_request_params', "
 `network_request_param_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -124,7 +124,20 @@ UNIQUE INDEX `provider_type_key` (`network_id`,`network_type_id`,`network_reques
 UNIQUE INDEX `provider_type_value` (`network_id`,`network_type_id`,`network_request_param_value`)",
                        'Request parameters for GET/POST request');
 
-               // Error status codes
+               // Payment check ("vcheck") for all advertising networks
+               addDropTableSql('network_vcheck_params');
+               addCreateTableSql('network_vcheck_params', "
+`network_vcheck_param_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`network_vcheck_param_key` VARCHAR(20) NOT NULL DEFAULT 'invalid',
+`network_vcheck_param_value` VARCHAR(20) NOT NULL DEFAULT 'invalid',
+`network_vcheck_param_default` VARCHAR(20) NULL DEFAULT NULL,
+PRIMARY KEY (`network_vcheck_param_id`),
+UNIQUE INDEX `provider_key` (`network_id`, `network_vcheck_param_key`),
+UNIQUE INDEX `provider_value` (`network_id`, `network_vcheck_param_value`)",
+                       'Payment check (vcheck) parameters per network');
+
+               // Network handler error codes
                addDropTableSql('network_error_codes');
                addCreateTableSql('network_error_codes', "
 `network_type_code_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -136,6 +149,18 @@ UNIQUE INDEX `code_type` (`network_type_code_value`,`network_type_id`),
 INDEX (`network_type_id`)",
                        'Error codes for all types');
 
+               // V-Check error codes
+               addDropTableSql('network_vcheck_errors');
+               addCreateTableSql('network_vcheck_errors', "
+`network_vcheck_error_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`network_vcheck_error_value` VARCHAR(50) NOT NULL DEFAULT '',
+`network_vcheck_error_type` VARCHAR(100) NOT NULL DEFAULT 'INVALID_TYPE',
+PRIMARY KEY (`network_vcheck_error_id`),
+UNIQUE INDEX `provider_value` (`network_id`, `network_vcheck_error_value`),
+UNIQUE INDEX `provider_type` (`network_id`, `network_vcheck_error_type`)",
+                       'Error codes for all payment checks');
+
                // Valid translation keys (we hate hard-coded arrays, you see?)
                addDropTableSql('network_translations');
                addCreateTableSql('network_translations', "
@@ -161,6 +186,7 @@ INDEX (`sort`)",
                // Data from the webmaster (you!)
                addDropTableSql('network_api_config');
                addCreateTableSql('network_api_config', "
+`network_api_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `network_api_affiliate_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `network_api_password` VARCHAR(255) NOT NULL DEFAULT '',
@@ -168,7 +194,8 @@ INDEX (`sort`)",
 `network_api_active` ENUM('Y','N') NOT NULL DEFAULT 'Y',
 `network_api_referral_link` VARCHAR(255) NULL DEFAULT NULL,
 `network_api_referral_button` VARCHAR(255) NULL DEFAULT NULL,
-PRIMARY KEY (`network_id`),
+PRIMARY KEY (`network_api_id`),
+UNIQUE INDEX (`network_id`),
 UNIQUE INDEX `network_affiliate` (`network_id`,`network_api_affiliate_id`),
 UNIQUE INDEX `affiliate_site` (`network_api_affiliate_id`,`network_api_site_id`)",
                        'API configuration data');
@@ -188,9 +215,24 @@ PRIMARY KEY (`network_data_id`),
 UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)",
                        'Configuration data for every type (e.g. reload-time)');
 
-               // Cache for queried APIs. Re-check depends on config
-               // `network_cache_refresh` in seconds or if set to zero, full day
-               // divided by query amount.
+               // Configuration data for vcheck (e.g. key)
+               addDropTableSql('network_vcheck_config');
+               addCreateTableSql('network_vcheck_config', "
+`network_vcheck_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`network_vcheck_key` VARCHAR(50) NOT NULL DEFAULT 'INVALID',
+`network_vcheck_field1` VARCHAR(50) NOT NULL DEFAULT 'userid',
+`network_vcheck_field2` VARCHAR(50) NOT NULL DEFAULT 'campaign_id',
+PRIMARY KEY (`network_vcheck_id`),
+UNIQUE INDEX (`network_id`),
+UNIQUE INDEX (`network_vcheck_key`)",
+                       'Configuration data for vcheck per network');
+
+               /*
+                * Cache for queried APIs. Re-check depends on config
+                * `network_cache_refresh` in seconds or if set to zero, full day
+                * divided by query amount.
+                */
                addDropTableSql('network_cache');
                addCreateTableSql('network_cache', "
 `network_cache_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -483,7 +525,7 @@ UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)",
 (386, 38, 'textmail', 'http://www.adprovi.de/interface/api_2.php', 'http://www.adprovi.de/codes/paidmail.php?id=%UID%&bid=%CID%&aid=%SID%&trackid=%TID%', NULL, 'h')");
 
                // Network type handlers - Ads2Earn
-               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_types` (`network_type_id`,`network_id`,`network_type_handler`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`) VALUES
+               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_types` (`network_type_id`,`network_id`,`network_type_handler`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`,`network_type_reload_time_unit`) VALUES
 (395, 39, 'banner_click', 'http://www.ads2earn.de/interface/out_banner.php', 'http://www.ads2earn.de/bannerklf.php?id=%CID%', 'http://www.ads2earn.de/banner.php?id=%CID%','h'),
 (396, 39, 'banner_view', 'http://www.ads2earn.de/interface/out_banner.php', 'http://www.ads2earn.de/bannerklf.php?id=%CID%', 'http://www.ads2earn.de/banner.php?id=%CID%','h'),
 (397, 39, 'textlink_click', 'http://www.ads2earn.de/interface/out_textlink.php', 'http://www.ads2earn.de/textlinkklick.php?id=%CID%', NULL,'h'),
@@ -497,7 +539,7 @@ UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)",
 (405, 39, 'skybanner_view', 'http://www.ads2earn.de/interface/out_banner.php', 'http://www.ads2earn.de/bannerklf.php?id=%CID%', 'http://www.ads2earn.de/banner.php?id=%CID%','h')");
 
                // Network type handlers - Ads2Webbi
-               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_types` (`network_type_id`,`network_id`,`network_type_handler`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`) VALUES
+               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_types` (`network_type_id`,`network_id`,`network_type_handler`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`,`network_type_reload_time_unit`) VALUES
 (406, 40, 'forcedbanner', 'http://www.ads2webbi.de/interface/', 'http://www.ads2webbi.de/codes/forcedbannerklick.php?id=%UID%&bid=%CID%&aid=%SID%', 'http://www.ads2webbi.de/codes/forcedbannerview.php?id=%UID%&bid=%CID%&aid=%SID%','h'),
 (407, 40, 'forcedtextlink', 'http://www.ads2webbi.de/interface/', 'http://www.ads2webbi.de/codes/forcedtextlinkklick.php?id=%UID%&bid=%CID%&aid=%SID%', NULL,'h'),
 (408, 40, 'banner_view', 'http://www.ads2webbi.de/interface/', 'http://www.ads2webbi.de/codes/bannerklick.php?id=%UID%&bid=%CID%&aid=%SID%', 'http://www.ads2webbi.de/codes/bannerview.php?id=%UID%&bid=%CID%&aid=%SID%','h'),
@@ -6594,14 +6636,16 @@ UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)",
                addAdminMenuSql('network', NULL, 'Werbenetzwerke', 'Verwalten Sie hier Werbenetzwerke (API-Anbindung), versenden Sie deren Mails, oder &uuml;bernehmen Sie deren Textlinks und vieles mehr. <strong>VORSICHT:</strong> Das Einrichten von weiteren Werbenetzwerken ist nicht leicht, daf&uuml;r aber sehr flexibel! Sollte ein Netzwerk fehlen, so melden Sie dies bitte <a href="http://forum.mxchange.org/topic-462.html" target="_blank" title="Direktlink zum Forum">im Forum</a>!',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', 'query_network_apis', 'APIs abfragen', 'Fragt alle eingestellten APIs ab. Die Ergebnisse werden dann f&uuml;r einen einstellbaren Zeitraum gecacht und nicht erneut angefordert.',3);
-               addAdminMenuSql('network', 'config_network', 'Einstellungen', 'Stellen Sie generelle Einstellungen ein, die f&uuml;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.',4);
-               addAdminMenuSql('network', 'list_network_reloads', 'Reload-Sperren', 'Listen oder l&ouml;schen Sie hier Reload-Sperren. <strong>Vorsicht:</strong> Die hier gespeicherten Reload-Sperren sind vom jeweiligen Werbenetzwerk &uuml;bernommen. Eventuell verdienen Sie nichts, wenn Sie z.B. eine Mail innerhalb der Reload-Sperre erneut versenden.',5);
-               addAdminMenuSql('network', 'list_networks', 'Dev-Grunddaten', '<strong>Entwicklereinstellungen!</strong> Hier &auml;ndern Sie die Einstellungen an den Grunddaten (Stammdaten) des jeweiligen Werbenetzwerks ab. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 6);
-               addAdminMenuSql('network', 'list_network_types', 'Dev-Werbearten-Handler', '<strong>Entwicklereinstellungen!</strong> Hier &auml;ndern Sie die Einstellungen zu den Werbearten-Handler pro Werbenetzwerken. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 7);
-               addAdminMenuSql('network', 'list_network_request_params', 'Dev-Abfrageparameter', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Abfrageparameter (wie sie genannt werden m&uuml;ssen, um das API-Script korrekt aufrufen zu k&ouml;nnen) ein, pro Werbenetzwerk. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 8);
-               addAdminMenuSql('network', 'list_network_array_translation', 'Dev-Antwort-Array', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Zuweisungen der aus der analysierten API-Antwort Array-Elementen zu den Datenspalten ein. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 10);
-               addAdminMenuSql('network', 'list_network_error_codes', 'Dev-Fehlercodes', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Fehlercodes ein, die im Falle eines Fehlers pro API-Script kommen k&ouml;nnen. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 11);
+               addAdminMenuSql('network', 'config_network_vcheck', 'V-Check', 'Aktivieren Sie hier den Verg&uuml;tungscheck (V-Check) oder richten Sie einen neuen Zugangsschl&uuml;ssel (&quot;Passwort&quot;) f&uuml;r das Werbenetzwerk ein. Nicht jedes Werbenetzwerk unterst&uuml;tzt dies! Am besten schauen Sie in Ihrem Affiliate-Bereich des jeweiligen Werbenetzwerkes nach, ob dort der V-Check angeboten wird.',3);
+               addAdminMenuSql('network', 'query_network_apis', 'APIs abfragen', 'Fragt alle eingestellten APIs ab. Die Ergebnisse werden dann f&uuml;r einen einstellbaren Zeitraum gecacht und nicht erneut angefordert.',4);
+               addAdminMenuSql('network', 'config_network', 'Einstellungen', 'Stellen Sie generelle Einstellungen ein, die f&uuml;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&ouml;schen Sie hier Reload-Sperren. <strong>Vorsicht:</strong> Die hier gespeicherten Reload-Sperren sind vom jeweiligen Werbenetzwerk &uuml;bernommen. Eventuell verdienen Sie nichts, wenn Sie z.B. eine Mail innerhalb der Reload-Sperre erneut versenden.',6);
+               addAdminMenuSql('network', 'list_networks', 'Dev-Grunddaten', '<strong>Entwicklereinstellungen!</strong> Hier &auml;ndern Sie die Einstellungen an den Grunddaten (Stammdaten) des jeweiligen Werbenetzwerks ab. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 7);
+               addAdminMenuSql('network', 'list_network_types', 'Dev-Werbearten-Handler', '<strong>Entwicklereinstellungen!</strong> Hier &auml;ndern Sie die Einstellungen zu den Werbearten-Handler pro Werbenetzwerken. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 8);
+               addAdminMenuSql('network', 'list_network_request_params', 'Dev-Abfrageparameter', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Abfrageparameter (wie sie genannt werden m&uuml;ssen, um das API-Script korrekt aufrufen zu k&ouml;nnen) ein, pro Werbenetzwerk. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 9);
+               addAdminMenuSql('network', 'list_network_vcheck_params', 'Dev-VCheck-Parameter', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Abfrageparameter f&uuml;r <strong>network-vcheck.php</strong> pro Werbenetzwerk ein, damit dies vom Werbenetzwerk zur&uuml;ck korrekt aufgerufen wird. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 10);
+               addAdminMenuSql('network', 'list_network_array_translation', 'Dev-Antwort-Array', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Zuweisungen der aus der analysierten API-Antwort Array-Elementen zu den Datenspalten ein. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 11);
+               addAdminMenuSql('network', 'list_network_error_codes', 'Dev-Fehlercodes', '<strong>Entwicklereinstellungen!</strong> Hier stellen Sie die Fehlercodes ein, die im Falle eines Fehlers pro API-Script kommen k&ouml;nnen. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.', 12);
 
                // Configuration entries
                addConfigAddSql('network_cache_refresh', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 15));
@@ -6612,10 +6656,12 @@ UNIQUE INDEX `provider_type` (`network_id`,`network_type_id`)",
                addDropTableSql('network_data');
                addDropTableSql('network_types');
                addDropTableSql('network_request_params');
+               addDropTableSql('network_vcheck_params');
                addDropTableSql('network_error_codes');
                addDropTableSql('network_array_translation');
                addDropTableSql('network_api_config');
                addDropTableSql('network_types_config');
+               addDropTableSql('network_vcheck_config');
                addDropTableSql('network_cache');
                addDropTableSql('network_reloads');
 
index 0bf6cf625db3b30525cb1ad30666ca4bffa5f74e..d6ca362e25f888f64470fbd2a56e43c5b853874a 100644 (file)
@@ -1812,7 +1812,7 @@ ORDER BY
                ), __FUNCTION__, __LINE__);
 
        // Start an empty SQL query
-       $SQL = "INSERT INTO `&#123;&#63;_MYSQL_PREFIX&#63;&#125;_network_types` (`network_type_id`,`network_id`,`network_type_handler`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`) VALUES\n";
+       $SQL = "INSERT INTO `&#123;&#63;_MYSQL_PREFIX&#63;&#125;_network_types` (`network_type_id`,`network_id`,`network_type_handler`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`,`network_type_reload_time_unit`) VALUES\n";
 
        // Load all entries
        while ($content = SQL_FETCHARRAY($result)) {