Hi zusammen,
So einige Beiträge haben sich ja schon mit den Menüs beschäftigt. Ich hatte mal versucht, mit dem CSS-Attribut "fixed" für eine gleichbleibende Fensterposition des Hauptmenüs zu sorgen. Fand schon immer doof, wenn man bei einer nicht framebasierten Site 30 m nach oben scrollen muss, um an das Menü zu gelangen. Netscape und MIE interpretieren das CSS-Attribut, aber nur Netscape richtig - der MIE schiesst das Menü irgendwo zum Bildschirmrand.
Die Art JS-Menüs, die flappernd zu ihrer Fensterposition zurückkriechen, sind auch nicht die pralle Lösung, finde ich. Sieht einfach aus wie schlecht programmiert.
Aber kennt Ihr schon die DHTML-Lösung von Stefan Münz?
http://de.selfhtml.org/dhtml/beispiele/navigation.htm
Ich finde zwar, dass man diese Ausklappmenüs normalerweise nicht braucht, weil Randbereiche keineswegs überflüssig sind und man sie nicht nur für Menüs verwendet. Aber der Ansatz von Stefan M., die Bildschirmposition der Menüausgabe immer erst bei Mouseover zu setzen, löst das Problem eigentlich ideal, denn auf diese Weise flappert da nichts. War ich noch garnicht draufgekommen. Ergänzende Idee von mir: Als Hinweis auf das versteckte Menü könnte man eine feststehende Hintergrund-Grafik (Wasserzeicheneffekt) verwenden. Die steht permanent genau an der Stelle, wo das Menü bei Mouseover erscheint.
Bei abgeschaltetem Javascript oder Nicht-DHTML-fähigem Client kann man alternativ das ganz normale Menü im <noscript> Tag ausgeben. Die Fallunterscheidung codiert man mit einem simplen "if-else" bzw. mal gucken, vielleicht kennt PHP ja auch "case".
Wenn ich das richtig sehe, müsste sich der Code ohne besondere Schwierigkeiten als Contenido-Modul integrieren lassen. Nur auf Synthax-Fehler muss man wegen der sich ergebenden Codemenge schon etwas aufpassen. Jedenfalls ich, denn ich code noch nicht so lange in PHP.
Grundsätzlich stelle ich mir das so vor: Man gibt das ganze Zeugs im Modul-Output mit "echo" aus und legt die DHTML-Bibliothek an. An die Stelle, wo die statischen Links codiert sind, wird der Code der Contenido Hauptmenü-Linkgenerierung eingepflegt. Dadurch sollten statt der statischen Links die dynamisch erzeugten erscheinen. Dann noch die CSS-Attribute ans eigene Layout anpassen - FERTIG. Falls das Ganze wie geplant funktioniert, kann man es vielleicht in einem nächsten Schritt weiter ausbauen und auch die Artikellisten-Menüs als weitere Klappebenen integrieren. Da wird´s natürlich dann komplizierter. Doch es hätte seine Vorteile: Bei angeschaltetem Scripting spart man dann die Artikellisten, anderenfalls gibt man sie ebenfalls im <noscript> Tag aus.
Ich will das nicht nur für mich selbst haben, sondern im Fall eines positiven Ergebnisses auch als neues Modul posten. Deshalb meine Frage an die besseren Contenidokenner als ich es bisher bin:
Glaubt Ihr, die Aufgabe liesse sich in dieser Art realisieren? Macht das Ganze Eurer Ansicht nach Sinn? Gibt es vielleicht schon eine Lösung, die dem nahekommt (habe bisher keine entdeckt) oder die Vorteile auf andere Weise realisiert? Falls der Ansatz als tauglich betrachtet wird, hat jemand Lust, sich zu beteiligen? Und sei es nur mit Hilfe bei der Suche nach eventuellen Fehlern, die ich vielleicht nicht selbst finde.
Freue mich auf Kommentare ...
Grüsse von Andreas
Hauptmenü immer an fixer Position erreichbar
-
- Beiträge: 11
- Registriert: Di 22. Jun 2004, 09:01
- Wohnort: Köln
- Kontaktdaten:
-
- Beiträge: 11
- Registriert: Di 22. Jun 2004, 09:01
- Wohnort: Köln
- Kontaktdaten:
Antwort an Emceechen
Hi Michael,
Ich hab den Eindruck, Du siehst das Problem zu kompliziert und deshalb bei diesem Problem vielleicht den Wald vor lauter Bäumen nicht.
Hmm, oder ich hab Dich nicht richtig verstanden ...
Falls Du mit den SQL-Abfragen das Hauptmenü (also die Kategorien und Unterkategorien) meinst, sollte das eigentlich unproblematisch sein. Wir müssen sie nicht selbst codieren, denn sie sind schon alle da:
Sieh Dir mal das Standard-Hauptnavimodul an. Die SQL-Abfragen holen zunächst mal alle Items und sortieren sie rekursiv von unten nach oben. Wie es genau geht, ist ja auch egal. Entscheidend ist, dass nach Abarbeitung der Functions die Menüitems sortiert in einem Array vorliegen. Diesen Teil des Codes kann man einfach allem anderen voranstellen, weil es mit der späteren Ausgabe im DHTML-Menü überhaupt nichts zu tun hat.
Die Ausgabe der Items erfolgt an späterer Stelle in einer foreach-Schleife. Wie das mit dem htmlbuffer-output und den nav*on/off files gemacht ist, habe ich noch nicht geblickt. Ist aber auch wieder unwichtig, weil wir das nicht brauchen, denn wir geben ja im DHTML-Menü aus. Wir bedienen uns also an der Stelle, wo im DHTML-Menü die statischen Links stehen, des Arrays und lesen es aus. Nach dem Senden mit php echo sind es für den Browser ja auch statische Links und deshalb wird es so auch funktionieren, denke ich. Übrigens dieselbe Stelle, in der ich auch per Fallunterscheidung prüfe, ob ein User eingeloggt ist und ich die URL mit https statt mit http ausgebe.
Bitte korrigier mich, falls ich einen Denkfehler gemacht habe. Wie gesagt, ich habe mir die Lösung bisher nur für die Hauptnavi überlegt. Der weiterführende Gedanke, die Artikellisten als Aufklappebenen einzubinden, lässt sich vermutlich auch realisieren. Aber dazu müsste ich mir die Funktionsweise der Artikellisten erstmal ansehen.
Du sagst, Du hättest diese DHTML-Lösung schon statisch als Modul eingebunden (oder nur als HTML-Code im Layout?). Falls Du es bereits als Modulausgabe hast und es statisch funktioniert, könntest Du vielleicht den Code posten oder mir mailen? Das würde für diesen Teil die Gefahr mindern, dass ich Synthaxfehler reinhaue und so Zeit sparen. Ich sagte ja schon, ich hab noch nicht so viel Übung im Codieren von PHP und muss dauernd noch nach der Synthax schauen. Was nicht heisst, ich könnte nicht programmieren.
Nur, wenn es bei Dir als Modul laufen sollte - was machst Du denn, falls sich an den Links was ändert bzw. neue Artikel dazukommen. Änderst Du dann jedesmal das Modul? Na ja, die Frage kann ich mir eigentlich selbst beantworten ;o)) ... da müssen eben die SQL-Abfragen rein.
Ich muss dabei zugeben, diese Sache mit den Menüs hatte bisher bei mir eigentlich nicht Prio 1. Da gibt´s noch ganz andere tricky Angelegenheiten, die mich viel mehr drücken, z. B. das soweit als möglich integrative Andocken von osCommerce an Contenido (oder war´s umgekehrt??). Ausserdem CRM, FiBu, WaWi. Und jede Menge profane Fleissarbeit wie weitere Inhalte für meine in Entwicklung befindliche kommerzielle Site, damit sie endlich livegehen kann. Wenn Du das aber sehr dringend brauchst, z. B. für einen Kunden, kann ich es vielleicht vorziehen. Man bräuchte eben 7 Leben ...
Grüsse von Andreas
Ich hab den Eindruck, Du siehst das Problem zu kompliziert und deshalb bei diesem Problem vielleicht den Wald vor lauter Bäumen nicht.

