]> git.mxchange.org Git - mailer.git/blobdiff - inc/modules/admin/admin-inc.php
Extension ext-network continued, functions renamed:
[mailer.git] / inc / modules / admin / admin-inc.php
index 395535e502949165ee9c6e136a9419b3e37d5a21..ae6191a043e05021fe8b47ddbc5d7d0f1266c32a 100644 (file)
@@ -177,10 +177,10 @@ function doAdminAction () {
        // Load header, footer, render menu
        $content['header'] = loadTemplate('admin_header' , true, $content);
        $content['footer'] = loadTemplate('admin_footer' , true, $content);
-       $content['menu']   = addAdminMenu($action, $what, true);
+       $content['menu']   = addAdminMenu($action, $what);
 
-       // Tableset header
-       loadTemplate('admin_main_header', false, $content);
+       // Load main template
+       loadTemplate('admin_main', false, $content);
 
        // Check if action/what pair is valid
        $result_action = SQL_QUERY_ESC("SELECT
@@ -248,18 +248,20 @@ function isAdminAllowedAccessMenu ($action, $what = NULL) {
 }
 
 // Adds an admin menu
-function addAdminMenu ($action, $what, $return = false) {
+function addAdminMenu ($action, $what) {
        // Init variables
        $SUB = false;
        $OUT = '';
 
        // Menu descriptions
        $GLOBALS['menu']['description'] = array();
-       $GLOBALS['menu']['title'] = array();
+       $GLOBALS['menu']['title']       = array();
 
        // Build main menu
        $result_main = SQL_QUERY("SELECT
-       `action`,`title`,`descr`
+       `action` AS `main_action`,
+       `title` AS `main_title`,
+       `descr` AS `main_descr`
 FROM
        `{?_MYSQL_PREFIX?}_admin_menu`
 WHERE
@@ -271,52 +273,76 @@ ORDER BY
        // Do we have entries?
        if (!SQL_HASZERONUMS($result_main)) {
                $OUT .= '<ul class="admin_menu_main">';
-               // @TODO Rewrite this to $content = SQL_FETCHARRAY()
-               while (list($menu, $title, $descr) = SQL_FETCHROW($result_main)) {
+
+               // Load all 'action' menus
+               while ($mainContent = SQL_FETCHARRAY($result_main)) {
                        // Filename
-                       $inc = sprintf("inc/modules/admin/action-%s.php", $menu);
+                       $inc = sprintf("inc/modules/admin/action-%s.php", $mainContent['main_action']);
 
                        // Is the file readable?
                        $readable = isIncludeReadable($inc);
 
                        // Is the current admin allowed to access this 'action' menu?
-                       if (isAdminAllowedAccessMenu($menu)) {
+                       if (isAdminAllowedAccessMenu($mainContent['main_action'])) {
                                if ($SUB === false) {
                                        // Insert compiled menu title and description
-                                       $GLOBALS['menu']['title'][$menu]      = $title;
-                                       $GLOBALS['menu']['description'][$menu] = $descr;
+                                       $GLOBALS['menu']['title'][$mainContent['main_action']]       = $mainContent['main_title'];
+                                       $GLOBALS['menu']['description'][$mainContent['main_action']] = $mainContent['main_descr'];
                                } // END - if
-                               $OUT .= '<li class="admin_menu">
+                               $OUT .= '<li class="admin_menu"' . addJavaScriptMenuContent('admin', $mainContent['main_action'], $action, $what) . '>
 <div class="nobr"><strong>&middot;</strong>&nbsp;';
 
                                if ($readable === true) {
-                                       if (($menu == $action) && (empty($what))) {
+                                       if (($mainContent['main_action'] == $action) && (empty($what))) {
                                                $OUT .= '<strong>';
                                        } else {
-                                               $OUT .= '[<a href="{%url=modules.php?module=admin&amp;action=' . $menu . '%}">';
+                                               $OUT .= '[<a href="{%url=modules.php?module=admin&amp;action=' . $mainContent['main_action'] . '%}">';
                                        }
                                } else {
-                                       $OUT .= '<em style="cursor:help" class="notice" title="{%message,ADMIN_MENU_ACTION_404_TITLE=' . $menu . '%}">';
+                                       $OUT .= '<span class="bad" style="cursor:help" title="{%message,ADMIN_MENU_ACTION_404_TITLE=' . $mainContent['main_action'] . '%}">';
                                }
 
-                               $OUT .= $title;
+                               $OUT .= $mainContent['main_title'];
 
                                if ($readable === true) {
-                                       if (($menu == $action) && (empty($what))) {
+                                       if (($mainContent['main_action'] == $action) && (empty($what))) {
                                                $OUT .= '</strong>';
                                        } else {
                                                $OUT .= '</a>]';
                                        }
                                } else {
-                                       $OUT .= '</em>';
+                                       $OUT .= '</span>';
                                }
 
                                $OUT .= '</div>
 </li>';
 
-                               // Check for menu entries
-                               $result_what = SQL_QUERY_ESC("SELECT
-       `what`,`title`,`descr`
+                               // Add sub menu
+                               $OUT .= addAdminSubMenu($mainContent, $action, $what);
+                       } // END - if
+               } // END - while
+
+               // Close ul-tag
+               $OUT .= '</ul>';
+
+               // Free memory
+               SQL_FREERESULT($result_main);
+       } // END - if
+
+       // Return content
+       return $OUT;
+}
+
+// Add admin sub menu
+function addAdminSubMenu ($mainContent, $action, $what) {
+       // Init content
+       $OUT = '';
+
+       // Check for menu entries
+       $result_what = SQL_QUERY_ESC("SELECT
+       `what` AS `sub_what`,
+       `title` AS `sub_title`,
+       `descr` AS `sub_descr`
 FROM
        `{?_MYSQL_PREFIX?}_admin_menu`
 WHERE
@@ -326,78 +352,71 @@ WHERE
 ORDER BY
        `sort` ASC,
        `id` DESC",
-                                       array($menu), __FUNCTION__, __LINE__);
-
-                               // Remember the count for later checks
-                               setAdminMenuHasEntries($menu, ((!SQL_HASZERONUMS($result_what)) && ($action == $menu)));
-
-                               // Do we have entries?
-                               if ((ifAdminMenuHasEntries($menu)) && (!SQL_HASZERONUMS($result_what))) {
-                                       $GLOBALS['menu']['description'] = array();
-                                       $GLOBALS['menu']['title'] = array();
-                                       $SUB = true;
-                                       $OUT .= '<li class="admin_menu_sub"><ul class="admin_menu_sub">';
-                                       // @TODO Rewrite this to $content = SQL_FETCHARRAY()
-                                       while (list($what_sub, $title_what, $desc_what) = SQL_FETCHROW($result_what)) {
-                                               // Filename
-                                               $inc = sprintf("inc/modules/admin/what-%s.php", $what_sub);
-
-                                               // Is the file readable?
-                                               $readable = isIncludeReadable($inc);
-
-                                               // Is the current admin allowed to access this 'what' menu?
-                                               if (isAdminAllowedAccessMenu(null, $what_sub)) {
-                                                       // Insert compiled title and description
-                                                       $GLOBALS['menu']['title'][$what_sub]      = $title_what;
-                                                       $GLOBALS['menu']['description'][$what_sub] = $desc_what;
-                                                       $OUT .= '<li class="admin_menu">
+               array($mainContent['main_action']), __FUNCTION__, __LINE__);
+
+       // Remember the count for later checks
+       setAdminMenuHasEntries($mainContent['main_action'], ((!SQL_HASZERONUMS($result_what)) && (($action == $mainContent['main_action']) || (isAdminMenuJavascriptEnabled()))));
+
+       // Start li-tag for sub menu content
+       $OUT .= '<li class="admin_menu_sub" id="action_menu_' . $mainContent['main_action'] . '"' . addStyleMenuContent('admin', $mainContent['main_action'], $action) . '>';
+
+       // Do we have entries?
+       if (ifAdminMenuHasEntries($mainContent['main_action'])) {
+               // Sub menu has been called
+               $SUB = true;
+               $OUT .= '<ul class="admin_menu_sub">';
+
+               // Load all entries
+               while ($subContent = SQL_FETCHARRAY($result_what)) {
+                       // Filename
+                       $inc = sprintf("inc/modules/admin/what-%s.php", $subContent['sub_what']);
+
+                       // Is the file readable?
+                       $readable = isIncludeReadable($inc);
+
+                       // Is the current admin allowed to access this 'what' menu?
+                       if (isAdminAllowedAccessMenu(NULL, $subContent['sub_what'])) {
+                               // Insert compiled title and description
+                               $GLOBALS['menu']['title'][$subContent['sub_what']]       = $subContent['sub_title'];
+                               $GLOBALS['menu']['description'][$subContent['sub_what']] = $subContent['sub_descr'];
+                               $OUT .= '<li class="admin_menu">
 <div class="nobr"><strong>--&gt;</strong>&nbsp;';
-                                                       if ($readable === true) {
-                                                               if ($what == $what_sub) {
-                                                                       $OUT .= '<strong>';
-                                                               } else {
-                                                                       $OUT .= '[<a href="{%url=modules.php?module=admin&amp;what=' . $what_sub . '%}">';
-                                                               }
-                                                       } else {
-                                                               $OUT .= '<em style="cursor:help" class="notice" title="{%message,ADMIN_MENU_WHAT_404_TITLE=' . $what_sub . '%}">';
-                                                       }
-
-                                                       $OUT .= $title_what;
-
-                                                       if ($readable === true) {
-                                                               if ($what == $what_sub) {
-                                                                       $OUT .= '</strong>';
-                                                               } else {
-                                                                       $OUT .= '</a>]';
-                                                               }
-                                                       } else {
-                                                               $OUT .= '</em>';
-                                                       }
-                                                       $OUT .= '</div>
-</li>';
-                                               } // END - if
-                                       } // END - while
+                               if ($readable === true) {
+                                       if ($what == $subContent['sub_what']) {
+                                               $OUT .= '<strong>';
+                                       } else {
+                                               $OUT .= '[<a href="{%url=modules.php?module=admin&amp;what=' . $subContent['sub_what'] . '%}">';
+                                       }
+                               } else {
+                                       $OUT .= '<span class="bad" style="cursor:help" title="{%message,ADMIN_MENU_WHAT_404_TITLE=' . $subContent['sub_what'] . '%}">';
+                               }
 
-                                       // Free memory
-                                       SQL_FREERESULT($result_what);
-                                       $OUT .= '</ul>
+                               $OUT .= $subContent['sub_title'];
+
+                               if ($readable === true) {
+                                       if ($what == $subContent['sub_what']) {
+                                               $OUT .= '</strong>';
+                                       } else {
+                                               $OUT .= '</a>]';
+                                       }
+                               } else {
+                                       $OUT .= '</span>';
+                               }
+                               $OUT .= '</div>
 </li>';
-                               } // END - if
                        } // END - if
                } // END - while
 
                // Free memory
-               SQL_FREERESULT($result_main);
+               SQL_FREERESULT($result_what);
                $OUT .= '</ul>';
        } // END - if
 
-       // Is there a cache instance again?
-       // Return or output content?
-       if ($return === true) {
-               return $OUT;
-       } else {
-               outputHtml($OUT);
-       }
+       // Close li-tag
+       $OUT .= '</li>';
+
+       // Return content
+       return $OUT;
 }
 
 // Create an admin selection box form
@@ -413,7 +432,9 @@ function addAdminSelectionBox ($adminId = NULL, $special = '') {
 
        // Query all entries
        $result = SQL_QUERY('SELECT
-       `id`,`login`' . $ADD . '
+       `id`,
+       `login`
+       ' . $ADD . '
 FROM
        `{?_MYSQL_PREFIX?}_admins`
 ORDER BY
@@ -675,7 +696,7 @@ function generateUserProfileLink ($userid, $title = '', $what = 'list_user') {
                $title = $userid;
        } elseif (!isValidUserId($userid)) {
                // User id zero is invalid
-               return '<strong>' . makeNullToZero($userid) . '</strong>';
+               return '<strong>' . convertNullToZero($userid) . '</strong>';
        }
 
        if (($title == '0') && ($what == 'list_refs')) {
@@ -889,7 +910,7 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e
                                if ($key == $userIdColumn[0]) {
                                        // Add it again as raw id
                                        //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]);
-                                       $content[$userIdColumn[0]] = makeZeroToNull($value);
+                                       $content[$userIdColumn[0]] = convertZeroToNull($value);
                                        $content[$userIdColumn[0] . '_raw'] = $content[$userIdColumn[0]];
                                } // END - if
 
@@ -1298,7 +1319,7 @@ function adminAddEntries ($tableName, $columns = array(), $filterFunctions = arr
        $sqlValues  = array();
 
        // Add columns and values
-       foreach ($columns as $key=>$columnName) {
+       foreach ($columns as $key => $columnName) {
                // Copy entry to final arrays
                $sqlColumns[$key] = $columnName;
                $sqlValues[$key]  = postRequestElement($columnName);
@@ -1312,7 +1333,7 @@ function adminAddEntries ($tableName, $columns = array(), $filterFunctions = arr
        } // END - foreach
 
        // Build the SQL query
-       $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`, `', $sqlColumns) . "`) VALUES ('" . implode("','", $sqlValues) . "')";
+       $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES ('" . implode("','", $sqlValues) . "')";
 
        // Run the SQL query
        SQL_QUERY($SQL, __FUNCTION__, __LINE__);
@@ -1372,7 +1393,7 @@ function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tab
        if (count($orderByColumns) > 0) {
                // Add them as well
                $SQL .= ' ORDER BY ';
-               foreach ($orderByColumns as $orderByColumn=>$array) {
+               foreach ($orderByColumns as $orderByColumn => $array) {
                        // Get keys (table/alias) and values (sorting itself)
                        $table   = trim(implode('', array_keys($array)));
                        $sorting = trim(implode('', array_keys($array)));
@@ -1406,7 +1427,7 @@ function doAdminListEntries ($SQL, $tableTemplate, $noEntryMessageId, $rowTempla
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // "Translate" content
-                       foreach ($callbackColumns as $columnName=>$callbackFunction) {
+                       foreach ($callbackColumns as $columnName => $callbackFunction) {
                                // Fill the callback arguments
                                $args = array($content[$columnName]);
 
@@ -1474,7 +1495,7 @@ function sendAdminPasswordResetLink ($email) {
        SQL_FREERESULT($result);
 
        // Generate hash for reset link
-       $content['hash'] = generateHash(getUrl() . getEncryptSeperator() . $content['id'] . getEncryptSeperator() . $content['login'] . getEncryptSeperator() . $content['password'], substr($content['password'], getSaltLength()));
+       $content['hash'] = generateHash(getUrl() . getEncryptSeparator() . $content['id'] . getEncryptSeparator() . $content['login'] . getEncryptSeparator() . $content['password'], substr($content['password'], getSaltLength()));
 
        // Remove some data
        unset($content['id']);
@@ -1505,7 +1526,7 @@ function adminResetValidateHashLogin ($hash, $login) {
                $content = SQL_FETCHARRAY($result);
 
                // Generate hash again
-               $hashFromData = generateHash(getUrl() . getEncryptSeperator() . $content['id'] . getEncryptSeperator() . $login . getEncryptSeperator() . $content['password'], substr($content['password'], getSaltLength()));
+               $hashFromData = generateHash(getUrl() . getEncryptSeparator() . $content['id'] . getEncryptSeparator() . $login . getEncryptSeparator() . $content['password'], substr($content['password'], getSaltLength()));
 
                // Does both match?
                $valid = ($hash == $hashFromData);
@@ -1611,7 +1632,7 @@ function adminCreateUserLink ($userid) {
 // Generate a "link" for the given admin id (admin_id)
 function generateAdminLink ($adminId) {
        // No assigned admin is default
-       $adminLink = '<span class="notice">{--ADMIN_NO_ADMIN_ASSIGNED--}</span>';
+       $adminLink = '{--ADMIN_NO_ADMIN_ASSIGNED--}';
 
        // Zero? = Not assigned
        if (bigintval($adminId) > 0) {
@@ -1630,7 +1651,7 @@ function generateAdminLink ($adminId) {
                        }
                } else {
                        // Maybe deleted?
-                       $adminLink = '<div class="notice">{%message,ADMIN_ID_404=' . $adminId . '%}</div>';
+                       $adminLink = '<div class="bad">{%message,ADMIN_ID_404=' . $adminId . '%}</div>';
                }
        } // END - if
 
@@ -1759,7 +1780,7 @@ function addEmailNavigation ($numPages, $offset, $show_form, $colspan, $return=f
                        $NAV .= '</a>';
                }
 
-               // Add seperator if we have not yet reached total pages
+               // Add separator if we have not yet reached total pages
                if ($page < $numPages) {
                        // Add it
                        $NAV .= '|';
@@ -1797,40 +1818,49 @@ function adminProcessMenuEditForm ($type, $subMenu) {
 
                switch (postRequestElement('ok')) {
                        case 'edit': // Edit menu
-                               if (postRequestElement('sel_what', $sel) == '') {
+                               // Shall we update a menu or sub menu?
+                               if (!isGetRequestElementSet('sub')) {
                                        // Update with 'what'=null
-                                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s', `action`='%s', `what`=NULL WHERE ".$AND." AND `id`=%s LIMIT 1",
+                                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s',`action`='%s',`what`=NULL WHERE ".$AND." AND `id`=%s LIMIT 1",
                                                array(
                                                        $type,
                                                        $menu,
                                                        postRequestElement('sel_action', $sel),
                                                        $sel
-                                               ), __FILE__, __LINE__);
+                                               ), __FUNCTION__, __LINE__);
                                } else {
                                        // Update with selected 'what'
-                                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s', `action`='%s', `what`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1",
+                                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s',`action`='%s',`what`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1",
                                                array(
                                                        $type,
                                                        $menu,
                                                        postRequestElement('sel_action', $sel),
                                                        postRequestElement('sel_what', $sel),
                                                        $sel
-                                               ), __FILE__, __LINE__);
+                                               ), __FUNCTION__, __LINE__);
                                }
                                break;
 
                        case 'delete': // Delete menu
                                SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE ".$AND." AND `id`=%s LIMIT 1",
-                                       array($type, $sel), __FILE__, __LINE__);
+                                       array(
+                                               $type,
+                                               $sel
+                                       ), __FUNCTION__, __LINE__);
                                break;
 
                        case 'status': // Change status of menus
-                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `visible`='%s', `locked`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1",
-                                       array($type, postRequestElement('visible', $sel), postRequestElement('locked', $sel), $sel), __FILE__, __LINE__);
+                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `visible`='%s',`locked`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1",
+                                       array(
+                                               $type,
+                                               postRequestElement('visible', $sel),
+                                               postRequestElement('locked', $sel),
+                                               $sel
+                                       ), __FUNCTION__, __LINE__);
                                break;
 
                        default: // Unexpected action
-                               logDebugMessage(__FILE__, __LINE__, sprintf("Unsupported action %s detected.", postRequestElement('ok')));
+                               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unsupported action %s detected.", postRequestElement('ok')));
                                displayMessage('{%message,ADMIN_UNKNOWN_OKAY=' . postRequestElement('ok') . '%}');
                                break;
                } // END - switch
@@ -1855,7 +1885,7 @@ function doAdminProcessMenuWeightning ($type, $AND) {
                                        $type,
                                        getRequestElement('act'),
                                        bigintval(getRequestElement('tid'))
-                               ), __FILE__, __LINE__);
+                               ), __FUNCTION__, __LINE__);
                        list($tid) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
                        $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `sort`=%s LIMIT 1",
@@ -1863,7 +1893,7 @@ function doAdminProcessMenuWeightning ($type, $AND) {
                                        $type,
                                        getRequestElement('act'),
                                        bigintval(getRequestElement('fid'))
-                               ), __FILE__, __LINE__);
+                               ), __FUNCTION__, __LINE__);
                        list($fid) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
                } else {
@@ -1872,14 +1902,14 @@ function doAdminProcessMenuWeightning ($type, $AND) {
                                array(
                                        $type,
                                        bigintval(getRequestElement('tid'))
-                               ), __FILE__, __LINE__);
+                               ), __FUNCTION__, __LINE__);
                        list($tid) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
                        $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE (`what`='' OR `what` IS NULL) AND `sort`=%s LIMIT 1",
                                array(
                                        $type,
                                        bigintval(getRequestElement('fid'))
-                               ), __FILE__, __LINE__);
+                               ), __FUNCTION__, __LINE__);
                        list($fid) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
                }
@@ -1891,13 +1921,13 @@ function doAdminProcessMenuWeightning ($type, $AND) {
                                        $type,
                                        bigintval(getRequestElement('tid')),
                                        bigintval($fid)
-                               ), __FILE__, __LINE__);
+                               ), __FUNCTION__, __LINE__);
                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `sort`=%s WHERE ".$AND." AND `id`=%s LIMIT 1",
                                array(
                                        $type,
                                        bigintval(getRequestElement('fid')),
                                        bigintval($tid)
-                               ), __FILE__, __LINE__);
+                               ), __FUNCTION__, __LINE__);
                } // END - if
        } // END - if
 }