[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Menüpunkte verschwinden bei IE8 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Menüpunkte verschwinden bei IE8

6. Mär 2011, 19:02

Hallo!
Ich hab vor einiger Zeit eine Seite in Redaxo 4.1.0. gemacht.
Da ich hauptsächlich mit FF arbeite , trotzdem aber verschiedenste Versionen von IE zum testen verwende, bin ich erst neulich dahintergekommen das bei der Verwendung von IE8 seltsame Vorgänge in der Navigation (2 bzw. 3. Ebene) stattfinden.
Zum Beispiel hier:
http://www.bodeninfo.net/index.php?article_id=93

Verwendet man FF sieht die Seite genauso aus wie ich will, bei IE7 ebenfalls.
Benutzt man jedoch IE8 verschwinden die Links der 3. Naviebene, werden als 2.Ebene interpretiert und das was dann vormals 1. Ebene war, hat eine fehlerhafte Formatierung...

Der verwendete Navi-Code sieht so aus:

Code: Alles auswählen

<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

// GET CURRENTS
$path1 = (isset ($PATH[1])) ? $PATH[1] : '';
$path2 = (isset ($PATH[2])) ? $PATH[2] : '';
$path3 = (isset ($PATH[3])) ? $PATH[3] : '';
$sitePath = '';
$titlePath = '';
$navLeftCol = '';

/* START 1st level categories */
$navLeftCol .= '<div id="navheight_vert" >';
$navLeftCol .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
		
	if ($lev1->isOnline()):
		if ($lev1->getId() == $path1) {
			$navLeftCol .=  '<li class="active"><a class="current"  href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
			if ($lev1->getId() != "1") {
				$sitePath .= ' &#8250;&#8250; <a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
			}
			$titlePath .= ' >> '.$lev1->getName();
		}
		// 2nd level - no active link
		else {
			$navLeftCol .= '<ul><li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li></ul>';
		}
			
		// 1st level had categories? -> go on 
		$lev1Size = sizeof($lev1->getChildren());
	
		if ($lev1->getId() == $path1) {
		if ($lev1Size != "0"):
			$navLeftCol .= '<ul class="nav2nd">';
			//$navLeftCol .= '<li><strong>Unterkategorien</strong></li>';


			// START 2nd level categories 
			foreach ($lev1->getChildren() as $lev2):
						
				if ($lev2->isOnline()):
	
				// 2nd level - active link
					if ($lev2->getId() == $path2) {
                                                $navLeftCol .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
						$sitePath .= ' &#8250;&#8250; <a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
						$titlePath .= ' >> '.$lev2->getName();
					}
					// 2nd level - no active link
					else {
						$navLeftCol .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
					}
					
    			// 2st level had categories? -> go on 
      		$lev2Size = sizeof($lev2->getChildren());
	
      		if ($lev2->getId() == $path2) {
      		if ($lev2Size != "0"):
	      		$navLeftCol .= '<ul class="nav3rd">';
		      	//$navLeftCol .= '<li><strong>Unterkategorien2</strong></li>';
		      	
		      	// START 3nd level categories 
		      	foreach ($lev2->getChildren() as $lev3):
						
		      		if ($lev3->isOnline()):
	
		      		// 3nd level - active link
			       		if ($lev3->getId() == $path3) {
				      		$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'&nbsp;&nbsp;</a></li>';
				      		$sitePath .= ' &#8250;&#8250; <a href="'.$lev3->getUrl().'">'.$lev3->getName().'&nbsp;&nbsp;</a>';
				      		$titlePath .= ' >> '.$lev3->getName();
				      	}
				      	// 3nd level - no active link
			       		else {
				      		$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'&nbsp;&nbsp;</a>';
				      	}
				      	
			       	endif;			
		  	  $navLeftCol .= '</li>';
		      endforeach;
                     $navLeftCol .= '</ul>';
		    	// END 3nd level categories		  	  
		      endif;
          $navLeftCol .= '</li>';					
		      }
  		    // END 2nd level categories 
  	   	endif; // END by if ($lev1Size != "0"):	  		    
		  endforeach;
		  //$navHeader .= '</li>';  
    endif;
    if ($navLeftCol != "") $navLeftCol .= '</ul>';
  	}
  endif; // END by if ($lev1->isOnline())
}
$navLeftCol .= '</li>';
$navLeftCol .= '</ul>';
$navLeftCol .= '</div>';
// END 1st level categories



if ($REX['CUR_CLANG'] == 1) $breadcrumb = 'Site: <a href="/index.php?clang=1">Startpage</a> '.$sitePath;
else $breadcrumb = 'Standort: <a href="/index.php">Startseite</a> '.$sitePath;

?>
Hat irgendjemand eine Idee wie ich das wieder sauber hinbekomme - bzw. hatte jemand schon sowas?
Grüße,
Robert

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

Re: Menüpunkte verschwinden bei IE8

6. Mär 2011, 19:26

hi robert
da karneval und ich auch gleich wieder wech bin :)
erst mal

Code: Alles auswählen

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
damit geht der IE8 in den kompatibilitäts modus... und dann läuft es.
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: Menüpunkte verschwinden bei IE8

6. Mär 2011, 20:00

Ok - vielen Dank für deine prompte Antwort!