Hmm, oder ich hab Dich nicht richtig verstanden ...
Falls Du mit den SQL-Abfragen das Hauptmenü (also die Kategorien und Unterkategorien) meinst, sollte das eigentlich unproblematisch sein. Wir müssen sie nicht selbst codieren, denn sie sind schon alle da:
Sieh Dir mal das Standard-Hauptnavimodul an. Die SQL-Abfragen holen zunächst mal alle Items und sortieren sie rekursiv von unten nach oben. Wie es genau geht, ist ja auch egal. Entscheidend ist, dass nach Abarbeitung der Functions die Menüitems sortiert in einem Array vorliegen. Diesen Teil des Codes kann man einfach allem anderen voranstellen, weil es mit der späteren Ausgabe im DHTML-Menü überhaupt nichts zu tun hat.
Die Ausgabe der Items erfolgt an späterer Stelle in einer foreach-Schleife. Wie das mit dem htmlbuffer-output und den nav*on/off files gemacht ist, habe ich noch nicht geblickt. Ist aber auch wieder unwichtig, weil wir das nicht brauchen, denn wir geben ja im DHTML-Menü aus. Wir bedienen uns also an der Stelle, wo im DHTML-Menü die statischen Links stehen, des Arrays und lesen es aus. Nach dem Senden mit php echo sind es für den Browser ja auch statische Links und deshalb wird es so auch funktionieren, denke ich. Übrigens dieselbe Stelle, in der ich auch per Fallunterscheidung prüfe, ob ein User eingeloggt ist und ich die URL mit https statt mit http ausgebe.
Bitte korrigier mich, falls ich einen Denkfehler gemacht habe. Wie gesagt, ich habe mir die Lösung bisher nur für die Hauptnavi überlegt. Der weiterführende Gedanke, die Artikellisten als Aufklappebenen einzubinden, lässt sich vermutlich auch realisieren. Aber dazu müsste ich mir die Funktionsweise der Artikellisten erstmal ansehen.
Du sagst, Du hättest diese DHTML-Lösung schon statisch als Modul eingebunden (oder nur als HTML-Code im Layout?). Falls Du es bereits als Modulausgabe hast und es statisch funktioniert, könntest Du vielleicht den Code posten oder mir mailen? Das würde für diesen Teil die Gefahr mindern, dass ich Synthaxfehler reinhaue und so Zeit sparen. Ich sagte ja schon, ich hab noch nicht so viel Übung im Codieren von PHP und muss dauernd noch nach der Synthax schauen. Was nicht heisst, ich könnte nicht programmieren.
Nur, wenn es bei Dir als Modul laufen sollte - was machst Du denn, falls sich an den Links was ändert bzw. neue Artikel dazukommen. Änderst Du dann jedesmal das Modul? Na ja, die Frage kann ich mir eigentlich selbst beantworten ;o)) ... da müssen eben die SQL-Abfragen rein.
Ich muss dabei zugeben, diese Sache mit den Menüs hatte bisher bei mir eigentlich nicht Prio 1. Da gibt´s noch ganz andere tricky Angelegenheiten, die mich viel mehr drücken, z. B. das soweit als möglich integrative Andocken von osCommerce an Contenido (oder war´s umgekehrt??). Ausserdem CRM, FiBu, WaWi. Und jede Menge profane Fleissarbeit wie weitere Inhalte für meine in Entwicklung befindliche kommerzielle Site, damit sie endlich livegehen kann. Wenn Du das aber sehr dringend brauchst, z. B. für einen Kunden, kann ich es vielleicht vorziehen. Man bräuchte eben 7 Leben ...







