php ile hazırlanmış bir sitede tasarım değişikliği yaptım ancak ana menü yapısını tam olarak çözemedim mantık olarak wordpress gibi çalışıyor diye düşünüyorum.
Fonksiyon dosyasındaki kod bu şekilde
<?php
}function get_menu_html( $r = array() )
{
$r = parse_args($r , array(
'parent_id' => 0,
'prefix' => 'ed',
'show_home' => 1,
'subs' => 1,
'slug' => 'home',
'li_dropdown_class' => 'dropdown-menu',
'li_class' => 'nav-item',
'li_active' => 'nav-item',
'sub_ul_class' => 'dropdown-menu',
));
$prefix = $r['prefix'];
$attr = '';
if( !empty($r['class']) )
{
$attr.= ' '.add_attr( 'class' , $r['class'] );
}
if( !empty($r['id']) )
{
$attr.= ' '.add_attr( 'id' , $r['id'] );
}
ob_start();
$up_open = false;
if( $r['__act_type'] != 'childs' )
{
$ul_open = true;
echo '<ul'.$attr.'>';
}
if( $r['parent_id'] )
{
unset( $r['slug'] );
}
if( $r['show_home'] == '1' )
{
echo '<li'.(is_home() ? ' class="'.$r['li_active'].'"' : '').'><a href="'.base_url().'">'.($r['home_text'] ? $r['home_text'] : __('Anasayfa')).'</a></li>';
}
foreach( get_menu('limit=100&parent_id='.$r['parent_id'].'&slug='.$r['slug'].'&order=_order&order_by=ASC') as $menu )
{
if( $r['subs'] !== '0' )
{
$parent = get_menu('limit=100&parent_id='.$menu->id);
}
echo '<li class="'.($menu->is_active() ? ''.$r['li_active'].' ' : '').''.($r['li_dropdown_class'] && $parent ? $r['li_dropdown_class']. ' ' : '').$prefix.'-menu-item '.$prefix.'-menu-'.($menu->id).($r['li_class'] ? ' '.$r['li_class'] : '').'">';
echo '<a href="'.$menu->url().'" class="'.$prefix.'-menu-link '.$prefix.'-menu-link-id-'.$menu->id.''.($menu->type ? ' '.$prefix.'-menu-type-'.$menu->type : '').'">'.$menu->name().'</a>'.($parent && $r['parent_icon'] ? $r['parent_icon'] : '').'';
if( $parent && $r['subs'] !== '0' )
{
$r['parent_id'] = $menu->id;
$r['__act_type'] = 'childs';
$r['show_home'] = '';
$r['limit'] = 100;
echo '<ul class="'.($r['sub_ul_class'] ? $r['sub_ul_class']. ' ' : '').$prefix.'-submenu-item '.$prefix.'-submenu-'.$menu->id.'">';
get_menu_html($r);
echo '</ul>';
}
echo '</li>';
}
if( $ul_open == true )
{
echo '</ul>';
}
$content = ob_get_clean();
echo $content;
}header.php deki menüyü oluşturan kod bu şekilde <?php get_menu_html(array('slug' => 'home', 'parent_icon' =>' <i class="bx bx-caret-down"></i>', 'class' => 'navbar-nav m-auto' , 'sub_ul_class' => 'dropdown-menu-item')); ?>Ben bu yapıya şu html kodu entegre etmek istiyorum.
<ul class="navbar-nav m-auto">
<li class="nav-item">
<a href="#" class="nav-link active">
Anasayfa
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
Kurumsal
<i class='bx bx-caret-down'></i>
</a>
<ul class="dropdown-menu">
<li class="nav-item">
<a href="courses-1.html" class="nav-link">Hakkımızda</a>
</li>
<li class="nav-item">
<a href="courses-2.html" class="nav-link">Misyon</a>
</li>
<li class="nav-item">
<a href="membership-levels.html" class="nav-link">Vizyon</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
Services
<i class='bx bx-caret-down'></i>
</a>
<ul class="dropdown-menu">
<li class="nav-item">
<a href="services.html" class="nav-link">Services</a>
</li>
<li class="nav-item">
<a href="services-details.html" class="nav-link">Services Details</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="contact.html" class="nav-link">Contact</a>
</li>
</ul>