3-hirarchige Menüstruktur
|
Seitenanfang |
Hallo, liebe Leute. Mein momentanes Problem besteht momentan darin in Perl eine 3-hirarchige Menüstruktur zu erzeugen! Der Inhalt dieses Menüs wird dann über Abfragen aus einer Datenbank mit Leben gefüllt... Kann mir da bitte jemand weiterhelfen.Danke schon im Vorraus
Datum: 03.04.2006-08:47

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hallo, gerne, was meinst Du mit Menue, geht's darum die Struktur zu speichern ? Bitte noch ein paar Details... Gruß Ralf
Datum: 03.04.2006-09:50

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Also dieses Perlscript soll ja später eine Internetseite "erzeugen". Und wenn man diese Site öffnet, soll links ein Menü aufgeführt werden also erst die Überschrift wie z.B. "Mitglieder" Wenn man dieses anklickt soll dann die auflistung der möglichen Vereine erscheinen. Und wenn man den geünschten Verein anklickt sollen alle Namen erscheinen welche dort Mitglieder sind. Dies soll alles in einer Art tabelle angeordnet sein (auf dem linken Bildschirmrand) Wenn man dann die Namen anklickt sollen einige Info_'s über die Personen rechts (also halt auf dem restlichen Bildschirm) erscheinen. Wie schon erwähnt werden die Infos alle per SQL eingespeißt...
Datum: 03.04.2006-10:53

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hi, Die Daten von SQL aus da reinzuholen ist das kleinere Problem. Das Machst Du je nach DB entweder mit DBI und DBD:mysql (MySQL) oder DBI und DBD::Pg (PostgreSQL). http://search.cpan.org/~timb/DBI-1.50/DBI.pm http://search.cpan.org/~capttofu/DBD-mysql-3.0002/lib/DBD/mysql.pm http://search.cpan.org/~dbdpg/DBD-Pg-1.47/Pg.pm Für die Umsetzung wäre jetzt interessant, wie Du die Menüstruktur realisieren willst. Soll die Seite nach einem Klick auf einen Menüpunkt neu geladen werden? Dann erzeugst Du die Struktur mit Perl. Soll aber die Seite nicht neu geladen werden, sondern quasi das Menü aufploppen, dann muss Du Dein Menü mit JavaScript (DHTML) erzeugen. http://de.selfhtml.org/dhtml/index.htm -uw
Datum: 03.04.2006-15:23

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Eigentlich sollte sie nur "aufploppne, aber des mit Java Script ist für mich noch Neuland, oder gibt es für solche Fälle schon vorgeschrieben Skripte??
Datum: 03.04.2006-15:41

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
Hi. Ich bin vor einiger Zeit mal über ein sehr leicht zu bedienendes objektorientiertes Javascript-Baummenü gestolpert; der Perlcode der das Menü mit Inhalt füllt ist schnell gemacht : http://www.destroydrop.com/javascripts/tree/Vielleicht kannst Du es ja gebrauchen.
Datum: 03.04.2006-18:59

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Super! Das bringt mir glaub echt einiges! Hoffentlich krieg ich jetzt noch den Perlcode richtig hin! :-) Danke
Datum: 04.04.2006-08:39

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Ich muss mich nochmal melden! Und zwar krieg ich den Perlcode in dem Menü det hin... Sorry aber ich raffs einfach net! Hast du da schonmal ein Perlscript für irgendwas in diesem Menü geschrieben und möchtest mir den so weit es geht überlassen? Ich wäre dir sehr dankbar... Viel Grüße, Daniel
Datum: 12.04.2006-11:11

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hi Daniel, beziehst du das auf meinen Vorschlag? Ich habe mit dem Java Script auf der folgenden Seite (die noch nicht ganz fertig ist- Desgin einfach mal übersehen) die Menuesteuerung gemacht, das Menue wird aus einer MySQL Datenbank gebastelt, die die Mitglieder bearbeiten können. Schau dir einfach bitte mal den Quelltext der Seite an, das Java- Script ist in der Seite integriert. Die Seite: http://www.fee-marktplatz.de Thomas
Datum: 12.04.2006-18:38

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
Okay, cool! Alles klar... Mein Menü steht endlich! Aber wie fülle ich das denn mit Leben, also wenn mann dann einen Sohn anklickt sollten da Infos mit Bilder und Beschreibungen über Produkte erscheinen! Bei dir ist das Menü ja auch noch leer! Und eben diese Infos sollen bei mir über die Datenbank geholt werden...
Datum: 18.04.2006-09:50

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hallo, ich denke, Du solltest jeden Menupunkt mit einem Link auf das eigene Script machen und als Parameter die Bedingungen für die SQL ( Verein, Mitgliedname etc.) mitgeben... Schau mal bei www.elv.de die haben das sehr schön... Gruß RAlf
Datum: 03.04.2006-14:23

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
Ja die Navigation sieht sehr schön aus! Aber ich bräuchte noch eine 3. Hirarchie!! Außerdem sagt der Quelltext leider sehr wenig aus... :)
Datum: 06.04.2006-10:55

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
Also diese ELV-Seite hat was! Aber wie das gemacht haben ist mir schleierhaft! Wo muss ich denn in dieses JAVA-SKRIPT von http://www.destroydrop.com/javascripts/tree/ meine Befehle für die SQL Abfrage reinschreiben?? Sorry, aber bin ein blutiger Anfänger! :)
Datum: 07.04.2006-13:04

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hi, hier eine freie Software unter Windows. Diese erzeugt ein verschachteltets, hierarchisches Menue. Bei sehr großer Verschachtelung etwas langsam, aber Quelltext des .js ist sehr leicht zu editieren. Sehr übersichtlich aufgebaut und kommentiert. http://www.coffeecup.com/free-dhtml/ Die einzelnen Unterpunkte einfach mit "_" an Stelle von "." also 1.1.2 ist also 1_1_2 Wichtig ist, das die Anzahl der Wurzeln in der Menuestruktur genau angegeben wird (Die Stelle ist leicht zu finden), aber auch die Anzahl der Söhne (Nachfolger eines Astes) müssen genau angegeben werden. Ich habe dazu Schnipsel da, die ein Menue aus einer MySQL Datenbank basteln. Menu1_1=new Array("Linktext","http:// Link","",Anzahl Söhne,Höhe der Schaltfläche in px,Breite in px); Thomas
Datum: 06.04.2006-14:29

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hi Daniel, es gibt wie immer mehrere Möglichkeiten. Eine wäre beispielsweise die Lösung wie ich sie habe, mit dem jeweiligen link wird ja immer auch über get der menuepunkt übergeben, also http://www.link.pl?1_2_1 z.B. also das was hinter dem Fragezeichen im url steht. Dieses Stück kannst du dann im Programm auswerten. Entweder du übergiebst (das muss in den Menüpinkt im Javascript erzeugt werden) die menuepunktinformation in folgender Form an programm.pl?menuepunkt=1_2_2 und wertest dann über das cgi-modul aus. Ich gehe davon aus dass du damit klar kommst- sonst melde dich nochmal. Oder du übergibet nur den menuepunkt - aber denke bitte daran, das ev. noch mehr informationen mitgegeben werden müssen (z.B. Sprache ev. session-id etc) Dann hast du die Variable gleich über
$menuepunkt = $ENV{QUERY_STRING};
oder wenn du das wie oben machen willst , nur ohne cgi-modul:
@anweisungen = split(/=/,$ENV{QUERY_STRING});
Jetzt steht im letzten fall des beispiels in $anweisungen[1] "menuepunkt" und in $anweisungen[2] "1_2_2",diese Daten kannst du nun im Programm auswerten. nun könnte man z.b. die inhalte in einer mysql datenbank zu stehen haben und die sql-abfrage mit variablen gestalten. aber auch eine unterschiedliche behandlung der menuepunkte ist möglich. so kann man z.b. für die menuepunkte bestimmte subroutinen definieren (am besten in einem Programm oder halt in modulen ablegen) dabei könnte man für jede subroutine theoretisch eine eigene if und dann lauter elsif abfragen starten, also so was in der art:
if ($anweisungen[2] eq "1_2"){ impressum(); } sinnvoller (und übersichtlicher) ist es aber die ganzen anweisungen in einen hash zu schreiben- den kannst du auch beser editieren und auf die subroutinen zu zeigen) so etwa:
%menue = ( '1_2' => \&subroutine1, '1_3' => \&subroutine2, ... );# hier dann hasch auswerten if ($menue{$menuepunkt}) { $menue{$menuepunkt}->(); # ruft die entspr.subroutine auf) } # hier dann noch ggf. eine else-bedingung
Jetzt sind wir est mal so weit, das die jeweils zum menue gehörenden subroutinen aufgerufen werden. In den Subroutinen (oder wie oben erwähnt geht es auch ohne- da müssen die Seiten aber alle -ohne ausnahme- gleich sturukturiert sein)werden nun die sql-abfragen realisiert z.b. SELECT spalte1 FROM tabelle WHERE spalte7 ='1_2' Die mysql Tabellen müssen natürlich auch ensprechende Indexfelder haben. Ich hoffe das hilft dir weiter. Gruss Thomas
Datum: 18.04.2006-10:44

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
Nachtrag: wenn keine einzelnen Subroutinen definiert sind ohner eine gruppe von Fällen definiert werden (z.B. alle die nicht in der if -schleife enthalten sind - also quasi der else fall)- dann ist die sql Abfrage mit einer variablen zu realisieren:SELECT spalte1 FROM tabelle WHERE spalte7 ='$menuepunkt' Thomas
Datum: 18.04.2006-10:49

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
| so ich bins mal wieder! Kannst du mir evtl. noch weiterhelfen wie ich denn jetzt dieses Java Skript auslagern kann? So dass ich halt nur mein template und die "function GO" habe und diese ganzen Java Funktionen aus einer Datei ziehen kann? Ich hoffe du weißt was ich meine... Grüße Daniel
Datum: 20.04.2006-13:27

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
| Ich hoffe das hilft dir weiter http://de.selfhtml.org/javascript/intro.htm Gruss Thomas
Datum: 20.04.2006-23:53

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
Ja das hab ich auch schon gefunden, aber ich mach das genau gleich! Ich speichere die Functions seperat abund geb die Quelle im head mit an. Aber da kommen immer dieselben Synthaxfehler: "MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right';" --> in dieser Zeile sei ein Objekt erforderlich!!Ich kapier des net! Wenn man es net seperat abspeichert läuft es doch auch
Datum: 21.04.2006-14:34

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
nee, so nicht. Also kopiere bitte das gesamte Javascript , (wenn du die Vorlage von mir nimmst ist das mit HTML-Kommentarzeilen markiert) und speichere es unter menue.js. Dann kopiere bitte folgende Zeile in dein HTML-Template <script src="http://www.deine_seite/ordner/menue.js" type="text/javascript"></script> Denke bitte an diese Form der Referenzierung, wenn du die Seite dynamisch erstellst ist der Bezugsordner nicht mehr der wo das Template liegt, also lass es lieber mit relativer Referenzierung - (so was wie ../bla/bla). Oder nimm absolute Pfade wie /srv/htdocs/www/blabla. Aus dem HTML-Template entfernst du dann bitte noch <script type="text/javascript"> und </script>. Und bitte kopiere auch nicht die HTML-Kommentare in das js. Dort darf nur Javsript stehen sonst nix. Wenn du das hinbekommen hast ist dann HTML Template und js getrennt. Noch etwas: Falls du mein script kopierts um es zu ändern speichere bitte nicht die HTML datei einfach über den Browser, sondern lass dir den Quelltext anzeigen und kopiere den in einen editor.So jetz muss es aber mal klappen ;-) Thomas
Datum: 21.04.2006-16:13

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
| Kleiner Fehler bei dem was ich gerade geschrieben habe: Aus dem HTML-Template entfernst du dann bitte noch <script type="text/javascript"> und </script>. muss heissen : aus dem js entfernst du bitte... sorry
Datum: 21.04.2006-16:26