Die erste Gefahr ist mal gebannt, nach diesem "Hack" sind die Menüpunkte vorerst mal da, aber um einiges kleiner...
Sieht so aus als wär da noch etwas gröber faul - deinem "erst mal" entnehme ich das du da viell. nochmal später einen Blick drauf wirfst?!? :|

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: Menüpunkte verschwinden bei IE8

7. Mär 2011, 14:15

Dein HTML ist fehlerhaft. Korrigier mal alle Fehler, die der http://validator.w3.org/ dir anzeigt, erst dann kann man dir sinnvolle Tips geben (falls es dann überhaupt noch nötig ist).

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: Menüpunkte verschwinden bei IE8

7. Mär 2011, 15:48

Hallo Ingo,
Ich weiß - das liegt daran, das im template der Navigation irgendwo ein Knoten mit <ul><li></li></ul> usw. ist, und genau DEN finde ich nicht...

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: Menüpunkte verschwinden bei IE8

7. Mär 2011, 16:25

Zeile 15: $navLeftCol .= '<ul class="nav1st">';
Zeile 28: $navLeftCol .= '<ul><li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li></ul>';

In Zeile 28 darf kein <ul> oder </ul> kommen.

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: Menüpunkte verschwinden bei IE8

7. Mär 2011, 17:02

Ok, das hab ich geändert, aber der IE8 kommt damit noch immer nicht zurecht *kopfkratz*

Maidenaustria
Beiträge: 293
Registriert: 7. Mär 2006, 10:43
Wohnort: Österreich

Re: Menüpunkte verschwinden bei IE8

10. Mär 2011, 22:44

Update!
So, jetzt hab ich mir die valide Navigation aus dem DL-Bereich gekrallt und an meine Struktur angepasst - nun funktioniert die 3.Naviebene und ich benötige den IE7-Simulations Hack nicht mehr.

Jetzt trennen mich nur mehr einige li-tags von w3C-konformität ;)

So sieht's jetzt aus:

Code: Alles auswählen

<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];
$path4 = $PATH[4];
$path5 = $PATH[5];


/* START 1st level categories */
$navLeftCol .= '<div id="navheight_vert" >';
$navLeftCol .=  '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
		
	if ($lev1->isOnline()):
		if ($lev1->getId() == $path1) {
			$navLeftCol .=  '<li class="active"><a class="current"  href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
			if ($lev1->getId() != "1") {
				$sitePath .= ' &#8250;&#8250; <a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
			}
			$titlePath .= ' >> '.$lev1->getName();
		}
		// 2nd level - no active link
		else {
			$navLeftCol .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
		}
			
		// 1st level had categories? -> go on 
		$lev1Size = sizeof($lev1->getChildren());
	
		if ($lev1->getId() == $path1) {
		if ($lev1Size != "0"):
			$navLeftCol .= '<ul class="nav2nd">';
			//$navLeftCol .= '<li><strong>Unterkategorien</strong></li>';


			// START 2nd level categories 
			foreach ($lev1->getChildren() as $lev2):
						
				if ($lev2->isOnline()):
	
				// 2nd level - active link
					if ($lev2->getId() == $path2) {
						$navLeftCol .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
						$sitePath .= ' &#8250;&#8250; <a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
						$titlePath .= ' >> '.$lev2->getName();
					}
					// 2nd level - no active link
					else {
						$navLeftCol .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
					}
					
    			// 2st level had categories? -> go on 
      		$lev2Size = sizeof($lev2->getChildren());
	
      		if ($lev2->getId() == $path2) {
      		if ($lev2Size != "0"):
	      		$navLeftCol .= '<ul class="nav3rd">';
		      	//$navLeftCol .= '<li><strong>Unterkategorien2</strong></li>';
		      	
		      	// START 3nd level categories 
		      	foreach ($lev2->getChildren() as $lev3):
						
		      		if ($lev3->isOnline()):
	
		      		// 3nd level - active link
			       		if ($lev3->getId() == $path3) {
				      		$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'&nbsp;&nbsp;</a></li>';
				      		$sitePath .= ' &#8250;&#8250; <a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
				      		$titlePath .= ' >> '.$lev3->getName();
				      	}
				      	// 3nd level - no active link
			       		else {
				      		$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'&nbsp;&nbsp;</a></li>';
				      	}
				      	
			       	endif;			
		  	  //$navLeftCol .= '</li>';
		      endforeach;
		      $navLeftCol .= '</ul>';
		    	// END 3nd level categories		  	  
		      endif;
           $navLeftCol .= '</li>';					
		      }
  		    // END 2nd level categories 
  	   	endif; // END by if ($lev1Size != "0"):	  		    
		  endforeach;
		  //$navHeader .= '</li>';  
    endif;
    if ($navLeftCol != "") $navLeftCol .= '</ul>';
  	}
  endif; // END by if ($lev1->isOnline())
}
$navLeftCol .= '</ul>';
$navLeftCol .= '</div>';

// END 1st level categories 

if ($REX['CUR_CLANG'] == 1) $breadcrumb = 'You are here: <a href="/index.php?clang=1">Startpage</a> '.$sitePath;
else $breadcrumb = 'Sie sind hier: <a href="/index.php">Startseite</a> '.$sitePath;



?>

Zurück zu „Allgemeines [R4]“