PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vorstellung meiner Person + Navigationsarray


m.steinberg
18.06.2009, 13:08:34
Moin Moin,

ich darf mich kurz vorstellen: Mein Name ist Matthias. Ihr könnt mich aber gerne Matze nennen (sogar lieber :) ). Ich programmiere in verschiedenen Sprachen rum. Angefangen von HTML, CSS, MySQL, PHP, smarty und Ajax.

Ich hab direkt einmal eine Frage:

Ich realisiere zurzeit eine Navigation unter PHP mit einem Array. Die Hauptebene stellt kein Problem dar. Ebenso eine Unterebene nicht. Wenn aber eine Unterebene zwei Punkte besitzt, dann wird die Verschachtelung nicht richtig. Ich muss ja irgendwie fragen wenn mehr als ein Unterpunkt dann

<ul>
<li>Punkt 1</li>
<li>Punkt 2</li>
</ul>


Hier der PHP-Code

<?php

$menu = array(
'Home' => array('root' => '/index.php'),
'SEO' => array('root' => '/seo.php', 'SuMa' => '/suma.php', 'SuOp' => '/suop.php'),
'PHP' => array('root' => '/php.php', 'misc' => '/misc.php')
);

echo "<ul>\n";

foreach($menu as $k => $v) {
printf(
" <li><a href='%s'>%s</a></li>\n",
htmlspecialchars($v['root']),
htmlspecialchars($k)
);

foreach($v as $i => $w) {
if($i != 'root' && count($i) < 3) {
$sub = printf(
" <ul><li><a href='%s'>%s</a></li></ul>\n",
htmlspecialchars($w),
htmlspecialchars($i)
);
}
}
}

echo "</ul>\n";

?>


Ist auch noch nicht komplett durchdacht aber ideen und links wurden mir schon ausreichen...thx :)

rarios
18.06.2009, 14:57:09
Ich programmiere in verschiedenen Sprachen rum. Angefangen von HTML, CSS, MySQL, PHP, smarty und Ajax.
Hmm, was passt da nicht? Du solltest Dich mal über Smarty informieren! http://de.wikipedia.org/wiki/Smarty

Zum Thema:
Ich verstehe, ehrlich gesagt, Dein Problem nicht.

Indyk
19.06.2009, 08:05:32
@rarios
ich denke es geht um die unendliche tiefe des menu arrays und das Matze als Smarty-Programmierer noch nichts von Rekursion gehört hat.

@matze
Hallo und willkommen im Forum, wie schon von rarios erwähnt solltest du dich evtl. informieren welches deiner Sprachen denn zu den Programmier-Sprachen gehört. Wenn du dich schon so vorstellst ( :

@Thema (aber nur weil Freitag ist ; )

function menu($aMenu)
{
echo '<ul>';
foreach($aMenu as $menupunkt)
{
if(is_array($menupunkt))
{
echo '<li>'. key($menupunkt) .'</li>';
menu($menupunkt);
}else
{
echo '<li>'. $menupunkt .'</li>';
}
}
echo '</ul>';
}

ungetestet

da kann man natürlich noch einiges verändern, je nachdem wie du es brauchst und der array aufgebaut sein wird. Aber vielleicht wird dir ja die Logik ersichtlich, die dir dann hoffentlich bei deinem problem hilft.

m.steinberg
22.06.2009, 12:43:11
Moin Indyk,

genau ich meinte die unendliche Tiefe eines Arrays. Danke diese Funktion hat mir sehr weitergeholfen :) Genau sowas hab ich gesucht; werde Sie aber noch ein wenig anpassen müssen.

In Bezug auf smarty meinte ich eigentlich die Einbettung von php (Link (http://www.smarty.net/manual/de/language.function.php.php)) in ein smarty Template. Hab mich vlt ein wenig falsch ausgedrückt :)

Danke Indyk!