|
re: 3-hirarchige Menüstruktur Nachtrag
|
Seitenanfang |
Sorry sorry sorry. Also ich hab das jetzt also haargenau gemacht wie du gesagt hast aber es klappt einfach nicht! Das script beinhaltet zwar keinerlei Synthaxfehler mehr, aber das menü wir einfach nicht im html-template angezeigt. Und bei mir läuft das bisher nur lokal und nicht über das Internet! Die Auslagerung hat mit kleineren Java-Skripten schon gut geklappt aber bei dem Skript von dem Coffee-Cup-Tool krieg ich es nicht hin! Hast du das bei dir schon versucht und es hat funktioniert? Weiß einfach net was ich noch anders machen soll.Tut mir echt leid das ich des grad null kapier!! Aber danke für deine Hilfe, echt klasse...
Datum: 25.04.2006-09:31

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| wer auch immer versucht das script von meinem Server zu ziehen (z.B:mit menue2.js) oder ähnlichem, wird weiterhin einen 404 ernten, das gibt es so nicht als Text, das wird dynamisch erstellt. Also wer es braucht bitte so melden, ihr bekommt es gern per mail. Thomas
Datum: 25.04.2006-08:44

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hi Daniel, brauchst dich doch nicht zu entschuldigen, dafür ist das hier ja da. Wenn es nur lokal läuft und nicht übers Netz, dann verweise ich zuächst mal auf Selfhtml : Beachten Sie: Es kann passieren, dass ein JavaScript, das in einer separaten Datei notiert ist, lokal wunderbar funktioniert, aber nach dem Hochladen der Dateien auf einen WWW-Server plötzlich nicht mehr. Bitten Sie in diesem Fall den Provider oder Webmaster des Servers, den MIME-Typ text/javascript für Dateien mit der Endung .js in die Konfiguration des Web-Servers mit aufzunehmen. Ansonsten können Sie im einleitenden <script>-Tag beim type-Attribut auch mal den MIME-Typ application/x-javascript anstelle von text/javascript ausprobieren. Bei einigen Servern funktioniert es dann. Quelle: http://de.selfhtml.org/javascript/intro.htm Also erst mal mit deinem Provider abklären, wenn das mit dem Mime-Typ nicht klappen sollte. Viel Erfolg! Thomas
Datum: 25.04.2006-10:06

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Oh ich hab das falsch formuliert. Ich meinte mit "laufen" das ich es nur lokal versuche und es nicht einmal lokal funktioniert!!! also in meinem JS steht zuerst die "function Go(){return}", dann das der Menüaufbau mit den Arrays, gefolgt von den ganzen variablen und zusaätlich noch die weiteren functions. Das </script> welches am ende stand habe ich gelöscht und das mit nem <noscript>..... ebenso! Aber das ist ja auch egal. Als source habe ich nur <script src:"menue.js"........> angegeben weil ich gelesen habe das das ausreicht wenn das html template und das JS auf dem selben Verzeichnis liegen, das stimmt doch so, oder?Ich habe schon alles mögliche versucht, aber nichts hat Erfolg...
Datum: 25.04.2006-10:16

|
re: 3-hirarchige Menüstruktur
|
Seitenanfang |
| Hi Daniel, bevor wir hier das ganze Forum zuposten, schick mit das das js und das Template einfach zu, ich schau mal drüber. Mal sehen, ob ich helfen kann. coder@fee-marktplatz.de Thomas
Datum: 25.04.2006-10:30

|