• 06-10-2014, 19:13:33
    #10
    Kimlik doğrulama veya yönetimden onay bekliyor.
    exselansTR_ adlı üyeden alıntı: mesajı görüntüle
    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
  • 06-10-2014, 21:41:26
    #11
    Üyeliği durduruldu
    Mesaj içeriğini sildim.
  • 07-10-2014, 13:07:44
    #12
    Hasidluu adlı üyeden alıntı: mesajı görüntüle
    Hocam benim ilk yazıdğım fonksiyonun sadece class adı yazan kısmını kendinize göre ayarlayıp bunu fonksiyon dosyanıza ekleyin. eğer fonksiyon dosyanızy oksa fonksiyonun çalışacağı dosyalara ekleyin. sonra yapacağınız tek şey. Mesela şöyle bir menunuz var:
    <ul>
    <li class=" <? echo aktifMenu('link1.php') ?>" ><a href="link1.php"> Link 1</a></li>
    <li class=" <? echo aktifMenu('link3.php') ?>" ><a href="link3.php"> Link 3</a></li>
    <li class=" <? echo aktifMenu('link4.php') ?>" ><a href="link4.php"> Link 4</a></li>
    </ul>

    Şeklinde yazın else durumu burada gereksiz. Varsa basacak sadece.
    function aktifMenu($a){ if(strpos($_SERVER['REQUEST_URI'], $a)){ echo "class adı"; } }


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:41:26 -->-> Daha önceki mesaj 21:38:42 --


    Yazdığın fonksiyon hiçbir mana ifade etmiyor. Benim ilk yazdığım fonksiyonu direk cp yapıp kullanabilirsin. Sayfaya yapıştırman yeter. Ayrıca fonksiyon mantığını araştırmanı öneririm.
    Yavaş yavaş öğreniyorum

    Bu tam istediğim gibi çalıyor işimi gördü teşekkür ederim.