Fehler in der Hauptnavigation (4.6.23)
Fehler in der Hauptnavigation (4.6.23)
Wie man sieht funktioniert etwas ab der dritten Ebene nicht mehr.
Der Navigationspunkt Vertraulich müsste in der ul.e3 sein.
ja, das Problem ich mir auch aufgefallen.wosch hat geschrieben:Könnte ein Teil auch dieses Problemes sein:
http://contenido.org/forum/viewtopic.php?t=19518
einer temporäre Lösung wäre das folgende
(ist aber supoptimal | nutze selbst ein optionaleres Modul)
ersätzt sämtliche UL-Tag mit der Class "e"+Nummer
AltNeu:
(ist aber supoptimal | nutze selbst ein optionaleres Modul)
ersätzt sämtliche UL-Tag mit der Class "e"+Nummer
Alt
Code: Alles auswählen
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
Code: Alles auswählen
/* Read out buffer */
$html = ob_get_contents();
$suchmuster = "|<ul class=\"e[0-9]*\">(\\r)?\\n</ul>|Uis";
$html = preg_replace($suchmuster, '', $html, -1 );
unset($suchmuster);
/* Clean buffer */
hmm.. ich glaub nicht...baumpaul hat geschrieben:Wird an dem Problem gearbeitet?
schnapp dir doch in der zwischenzeit eine andere navigation aus dem forum...
*** make your own tools (wishlist :: thx)
Fehler behoben?!
Das Problem ist, wie mir scheint, das die Ebene 2 zu früh mit einem </ul></li> beendet wird bevor noch folgende Elemente der tieferen Ebene 3 ausgeführt werden. Bei den Ebenen 3-5 dürfte es das gleiche sein.
Problem ist nach meiner Ansicht dieser Code-Teil:
b.z.w. das Gegenstück in den anderen Ebenen.
Hier wird anscheinend geschaut auf die Ebene zu Ende ist und dann mit </ul></li> geschlossen. Dabei geht es meiner Ansicht nach einfacher: Die Ebene ist zu Ende wenn die Schleife zu Ende ist
Ich habe nun den Code oben auskommentiert und schließe die Ebene durch Aufruf des Templates nach dem Ende der jeweiligen foreach()-Schleife ab.
Allerdings muss man die Prüfung vor dem Beginn jeder foreach-Schleife ab Ebene 3 erweitern um zu verhindern das die Schleife einmal durchlaufen wird auch wenn es keine tiefere Ebene gibt:
Statt
nun
Nun funktioniert die Hauptnavigation bei mir.
Das XML für die geänderte Version ist HIER zu finden.
(Die zugehörige Seite ist noch nicht ganz fertig ,
bin bei den Arbeiten daran auf das Problem und diese Lösung gestoßen)
Problem ist nach meiner Ansicht dieser Code-Teil:
Code: Alles auswählen
if( is_array( $second_subdata ) ) {
$last_cat = end( $second_subdata );
if( $data['idcat'] == $last_cat['idcat'] ) {
$tpl->generate('templates/mnavi_end.html', 0, 0);
} // end if
} // end if
Hier wird anscheinend geschaut auf die Ebene zu Ende ist und dann mit </ul></li> geschlossen. Dabei geht es meiner Ansicht nach einfacher: Die Ebene ist zu Ende wenn die Schleife zu Ende ist
Ich habe nun den Code oben auskommentiert und schließe die Ebene durch Aufruf des Templates
Code: Alles auswählen
$tpl->generate('templates/mnavi_end.html', 0, 0);
Allerdings muss man die Prüfung vor dem Beginn jeder foreach-Schleife ab Ebene 3 erweitern um zu verhindern das die Schleife einmal durchlaufen wird auch wenn es keine tiefere Ebene gibt:
Statt
Code: Alles auswählen
if( is_array($data['sub']) ) {
Code: Alles auswählen
if( is_array($data['sub']) && count($data['sub'])>0) {
Das XML für die geänderte Version ist HIER zu finden.
(Die zugehörige Seite ist noch nicht ganz fertig ,
bin bei den Arbeiten daran auf das Problem und diese Lösung gestoßen)
Kleiner Fehler in der Korrektur
Upps , da war noch ein kleiner Logik-Bug in der Korrektur.
Gibt es, nach dem es einen Ordner einer tieferen Ebene als 1 gegeben hat, weitere Ordner der Stufe 1 die keine Unter-Ordner haben so wird die Liste einmal zu viel geschlossen.
Um das zu vermeiden muss bei der Prüfung ob es eine zweite Ebene gibt nicht nur geprüft werden ob es ein Array gibt sondern auch ob es leer ist, da es bereits früher (sobald es tiefere Ebenen gab) angelegt wurde.
Also statt
Das XML ist nun entsprechend geändert.
Gibt es, nach dem es einen Ordner einer tieferen Ebene als 1 gegeben hat, weitere Ordner der Stufe 1 die keine Unter-Ordner haben so wird die Liste einmal zu viel geschlossen.
Um das zu vermeiden muss bei der Prüfung ob es eine zweite Ebene gibt nicht nur geprüft werden ob es ein Array gibt sondern auch ob es leer ist, da es bereits früher (sobald es tiefere Ebenen gab) angelegt wurde.
Also statt
Code: Alles auswählen
/* 2. Navigation level */
if( is_array($data['sub']) ) {
Code: Alles auswählen
/* 2. Navigation level */
if( (is_array($data['sub']) && !(empty($data['sub'])) ) ) {
-
- Beiträge: 4
- Registriert: So 20. Apr 2008, 15:28
- Kontaktdaten:
Danke, danke, danke ...
[quote="Meykoenig"]Das XML ist nun entsprechend geändert.[/quote]
Vielen Dank ... mein Lebensretter. ;-)
Der Auswertungsfehler und damit die falsche Auszeichnung zur Navigationsstruktur ist auch in der Version 4.6.24 enthalten gewesen.
Ich finde es sehr schade (* ist das die politisch-korrekte Formulierung für !"§$%&/*'+$ *), dass die 4.6.24 als letzte PHP4 / MySQL4 Version gerade in diesem Punkt nicht gepatched wurde.
Schliesslich haben noch längst nicht alle Hostingservices auf PHP5 / MySQL5 umgestellt. - Und was ist mit vorhandenen CMSs, die gelegentlich gewartet und erweitert werden sollen?
Vielen Dank ... mein Lebensretter. ;-)
Der Auswertungsfehler und damit die falsche Auszeichnung zur Navigationsstruktur ist auch in der Version 4.6.24 enthalten gewesen.
Ich finde es sehr schade (* ist das die politisch-korrekte Formulierung für !"§$%&/*'+$ *), dass die 4.6.24 als letzte PHP4 / MySQL4 Version gerade in diesem Punkt nicht gepatched wurde.
Schliesslich haben noch längst nicht alle Hostingservices auf PHP5 / MySQL5 umgestellt. - Und was ist mit vorhandenen CMSs, die gelegentlich gewartet und erweitert werden sollen?
Re: Fehler in der Hauptnavigation (4.6.23)
Ich kenne keinen Provider der nicht auch PHP5 anbietet...
Gibts bei Deinem keine Möglichkeit das per .htaccess umzuschalten?
Ein Provider der heute noch kein PHP5 anbietet arbeitet nicht zeitgemäss...
Zum patchen...
Irgendwann ist eine neue Verion dran und irgendwann muss auch einmal ein Schnitt gemacht werden...
Gibts bei Deinem keine Möglichkeit das per .htaccess umzuschalten?
Ein Provider der heute noch kein PHP5 anbietet arbeitet nicht zeitgemäss...
Zum patchen...
Irgendwann ist eine neue Verion dran und irgendwann muss auch einmal ein Schnitt gemacht werden...
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Fehler in der Hauptnavigation (4.6.23)
@GaMbIt_
es gibt noch genug "alten" Webspace, der mit PHP4 läuft und auch nicht vom Provider auf PHP5 umgestellt wird. Zumeist gibt es nicht mal die Möglichkeit eines Wechsels in ein neueres Paket oder ein Upgrade. Anbieten für neue Pakete tun es fast alle, aber Umstellen bei alten Paketen die wenigsten.
@ralfhaerter
ich muss meinem Vorredner insoweit zustimmen, das irgendwann bei jeder Software ein Punkt kommt, wo es neue Vorraussetzungen für diese gibt.
Viele Programme für Vista laufen auch nicht mehr auf Win98.
PHP4 ist bereits deprecated
Die Version 6 ist in der Entwicklung und daher muss jedes Script, auch aus Sicherheitsgründen, den Sprung auf eine neue Version vornehmen.
Gruß aus Franken
Ortwin
es gibt noch genug "alten" Webspace, der mit PHP4 läuft und auch nicht vom Provider auf PHP5 umgestellt wird. Zumeist gibt es nicht mal die Möglichkeit eines Wechsels in ein neueres Paket oder ein Upgrade. Anbieten für neue Pakete tun es fast alle, aber Umstellen bei alten Paketen die wenigsten.
@ralfhaerter
ich muss meinem Vorredner insoweit zustimmen, das irgendwann bei jeder Software ein Punkt kommt, wo es neue Vorraussetzungen für diese gibt.
Viele Programme für Vista laufen auch nicht mehr auf Win98.
PHP4 ist bereits deprecated
Guckst du hier http://de.wikipedia.org/wiki/PHPWikipedia hat geschrieben:Am 13. Juli 2007 hat das Entwickler-Team angekündigt, die Unterstützung für PHP 4 bis zum August 2008 einzustellen
Die Version 6 ist in der Entwicklung und daher muss jedes Script, auch aus Sicherheitsgründen, den Sprung auf eine neue Version vornehmen.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog