Seite 1 von 1

Navi erweitern

Verfasst: Do 8. Mär 2007, 16:59
von barni
Hallo Leute,

habe eine Navi, die ich um 2 Ebenen nach unten erweitern will.
Aber die 5. Ebene zeigt er mir nur an, wenn ich einen Artikel in der 5. Ebene direkt anspringe. Nicht, wenn ich den über-Menüpunkt anklicke.
Könnt Ihr mir helfen? Was ist Falsch?

Besten Dank Barni


Hier der Code:

Code: Alles auswählen

<?php
if (is_array($tmp_data['sub'])) {
	$data = $tmp_data;
	echo '<table cellspacing="0" cellpadding="0" border="0">';
	foreach ($data['sub'] as $key => $data) {

		/* 2. Navigations Ebene */
		$tpl->reset();
		$tpl->set('d', 'NAME', $data['name']);
		$tpl->set('d', 'TARGET', $data['target']);
		$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat=' . $data['idcat']));
		$tpl->next();

		if ($idcat == $data['idcat'] || is_array($data['sub'])) {
			$tpl->generate('templates/navsecondO_on.html');
		} else {
			$tpl->generate('templates/navsecondO_off.html');
		}
		//---------------------------------------- 
		if (is_array($data['sub'])) {
			foreach ($data['sub'] as $key => $data) {
				/* 3. Navigations Ebene */
				$tpl->reset();
				$tpl->set('d', 'NAME', $data['name']);
				$tpl->set('d', 'TARGET', $data['target']);
				$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat=' . $data['idcat']));
				$tpl->next();

				if ($idcat == $data['idcat']) {
					$tpl->generate('templates/navthird_on.html');
				} else {
					$tpl->generate('templates/navthird_off.html');
				}
				if (is_array($data['sub'])) {
					foreach ($data['sub'] as $key => $data) {
						// 4. Navigations Ebene */ 
						$tpl->reset();
						$tpl->set('d', 'NAME', $data['name']);
						$tpl->set('d', 'TARGET', $data['target']);
						$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat=' . $data['idcat']));
						$tpl->next();

						if ($idcat == $data['idcat']) {
							$tpl->generate('templates/navfour_on.html');
						} else {
							$tpl->generate('templates/navfour_off.html');

						}
						if (is_array($data['sub'])) {
							// 5. Navigationsebene 
							foreach ($data['sub'] as $key => $data) {

								$tpl->reset();
								$tpl->set('d', 'NAME', $data['name']);
								$tpl->set('d', 'TARGET', $data['target']);
								$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat=' . $data['idcat']));
								$tpl->next();

								if ($idcat == $data['idcat']) {
									$tpl->generate('templates/navfife_on.html');
								} else {
									$tpl->generate('templates/navfive_off.html');
								}
							} // end if 
						} // end foreach 
					} // end if 
				} // end foreach 

			} // end if 
		} // end foreach 

	} // end if 
	//--------------------------- 
} // end for each 
echo '</table>';
} // end if 
?>

Verfasst: Do 8. Mär 2007, 17:04
von emergence
hmm...
formatierter quelltext erhöht die lesbarkeit ungemein...

Code: Alles auswählen

                        if ($idcat == $data['idcat']) { 
                           $tpl->generate('templates/navfife_on.html'); 
                        } else { 
                           $tpl->generate('templates/navfive_off.html'); 
                        }
und die dateinamen der templates stimmen wirklich ?

Verfasst: Do 8. Mär 2007, 19:14
von barni
Ja sorry blöder Dreamweaver ;)

na ja die Templates hab ich halt so genannt und entsprechend angelegt.
Bitte nicht hauen, weil sie eigentl. fifth heissen sollten ;) aber daran wirds ja nicht liegen^^

Danke dir!

Verfasst: Do 8. Mär 2007, 21:19
von emergence
weiss nicht, möglich...
besonders dann wenn eines der templates leer ist ;-) zb das nicht aktive...
kann aber auch sein das die 5 kategorie keinen startartikel hat...

Verfasst: Do 8. Mär 2007, 22:23
von barni
Hallo,

also das isses nicht. Es gibt 2 richtig angelegte Templates (das der 4. Ebene einfach kopiert - der einfachheit halber)
Und jede Kategorie hat Startartikel.
In Der Datenbank werden sie auch korrekt mit Ebene 5 angezeigt.
Es scheint so, als müsste man noch wo anderes definieren, dass eine Ebene mehr ausgelesen wird, aber nicht in dem Hauptnavi Code und nicht in dem Code, den ich vorher gepostet habe.

Gibt es da noch einen Ansatzpunkt?

Mir fällt nix mehr ein und mein Php Checker steht auch voll auf dem Schlauch, da er sich mit Contenido net auskennt.

Vielen Lieben Dank!

Barni

Verfasst: Do 8. Mär 2007, 22:42
von pit
du verwendest unterschiedliche Schreibweisen für "navfife... bzw. navfive..." vielleicht liegts daran?

Gruß Pit

Verfasst: Do 8. Mär 2007, 22:48
von barni
Hallo,

ne leider nicht ;)
Hab mich vertippt, aber hatte den korrigierten Code nimmer reingestellt.
Das ist korrekt. heissen beide navfive_on und navfive_off sowohl im template wie in der php.

Trotzdem merci.

LG Basti

Verfasst: Do 8. Mär 2007, 22:51
von barni
Das Eigenartige ist ja, dass er die Kategorien anzeigt, wenn ich den Artikel der 5. Ebene direkt öffne, aber er klappt die Ebene einfach nicht auf, wenn ich die 4. Ebene öffne.

Code: Alles auswählen

1)
- - 2)
- - - 3)
- - - - 4) (bis hier wird alles korrekt angezeigt)
- - - - - 5) (erscheint nur bei direktem Link auf z.Bsp 5.1 aber nicht bei Klick auf 4)
so was doofes.

Danke euch!