Forum - Beitrag anzeigen

CF-Basics - Dynamisches Menü aus der DB generieren

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 29.01.2012 19:23 (1487 Aufrufe)
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#">
&nbsp;
</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&"."&currentRow>
<!--- 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>





Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen