G'Day i am creating a hobby site in farcry to experiment with its features. I've noticed a rather bad bug in "application.factory.oTree.getDescendants". If i have multiple page and navigation objects with the same name it returns the first instance in the tree, rather than the correct instance. ie

relevant Site Structure (built via quick site builder with nav aliases turned off)

Classes
-Paladin
--Major Orders
Spells
-Paladin
--Neverwinter Nights
--Shadows
--Hoards
--Missing from pnp

if i call application.factory.oTree.getDescendants with 'spells - paladin's objectID it will return 'classes - paladin - major orders' descendants, not its own.


a copy of my nav building code follows:


<cfimport taglib="/farcry/farcry_core/tags/webskin" prefix="skin">
<skin:cache hours="6" cacheBlockName="Header" cachename="dropdownNav">
<!--- Get First Level Menu Items for menu bar --->
<cfset qNav = application.factory.oTree.getChildren(objectID=#application.navid.home#)>
<cfoutput>
<!--- Container Div for brain jar menu --->


<div class="menuBar" style="position:relative;">
<!--- Create Meneu Bar Buttons --->
<cfloop query="qNav">
<a class="menuButton" href="#application.url.conjurer#?objectid=#qNav.ObjectID#" onmouseover="buttonMouseover(event, '#replace(qNav.objectName," ","_","all")#Menu');">#qNav.objectName#</a>


</cfloop>

</div>
<!--- Parse all nodes in tree --->
<cfset qNav = application.factory.oTree.getDescendants(objectID=#application.navid.home#)>
<cfloop query="qnav">
<!--- Get children if any --->
<cfset qNav2 = application.factory.oTree.getDescendants(objectID=#qNav.objectID#, depth="1")>
<!--- Create a sub menu --->
<cfif qNav2.recordcount gt 0>
<div id="#replace(qNav.objectName," ","_","all")#Menu" class="menu" onmouseover="menuMouseover(event)">
<!--- Create sub menu children --->
<cfloop query="qNav2">
<!--- Is there another submnue below this link? --->
<cfif qNav2.nRight - qNav2.nLeft gt 1>
<a class="menuItem" href="#application.url.conjurer#?objectid=#qNav2.ObjectID#" onmouseover="menuItemMouseover(event, '#replace(qNav2.objectName," ","_","all")#Menu');"><span class="menuItemText">#qNav2.objectName#</span><span class="menuItemArrow">&##9654;</span></a>
<cfelse>
<a class="menuItem" href="#application.url.conjurer#?objectid=#qNav2.ObjectID#">#qNav2.objectName#</a>
</cfif>
</cfloop>
</div>
</cfif>
</cfloop>
</cfoutput>


</skin:cache>


Any help or work arounds greatly appricated.


- Mark

---
You are currently subscribed to farcry-dev as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]

MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004

Reply via email to