It would be better to put your new code in your project. It's common to add a tags directory to a project and include it with the project name, or "custom", as the prefix.
If you have other FarCry projects then the change is likely to impact their menus too. But no other code depends on it, so there shouldn't be knock on effects. Blair On 9/19/07, Ron <[EMAIL PROTECTED]> wrote: > > > I am not sure if this is a bug, but when I view source on the <ul> > <li> items being produced by the GenericNav tag the tags do not appear > to be properly nested, yet the DHTML menus still work fine. Therefore > I am not sure if this unusual nesting of the tags is intentional or > not. I should note that I am working with 4 levels of nesting in the > menu. > > I discovered the situation while trying to make a vertical CSS only > pop out menu. In order to get my menu working as expected I rewrote > the tag. I am including the code if anyone is interested. The included > code is combatable with just about any of the CSS sheets provided by > Stu Nichols http://www.cssplay.co.uk/menus/, or you can remove the > commented html within the <ul>s and use the csshover.htc and or the > listapart js (to get IE working) method ,and also works with the > default menus. > > I am writing custom code within the "CORE" section to replace the > genericNav. Is it a bad thing to write custom code in the CORE? and, > is messing with this file likely to have unforeseen repercussion in > other areas that , as a noob, I am yet to become aware of. > > > <cfsetting enablecfoutputonly="yes" /> > <cfprocessingdirective suppresswhitespace="true"> > <!--- allow developers to close custom tag by exiting on end ---> > <cfif thistag.ExecutionMode eq "end"> > <cfexit method="exittag" /> > </cfif> > > <cfif isDefined("request.ver") and request.ver> > <cfoutput><!-- _genericNav $Revision: 1.2.2.4 $ --></cfoutput> > </cfif> > > <cfparam name="attributes.navID" default="#request.navID#"> > <cfparam name="attributes.depth" default="1"> > <cfparam name="attributes.startLevel" default="2"> > <cfparam name="attributes.id" default=""> > <cfparam name="attributes.bFirst" default="0"> > <cfparam name="attributes.bLast" default="0"> > <cfparam name="attributes.bActive" default="0"> > <cfparam name="attributes.bIncludeHome" default="0"> > <cfparam name="attributes.sectionObjectID" default="#request.navID#"> > <cfparam name="attributes.functionMethod" default="getDescendants"> > <cfparam name="attributes.functionArgs" > default="depth=#attributes.depth#"> > <cfparam name="attributes.bDump" default="0"> > <cfparam name="attributes.class" default=""> > <cfparam name="attributes.style" default=""> > <cfparam name="request.sectionObjectID" default="#request.navID#"> > <cfparam name="attributes.displayStyle" default="unorderedList"> > <cfparam name="attributes.bHideSecuredNodes" default="0"><!--- MJB: > check if option to Hide Nav Node Items that user does't have > permission to access: default to 0 for backward compatibility ---> > <cfparam name="attributes.afilter" default="#arrayNew(1)#"> > > > <cfif application.config.plugins.fu> > <cfset fu = > createObject("component","#application.packagepath#.farcry.fu")> > </cfif> > > > > <!--- // get navigation items ---> > <cfset o = createObject("component", > "#application.packagepath#.farcry.tree")> > <cfset navFilter=duplicate(attributes.afilter)> > <cfset arrayAppend(navFilter, "status IN > (#listQualify(request.mode.lvalidstatus, '''')#)") /> > <cfset qNav = > evaluate("o."&attributes.functionMethod&"(objectid=attributes.navID, > lColumns='externallink', "&attributes.functionArgs&", > afilter=navFilter)")> > > <cfimport taglib="/farcry/core/tags/webskin" prefix="nav"> > > > <!--- // get ansestors of attributes.navID ---> > <cfset qAncestors = o.getAncestors(attributes.sectionObjectID)> > <cfset lAncestors = valuelist(qAncestors.objectid)> > > <cfif attributes.bIncludeHome> > <!--- // get application.navid.home objectName ---> > <cfset homeNode = o.getNode(objectID=#application.navid.home#)> > </cfif> > > <cfif attributes.bLast> > <!--- here we get the most right nav so we can add a last class to > it > if needed ---> > <cfquery name="qMaxRight" dbtype="query"> > select max(nRight) as maxRight from qNav > </cfquery> > </cfif> > <cffunction name="dump"> > <cfargument name="arg"> > <cfdump var="#arg#"> > <cfabort/> > </cffunction> > <cfif attributes.displayStyle EQ "aLink"> > <cfloop query="qNav"> > <cfif application.config.plugins.fu> > <cfset strhref = fu.getFU(qNav.objectid)> > <cfelse> > <cfset strhref = application.url.conjurer & > "?objectid=" & > qNav.objectid> > </cfif> > <cfif qNav.currentRow GT 1> > <cfoutput> | </cfoutput> > </cfif> > <cfoutput><a href="#strhref#" > title="#qNav.objectName#">#qNav.objectName#</a></cfoutput> > </cfloop> > <cfelse> > > > <!--- determine the policy groups (or roles) this user belongs to ---> > <cfif isDefined("session.dmsec.authentication.lPolicyGroupIDs") and > listLen(session.dmsec.authentication.lPolicyGroupIDs)> > <!--- concatenate logged in group permissions with anonymous group > permissions ---> > <cfset lpolicyGroupIds = > session.dmsec.authentication.lPolicyGroupIDs > & "," & application.dmsec.ldefaultpolicygroups> > > <cfelse> > <!--- user not logged in, assume anonymous permissions ---> > <cfset lpolicyGroupIds = application.dmsec.ldefaultpolicygroups> > </cfif> > <!---cfdump var="#attributes#"---> > > <!---Test---> > > > <cfset nodes = ''/> > <cfloop from="1" to="#qNav.recordCount#" index="i"> > > <cfif attributes.bHideSecuredNodes EQ 0> > <cfset iHasViewPermission = 1> > <cfelse> > <cfset iHasViewPermission = > request.dmsec.oAuthorisation.checkInheritedPermission(objectid= > qNav.ObjectID[i],permissionName="View",lpolicyGroupIds=lpolicyGroupIds) / > > > </cfif> > > <cfif iHasViewPermission EQ 1> > > <!---check for external links---> > <cfif structkeyexists(qNav,'externallink') and > len(qNav.externallink[i])> > <cfset object = trim(qNav.externallink > [i])> > <cfelse> > <cfset object = trim(qNav.ObjectID[i]) /> > </cfif> > > <!---check for freindly URLs---> > <cfif application.config.plugins.fu> > <cfset href = fu.getFU(object) /> > <cfelse> > <cfset href = application.url.conjurer & > "?objectid=" & object /> > </cfif> > > <cfset itemclass='' /> > > <cfif qNav.nLevel[i] lt > attributes.startlevel+attributes.depth - 1 > and qNav.nRight[i]-qNav.nleft[i] neq 1> > <cfset itemclass=itemclass & 'parent ' /> > </cfif> > > <cfif i eq 1 and attributes.bFirst> > <cfset itemclass=itemclass & 'first ' /> > </cfif> > > <!---this means it is the last column in nav---> > <cfif attributes.bLast and qNav.nRight[i] eq > qMaxRight.maxRight> > <cfset itemclass=itemclass & 'last ' /> > </cfif> > <cfif attributes.bActive and (trim(qNav.ObjectID[i]) > eq > request.sectionObjectID or listfind(lAncestors, > trim(qNav.ObjectID[i])))> > <cfset itemclass=itemclass & 'active ' /> > </cfif> > > > <cfif (qNav.nLevel[i] eq attributes.startLevel) > AND (i EQ 1)><!--- > first node---> > <cfset css_hook = "" /> > <cfif len(attributes.id)> > <cfset css_hook = css_hook & > "id='#attributes.id#'" /> > </cfif> > <cfif len(attributes.class)> > <cfset css_hook = css_hook & > "class='#attributes.class#'" /> > </cfif> > <cfif len(attributes.style)> > <cfset css_hook = css_hook & > "style='#attributes.style#'" /> > </cfif> > <cfset nodes = nodes & '<ul #css_hook#>' > /> > <!---include home if requested---> > <cfif attributes.bIncludeHome> > <cfset homeLink = '<li' /> > <cfif request.sectionObjectID eq > application.navid.home> > <cfset homeLink = homeLink > & " class='active home'" /> > </cfif> > <cfset homelink = homelink & "><a > href=""#application.url.webroot#/"">#homeNode.objectName#</a></li>"/> > <cfset nodes = nodes & homelink /> > </cfif> > <cfset nodes = nodes & '<li>'& '<a > href="#href#">#trim(qNav.ObjectName[i])#' /> > </cfif> > > <cfif qNav.nLevel[i +1] LTE attributes.depth + 1> > > <cfif qNav.nLevel[i +1] EQ > qNav.nLevel[i]><!---node > on same level > close previous, open new---> > <cfset nodes = nodes & > '</a></li><li class="#trim(itemclass)#">'& > '<a href="#href#">#trim(qNav.ObjectName[i+1])#' /> > </cfif> > > <cfif qNav.nLevel[i +1] GT > qNav.nLevel[i]><!---next > level is one > step down nested level---> > <cfset nodes = nodes & '<!--[if IE > 7]><!--></a><!--<![endif]-- > ><!--[if lte IE 6]><table><tr><td><![endif]--><ul><li > class="#trim(itemclass)#">'& '<a href="#href#">#trim(qNav.ObjectName[i > +1])#' > > </cfif> > > <cfif (qNav.nLevel[i +1] LT qNav.nLevel[i]) > AND (i NEQ > #qNav.recordCount#)> > <cfset nodesBack = (qNav.nLevel[i] > - qNav.nLevel[i+1]) /><!---go > up to proper nLevel level - diff between currentLevel and root---> > <cfset nodes = nodes & '</a>' /> > <cfset nodes = nodes & > '#repeatString('</li></ul><!--[if lte IE > 6]></td></tr></table></a><![endif]-->', nodesBack)#</li><li > class="#trim(itemclass)#">'&'<a href="#href#">#trim(qNav.ObjectName[i > +1])#'/> > </cfif> > > </cfif> > > <cfif i EQ qNav.recordCount> > <cfset nodes = nodes & '</a></li></ul>'> > </cfif> > </cfif> > </cfloop> > <cfoutput> > #nodes# > </cfoutput> > > </cfif> > </cfprocessingdirective> > <cfsetting enablecfoutputonly="no" /> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "farcry-dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/farcry-dev?hl=en -~----------~----~----~----~------~----~------~--~---