Grüsse von Andreas
-
- Beiträge: 11
- Registriert: Di 22. Jun 2004, 09:01
- Wohnort: Köln
- Kontaktdaten:
**grübel**
Emceechen:
Hoffe, ich bin Dir nicht auf den Schlips getreten mit dem "Wald vor Bäumen nicht sehen". Sowas ist nie persönlich gemeint, geht mir ja dauernd auch so. Arrogant sollte es auch nicht klingen, das bin ich nicht. Damit würde ich mich auch auf dünnem Eis bewegen. Ging mir gerade so durch den Kopf.
Grüsse von Andreas
Hoffe, ich bin Dir nicht auf den Schlips getreten mit dem "Wald vor Bäumen nicht sehen". Sowas ist nie persönlich gemeint, geht mir ja dauernd auch so. Arrogant sollte es auch nicht klingen, das bin ich nicht. Damit würde ich mich auch auf dünnem Eis bewegen. Ging mir gerade so durch den Kopf.
Grüsse von Andreas
Nein, ach Quatsch,
du hast da schon recht gehabt. Ich war nur nicht mehr an der Arbeit und konnte deshalb nicht auf dein Post reagieren.
Bei mir ist das folgendermaßen (muß etwas weiter ausholen):
Ich bin momentan in einem Praktikumsverhältniss über das ich (hoffentlich, wenn alles gut läuft) an eine Ausbildungsstelle zum Mediendesigner komme. Das Problem in meiner Firma ist das ich mich komplett selbst ausbilden muß, weil keiner hier ist der das kann. Nun will man meine Einstellung daran festmachen ob ich es schaffe die Firmenwebsite von statisch auf dynamisch mit CMS und neuem Design umzubauen und das bis Ende des Praktikums. Als ich hier her kam hatte ich weder mit CMS noch PHP noch mysql je richtig gearbeitet, deswegen sehe ich viele Dinge noch etwas zu kompliziert, oder habe Denkfehler drin. Eingebaut hatte ich die Navi als Modul noch nicht, hatte sie nur testweise mal in den HTML- Code integriert. Das war so ziemlich am Anfang, und da hatte ich noch keine Ahnung wie ich das als Modul integrieren könnte, aber jetzt, nachdem ich mir deine Gedanken nochmal zu Gemüte geführt habe denke ich das sollte so eigentlich gut machbar sein, aber Priorität hat für mich momentan das das Design meiner Seite gut wird, denn den Inhalt habe ich soweit schon fertig, nur ist man hier mit dem Aussehen noch nicht so ganz zufrieden, und das muß ich unbedingt noch hinkriegen, ich würd nämlich gern hierbleiben
Deshalb kann ich mich auch im Moment nicht so sehr um diese Navi kümmern, aber ich versuch's auf jeden Fall mal. Danke dir auch erstmal sehr für deinen Denkanstoß, gutes Gelingen weiterhin,
Michael
du hast da schon recht gehabt. Ich war nur nicht mehr an der Arbeit und konnte deshalb nicht auf dein Post reagieren.
Bei mir ist das folgendermaßen (muß etwas weiter ausholen):
Ich bin momentan in einem Praktikumsverhältniss über das ich (hoffentlich, wenn alles gut läuft) an eine Ausbildungsstelle zum Mediendesigner komme. Das Problem in meiner Firma ist das ich mich komplett selbst ausbilden muß, weil keiner hier ist der das kann. Nun will man meine Einstellung daran festmachen ob ich es schaffe die Firmenwebsite von statisch auf dynamisch mit CMS und neuem Design umzubauen und das bis Ende des Praktikums. Als ich hier her kam hatte ich weder mit CMS noch PHP noch mysql je richtig gearbeitet, deswegen sehe ich viele Dinge noch etwas zu kompliziert, oder habe Denkfehler drin. Eingebaut hatte ich die Navi als Modul noch nicht, hatte sie nur testweise mal in den HTML- Code integriert. Das war so ziemlich am Anfang, und da hatte ich noch keine Ahnung wie ich das als Modul integrieren könnte, aber jetzt, nachdem ich mir deine Gedanken nochmal zu Gemüte geführt habe denke ich das sollte so eigentlich gut machbar sein, aber Priorität hat für mich momentan das das Design meiner Seite gut wird, denn den Inhalt habe ich soweit schon fertig, nur ist man hier mit dem Aussehen noch nicht so ganz zufrieden, und das muß ich unbedingt noch hinkriegen, ich würd nämlich gern hierbleiben

