// 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
}
// 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
// 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>·</strong> ';
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&action=' . $menu . '%}">';
+ $OUT .= '[<a href="{%url=modules.php?module=admin&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
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>--></strong> ';
- if ($readable === true) {
- if ($what == $what_sub) {
- $OUT .= '<strong>';
- } else {
- $OUT .= '[<a href="{%url=modules.php?module=admin&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&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
// Query all entries
$result = SQL_QUERY('SELECT
- `id`,`login`' . $ADD . '
+ `id`,
+ `login`
+ ' . $ADD . '
FROM
`{?_MYSQL_PREFIX?}_admins`
ORDER BY
$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')) {
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
$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);
} // 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__);
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)));
$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]);
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']);
$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);
// 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) {
}
} 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
$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 .= '|';
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
$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",
$type,
getRequestElement('act'),
bigintval(getRequestElement('fid'))
- ), __FILE__, __LINE__);
+ ), __FUNCTION__, __LINE__);
list($fid) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
} else {
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);
}
$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
}