Sympatisant: Die "perfekte" PHP-Navigation

Beitrag lesen

Salvete,

Nur mal so als Denkanstoss - kann man natuerlich beliebig variieren:

  
  
// Ein Menu-Item  
public class MenuItem  
{  
 protected $SubItems; // Sub-Array of MenuItems  
  
 public $Url;  
 public $Text;  
 public $ToolTip;  
 // etc.. alle benoetigten Eigenschaften  
  
 public function GetItems() { .. }  
 public function AddItem($MenuItem) { ... }  
 public function SetItems($arrMenuItems) { ... }  
}  
  
// Das Menu  
public class Menu  
{  
 protected $Items; // recursie array of MenuItems  
  
 public function GetItems() {  
  return $this->Items;  
 }  
 public function AddItem($MenuItem) {  
  if($MenuItem instanceof MenuItem)  
   array_push($this->Items, $MenuItem);  
 }  
 public function SetItems($arrMenuItems)  {  
  $this->Items = $arrMenuItems;  
 }  
 public function GetCurrent() {[...] }  
 public function SetCurrent($MenuItem) {[...] }  
 public function DoSomeMenuOperations() { [...] }  
  
 // saemtliche Methoden die due fuer ein Menu benoetigst  
 [...]  
  
 // das Menu koennte sich auch selbst zusammenbauen  
 public function BuildMenu($MenutItem=$this->$Items) {  
  $htmlMenu = '<ul>';  
  foreach($this->Items as $Item) {  
   $htmlMenu .= '<li> <a href='.$Item->Url.' title='.$Item->ToolTip.'>'.$Item->Text.'</a></li> ';  
   // irgendeinen rekursiven Aufruf zusammenbasteln  
   $this->BuildMenu($Item->GetItems());  
   // bla blub  
  }  
  [...]  
  return $htmlMenu;  
 }  
}  

MfG,
Sympatisant

--
"Non dura iubeantur, non prohibeantur inpura."