Seite 1 von 1

BottomNavigation: aktiven link formatieren (gelöst)

Verfasst: Mo 14. Apr 2008, 18:33
von muddy
Hallo Leute,

ich würde gerne dem aktiven link in der BottomNavigation eine CSS-Klasse zuweisen.
Ich murks schon seit Stunden rum, habe inzwischen auch geschafft, eine Klasse zuzuweisen.

Jetzt habe ich aber noch das Problem, dass ich bei meinem Lösungsansatz nun auch hinter dem letzten Navigationspunkt einen senkrechten Strich habe, dieser soll jedoch nur zwischen den Navigationspunkten erscheinen.

Hier das Originalmodul:

Code: Alles auswählen

<?php
/***********************************************
* Bottom Navigation Output
*
* Author      :     Willi Man
* Copyright   :     four for business AG
* Version	  : 	1.0
* Created     :     17-03-2005
* Modified    :     05-08-2005, Andreas Lindner
************************************************/

#System properties in use:
#Type: navigation, Name: idcat_bottomnavi
#Contains idcat of tree to be displayed in bottom navigation


#Includes
cInclude("frontend", "includes/functions.navigation.php");
cInclude('classes', 'class.template.php');

#Get settings	
$cApiClient = new cApiClient($client);
$catStart = $cApiClient->getProperty('navigation', 'idcat_bottomnavi');

if (!is_object($oClient)) {
	$oClient = new cApiClient($client);
}

#Get sub categories
$navigation = array ();
$navigation = createNavigationArray($catStart, $db);

#Output sub categories
$output = '';
if (count($navigation) > 0) {
	foreach ($navigation as $key => $data) {
		$output .= '<a href="'.$sess->url("front_content.php?idcat=".$data['idcat']).$data['name'].'">'.$data['name'].'</a> | ';
	}
}
if (strlen($output) > 0) {
	$output = substr($output, 0, strlen($output) - 3);
}

echo $output;
?>
Ich habe nun

Code: Alles auswählen

foreach ($navigation as $key => $data) {
		$output .= '<a href="'.$sess->url("front_content.php?idcat=".$data['idcat']).'" class="topnav_link" title="'.$data['name'].'">'.$data['name'].'</a> | ';
	}
durch

Code: Alles auswählen

foreach ($navigation as $key => $data) 
    { 
       if ($data['idcat']==$idcat) 
       {       
          echo '<span class="active">'; 
       } 
      echo '<a href="'.$sess->url("front_content.php?idcat=".$data['idcat']).'" title="'.$data['name'].'">'.$data['name'].'</a></span> | '; 
    } 
ersetzt.

Wie kriege ich nun noch diesen senkrechten Strich hinter dem letzten Navigationspunkt weg? Gibt es noch einen anderen Lösungsansatz, um dem aktiven Navigationspunkt eine Klasse zuzuweisen?

Kann mir jemand einen Tipp geben? Das wäre super!

Viele Grüße aus Berlin von
Muddy

Verfasst: Di 15. Apr 2008, 14:39
von emergence
verwende mal folgendes

Code: Alles auswählen

foreach ($navigation as $key => $data) 
{ 
    $sLink = '<a href="'.$sess->url("front_content.php?idcat=".$data['idcat']).'" title="'.$data['name'].'">'.$data['name'].'</a>';
    $output.= (($data['idcat']==$idcat) ? '<span class="active">'.$sLink.'</a>' : $sLink).' | ';
    unset($sLink); 
}    

Verfasst: Mi 16. Apr 2008, 12:11
von muddy
Hallo emergence,

danke für den Tipp, aber leider funktioniert`s nicht.

Ich bekomme nur ein rotes Lämpchen im OUTPUT....schade...hast Du vielleicht noch `ne Idee...???

Grüße von
Muddy

Verfasst: Mi 16. Apr 2008, 12:24
von emergence
probiers nochmal... da war ein : zu viel...

Verfasst: Mi 16. Apr 2008, 12:54
von muddy
Super, das war`s!

Es hat aber zunächst dennoch nicht funktioniert, habe im Quellcode nachgeschaut und gesehen, dass das </a> zweimal vorhanden war, das </span> dagegen fehlte.

Habe nun in Deinen Codeschnippsel einfach das </a> durch ein </span> ersetzt und nun klappt`s. Hier nochmal der Code:

Code: Alles auswählen

foreach ($navigation as $key => $data)
{
    $sLink = '<a href="'.$sess->url("front_content.php?idcat=".$data['idcat']).'" title="'.$data['name'].'">'.$data['name'].'</a>';
    $output.= (($data['idcat']==$idcat) ? '<span class="active">'.$sLink.'</span>' : $sLink).' | ';
    unset($sLink);
}
Vielen vielen Dank für Deine superschnelle Hilfe!
Dieses Forum ist der Hammer!!!

Schöne Grüße aus Berlin
Muddy