array met id en pid naar ul li
Ik probeer voor elkaar te krijgen dat mijn array (een lange lijst met naam,id en pid) om te zetten naar een ul li lijst met de volgende indeling:
<ul class="mainmenu">
<li class="eerste active">
<a href="#">
<span class="left"></span>
<span class="center">link</span>
<span class="right"></span>
</a>
</li>
<li>
<a href="#">
<span class="left"></span>
<span class="center">link</span>
<span class="right"></span>
</a>
<ul>
<li>
<ul>
<li class="eerste">link</li>
<li><a href="#">- link</a></li>
<li><a href="#">- link</a></li>
<li><a href="#">- link</a></li>
</ul>
</li>
<li>
<ul>
<li class="eerste">link</li>
<li><a href="#">- link</a></li>
<li><a href="#">- link</a></li>
<li><a href="#">- link link</a></li>
</ul>
</li>
</ul>
</li>
</ul>
de ul li lijst lukt opzich wel (voor het eerste en tweede level), maar zodra ik weer een ul ga beginnen wordt het drama. De code die ik nu heb:
function print_list($array, $parent) {
$first = true;
foreach ($array as $item) {
if ($item['pid'] == $parent) {
echo '<li class="';
if ($first) {
echo 'eerste';
}
if ($item['active']) {
if (!$first) {
echo 'active';
} else {
echo ' active';
}
}
echo '">';
echo '<a href="' . '#' . '">';
echo ' <span class="left"></span>
<span class="center">' . $item['pagetitle'] . ' </span>
<span class="right"></span>';
echo '</a>';
echo '<ul>';
print_list($array, $item['id']);
echo '</ul>';
echo "</li>";
}
$first = false;
}
}
?>
Het volgende stukje briljante code viel me trouwens wel al meteen op:
;-)
Gewijzigd op 23/11/2011 10:29:30 door Peter Sanders