X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions%2Fext-network.php;h=3825ec159508f7bf900fa16b499589cbe792ce50;hp=805a78cf4db52b9634f5b5e25c93aeb9d01945ec;hb=0d151affa122aa0561e66145d0b40143b295042d;hpb=60ec2630bf57400662273ad985c4eaf62d318cf7 diff --git a/inc/extensions/ext-network.php b/inc/extensions/ext-network.php index 805a78cf4d..3825ec1595 100644 --- a/inc/extensions/ext-network.php +++ b/inc/extensions/ext-network.php @@ -8,7 +8,7 @@ * -------------------------------------------------------------------- * * Short description : Generic (sponsor) network connection extension * * -------------------------------------------------------------------- * - * Kurzbeschreibung : Allgemeine Sponsorennetzwerk-Erweiterung * + * Kurzbeschreibung : Allgemeine Werbenetzwerk-Erweiterung * * -------------------------------------------------------------------- * * $Revision:: $ * * $Date:: $ * @@ -47,17 +47,20 @@ setThisExtensionVersion('0.0'); // Version history array (add more with , '0.1.0' and so on) setExtensionVersionHistory(array('0.0')); +// This extension is in development (non-productive) +enableExtensionProductive(false); + switch (getExtensionMode()) { case 'register': // Do stuff when installation is running (modules.php?module=admin is called) // Main table which hold - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_data`"); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_data`'); addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_data` ( -`network_id` BIGINT(20) NOT NULL AUTO_INCREMENT, +`network_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `network_short_name` VARCHAR(50) NOT NULL DEFAULT '', `network_title` VARCHAR(255) NOT NULL DEFAULT '', `network_reflink` VARCHAR(255) NOT NULL DEFAULT '', -`network_data_seperator CHAR(4) NOT NULL DEFAULT '|', -`network_row_seperator CHAR(4) NOT NULL DEFAULT '|', +`network_data_seperator` CHAR(4) NOT NULL DEFAULT '|', +`network_row_seperator` CHAR(4) NOT NULL DEFAULT '|', `network_request_type` ENUM('GET','POST') NOT NULL DEFAULT 'GET', `network_charset` VARCHAR(20) NOT NULL DEFAULT 'ISO-8859-1', UNIQUE (`network_short_name`), @@ -66,10 +69,10 @@ PRIMARY KEY (`network_id`) // Types the network provider is supporting (e.g. Forced-Banner and so on) // @TODO network_type_name is an internal name and needs documentation - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types`"); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types`'); addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_types` ( -`network_type_id` BIGINT(20) NOT NULL AUTO_INCREMENT, -`network_id` BIGINT(20) NOT NULL DEFAULT 0, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `network_type_name` VARCHAR(255) NOT NULL DEFAULT '', `network_type_title` VARCHAR(255) NOT NULL DEFAULT '', `network_type_request_url` VARCHAR(255) NOT NULL DEFAULT '', @@ -80,9 +83,9 @@ PRIMARY KEY (`network_type_id`) ) TYPE={?_TABLE_TYPE?} COMMENT='Types provideable by networks. ONLY FILL OUT WITH PROPER IDEA!'"); // HTTP parameters (names) for URLs - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_request_params`"); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_request_params`'); addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_request_params` ( -`network_type_id` BIGINT(20) NOT NULL DEFAULT 0, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `request_param_max_reload_time` VARCHAR(10) NOT NULL DEFAULT 'reload', `request_param_min_waiting_time` VARCHAR(10) NOT NULL DEFAULT 'ma', `request_param_min_remain_clicks` VARCHAR(10) NOT NULL DEFAULT 'uebrig', @@ -92,10 +95,10 @@ PRIMARY KEY (`network_type_id`) ) TYPE={?_TABLE_TYPE?} COMMENT='Request parameters for GET/POST request ONLY FILL OUT WITH PROPER IDEA!'"); // Error status codes - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_type_errors`"); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_type_codes`'); addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_type_codes` ( -`network_type_code_id` BIGINT(20) NOT NULL AUTO_INCREMENT, -`network_type_id` BIGINT(20) NOT NULL DEFAULT 0, +`network_type_code_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `network_type_code_value` VARCHAR(50) NOT NULL DEFAULT '', `network_type_code_type` VARCHAR(100) NOT NULL DEFAULT 'INVALID_TYPE', UNIQUE `code_type` (`network_type_code_value`,`network_type_id`), @@ -104,41 +107,79 @@ PRIMARY KEY (`network_type_code_id`) ) TYPE={?_TABLE_TYPE?} COMMENT='Error codes for all types'"); // Code types (internal table) - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_codes`"); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_codes`'); addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_codes` ( -`network_code_id` BIGINT(20) NOT NULL AUTO_INCREMENT, +`network_code_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `network_code` VARCHAR(100) NOT NULL DEFAULT 'INVALID_CODE', UNIQUE (`network_code`), PRIMARY KEY (`network_code_id`) ) TYPE={?_TABLE_TYPE?} COMMENT='Error types, generic data, DO NOT ALTER!'"); + // Valid translation keys (we hate hard-coded arrays, you see?) + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_translations`'); + addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_translations` ( +`network_translate_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_translation` VARCHAR(100) NOT NULL DEFAULT '', +UNIQUE `type_trans` (`network_type_id`,`network_translation`), +PRIMARY KEY (`network_translate_id`) +) TYPE={?_TABLE_TYPE?} COMMENT='Translations for array keys, generic data, DO NOT ALTER!'"); + + // Array-Element translation tables per type/provider + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_array_translation`'); + addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_array_translation` ( +`network_translate_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_array_key` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0, +`network_translation` VARCHAR(100) NOT NULL DEFAULT '', +UNIQUE `provider_type_key` (`network_id`,`network_type_id`,`network_array_key`), +UNIQUE `provider_type_trans` (`network_id`,`network_type_id`,`network_translation`), +PRIMARY KEY (`network_translate_id`) +) TYPE={?_TABLE_TYPE?} COMMENT='Cache for all queried APIs'"); + // Data from the webmaster (you!) - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config_data`"); - addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_config_data` ( -`network_id` BIGINT(20) NOT NULL DEFAULT 0, -`network_affiliate_id` BIGINT(20) NOT NULL DEFAULT 0, + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config`'); + addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_config` ( +`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_affiliate_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `network_api_password` VARCHAR(255) NOT NULL DEFAULT '', -`network_site_id` BIGINT(20) NOT NULL DEFAULT 0, +`network_site_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_query_amount` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, UNIQUE `network_affiliate` (`network_id`,`network_affiliate_id`), UNIQUE `affiliate_site` (`network_affiliate_id`,`network_site_id`), PRIMARY KEY (`network_id`) ) TYPE={?_TABLE_TYPE?} COMMENT='Configuration data from the webmaster (you!)'"); // Configuration data for e.g. reload-time - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types_data`"); - addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_types_data` ( -`network_data_id` BIGINT(20) NOT NULL AUTO_INCREMENT, -`network_id` BIGINT(20) NOT NULL DEFAULT 0, -`network_type_id` BIGINT(20) NOT NULL DEFAULT 0, -`max_reload_time` BIGINT(20) NOT NULL DEFAULT 0, -`min_waiting_time` BIGINT(20) NOT NULL DEFAULT 0, -`min_remain_clicks` BIGINT(20) NOT NULL DEFAULT 0, -`min_payment` BIGINT(20) NOT NULL DEFAULT 0, + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types_config`'); + addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_types_config` ( +`network_data_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`max_reload_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`min_waiting_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`min_remain_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`min_payment` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `allow_erotic` VARCHAR(10) NOT NULL DEFAULT '', -INDEX `network_affiliate` (`network_id`,`network_affiliate_id`), +UNIQUE `provider_type` (`network_id`,`network_type_id`), PRIMARY KEY (`network_data_id`) ) TYPE={?_TABLE_TYPE?} COMMENT='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. + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_cache`'); + addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_cache` ( +`network_cache_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_cache_data` MEDIUMBLOB, +`network_cache_timestamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00', +UNIQUE `provider_type` (`network_id`,`network_type_id`), +PRIMARY KEY (`network_cache_id`) +) TYPE={?_TABLE_TYPE?} COMMENT='Cache for all queried APIs'"); + // Insert error code types // - Affiliate id or interface password wrong addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('AFF_ID_PASS_WRONG')"); @@ -160,24 +201,33 @@ PRIMARY KEY (`network_data_id`) addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('REQUEST_PARAMS_INCOMPLETE')"); // Admin menu entries - addAdminMenuSql('network',NULL,'Sponsorennetzwerke','Verwalten Sie hier Sponsorennetzwerke (API-Anbindung), versenden Sie deren Mails, oder übernehmen Sie deren Textlinks und vieles mehr. VORSICHT: Das Einrichten von weiteren Sponsorennetzwerken 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-Daten','Stellen Sie Ihre Affiliate- Webseiten-Id und API-Passwort ein. Diese erhalten Sie zu über 99% aus dem jeweiligen Zugangsbereich des Anbieters. Sollten Sie bei einem Netzwerk noch nicht angemeldet sein, verwenden Sie bitte meinen Referal-Link.',1); - addAdminMenuSql('network','config_network_types','Werbearten','Stellen Sie hier Reload-Zeiten, Mindestauffenthalt und so weiter pro Werbeart und Sponsorennetzwerk ein. Es werden sonst Standart-Werte (Mimimumwerte: 0, Maximumwerte: sehr gross, Erotik: aus) angenommen, die Sie meistens nicht wollen.',2); - addAdminMenuSql('network','list_networks','Auflisten/Verwalten','Experten-Einstellungen! Hier ändern Sie die Einstellungen an den Grunddaten (Stammdaten) des jeweiligen Sponsorennetzwerks ab. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Sponsorennetzwerk einrichten möchten.',3); - addAdminMenuSql('network','list_network_types','Werbearten verwalten','Experten-Einstellungen! Hier ändern Sie die Einstellungen zu den Werbearten pro Sponsorennetzwerken. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Sponsorennetzwerk einrichten möchten.',4); - addAdminMenuSql('network','list_network_params','Abfrageparameter','Experten-Einstellungen! Hier stellen Sie die Abfrageparameter (wie sie genannt werden müssen, um das API-Script korrekt aufrufen zu können) ein, pro Sponsorennetzwerk. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Sponsorennetzwerk einrichten möchten.',5); - addAdminMenuSql('network','list_network_code_types','','Experten-Einstellungen! Hier stellen Sie die Rückgabewerte 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 Sponsorennetzwerk einrichten möchten.',7); - addAdminMenuSql('network','list_network_codes','Fehlercodes einstellen','Experten-Einstellungen! Hier stellen Sie die Namen von Fehlercodes ein, die Scripte zurückliefern können. Dies sind INTERNE Daten und sollten nur vom MXChange-Entwicklerteam angepasst werden. Stellen Sie an diesen Einstellungen bitte nichts um. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Sponsorennetzwerk einrichten möchten.',7); + 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_networks','API-Daten','Stellen Sie Ihre Affiliate- Webseiten-Id und API-Passwort ein. Diese erhalten Sie zu über 99% aus dem jeweiligen Zugangsbereich des Anbieters. Sollten Sie bei einem Netzwerk noch nicht angemeldet sein, verwenden Sie bitte meinen Referal-Link.',1); + addAdminMenuSql('network','config_network_types','Werbearten','Stellen Sie hier Reload-Zeiten, Mindestauffenthalt und so weiter pro Werbeart und Werbenetzwerk ein. Es werden sonst Standart-Werte (Mimimumwerte: 0, Maximumwerte: sehr gross, Erotik: aus) angenommen, die Sie meistens nicht wollen.',2); + addAdminMenuSql('network','query_networks','APIs abfragen','Fragt alle eingestellten APIs ab. Die Ergebnisse werden dann für einen einstellbaren Zeitraum gecacht und nicht erneut angefordert.',3); + 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.',4); + 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.',5); + addAdminMenuSql('network','list_networks','Auflisten/Verwalten','Experten-Einstellungen! Hier ändern Sie die Einstellungen an den Grunddaten (Stammdaten) des jeweiligen Werbenetzwerks ab. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',6); + addAdminMenuSql('network','list_network_types','Werbearten verwalten','Experten-Einstellungen! Hier ändern Sie die Einstellungen zu den Werbearten pro Werbenetzwerken. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',7); + addAdminMenuSql('network','list_network_params','Abfrageparameter','Experten-Einstellungen! Hier stellen Sie die Abfrageparameter (wie sie genannt werden müssen, um das API-Script korrekt aufrufen zu können) ein, pro Werbenetzwerk. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',8); + addAdminMenuSql('network','list_network_code_types','Rückgabewerte','Experten-Einstellungen! Hier stellen Sie die Rückgabewerte 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.',9); + addAdminMenuSql('network','list_network_codes','Fehlercodes einstellen','Experten-Einstellungen! Hier stellen Sie die Namen von Fehlercodes ein, die Scripte zurückliefern können. Dies sind INTERNE Daten und sollten nur vom MXChange-Entwicklerteam angepasst werden. Stellen Sie an diesen Einstellungen bitte nichts um. Sie sollten hier generell nichts einstellen und im Forum um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',10); + + // Configuration entries + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `network_cache_refresh` BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 15) . ''); break; case 'remove': // Do stuff when removing extension // SQL commands to run - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_data`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_request_params`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_type_errors`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config_data`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types_data`"); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_data`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_request_params`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_type_codes`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_translations`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_array_translation`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types_config`'); + addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_cache`'); // Admin menu addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='network'");