Name: | Constantin |
Titel: | Dynamisches Menü aus der DB generieren |
Inhalt: | Hallo zusammen! Ich möchte eine Menü bauen, das in etwas so aussehen soll: 1. Kiez A-Z 1.1. Branchenverzeichnis 1.2. Bildung 1.2.1. Politische Bildung 1.2.2.Schulen 1.2.3.Seminare 1.2.4.Sprachkurse 1.3. Hilfe + Beratung 1.4. Initiativen/Verein 2. Kiez-News 2.1. Berichte/Reportagen 2.2. Neueröffnungen 3. Kunst 3.1. Ausstellungen 3.2. Galerien 3.3. Kunstporta usw. usf. also mit max. 3 Gliederungsebenen oder Tiefe. Es sollte auch so dargestellt werden, ohne Schnickschnack, so wie in Wikipedia das Menü aussieht. Ich habe mir hier im Forum auch schon was gefunden und zusammengebaut - es ist auch was zusehen - aber so richtig voran kommen ich dennoch nicht, weil sie beim Ausführen die Seite "aufhängt" und auch das Menü mit allen Menüpunkten angezeigt wird - es wäre besser nur die Punkte der obersten Ebene, bzw. mein Sonderwunsch wäre, beim Aufruf der Seite bis Gliedrungstiefe 2 und die dritte Ebene bleibt noch verborgen. Ich weiß, viell. bisschen viel verlangt, mir zu helfen! Viell. gibt es ja auch eine einfachere Lösung!!!?? Grüße Constantin Hier der Code: <cfapplication name="test" sessionmanagement="yes" clientmanagement="yes"> <!--- Main Parent ---> <cfquery name="navi" datasource="kieznetz"> SELECT * FROM nav_Hirarchie WHERE nav_parent = 0 ORDER BY nav_order </cfquery> <!--- Laesst Node geöffnet/geschlossen ---> <cfparam name="client.hideNode" default="0"> <!--- add nodes to exclude from list ---> <cfif isDefined("URL.hideNode") AND NOT listFindNoCase(client.hideNode,URL.hideNode)> <cfset client.hideNode = ListAppend(client.hideNode,URL.hideNode)> </cfif> <!--- delete nodes from list ---> <cfif isDefined("URL.DelFromhideNode") AND ListFind(client.hideNode,URL.DelFromhideNode)> <cfset client.hideNode = ListDeleteAt(client.hideNode,ListFind(client.hideNode,URL.DelFromhideNode))> </cfif> <cfoutput query="navi"> <!--- gibts kinder?.. ---> <font style="font-size:15px; font-weight:bold"> <cfquery name="selChild0" datasource="kieznetz"> Select nav_id from nav_Hirarchie WHERE nav_parent = #navi.nav_id# </cfquery> #CurrentRow#. <cfif selChild0.RecordCount> <a href="#cgi.script_name#?menu=#nav_id#&<cfif ListFind(client.hideNode,nav_id)>DelFrom</cfif>hideNode=#nav_id#"></cfif><cfif isDefined("URL.menu") AND URL.menu eq navi.nav_id> </cfif>#nav_txt#<cfif isDefined("URL.menu") AND URL.menu eq navi.nav_id> </cfif><cfif selChild0.RecordCount></a></cfif> </font> <br> <CFMODULE TEMPLATE="../INCLUDES/CF_subMenu.cfm" chapter="#CurrentRow#" id="#navi.nav_id#" spaceCounter="0"> </cfoutput> <!--- hier kommt nun die neue Include-Datei: CF_subMenu.cfm ---> <cfparam name="Attributes.id" default="0"> <cfquery name="navi_m" datasource="kieznetz"> SELECT * FROM nav_Hirarchie WHERE nav_parent = #Attributes.id# AND nav_parent NOT IN(<cfif NOT LEN(client.hideNode)>0<cfelse>#Client.hideNode#</cfif>) ORDER BY nav_order </cfquery> <cfparam name="Attributes.spaceCounter" default="0"> <cfset nSpaceCounter=Attributes.spaceCounter + 2> <div id="box_subnavi"> <h7><!--- <h7> Ebene 2-Auszeichnung ---> <cfoutput query="navi_m"> <!--- abstand macher ---> <cfloop index="nIndex" from="1" to="#nSpaceCounter#"> </cfloop> <cfquery name="selChildX" datasource="kieznetz"> Select nav_id from nav_Hirarchie WHERE nav_parent = #navi_m.nav_id# </cfquery> #attributes.chapter#.#currentRow#. <cfif selChildX.RecordCount> <a href="#cgi.script_name#?menu=#nav_id#&<cfif ListFind(client.hideNode,nav_id)>DelFrom</cfif>hideNode=#nav_id#"></cfif><cfif isDefined("URL.menu") AND URL.menu eq navi_m.nav_id><b></cfif>#nav_txt#<cfif isDefined("URL.menu") AND URL.menu eq navi_m.nav_id></b></cfif><cfif selChildX.RecordCount></a></cfif><br> <cfset kapitelSub = attributes.chapter&"."¤tRow> <!--- alles von vorne mit neuen attributwerten..---> <CFMODULE chapter="#kapitelSub#" TEMPLATE="../INCLUDES/CF_subMenu.cfm" id="#nav_id#" spaceCounter="#nSpaceCounter#"> </cfoutput> </h7><!--- </h7> ENDE Ebene 2-Auszeichnung ---> </div> |
![]() |
|
|
|
|