Recent Questions
Q: You've been helping me with some issues on the Deluxe Tree Menu system my company has purchased and most issues are resolved, so thank you! One big problem remains though and we can't seem to figure it out, so I hope you can help.
What we want is, when a user enters our site from the index (home) page then clicks on a link and the sub-page opens, for the dhtml menu tree to be open to the section the user is in and viewing. We also DO NOT want the browser to save the state of the menu, since that is inconsistent with where the user is in the site. Note: we do not use the Menu on the home page, is this a problem?
Per your tech support email, I've added the expand code, which works going from the home page to sub-pages. However, it interferes with navigating to other sub-pages once your in the site. The menu doesn't keep the section open, it closes back up. You mentioned the expand code has to be entered on every page....is that so in this instance and if so, that's a maintenance nightmare - does a better way exist for this type of menu?
Then we activated the "save state" option and the menu stays open on the sub-pages, but the expand option doesn't work.
It's like they cancel each other out and you can only have one or the other.
Can I get these two to work together? What do I need to do? Is it better to use the XP-style menu?
A: When user clicks the link, the browser loads a new page and the script re-create the dhtml menu tree.
If you want to open the needed section automatically on load you can use the following:
1. Save the state to cookies
2. Use frames
3. Put the special script on each page of site that will open appropriate section.
(dtreet_ext_expandItem)
Q: Do you have a template example of creating menu javascripts using data stored in a database?
A: You may generate a menu from a database or XML using any server-side script, e.g., PHP, ASP, VB, etc.
However, these scripts don't work inside of Javascript .js files,
so, you should move parameters of a menu from a .js file into an html-page, e.g.:
<!-- Deluxe Menu -->
<noscript><a href="http://deluxe-menu.com">Javascript Menu by Deluxe-Menu.com</a></noscript>
<script type="text/javascript"> var dmWorkPath = "menudir/";</script>
<script type="text/javascript" src="menudir/dmenu.js"></script>
<!-- (c) 2006, http://deluxe-menu.com -->
<script type="text/javascript" language="JavaScript1.2">
// and describe parameters of a menu
var parameter1=value1;
var parameter2=value2;
etc.
var menuItems = [
// here you generate items using server-side scripts (php, asp, vb, etc.)
];
</script>
The example of the menu working with PHP/MYSQL you can find here:
http://deluxe-menu.com/rq-loading-bar-MySQL-support.htmlQ: I would like to add the javascript API to a link contained in my website that will have the corresponding item in the deluxe-tree menu act as if it was "clicked".
Presumably I need to add the script (for example) <A HREF="http://deluxe-menu.com/features-info.html" TARGET="_self" "..javascriptHere ..">. Can you give me an example please of what code goes into there.
I presume I use dm_ext_setPressedItem (menuInd, submenuInd, itemInd, recursion) but where do I get the ????Ind data from and make the javascript call in the above link.
A copy of a working example together with where to get the data , perhaps on your own web pages, would help.
A: Deluxe Tree doesn't save a presseditem as it saves a tree state. It works within 1 page only and if youreload the page you should set a pressed item using Javascript API:
function dtreet_ext_setPressedItem (menuInd, itemID)
<script type="text/javascript">
var i = <?php echo $selitem; ?>;
onload=setPressed;
function setPressed()
{
dtreet_ext_setPressedItem(0,dtreet_ext_getItemIDByIndex(0, i));
}
</script>
You should define selitem using server side script.
Q: How can I make the submenus appear much more quickly for the javascript expand menu?They appear but only after mouseing-over the menu and waiting for approximately one second.
A: Try to adjust the following parameters:
var dm_writeAll=0;
var smShowPause=100;
var smHidePause=1000;
var transDuration=150;
var transDuration2=200;
You can also turn off transitional effects
var transition=-1;