Deshalb kann ich mich auch im Moment nicht so sehr um diese Navi kümmern, aber ich versuch's auf jeden Fall mal. Danke dir auch erstmal sehr für deinen Denkanstoß, gutes Gelingen weiterhin,
Michael
-
- Beiträge: 11
- Registriert: Di 22. Jun 2004, 09:01
- Wohnort: Köln
- Kontaktdaten:
Emceechen
ok, irgendwann in den nä. Wochen werde ich schon dazu kommen und poste ggf. positive Ergebnisse. Falls Du vorher schon weiter bist, kannst Du es ja ebenfalls mitteilen.
Hoffentlich verarscht Dich Dein Praktikumsgeber nicht, und Du sollst nur den billigen Jakob abgeben, denn sehr seriös hören sich Statements dieser Art für mich nicht an. Zumindest könnten Sie Deine Ergebnisse für ein Taschengeld einstreichen und Dich trotzdem nicht einstellen. Ich seh das so: Vielleicht meinen sie es ja als die grosse Ausnahme unter vielen tatsächlich ehrlich und dann ist es gut. Für den Fall, dass es anders ist, könntest Du Dich absichern und dafür sorgen, dass Du zumindest ein Dir zustehendes angemessenes Entgelt erhältst, falls Deine Leistungen trotz einer Nichteinstellung weiterhin eingesetzt werden sollen. Ich gebe Dir gerne Hinweise, was machbar ist und wie Du dabei auch rechtlich auf der sicheren Seite bleibst. Doch solche Dinge gehören wg. mangelnder Relevanz nicht hier ins Forum. Falls Du Dir Sorgen machst, Du könntest abgezockt werden, kannst Du mich gern privat anmailen unter webmaster@regiodrom.de.
Das Gute daran ist, auch wenn es vielleicht mal Lehrgeld kostet, die intensive Beschäftigung mit diesen IT-Themen macht Dich auf keinen Fall dümmer und bringt auch persönlich langfristigen Nutzen.
Falls ich mal mit irgendeinem techn. Rat während der Realisierung dienen kann, jederzeit gern. Bin auch recht fit in Sachen Grafik/Layout. Also weiter viel Erfolg dabei ...
Grüsse aus Köln
Andreas
Hoffentlich verarscht Dich Dein Praktikumsgeber nicht, und Du sollst nur den billigen Jakob abgeben, denn sehr seriös hören sich Statements dieser Art für mich nicht an. Zumindest könnten Sie Deine Ergebnisse für ein Taschengeld einstreichen und Dich trotzdem nicht einstellen. Ich seh das so: Vielleicht meinen sie es ja als die grosse Ausnahme unter vielen tatsächlich ehrlich und dann ist es gut. Für den Fall, dass es anders ist, könntest Du Dich absichern und dafür sorgen, dass Du zumindest ein Dir zustehendes angemessenes Entgelt erhältst, falls Deine Leistungen trotz einer Nichteinstellung weiterhin eingesetzt werden sollen. Ich gebe Dir gerne Hinweise, was machbar ist und wie Du dabei auch rechtlich auf der sicheren Seite bleibst. Doch solche Dinge gehören wg. mangelnder Relevanz nicht hier ins Forum. Falls Du Dir Sorgen machst, Du könntest abgezockt werden, kannst Du mich gern privat anmailen unter webmaster@regiodrom.de.
Das Gute daran ist, auch wenn es vielleicht mal Lehrgeld kostet, die intensive Beschäftigung mit diesen IT-Themen macht Dich auf keinen Fall dümmer und bringt auch persönlich langfristigen Nutzen.
Falls ich mal mit irgendeinem techn. Rat während der Realisierung dienen kann, jederzeit gern. Bin auch recht fit in Sachen Grafik/Layout. Also weiter viel Erfolg dabei ...
Grüsse aus Köln
Andreas