Baba: DANKE - Code verkürzen, bei Abfrage für aktiv für einen Link

Beitrag lesen

Danke an alle, so viele Antworten. Ich abe mir von jeder etwas rausgepickt und siehe da, man sieht wieder etwas vor lauter Bäumen. Ich habe etwas zu WIRR gedacht:

echo'<li><a '; if ($cat=='plugin') {echo' id="current" ';}
echo'href="index.php?cat=plugin">Plugins</a></li>';

  
Zunächst: ich würde das immer templatebasiert machen. Das heisst, ich würde versuchen ein Template für die Listeneinträge erstellen und mit Platzhaltern versehen, welches ich dann parse. Php und html so per echo zu verbinden halte ich für keine so gute Idee.  
  
Dennoch: Straight forward würde ich Dir noch etwas anderes vorschlagen, da Du ja wahrscheinlich nicht nur ein Item hast:  
  
~~~php
// Menü-Inhalt definieren: "cat_id" => "Label"  
$MenuItems = array(  
  "plugin" => "Plugins",  
  "demo"  => "Demo",  
  "download" => "Downloads",  
);  
  
// aktuellen Menüpunkt ermitteln  
$CatSelected  = $_GET["cat"];  
  
// Ausgabe vorbereiten  
$Menu = "<ul>";  
foreach($MenuItems as $CatId=>$MenuItem){  
  
  $class_li  = ($CatId == $CatSelected) ? "class='active'"  : "";  
  $class_a   = ($CatId == $CatSelected) ? "class='current'" : "";  
  $href      = "index.php?cat=$CatId";  
  
  $Menu.= "<li $class_li><a $class_a href='$href' title='$MenuItem'>$MenuItem</a>";  
  
}  
$Menu.= "</ul>";  
  
// Ausgabe  
echo $Menu;

Und ich würde hier definitiv auch Klassen verwenden. Gutes Gelingen.

Cheers,
Baba