X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions%2Fext-forced.php;h=15b488e3871905e7628006a972982fc007e8bfb6;hp=a1a7d9525876005f0e89123be7d4da277a8dc1ca;hb=947525cd9aa9d8b130adca2384c3823408aa2e1d;hpb=964a3b539e335f6d70e7779630fd3d25fd38398d diff --git a/inc/extensions/ext-forced.php b/inc/extensions/ext-forced.php index a1a7d95258..15b488e387 100644 --- a/inc/extensions/ext-forced.php +++ b/inc/extensions/ext-forced.php @@ -41,129 +41,121 @@ if (!defined('__SECURITY')) { } // END - if // Version number -setThisExtensionVersion('0.0'); +setThisExtensionVersion('0.0.0'); -// Version history array (add more with , '0.1.0' and so on) -setExtensionVersionHistory(array('0.0')); +// Version history array (add more with , '0.0.1' and so on) +setExtensionVersionHistory(array('0.0.0')); // This extension is in development (non-productive) enableExtensionProductive(false); switch (getExtensionMode()) { case 'register': // Do stuff when installation is running - // This depends on 'sponsor' now - addExtensionDependency('sponsor'); + // Add dependency for ext-sql_patches + addExtensionDependency('sql_patches'); // All required tables for this extension: // - Ads addDropTableSql('forced_ads'); - addCreateTableSql('forced_ads', "( -`forced_ads_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , -`forced_ads_ad_url` VARCHAR( 255 ) NULL DEFAULT NULL , -`forced_ads_click_url` VARCHAR( 255 ) NOT NULL , -`forced_ads_width` SMALLINT( 3 ) UNSIGNED NULL DEFAULT NULL , -`forced_ads_height` SMALLINT( 3 ) UNSIGNED NULL DEFAULT NULL , -`forced_ads_alt_text` VARCHAR( 255 ) NULL DEFAULT NULL , -`forced_ads_framebreaker` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'Y', -`forced_ads_views_counter` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT 0, -`forced_ads_clicks_counter` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT 0, -`forced_ads_reload_lock` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT 0, -`forced_ads_min_stay` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT 0, -PRIMARY KEY ( `forced_ads_id` ) -) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Forced Ads Data'"); + addCreateTableSql('forced_ads', " +`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_ads_ad_url` VARCHAR(255) NULL DEFAULT NULL, +`forced_ads_click_url` VARCHAR(255) NOT NULL, +`forced_ads_width` SMALLINT(3) UNSIGNED NULL DEFAULT NULL, +`forced_ads_height` SMALLINT(3) UNSIGNED NULL DEFAULT NULL, +`forced_ads_alt_text` VARCHAR(255) NULL DEFAULT NULL, +`forced_ads_framebreaker` ENUM('Y','N') NOT NULL DEFAULT 'Y', +`forced_ads_type` VARCHAR(255) NOT NULL DEFAULT 'INVALID', +`forced_ads_views_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_ads_clicks_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_ads_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +PRIMARY KEY (`forced_ads_id`)", + 'Forced Ads Data'); // - Campaigns addDropTableSql('forced_campaigns'); - addCreateTableSql('forced_campaigns', "( -`forced_campaign_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , -`forced_campaign_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , -`forced_campaign_status` ENUM( 'ACTIVE', 'PENDING', 'EXPIRED', 'LOCKED' ) NOT NULL DEFAULT 'PENDING', -`forced_campaign_lock_reason` VARCHAR( 255 ) NULL DEFAULT NULL , -`forced_campaign_lock_timetstamp` TIMESTAMP NULL DEFAULT NULL , -`forced_campaign_expired` TIMESTAMP NULL DEFAULT NULL , -`forced_campaign_ordered_clicks` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT 0, -`forced_campaign_costs_api` FLOAT( 20 , 5 ) UNSIGNED NULL DEFAULT NULL, -`forced_campaign_price_api` FLOAT( 20 , 5 ) UNSIGNED NULL DEFAULT NULL, -`forced_costs_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL, -INDEX ( `forced_costs_id` ) , -PRIMARY KEY ( `forced_campaign_id` ) -) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Forced Campaign Data'"); - - // - Campaigns <-> Ads - addDropTableSql('forced_campaigns_ads'); - addCreateTableSql('forced_campaigns_ads', "( -`forced_campaign_ads_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , -`forced_campaign_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL , -`forced_ads_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL , -UNIQUE `ads_campaign` ( `forced_campaign_id` , `forced_ads_id` ) , -PRIMARY KEY ( `forced_campaign_ads_id` ) -) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Forced Campaigns<->Ads'"); - - // - Campaigns <-> User - addDropTableSql('forced_campaigns_user'); - addCreateTableSql('forced_campaigns_user', "( -`forced_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , -`forced_campaign_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL , -`forced_user_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL , -`forced_user_type` ENUM( 'MEMBER', 'SPONSOR', 'ADMIN', 'API' ) NULL DEFAULT NULL , -UNIQUE `forced_campaign_user` ( `forced_campaign_id` , `forced_user_id` , `forced_user_type` ) , -INDEX ( `forced_user_id` ) , -PRIMARY KEY ( `forced_id` ) -) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Forced Campaigns<->User'"); + addCreateTableSql('forced_campaigns', " +`forced_campaign_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_campaign_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +`forced_campaign_status` ENUM('ACTIVE','PENDING','EXPIRED','LOCKED') NOT NULL DEFAULT 'PENDING', +`forced_campaign_lock_reason` VARCHAR(255) NULL DEFAULT NULL, +`forced_campaign_lock_timetstamp` TIMESTAMP NULL DEFAULT NULL, +`forced_campaign_expired` TIMESTAMP NULL DEFAULT NULL, +`forced_campaign_ordered_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_campaign_payment_api` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`forced_campaign_reload_lock` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_campaign_min_stay` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_campaign_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +`forced_costs_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +PRIMARY KEY (`forced_campaign_id`), +INDEX (`forced_costs_id`)", + 'Forced Campaign Data'); // - Campaign costs addDropTableSql('forced_costs'); - addCreateTableSql('forced_costs', "( -`forced_costs_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , -`forced_costs_price_click` FLOAT( 20, 5 ) UNSIGNED NULL DEFAULT NULL , -`forced_costs_payment_click` FLOAT( 20, 5 ) UNSIGNED NULL DEFAULT NULL , -`forced_costs_visibility` ENUM( 'MEMBER', 'SPONSOR', 'ALL', 'NONE' ) NOT NULL DEFAULT 'NONE', -PRIMARY KEY ( `forced_costs_id` ) -) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Forced Campaign Costs'"); + addCreateTableSql('forced_costs', " +`forced_costs_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_costs_price_click` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`forced_costs_payment_click` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`forced_costs_visibility` ENUM('MEMBER','SPONSOR','ALL','NONE') NOT NULL DEFAULT 'NONE', +PRIMARY KEY (`forced_costs_id`)", + 'Forced Campaign Costs'); // - Campaign Statistics addDropTableSql('forced_stats'); - addCreateTableSql('forced_stats', "( -`forced_stats_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , -`forced_stats_campaign_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL , -`forced_stats_user_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL , -`forced_stats_viewed` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , -`forced_stats_clicked` TIMESTAMP NULL DEFAULT NULL , -`forced_stats_real_ip` VARCHAR( 15 ) NOT NULL DEFAULT '0.0.0.0' , -`forced_stats_remote_addr` VARCHAR( 15 ) NOT NULL DEFAULT '0.0.0.0' , -`forced_stats_ua` VARCHAR( 255 ) NULL DEFAULT NULL , -`forced_stats_is_proxy` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'N' , -`forced_stats_session_id` VARCHAR( 100 ) NULL DEFAULT NULL , -INDEX ( `forced_stats_campaign_id` ) , -INDEX ( `forced_stats_user_id` ) , -PRIMARY KEY ( `forced_stats_id` ) -) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Forced Campaign Statistics'"); + addCreateTableSql('forced_stats', " +`forced_stats_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_stats_campaign_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +`forced_stats_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +`forced_stats_viewed` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +`forced_stats_clicked` TIMESTAMP NULL DEFAULT NULL, +`forced_stats_real_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0', +`forced_stats_remote_addr` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0', +`forced_stats_ua` VARCHAR(255) NULL DEFAULT NULL, +`forced_stats_is_proxy` ENUM('Y','N') NOT NULL DEFAULT 'N', +`forced_stats_session_id` VARCHAR(100) NULL DEFAULT NULL, +PRIMARY KEY (`forced_stats_id`), +INDEX (`forced_stats_campaign_id`), +INDEX (`forced_stats_userid`)", + 'Forced Campaign Statistics'); // Menu system // - Administrator - addAdminMenuSql('forced',NULL,'Forced-Ads','Verwalten Sie hier bequem alle laufenden Forced-Banner und -Textlinks und deren Kampgnen. Sie können hier auch neue Werbmittel (Ads) hinzufügen oder laufende Forced-Kampagnen bei z.B. Regelverstössen sperren oder löschen. Auch das naträgliche Editieren von Ads und Kampagnen ist jederzeit möglich. Kampagnen dienen der einfacheren Verwaltung und der Trennung von dem Werbemittel selbst dienen. Sie brauchen also z.B. einen Forced-Banner nur einmal einfügen und können dann bei Bedarf weitere Kampagnen starten.',5); - addAdminMenuSql('forced','list_forced_ads','Werbemittel verwalten','Listet alle eingetragenen Werbmittel (Ads) auf. Sie können hier diese nachträglich editieren falls Sie mal eine falsche URL eingegeben haben oder den Text ändern wollen. Löschen Sie hier auch Forced-Banner, die nicht mehr gültig sind (z.B. abgelaufen sind). Sollten doch mit dem Werbmittel verknüpfte Kampagnen vorhanden sein, erhalten Sie einen Warnheis. Neue Werbmittel können Sie hier ebenfalls hinzufügen. Denken Sie aber daran, dass ohne Kampagne dieses nicht angezeigt wird. Achten Sie hier auch die Reload-Sperre.',1); - addAdminMenuSql('forced','list_forced_campaigns','Kampagnen verwalten','Listet alle Kampagnen auf und zeigt deren Status an. Jederzeit können Sie Kampagnen stoppen, falls Sie dies wünschen oder ein Regelverstoss vorliegt. Haben Sie ein Werbemittel hinzugefügt, so fügen Sie bitte unbedingt eine Kampagne hinzu, da es sonst nicht angezeigt wird.',2); - addAdminMenuSql('forced','list_forced_costs','Kosten verwalten','Legen Sie die Preise pro Klick zum Buchen Forced-Werbemittel fest und wie viele {OPEN_CONFIG}POINTS{CLOSE_CONFIG} Ihre Mitglieder erhalten sollen. Generell sollten Sie bei Mitgliederbuchungen höhere Kosten pro Klick als was Ihre Mitglieder pro Klick erhalten einstellen, da so die {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abgebaut werden (Sie können an Accountaufladungen z.B. verdienen).',3); - addAdminMenuSql('forced','stats_forced','Statistiken','Zeigt Gesamtstatistiken und zu den einzelnen Kampagnen und Werbmitteln an. Die hier angezeigte Statistik kann jedoch nicht manuell gelöscht werden (bitte auch nicht selber tun) da sie auch gleichzeitigt als Reload-Sperre dient.',4); + addAdminMenuSql('forced', NULL, 'Forced-Ads', 'Verwalten Sie hier bequem alle laufenden Forced-Banner, -Textlinks, -PopUps und deren Kampgnen. Sie können hier auch neue Werbmittel (Ads) hinzufügen oder laufende Forced-Kampagnen bei z.B. Regelverstössen sperren oder löschen. Auch das naträgliche Editieren von Ads und Kampagnen ist jederzeit möglich. Kampagnen dienen der einfacheren Verwaltung und der Trennung von dem Werbemittel selbst dienen. Sie brauchen also z.B. einen Forced-Banner nur einmal einfügen und können dann bei Bedarf weitere Kampagnen starten.', 5); + addAdminMenuSql('forced', 'list_forced_ads', 'Werbemittel verwalten', 'Listet alle eingetragenen Werbmittel (Ads) auf und fügt neue hinzu. Sie können hier diese nachträglich editieren falls Sie mal eine falsche URL eingegeben haben oder den Text ändern wollen. Löschen Sie hier auch Forced-Banner, die nicht mehr gültig sind (z.B. abgelaufen sind). Sollten doch mit dem Werbmittel verknüpfte Kampagnen vorhanden sein, erhalten Sie einen Warnhinweis. Neue Werbmittel können Sie hier ebenfalls hinzufügen. Denken Sie aber daran, dass ohne Kampagne dieses nicht angezeigt wird. Achten Sie hier auch die Reload-Sperre.', 2); + addAdminMenuSql('forced', 'list_forced_campaigns', 'Kampagnen verwalten', 'Listet alle Kampagnen auf und zeigt deren Status an. Jederzeit können Sie Kampagnen stoppen, falls Sie dies wünschen oder ein Regelverstoss vorliegt. Haben Sie ein Werbemittel hinzugefügt, so fügen Sie bitte unbedingt eine Kampagne hinzu, da es sonst nicht angezeigt wird.', 3); + addAdminMenuSql('forced', 'list_forced_costs', 'Kosten verwalten', 'Legen Sie die Preise pro Klick für Forced-Werbemittelbuchungen fest und wie viele {OPEN_CONFIG}POINTS{CLOSE_CONFIG} Ihre Mitglieder erhalten sollen. Generell sollten Sie bei Mitgliederbuchungen höhere Kosten pro Klick als was Ihre Mitglieder pro Klick erhalten einstellen, da so die {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abgebaut werden (Sie können an Accountaufladungen z.B. verdienen).', 4); + addAdminMenuSql('forced', 'stats_forced', 'Statistiken', 'Zeigt Gesamtstatistiken und zu den einzelnen Kampagnen und Werbmitteln an. Die hier angezeigte Statistik kann jedoch nicht manuell gelöscht werden (bitte auch nicht selber tun) da sie auch gleichzeitigt als Reload-Sperre dient.', 5); // - Members - addMemberMenuSql('earn','forced_banner','Forced-Banner','Y','N',2); - addMemberMenuSql('earn','forced_textlink','Forced-Textlinks','Y','N',3); + addMemberMenuSql('earn', 'forced_banner', 'Forced-Banner', 3); + addMemberMenuSql('earn', 'forced_textlink', 'Forced-Textlinks', 4); + addMemberMenuSql('extras', 'book_forced', 'Forced-Kampagne buchen', 3); + + // Register Forced-PopUps with earning_data table + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_earning_data` (`earning_group`,`earning_name`,`earning_sorting`) VALUES ('POPUP','FORCED_POPUP',1)"); + + // Register filter for default forced ad types + registerFilter('add_forced_ads_types', 'FORCED_AD_TYPE_DEFAULTS', false, true, isExtensionDryRun()); break; case 'remove': // Do stuff when removing extension // SQL commands to run addDropTableSql('forced_ads'); addDropTableSql('forced_campaigns'); - addDropTableSql('forced_campaigns_ads'); - addDropTableSql('forced_campaigns_user'); addDropTableSql('forced_costs'); addDropTableSql('forced_stats'); // Menu systems - addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='forced' LIMIT 5"); - addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN ('forced_banner','forced_textlink') LIMIT 2"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='forced'"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN ('forced_banner','forced_textlink','book_forced') LIMIT 3"); + + // Unregister Forced-PopUps from earning_data + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_earning_data` WHERE `earning_name`='FORCED_POPUP' LIMIT 1"); + + // Remove filter + unregisterFilter(__FUNCTION__, __LINE__, 'add_forced_ads_types', 'FORCED_AD_TYPE_DEFAULTS', true, isExtensionDryRun()); break; case 'activate': // Do stuff when admin activates this extension