Rewrote some parts:
[mailer.git] / inc / extensions / ext-menu.php
index a3180e75f1843e89f5fa840932ef2e60694604ed..348a4f2e1c5894ff05d543b0803a94d9b0e37143 100644 (file)
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2009 - 2013 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 *
@@ -42,21 +41,28 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.0.2');
+setThisExtensionVersion('0.0.5');
 
-// Version history array (add more with , '0.1.0' and so on)
-setExtensionVersionHistory(array('0.0','0.0.1','0.0.2'));
+// Version history array (add more with , '0.0.1' and so on)
+setExtensionVersionHistory(array('0.0.0','0.0.1','0.0.2','0.0.3', '0.0.4', '0.0.5'));
 
 switch (getExtensionMode()) {
-       case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
+       case 'setup': // Do stuff when installation is running
                // SQL commands to run
+               // @TODO Convert menu-Id to one coding-standard. admin(edit|_add) => admin_menu_(edit|add), mem(edit|_add) => (edit|add)_(admin|guest|member)_menu
                addAdminMenuSql('menu',NULL,'Menü-System','Alle drei Menü-System bearbeiten (Admin-, Mitglied- und Gast-Menü)',1);
                addAdminMenuSql('menu','admin_add','Admin-Menü hinzufügen','Weiteren Menüpunkt zum Admin-Bereich hinzufügen',1);
-               addAdminMenuSql('menu','adminedit','Vom Admin editieren','Das Administrationsmen&uuml; mit neuen Men&uuml;s erweitern, bestehende &auml;ndern oder l&ouml;schen. <strong>Vorsicht!</strong> L&ouml;schen Sie nicht das Login-Men&uuml;!',2);
+               addAdminMenuSql('menu','adminedit','Admin-Men&uuml; editieren','Das Administrationsmen&uuml; mit neuen Men&uuml;s erweitern, bestehende &auml;ndern oder l&ouml;schen. <strong>Vorsicht!</strong> L&ouml;schen Sie nicht das Login-Men&uuml;!',2);
                addAdminMenuSql('menu','mem_add','Mitgliedsmen&uuml; hinzuf&uuml;gen','Weiteren Men&uuml;punkt zum Mitgliedsmen&uuml; hinzuf&uuml;gen',3);
                addAdminMenuSql('menu','memedit','Mitgliedsmen&uuml; editieren','Mitgliedsmen&uuml; editieren oder l&ouml;schen',4);
                addAdminMenuSql('menu','guest_add','G&auml;ste-Men&uuml; hinzuf&uuml;gen','F&uuml;gen Sie weitere Men&uuml;punkte dem G&auml;ste-Men&uuml; hinzu.',5);
                addAdminMenuSql('menu','guestedit','G&auml;ste-Men&uuml; editieren','G&auml;ste-Men&uuml; editieren, l&ouml;schen',6);
+
+               // Unregister filter
+               unregisterFilter(__FILE__, __LINE__, 'guest_menu_advert', 'ADD_GENERIC_MENU_ADVERT', TRUE, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_menu_advert', 'ADD_GENERIC_MENU_ADVERT', TRUE, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'guest_menu_advert_end', 'ADD_GENERIC_MENU_ADVERT_END', TRUE, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_menu_advert_end', 'ADD_GENERIC_MENU_ADVERT_END', TRUE, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -75,8 +81,8 @@ switch (getExtensionMode()) {
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
                        case '0.0.1': // SQL queries for v0.0.1
-                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `guest_menu_advert_enabled` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
-                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `member_menu_advert_enabled` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
+                               addConfigAddSql('guest_menu_advert_enabled', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
+                               addConfigAddSql('member_menu_advert_enabled', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
 
                                // Insert menu entry
                                addAdminMenuSql('menu','config_menu','Einstellungen','Einstellungen an den Gast- und Mitgliedsmen&uuml;s vornehmen.',7);
@@ -92,20 +98,46 @@ switch (getExtensionMode()) {
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Doppelte Men&uuml;punkte bereinigt.");
                                break;
+
+                       case '0.0.3': // SQL queries for v0.0.3
+                               // Change menu-string
+                               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Admin-Men&uuml; editieren' WHERE `what` = 'adminedit' LIMIT 1");
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Men&uuml;punkt &#39;Vom Admin editieren&#39; in &#39;Admin-Men&uuml; editieren&#39; bei bereits bestehenden Installationen um&auml;ndern.");
+                               break;
+
+                       case '0.0.4': // SQL queries for v0.0.4
+                               // Change menu-string
+                               addExtensionChangeTableColumnSql('admin_menu', 'title', 'title', "VARCHAR(255) NOT NULL DEFAULT ''");
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("VARCHAR(50) ist zu kurz f&uuml;r Linktitel (wegen der dynamischen Anteile).");
+                               break;
+
+                       case '0.0.5': // SQL queries for v0.0.5
+                               registerFilter(__FILE__, __LINE__, 'guest_menu_advert', 'ADD_GENERIC_MENU_ADVERT', FALSE, TRUE, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'member_menu_advert', 'ADD_GENERIC_MENU_ADVERT', FALSE, TRUE, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'guest_menu_advert_end', 'ADD_GENERIC_MENU_ADVERT_END', FALSE, TRUE, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'member_menu_advert_end', 'ADD_GENERIC_MENU_ADVERT_END', FALSE, TRUE, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter hinzugef&uuml;gt, die Werbeeinblendungen hinzuf&uuml;gen. Auf diese Filter kann sp&auml;ter auch z.B. <strong>ext-clickbanner</strong> sich registrieren, damit die Werbung &quot;exklusiv&quot; angezeigt wird, muss das Flag <strong>exclusive</strong> auf <em>TRUE</em> gesetzt werden.");
+                               break;
                } // END - switch
                break;
 
        case 'modify': // When the extension got modified
                break;
 
-       case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
+       case 'test': // For testing purposes
                break;
 
        case 'init': // Do stuff when extension is initialized
                break;
 
        default: // Unknown extension mode
-               logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));
+               reportBug(__FILE__, __LINE__, sprintf('Unknown extension mode %s in extension %s detected.', getExtensionMode(), getCurrentExtensionName()));
                break;
 } // END - switch