Merhabalar,
Belki biraz dolaylı yoldan yapıyorum daha kolayı olabilir fakat kendi yaptığım yazılımlarda şu yöntemi izliyorum.
İlk önce menü elemanlarını bir dizin içerisinde tanımlıyorum:
$menuler = array(
'index.php' => array(
'icon' => 'fa-home',
'title' => 'Ana Sayfa'
),
'2.php' => array(
'icon' => 'fa-home',
'title' => '2. link'
),
'3.php' => array(
'icon' => 'fa-home',
'title' => '3. link'
),
);
Daha sonra ise senin koduna uygun bir şekilde bu dizini yazdırmak için şu şekilde bir kullanım izlenebilir:
<?php
foreach($menuler as $script_name => $menu)
{
$active = false;
if($_SERVER['SCRIPT_NAME'] == $script_name)
{
$active = true;
}
?>
<li<?php if($active){ echo ' class="start active"'; } ?>>
<a href="<?php echo $script_name; ?>">
<i class="fa <?php echo $menu['icon']; ?>"></i>
<span class="title">
<?php echo $menu['title']; ?>
</span>
<span class="selected">
</span>
</a>
</li>
<?php
}
?>
Hocam senin sistemi denedim şimdi de diğerinin içinden çıkamadım.
kabaca
<?
$menuler = array(
'test.php' => array(
'icon' => 'fa-home',
'title' => 'Ana Sayfa'
),
'test2.php' => array(
'icon' => 'fa-home',
'title' => '2. link'
),
'test3.php' => array(
'icon' => 'fa-home',
'title' => '3. link'
),
);
?>
<?php
foreach($menuler as $script_name => $menu)
{
$active = false;
if($_SERVER['SCRIPT_NAME'] == $script_name)
{
$active = true;
}
?>
<li<?php if($active){ echo ' class="start active"'; } ?>>
<a href="<?php echo $script_name; ?>">
<i class="fa <?php echo $menu['icon']; ?>"></i>
<span class="title">
<?php echo $menu['title']; ?>
</span>
<span class="selected">
</span>
</a>
</li>
<?php
}
?>haline getirdiğimizi düşünelim
<li<?php if($active){ echo ' class="start active"'; } ?>>
satırı çalışmıyor. herhangi bir linke girdiğinde arraydan gelen icon veya title aktif ama
start active yazısı kaynak kodlarda görünmüyor. birde bu sistemin ufak bir sıkıntısı var. bazı menüler submenu de içeriyor felan. o yüzden bu biraz sıkıntılı olur gibi.
sanıyorum en mantıklısı o sayfadaysa active yazması değilse hiçbirşey yazmaması (ya da tek bir boşluk felan)
ama çıkmadım hala içinden