Autor |
Nachricht |
123456
Threadersteller
Dabei seit: 15.01.2006
Ort: Dresden
Alter: -
Geschlecht:
|
Verfasst Mo 02.02.2009 20:27
Titel [PHP, XML] Navigation... |
|
|
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
|
|
|
|
|
Benutzer 79527
Account gelöscht
Ort: -
|
Verfasst Mi 04.02.2009 13:29
Titel
|
|
|
Hallo!
Beantwortet jetzt nicht unbedingt deine Frage, aber wieso das Rad neu erfinden? Wieso benutzt du kein CMS?
|
|
|
|
|
Anzeige
|
|
|
123456
Threadersteller
Dabei seit: 15.01.2006
Ort: Dresden
Alter: -
Geschlecht:
|
Verfasst Do 05.02.2009 22:49
Titel
|
|
|
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
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Do 05.02.2009 23:52
Titel
|
|
|
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>
|
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Fr 06.02.2009 13:16
Titel
|
|
|
mit der SPL (naja zumindest mit einem Teil davon ) 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
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 06.02.2009 13:56
Titel
|
|
|
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.
|
|
|
|
|
123456
Threadersteller
Dabei seit: 15.01.2006
Ort: Dresden
Alter: -
Geschlecht:
|
Verfasst Fr 06.02.2009 18:30
Titel
|
|
|
danke für eure antworten!
das mit dem xml hab ich mir auch ausm kopf geschlagen
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
|
|
|
|
|
|
|
|
Ähnliche Themen |
CSS Navigation
CSS: Navigation
[CSS] DIV Navigation
Navigation - IE6 + 7
Navigation PHP
navigation
|
|