return $ret;
}
+// "Translates" 'visible' and 'locked' to a CSS class
+function translateMenuVisibleLocked ($content, $prefix = '') {
+ // Translate 'visible' and keep an eye on the prefix
+ switch ($content[$prefix . 'visible']) {
+ // Should be visible
+ case 'Y': $content[$prefix . 'visible_css'] = $prefix . 'menu_visible_css' ; break;
+ case 'N': $content[$prefix . 'visible_css'] = $prefix . 'menu_invisible_css'; break;
+ default:
+ // Please report this
+ debug_report_bug('Unsupported visible value detected. content=<pre>'.print_r($content, true).'</pre>');
+ break;
+ } // END - switch
+
+ // Translate 'locked' and keep an eye on the prefix
+ switch ($content[$prefix . 'locked']) {
+ // Should be locked
+ case 'Y': $content[$prefix . 'locked_css'] = $prefix . 'menu_locked_css' ; break;
+ case 'N': $content[$prefix . 'locked_css'] = $prefix . 'menu_unlocked_css'; break;
+ default:
+ // Please report this
+ debug_report_bug('Unsupported locked value detected. content=<pre>'.print_r($content, true).'</pre>');
+ break;
+ } // END - switch
+
+ // Return the resulting array
+ return $content;
+}
+
// Generates an URL for the dereferer
function generateDerefererUrl ($URL) {
// Don't de-refer our own links!
} // END - if
// Load SQL data and add the menu to the output stream...
- $result_main = SQL_QUERY_ESC("SELECT `title`, `action` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE (`what`='' OR `what` IS NULL)".$ADD." ORDER BY `sort` ASC",
+ $result_main = SQL_QUERY_ESC("SELECT `title`, `action`, `visible`, `locked` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE (`what`='' OR `what` IS NULL)".$ADD." ORDER BY `sort` ASC",
array($mode), __FUNCTION__, __LINE__);
//* DEBUG: */ print(__LINE__.'/'.$main_cnt.':'.getWhat()."*<br />");
$GLOBALS['rows'] = '';
while ($content = SQL_FETCHARRAY($result_main)) {
//* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].':'.getWhat()."*<br />");
- // Init variables
+ // Init/"translate" variables
enableBlockMode(false);
- $action = $content['action'];
+ $content = translateMenuVisibleLocked($content);
// Load menu header template
$GLOBALS['rows'] .= loadTemplate($mode . '_menu_title', true, $content);
// Sub menu
- $result_sub = SQL_QUERY_ESC("SELECT `title` AS sub_title, `what` AS sub_what FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `what` != '' AND `what` IS NOT NULL ".$ADD." ORDER BY `sort`",
+ $result_sub = SQL_QUERY_ESC("SELECT `title` AS sub_title, `what` AS sub_what, `visible` AS sub_visible, `locked` AS sub_locked FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `what` != '' AND `what` IS NOT NULL ".$ADD." ORDER BY `sort` ASC",
array($mode, $content['action']), __FUNCTION__, __LINE__);
- // Get number of rows
- $totalWhats = SQL_NUMROWS($result_sub);
-
// Do we have some entries?
- if ($totalWhats > 0) {
+ if (SQL_NUMROWS($result_sub) > 0) {
// Init counter
$cnt = '0';
// Merge both arrays in one
$content = merge_array($content, $content2);
+ // Translate visible/locked again
+ $content = translateMenuVisibleLocked($content, 'sub_');
+
// Init content
$OUT = '';
// Full file name for checking menu
- //* DEBUG: */ print(__LINE__.":!!!!".$content['sub_what']."!!!<br />");
+ //* DEBUG: */ print(__LINE__ . ':!!!!' . $content['sub_what'] . '!!!<br />');
$inc = sprintf("inc/modules/%s/what-%s.php", $mode, $content['sub_what']);
if (isIncludeReadable($inc)) {
// Mark currently selected menu - open
// Rewrite array
$content = array(
- 'menu' => $OUT,
- 'what' => $content['sub_what']
+ 'menu' => $OUT,
+ 'what' => $content['sub_what'],
+ 'visible_css' => $content['sub_visible_css'],
+ 'locked_css' => $content['sub_locked_css']
);
// Add regular menu row or bottom row?
- if ($cnt < $totalWhats) {
+ if ($cnt < SQL_NUMROWS($result_sub)) {
$GLOBALS['rows'] .= loadTemplate($mode . '_menu_row', true, $content);
} else {
$GLOBALS['rows'] .= loadTemplate($mode . '_menu_bottom', true, $content);
}
- }
+ } // END - while
} else {
// This is a menu block... ;-)
enableBlockMode();
//* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat()."*<br />");
}
+ // Free result
+ SQL_FREERESULT($result_sub);
+
+ // Count one up
$main_cnt++;
//* DEBUG: */ print(__LINE__.'/'.$main_cnt.':'.getWhat()."*<br />");
<tr>
- <td class="guest_menu_bottom" id="guest_menu_what_$content[what]">$content[menu]</td>
+ <td class="guest_menu_bottom $content[visible_css] $content[locked_css]" id="guest_menu_what_$content[what]">
+ <div class="$content[visible_css] $content[locked_css]">$content[menu]</div>
+ </td>
</tr>
<tr>
- <td class="guest_menu_row" id="guest_menu_what_$content[what]">$content[menu]</td>
+ <td class="guest_menu_row $content[visible_css] $content[locked_css]" id="guest_menu_what_$content[what]">
+ <div class="$content[visible_css] $content[locked_css]">$content[menu]</div>
+ </td>
</tr>
<tr>
- <td align="center" colspan="2" class="guest_menu_title" id="guest_menu_action_$content[action]">
- <strong>:::$content[title]:::</strong>
+ <td align="center" colspan="2" class="guest_menu_title visible_css locked_css" id="guest_menu_action_$content[action]">
+ <strong class="$content[visible_css] $content[locked_css]">
+ ::: $content[title] :::
+ </strong>
</td>
</tr>
<tr>
- <td class="guest_menu_whats">
- <strong><big>·</big></strong>
- $content
+ <td class="guest_menu_whats $content[visible_css] $content[locked_css]">
+ <div class="$content[visible_css] $content[locked_css]">
+ <strong><big>·</big></strong>
+ $content
+ </div>
</td>
</tr>
<tr>
- <td class="member_menu_bottom" id="member_menu_what_$content[what]">
- $content[menu]
+ <td class="member_menu_bottom $content[visible_css] $content[locked_css]" id="member_menu_what_$content[what]">
+ <div class="$content[visible_css] $content[locked_css]">$content[menu]</div>
</td>
</tr>
<tr>
- <td class="member_menu_row" id="member_menu_what_$content[what]">$content[menu]</td>
+ <td class="member_menu_row $content[visible_css] $content[locked_css]" id="member_menu_what_$content[what]">
+ <div class="$content[visible_css] $content[locked_css]">$content[menu]</div>
+ </td>
</tr>
<tr>
- <td align="center" colspan="2" class="member_menu_title" id="member_menu_action_$content[action]">
- <strong>::: $content[title] :::</strong>
+ <td align="center" colspan="2" class="member_menu_title visible_css locked_css" id="member_menu_action_$content[action]">
+ <strong class="$content[visible_css] $content[locked_css]">
+ ::: $content[title] :::
+ </strong>
</td>
</tr>
<tr>
- <td class="member_menu_whats">
- <strong><big>·</big></strong>
- $content
+ <td class="member_menu_whats $content[visible_css] $content[locked_css]">
+ <div class="$content[visible_css] $content[locked_css]">
+ <strong><big>·</big></strong>
+ $content
+ </div>
</td>
</tr>
}
.pre {
- display : block;
+ display: block;
}
td {
padding-top: 2px;
padding-bottom: 2px;
}
+
+div.menu_invisible_css, div.sub_menu_invisible_css, td.menu_invisible_css, td.sub_menu_invisible_css {
+ background-color: #dddddd;
+ font-style: italic;
+}
+
+strong.menu_invisible_css, strong.sub_menu_invisible_css {
+ color: #999999;
+ font-style: italic;
+}
+
+.menu_locked_css, .sub_menu_locked_css {
+ color: #ffeeee;
+}
}
.pre {
- display : block;
+ display: block;
}
td {
color: #009900;
text-align: center;
}
+
+div.menu_invisible_css, div.sub_menu_invisible_css, td.menu_invisible_css, td.sub_menu_invisible_css {
+ background-color: #dddddd;
+ font-style: italic;
+}
+
+strong.menu_invisible_css, strong.sub_menu_invisible_css {
+ color: #999999;
+ font-style: italic;
+}
+
+.menu_locked_css, .sub_menu_locked_css {
+ color: #ffeeee;
+}
padding-top: 2px;
padding-bottom: 2px;
}
+
+div.menu_invisible_css, div.sub_menu_invisible_css, td.menu_invisible_css, td.sub_menu_invisible_css {
+ background-color: #dddddd;
+ font-style: italic;
+}
+
+strong.menu_invisible_css, strong.sub_menu_invisible_css {
+ color: #999999;
+ font-style: italic;
+}
+
+.menu_locked_css, .sub_menu_locked_css {
+ color: #ffeeee;
+}
padding-top : 2px;
padding-bottom : 2px;
}
+
+div.menu_invisible_css, div.sub_menu_invisible_css, td.menu_invisible_css, td.sub_menu_invisible_css {
+ background-color: #dddddd;
+ font-style: italic;
+}
+
+strong.menu_invisible_css, strong.sub_menu_invisible_css {
+ color: #999999;
+ font-style: italic;
+}
+
+.menu_locked_css, .sub_menu_locked_css {
+ color: #ffeeee;
+}