Rewrite of adding menu entries, should prevent double menus now and forever...
[mailer.git] / inc / extensions-functions.php
index 19d364c06b6f76572347eefaa3cf8115d8370780..d1db294f1d097927d2b1925a5de3585e6e45db46 100644 (file)
@@ -1576,5 +1576,91 @@ function isExtensionFunctionFileReadable ($ext_name) {
        return ($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y');
 }
 
+// Adds an admin menu to the SQL queue of the menu entry is not found
+function addAdminMenuSql ($action, $what, $title, $descr, $sort) {
+       // Now check if this menu is there
+       if (!isMenuActionValid('admin', $action, $what)) {
+               // Not found, so construct it
+               $sql = sprintf("INSERT INTO {?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr',`sort`) VALUES('%s','%s','%s','%s',%s)",
+                       $action,
+                       $what,
+                       $title,
+                       $descr,
+                       bigintval($sort)
+               );
+
+               // Add it to the queue
+               addExtensionSql($sql);
+       } else {
+               // Double menus should be located and fixed!
+               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double admin menu action=%s, what=%s detected.", $action, $what));
+       }
+}
+
+// Adds a guest menu to the SQL queue if the menu entry is not found
+function addGuestMenuSql ($action, $what, $title, $visible, $locked, $sort) {
+       // Now check if this menu is there
+       if (!isMenuActionValid('guest', $action, $what)) {
+               // Not found, so construct it
+               $sql = sprintf("INSERT INTO {?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s','%s','%s','%s','%s',%s)",
+                       $action,
+                       $what,
+                       $title,
+                       $visible,
+                       $locked,
+                       bigintval($sort)
+               );
+
+               // Add it to the queue
+               addExtensionSql($sql);
+       } else {
+               // Double menus should be located and fixed!
+               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double guest menu action=%s, what=%s detected.", $action, $what));
+       }
+}
+
+// Adds a member menu to the SQL queue if the menu entry is not found
+function addMemberMenuSql ($action, $what, $title, $visible, $locked, $sort) {
+       // Now check if this menu is there
+       if (!isMenuActionValid('member', $action, $what)) {
+               // Not found, so construct it
+               $sql = sprintf("INSERT INTO {?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s','%s','%s','%s','%s',%s)",
+                       $action,
+                       $what,
+                       $title,
+                       $visible,
+                       $locked,
+                       bigintval($sort)
+               );
+
+               // Add it to the queue
+               addExtensionSql($sql);
+       } else {
+               // Double menus should be located and fixed!
+               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double member menu action=%s, what=%s detected.", $action, $what));
+       }
+}
+
+// Adds a sponsor menu to the SQL queue if the menu entry is not found
+function addSponsorMenuSql ($action, $what, $title, $active, $sort) {
+       // Now check if this menu is there, if no ext-sponsor is installed all is not yet added
+       if ((!isExtensionInstalled('sponsor')) || (!isMenuActionValid('sponsor', $action, $what))) {
+               // Not found, so construct it
+               $sql = sprintf("INSERT INTO {?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES('%s','%s','%s','%s',%s)",
+                       $action,
+                       $what,
+                       $title,
+                       $active,
+                       bigintval($sort)
+               );
+
+               // Add it to the queue
+               addExtensionSql($sql);
+       } else {
+               // Double menus should be located and fixed!
+               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double sponsor menu action=%s, what=%s detected.", $action, $what));
+       }
+}
+
 // [EOF]
 ?>