Recent Questions Code For Simple Javascript Tree Menus
Q: We do need the menuitem separation bars as most of the menuitems are quit lengthy, and there needs to be a separation bar to distinguish between them.
A: If you want to add separators between items you can paste a separatorbetween items or you can set item's border width in the following way:
var itemBorderWidth="0 0 1 0";
But you cannot enter this value in Deluxe Tuner you should set thisparameter manually.
You can also create style for the last item with border width = 0:
var itemStyles = [
["itemBorderWidth=0"],
];
To add separators, please, see the following parameters:
//--- Separators
var separatorImage=""; //for subitems
var separatorWidth="5";
var separatorHeight="100%";
var separatorAlignment="right";
var separatorVImage="images/public/separator.gif"; //for the top items
var separatorVWidth="1";
var separatorVHeight="100%";
var separatorPadding="";
You should set a separator in the menuItems, for example:
var menuItems = [
["Home","index.cfm", , , , , , , , ],
["-"],
["About Us","about.cfm", , , , , , , , ],
];
Q: I need to work it with PHP/MySQL. I have found some information on it in your Support section, but have problems to understand and wonder if you have more information or a working sample of the loading bar with PHP/ MySQL.
A: Info about generating menu (menu items )from a database, please, see:
http://deluxe-menu.com/generate-menu-from-database-xml-php-asp-vb-support.html
Please, see the example of .php file.
The content of .php file depends on your database structure.
<?php
// The example for PHP/MySQL.
// MySQL database has the table "menuTable" that contains data for menu items.
// The table has the following fields:
// 1. "text" - item text
// 2. "link" - item link
// 3. "icon1" - item icon (normal state)
// 4. "icon2" - item icon (mouseover state)
function getMenuItems()
{
$jsItems = '';
// Select all records from table "menuTable"
$allItems = mysql_query('SELECT * FROM menuTable;');
// Extract items data from database and build Javascript code for menuItems
while ($itemData=mysql_fetch_array($allItems))
{
$jsItems .= '["'.$itemData['text'].'", "'.$itemData['link'].'", "'.$itemData['icon1'].'", "'.$itemData['icon2'].'"],';
}
// Return Javascript code
return $jsItems;
}
?>
<script>
var menuParam1 = value1;
var menuParam2 = value2;
var menuParam2 = value2;
...
var menuItems = [
<?php
// Write Javascript code for menu items
echo getMenuItems();
?>
];
</script>
Q: Cross-frame mode: after clicking on a menu item and the subframe is loading and then mouse over the menu when the subframe has not finished loading a javascript error occurs and then the javascript vertical menu breaks.
A: You can get this error when you load pages from the another domain.
JavaScript Tree Menu can support this mode for the same domain only -- ifyou loaded a page to a subframe from another domain, the submenuscan't be shown in it. It happens because all browsers don't allow todo that for security reasons. Just imagine if you'll able to create aframeset from 2 frames, 1st frame will be with a zero height-width,and you'll load your page into it. Then user will go to another domainand your "invisible" frame will change a content of other pages!
Q: How do I get the sub-menus to open in the 2nd frame of a 3 vertical frameset.
The menu is in the first frame. I want the sub-menus to open in the 2nd frame. I don't see how to set that parameter.
A: You should check your dm_initFrame() function.
dm_initFrame(framesetID, mainFrameInd, subFrameInd, orientation);
framesetID - id attribute of the frameset;
mainFrameInd - index of the main frame (where the top-menu is placed), >=0;
subFrameInd - index of the subframe (where the submenus will be shown), >=0;
orientation - frame orientaion: 0 - horizontal, 1 - vertical.
You should write it, for example
dm_initFrame("frmSet", 0, 1, 0);