Processwire'da Menü Ağacı Oluşturmak

Kademesi belirlenebilir menü ağacı oluşturmak.

Aşağıdaki kodu alt menü oluşturmak istediğiniz template yerleştirin. Burada (children, 2) aşağıya inme derecesini ifade eder. Örneğin bu değeri değiştirebilirsiniz.

$tree= renderNavTree($page->children, 2);
echo $tree;

function renderNavTree($items, $maxDepth = 0, $fieldNames = '', $class = 'nav') 
{
if($items instanceof Page) $items = array($items);
$out = '';
foreach($items as $item) {
$out .= $item->id == wire('page')->id ? "<li class='current'>" : "<li>";
$out .= "<a href='$item->url'>$item->title</a> ";
if($fieldNames) foreach(explode(' ', $fieldNames) as $fieldName) {
$value = $item->get($fieldName);
if($value) $out .= " <div class='$fieldName'>$value)</div>";
}
if($item->hasChildren() && $maxDepth) {
if($class == 'nav') $class = 'nav nav-tree';
$out .= renderNavTree($item->children(), $maxDepth-1, $fieldNames, $class);
}
$out .= "</li>";
}
if($out) $out = "<ul class='$class'>$out</ul>\n";
return $out;
}


Sitede yayınlanmasını istediğiniz Word veya PDF formatındaki özgün yazılarınızı denizemesaj@gmail.com adresine gönderebilirsiniz. Arzu ederseniz kendi isminizle yayılanır. Yine bu adresten görüş ve fikirlerinizi iletmeniz de mümkün.
You can send your original articles in Word or PDF formats that you want to be published on this site to denizemesaj@gmail.com. If you wish, it will publish by your own name. It is also possible to send your opinions and ideas at this address.