mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 18:43 Benutzername: Passwort: Auto-Login

Thema: [PHP, XML] Navigation... vom 02.02.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP, XML] Navigation...
Autor Nachricht
123456
Threadersteller

Dabei seit: 15.01.2006
Ort: Dresden
Alter: -
Geschlecht: Männlich
Verfasst Mo 02.02.2009 20:27
Titel

[PHP, XML] Navigation...

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich will mir mal eine navigationslösung programmieren, welche ich für große Projekte einsetzen kann.
Hab mir folgendes gedacht: ausgegeben werden, sollen alle Menüpunkte in einem Array, dabei soll der aktive Menüpunkt angebbar und auslesbar sein.
Was könnte man noch für Vorteile aus solch einer idee ziehen, außer dass es statischen Code ersetzt?

Dachte mir, ich erstell eine XML, worin ich die komplette Seitenstruktur auflsite... wie eine Sitemap.
In der XML soll dann beim aktiven Menüpunkt ein Attribut ACTIVE stehen und außerdem sollen immer noch die Pfade der dazugehörigen Links abrufbar sein...
Icons könnte man auch noch angeben..

Was habt Ihr noch für Ideen? Solche Umsetzungen gibts sicher schon im netz und/oder hier im Forum aber was soll ich als Suchbegriffe angeben?
Da mir auch der Ansatz noch leicht unklar ist. Wenn von Vorteil, auch gern objektorientiert umsetzbar.
Freue mich über Tipps.

Danke, 123456
  View user's profile Private Nachricht senden
Benutzer 79527
Account gelöscht


Ort: -

Verfasst Mi 04.02.2009 13:29
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo!

Beantwortet jetzt nicht unbedingt deine Frage, aber wieso das Rad neu erfinden? Wieso benutzt du kein CMS?
 
Anzeige
Anzeige
123456
Threadersteller

Dabei seit: 15.01.2006
Ort: Dresden
Alter: -
Geschlecht: Männlich
Verfasst Do 05.02.2009 22:49
Titel

Antworten mit Zitat Zum Seitenanfang

bin erstens kein cms freund weil da sooo viel zeug dabei ist, dass ich nicht benötige und zweitens trotzdem viele anpassungen gemacht werden müssen.
außerdem gehts hier um einen komplett eigenständigen webdienst mit hohem sicherheitsfaktor...
bei eigenem code weisste wo du bist... wenn du verstehst Lächel
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Do 05.02.2009 23:52
Titel

Antworten mit Zitat Zum Seitenanfang

wieso definierst du dafür kein nodesystem direkt in php?

So in etwa zum Beispiel...ist jetzt natürlich sehr sehr quick and dirty...und die drei schritte die darin erkennbar sind sollten selbstverständlich nich in eine einzige Datei. aber ich hoffe du siehst worauf ich hinaus will:

Code:

<?php

class Navi {
   protected $_name;
   protected $_link;
   protected $_child_nodes = array();
   
   public function __construct($name, $link)
   {
      $this->_name = $name;
      $this->_link = $link;
   }
   
   public function addChild($name, $link)
   {
      $this->_child_nodes[] = new Navi($name, $link);
      return $this->_child_nodes[count($this->_child_nodes) - 1];
   }
   
   public function getChildren()
   {
      if(count($this->_child_nodes) != 0) {
         return $this->_child_nodes;
      }
      
      return false;
   }
   
   public function getName()
   {
      return $this->_name;
   }
   
   public function getLink()
   {
      return $this->_link;
   }
   
   public function __toString()
   {
      return '<a href="'.$this->_link.'">'.$this->_name.'</a>';
   }
}

$test = new Navi('root', 'http://www.google.de');
$test->addChild('test1', '1')->addChild('blub', '')->addChild('weiter runter', 3);
$test->addChild('test2', '2');

function mainNavi(Navi $navi)
{
   echo "<li>".$navi."</li>";
   echo "<li><ul>";
   
   foreach ($navi->getChildren() as $nav) {
      if($nav->getChildren() === false) {
         echo "   <li>".$nav."</li>";
      }
      else {
         mainNavi($nav);
      }
   }
   
   echo "</ul></li>";
}

?>

<ul>
   <?php mainNavi($test); ?>
</ul>
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 06.02.2009 09:30
Titel

Antworten mit Zitat Zum Seitenanfang

Unabhängig von der Form der Serialisierung würde ich dir in diesem Zusammenhang einen Blick auf folgende Klassen und Interfaces + Verwandte empfehlen:

http://www.php.net/~helly/php/ext/spl/interfaceRecursiveIterator.html
http://www.php.net/~helly/php/ext/spl/interfaceArrayAccess.html
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Fr 06.02.2009 13:16
Titel

Antworten mit Zitat Zum Seitenanfang

mit der SPL (naja zumindest mit einem Teil davon Ooops ) bin ich vertraut.

hab das in meinem Beispielcode nur nicht genutzt weil ich faul war und das natürlich alles total quick n dirty ist Ooops
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 06.02.2009 13:56
Titel

Antworten mit Zitat Zum Seitenanfang

Das war eher an den TE gerichtet. Jeder hat ja so 'ne DOM-artige Zugriffsklasse auf Navigationshierarchien wie die von dir gepostete irgendwo in der Schublade liegen, und die lassen sich mit einfachsten Handgriffen und ohne viel Aufwand schon durch ArrayAccess und IteratorAggregate soweit bereichern, dass ihre Instanzen sehr elegant bspw. von foreach()-Schleifen geschluckt werden. Eine Sitemap kann dann bspw. in 'nem 4-Zeiler mittels RecursiveIteratorIterator und der nativen SPL-Methode $iter->getDepth() kinderleicht rausgerendert werden, ohne diese klassischen rekursiven Prozeduren, die ja eigentlich nur die Templates verschandeln. Und das eben ohne große Änderung der eigenen Basisklasse, das Zeug wird ja quasi nur 'reindekoriert.
  View user's profile Private Nachricht senden
123456
Threadersteller

Dabei seit: 15.01.2006
Ort: Dresden
Alter: -
Geschlecht: Männlich
Verfasst Fr 06.02.2009 18:30
Titel

Antworten mit Zitat Zum Seitenanfang

danke für eure antworten!
das mit dem xml hab ich mir auch ausm kopf geschlagen Lächel

werd die navi in einer externen datei zusammenbasteln...
deine variante ist interessant. hab bisher eher an arrays gedacht die ich dann miteinander verknüpfe...
muss ich mal schaun was sinnvoller ist ...ist ja abhängig von der struktur der navigation
  View user's profile Private Nachricht senden
 
Ähnliche Themen CSS Navigation
CSS: Navigation
[CSS] DIV Navigation
Navigation - IE6 + 7
Navigation PHP
navigation
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.