Fehler in der Hauptnavigation (4.6.23)

Gesperrt
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Fehler in der Hauptnavigation (4.6.23)

Beitrag von baumpaul » Do 17. Jan 2008, 11:48

Bild

Wie man sieht funktioniert etwas ab der dritten Ebene nicht mehr.

Der Navigationspunkt Vertraulich müsste in der ul.e3 sein.

wosch

Beitrag von wosch » Do 17. Jan 2008, 14:43

Könnte ein Teil auch dieses Problemes sein:

http://contenido.org/forum/viewtopic.php?t=19518

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Do 17. Jan 2008, 15:14

wosch hat geschrieben:Könnte ein Teil auch dieses Problemes sein:

http://contenido.org/forum/viewtopic.php?t=19518
ja, das Problem ich mir auch aufgefallen.

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Fr 18. Jan 2008, 20:25

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


Alt

Code: Alles auswählen

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
Neu:

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 */

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Mo 21. Jan 2008, 08:10

Was soll das denn bewirken? Wir brauche keine Klasse e. Das Problem ist vielmehr dass die li-Tags nicht im ul-Tag sind, sondern erst danach kommen.

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Mo 21. Jan 2008, 08:17

Ups, mein Fehler. War schon spät :)

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Mi 23. Jan 2008, 16:38

Wird an dem Problem gearbeitet? Ist doch ein ziemlicher BUG. So ist die neue Version für mich überhaupt nicht einsetzbar.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 23. Jan 2008, 21:33

baumpaul hat geschrieben:Wird an dem Problem gearbeitet?
hmm.. ich glaub nicht...

schnapp dir doch in der zwischenzeit eine andere navigation aus dem forum...
*** make your own tools (wishlist :: thx)

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Mi 23. Jan 2008, 22:22

jooo, muss i wohl machn. Die aus der alten Version geht hier ja nicht mehr. Mal schauen ob die andere noch funktionieren.

djavet
Beiträge: 264
Registriert: Do 22. Jan 2004, 11:31
Kontaktdaten:

Beitrag von djavet » Mo 7. Apr 2008, 12:08

Hallo

Wir sind im April jetzt. Gibt es jetzt ein Fix für diese Bug?

Danke im Voraus,
Dom

Meykoenig
Beiträge: 11
Registriert: Do 21. Sep 2006, 08:54
Wohnort: Stuttgart
Kontaktdaten:

Fehler behoben?!

Beitrag von Meykoenig » Di 3. Jun 2008, 16:28

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:

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
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

Code: Alles auswählen

$tpl->generate('templates/mnavi_end.html', 0, 0);
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

Code: Alles auswählen

if( is_array($data['sub']) ) {
nun

Code: Alles auswählen

if( is_array($data['sub']) && count($data['sub'])>0) {
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 :oops: ,
bin bei den Arbeiten daran auf das Problem und diese Lösung gestoßen)

Meykoenig
Beiträge: 11
Registriert: Do 21. Sep 2006, 08:54
Wohnort: Stuttgart
Kontaktdaten:

Kleiner Fehler in der Korrektur

Beitrag von Meykoenig » Do 17. Jul 2008, 10:32

Upps :oops: , 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

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'])) ) ) {
Das XML ist nun entsprechend geändert.

ralfhaerter
Beiträge: 4
Registriert: So 20. Apr 2008, 15:28
Kontaktdaten:

Danke, danke, danke ...

Beitrag von ralfhaerter » Mi 15. Apr 2009, 05:57

[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?

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Fehler in der Hauptnavigation (4.6.23)

Beitrag von GaMbIt_ » Mi 15. Apr 2009, 12: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...

Oldperl
Beiträge: 4256
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Fehler in der Hauptnavigation (4.6.23)

Beitrag von Oldperl » Mi 15. Apr 2009, 22:28

@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. :roll:

PHP4 ist bereits deprecated
Wikipedia hat geschrieben:Am 13. Juli 2007 hat das Entwickler-Team angekündigt, die Unterstützung für PHP 4 bis zum August 2008 einzustellen
Guckst du hier :arrow: http://de.wikipedia.org/wiki/PHP
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

Gesperrt