• 17-06-2017, 14:27:42
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar sayfaya menüyü ekledim. Fakat menünün alt menüleri yok ise li tagından class="dropdown-toggle" ve a tagından class="dropdown-toggle" data-toggle="dropdown" iptal olması lazım. Direk tıklandığında linke gitmesi lazım. Beynim durdu diyebilirim. Çıkamadım işin içinden.


    function smarty_function_anaMenuBootstrap($params = 0)
    
    {
    
        global $db;
    
    
        $anaMenu = $db->prepare("SELECT * FROM panel_menu_varsayilan AS pmv INNER JOIN panel_menu_menuler AS pmm ON pmv.ana_menu_1 = pmm.isim_kod WHERE pmm.ust_menu_id=? ORDER BY pmm.link_sira ASC ");
        $anaMenu->bind_param("i",$params);
        $anaMenu->execute();
        $anaMenuSon	= $anaMenu->get_result();
    
    
        $getir = false;
    
        if ($anaMenuSon->num_rows > 0) {
    
            $getir = '';
    
            while ($menu = $anaMenuSon->fetch_object()) {
    
    
                $getir .= '<li class="dropdown"><a class= "dropdown-toggle" data-toggle="dropdown"  target="'.$menu->hedef.'" href="'.$menu->link.'">'.$menu->link_adi.'</a>';
    
    
                $altMenuleriGetir = smarty_function_anaMenuBootstrap($menu->id);
    
                if ($altMenuleriGetir != false && $altMenuleriGetir != "") {
                    $getir .= '<ul class="dropdown-menu">';
                    $getir .= $altMenuleriGetir;
                    $getir .= '</ul>';
    
                }
    
                $getir .= '</li>';
    
            }
    
        }
    
        return $getir;
    
    }
  • 17-06-2017, 15:55:26
    #2
    Merhaba,

    Öncelikle kayıtların altında bir kayıt varmı yokmu onu kontrol etmek için zaten fonksiyon kendini çağırıyor ve yoksa false geliyor bu durumda kodunda bir kaç yer değişikliği yapılması lazım

    $altMenuleriGetir = smarty_function_anaMenuBootstrap($menu->id);
    Kodunun yerini aşağıdaki kodun üstüne alıcam

    $getir .= '<li class="dropdown"><a class= "dropdown-toggle" data-toggle="dropdown"  target="'.$menu->hedef.'" href="'.$menu->link.'">'.$menu->link_adi.'</a>';
    Sonuç aşağıdaki gibi olucak ve yukarıdaki değişkeni if e sokucam

    $altMenuleriGetir = smarty_function_anaMenuBootstrap($menu->id);
    
    if($altMenuleriGetir) 
    {
    $getir .= '<li class="dropdown"><a class= "dropdown-toggle" data-toggle="dropdown"  target="'.$menu->hedef.'" href="'.$menu->link.'">'.$menu->link_adi.'</a>';
    } else {
    $getir .= '<li><a href="'.$menu->link.'">'.$menu->link_adi.'</a>';
    }
    Bu şekilde sorun vermeden çalışması gerekiyor fakat bir kontrol et istersen.


    MrNone adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar sayfaya menüyü ekledim. Fakat menünün alt menüleri yok ise li tagından class="dropdown-toggle" ve a tagından class="dropdown-toggle" data-toggle="dropdown" iptal olması lazım. Direk tıklandığında linke gitmesi lazım. Beynim durdu diyebilirim. Çıkamadım işin içinden.


    function smarty_function_anaMenuBootstrap($params = 0)
    
    {
    
        global $db;
    
    
        $anaMenu = $db->prepare("SELECT * FROM panel_menu_varsayilan AS pmv INNER JOIN panel_menu_menuler AS pmm ON pmv.ana_menu_1 = pmm.isim_kod WHERE pmm.ust_menu_id=? ORDER BY pmm.link_sira ASC ");
        $anaMenu->bind_param("i",$params);
        $anaMenu->execute();
        $anaMenuSon	= $anaMenu->get_result();
    
    
        $getir = false;
    
        if ($anaMenuSon->num_rows > 0) {
    
            $getir = '';
    
            while ($menu = $anaMenuSon->fetch_object()) {
    
    
                $getir .= '<li class="dropdown"><a class= "dropdown-toggle" data-toggle="dropdown"  target="'.$menu->hedef.'" href="'.$menu->link.'">'.$menu->link_adi.'</a>';
    
    
                $altMenuleriGetir = smarty_function_anaMenuBootstrap($menu->id);
    
                if ($altMenuleriGetir != false && $altMenuleriGetir != "") {
                    $getir .= '<ul class="dropdown-menu">';
                    $getir .= $altMenuleriGetir;
                    $getir .= '</ul>';
    
                }
    
                $getir .= '</li>';
    
            }
    
        }
    
        return $getir;
    
    }
  • 17-06-2017, 15:59:04
    #3
    Çok teşekkür ederim. Sorunsuz çalıştı.