// "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']) {
+ switch ($content['visible']) {
// Should be visible
- case 'Y': $content[$prefix . 'visible_css'] = $prefix . 'menu_visible' ; break;
- case 'N': $content[$prefix . 'visible_css'] = $prefix . 'menu_invisible'; break;
+ case 'Y': $content['visible_css'] = $prefix . 'menu_visible' ; break;
+ case 'N': $content['visible_css'] = $prefix . 'menu_invisible'; break;
default:
// Please report this
- debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported visible value detected. content=<pre>'.print_r($content, true).'</pre>');
+ debug_report_bug(__FUNCTION__, __LINE__, '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']) {
+ switch ($content['locked']) {
// Should be locked
- case 'Y': $content[$prefix . 'locked_css'] = $prefix . 'menu_locked' ; break;
- case 'N': $content[$prefix . 'locked_css'] = $prefix . 'menu_unlocked'; break;
+ case 'Y': $content['locked_css'] = $prefix . 'menu_locked' ; break;
+ case 'N': $content['locked_css'] = $prefix . 'menu_unlocked'; break;
default:
// Please report this
- debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=<pre>'.print_r($content, true).'</pre>');
+ debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=<pre>' . print_r($content, true) . '</pre>');
break;
} // END - switch
return $content;
}
+// "Getter" for menu CSS classes, mainly used in templates
+function getMenuCssClasses ($data) {
+ // $data needs to be converted into an array
+ $content = explode('|', $data);
+
+ // Non-existent index 2 will happen in menu blocks
+ if (!isset($content[2])) $content[2] = '';
+
+ // Re-construct the array: 0=visible,1=locked,2=prefix
+ $content['visible'] = $content[0];
+ $content['locked'] = $content[1];
+
+ // Call our "translator" function
+ $content = translateMenuVisibleLocked($content, $content[2]);
+
+ // Return CSS classes
+ return ($content['visible_css'] . ' ' . $content['locked_css']);
+}
+
// Generates an URL for the dereferer
function generateDerefererUrl ($URL) {
// Don't de-refer our own links!
if ($fuzzyFound === true) continue;
// Take all string elements
- if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_" . $matches[4][$key]]))) {
+ if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[4][$key]]))) {
// Replace it in the code
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "key={$key},match={$match}<br />");
$newMatch = str_replace('[', "['", str_replace(']', "']", $match));
$OUT .= '<select name="' . $prefix . '" class="' . $class . '" size="1">';
} else {
// Begin with regular selection box here
- if (!empty($prefix)) $prefix .= "_";
+ if (!empty($prefix)) $prefix .= '_';
$type2 = $type;
if ($id > 0) $type2 .= '[' . $id . ']';
$OUT .= '<select name="' . strtolower($prefix . $type2) . '" class="' . $class . '" size="1">';
} // END - if
// Load SQL data and add the menu to the output stream...
- $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",
+ $result_main = SQL_QUERY_ESC("SELECT
+ `title`, `what`, `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 />");
// There are menus available, so we simply display them... :)
$GLOBALS['rows'] = '';
while ($content = SQL_FETCHARRAY($result_main)) {
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].':'.getWhat()."*<br />");
+ //* DEBUG: */ print(__LINE__ . '/' . $main_cnt . '/' . $content['action'] . ':' . getWhat() . '*<br />');
// Init/"translate" variables
enableBlockMode(false);
- $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, `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",
+ $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__);
// Do we have some entries?
// Merge both arrays in one
$content = merge_array($content, $content2);
- // Translate visible/locked again
- $content = translateMenuVisibleLocked($content, 'sub_');
-
// Init content
$OUT = '';
$cnt++;
// Rewrite array
- $content = array(
- 'menu' => $OUT,
- 'what' => $content['sub_what'],
- 'visible_css' => $content['sub_visible_css'],
- 'locked_css' => $content['sub_locked_css']
+ $content = array(
+ 'menu' => $OUT,
+ 'what' => $content['sub_what'],
+ 'visible' => $content['sub_visible'],
+ 'locked' => $content['locked'],
);
// Add regular menu row or bottom row?
<tr>
- <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 class="guest_menu_bottom {%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}" id="guest_menu_what_$content[what]">
+ <div class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}">$content[menu]</div>
</td>
</tr>
<tr>
- <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 class="guest_menu_row {%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}" id="guest_menu_what_$content[what]">
+ <div class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}">$content[menu]</div>
</td>
</tr>
<tr>
- <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]">
+ <td align="center" colspan="2" class="guest_menu_title {%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}" id="guest_menu_action_$content[action]">
+ <strong class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}">
::: $content[title] :::
</strong>
</td>
<tr>
- <td class="guest_menu_whats $content[visible_css] $content[locked_css]">
- <div class="$content[visible_css] $content[locked_css]">
+ <td class="guest_menu_whats {%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}">
+ <div class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}">
<strong><big>·</big></strong>
$content
</div>
<tr>
- <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 class="member_menu_bottom {%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}" id="member_menu_what_$content[what]">
+ <div class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}">$content[menu]</div>
</td>
</tr>
<tr>
- <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 class="member_menu_row {%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}" id="member_menu_what_$content[what]">
+ <div class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]|sub_%}">$content[menu]</div>
</td>
</tr>
<tr>
- <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]">
+ <td align="center" colspan="2" class="member_menu_title {%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}" id="member_menu_action_$content[action]">
+ <strong class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}">
::: $content[title] :::
</strong>
</td>
<tr>
- <td class="member_menu_whats $content[visible_css] $content[locked_css]">
- <div class="$content[visible_css] $content[locked_css]">
+ <td class="member_menu_whats {%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}">
+ <div class="{%pipe,getMenuCssClasses=$content[visible]|$content[locked]%}">
<strong><big>·</big></strong>
$content
</div>