• 04-06-2014, 16:38:23
    #1
    Merhaba, kategori yapım şu şekilde vertical açılır menu (ana alt kategoriler)

    Sitemde dil seçeneği ekliyorum, sayfalarda sorun yaşamıyorum ama bu kategori menumde dilleri entegre edemedim. Yardımcı olursanız çok sevinirim.

    Kategori menüm
    <?php
       function ozelmenu($ustkat)
       {   
           $select = "select * from kategoriler where ustkat = $ustkat";
           $sorgu = mysql_query($select);
           $veri=mysql_fetch_array($sorgu);
          
           if($veri)
               return true;
           else
               return false;
       }
    
       function menuGetir($ustkat = 0,&$menuler)
       {
           $select = "select * from kategoriler where ustkat = $ustkat order by sira ASC";
           $sorgu = mysql_query($select);
    
    $id = $kat["id"];
    $sayfa = $kat["kategori"];
    $en_sayfa = $kat["en_kategori"];
    $dl_sayfa = $kat["dl_kategori"];
    
           while($kat=mysql_fetch_array($sorgu))
           {
               $menuler .= "<li><a href='kategorisayfa-".$kat['id']."-".$kat['kategori']."-1.html'>".$kat['kategori']."</a>\n";
               if(ozelmenu($kat['id']))
               {   
    
                   $menuler .= "<ul>\n";
                   menuGetir($kat['id'],$menuler);
                   $menuler .= "</ul>\n</li>\n";
               }
               else
               {
    
                   $menuler .= "</li>\n";
               }
           }
       }
    ?>
    
            <div id="webwidget_vertical_menu" class="webwidget_vertical_menu">
                <ul>
                   <?php
                   $menuler="";
                   menuGetir(0,$menuler);
                   echo $menuler;
               ?>
                </ul>
    
            </div> </div>
    Bu sayfada dilleri ekleyemedim.



    Diğer sayfalarda kullandığım dil seçeneği, bunda sorun yok.
    <?php
    
    $katsorguA = "SELECT * FROM sayfalar where ustkat = '0' order by sira ASC";
    $katsorgu = mysql_query($katsorguA);
    while($kat = mysql_fetch_array($katsorgu)) {
    $id = $kat["id"];
    $sayfa = $kat["kategori"];
    $en_sayfa = $kat["en_kategori"];
    $dl_sayfa = $kat["dl_kategori"];
    
    ?>
        <a href="kategorisayfa-<?=$id?>-<?=seoyap($sayfa)?>-1.html"><li> 
    
    <?php
    $durum = $_SESSION['lang'];
    if($durum=="tr"){
    ?>
    <?=$sayfa?> <?php } ?>
    
    <?php
    $durum = $_SESSION['lang'];
    if($durum=="en"){
    ?>
    <?=$en_sayfa?> <?php } ?>
    
    <?php
    $durum = $_SESSION['lang'];
    if($durum=="de"){
    ?>
    <?=$dl_sayfa?>
    
    <?php } ?></li></a><?php } ?>
  • 04-06-2014, 16:42:07
    #2
    dil değişkeninde kısaltmanın olduğunu varsayarak bu şekilde çağırabilirsiniz.

    $sayfa = $kat[$dil."_kategori"];
  • 04-06-2014, 17:05:44
    #3
    kategoriler veritabanındaki kategori sütununu text yapabilir ve içeriğini şu şekilde dile göre ayarlayabilirsin; {tr:kategori1}{en:kategori1}

    Daha sonra ekrana yazdırırkende aşağıda yazdığım fonksiyon ile dile göre yazdırabilirsin.

    function catLanguage($lang,$cat) {
            preg_match("#{".$lang.":(.*?)}#si",$cat,$out);
            return $out[1];
        }
    
    // Kullanımı
    echo "Kategori: ".catLanguage("tr",$Row["kategori"]);
    kodu denemedim ama muhtemelen çalışacaktır.
  • 04-06-2014, 17:38:08
    #4
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    dil değişkeninde kısaltmanın olduğunu varsayarak bu şekilde çağırabilirsiniz.

    $sayfa = $kat[$dil."_kategori"];
    Dil değişkeninin kısaltmasını nasıl yapıcaz?




    ChuckyFun adlı üyeden alıntı: mesajı görüntüle
    kategoriler veritabanındaki kategori sütununu text yapabilir ve içeriğini şu şekilde dile göre ayarlayabilirsin; {tr:kategori1}{en:kategori1}

    Daha sonra ekrana yazdırırkende aşağıda yazdığım fonksiyon ile dile göre yazdırabilirsin.

    function catLanguage($lang,$cat) {
            preg_match("#{".$lang.":(.*?)}#si",$cat,$out);
            return $out[1];
        }
    
    // Kullanımı
    echo "Kategori: ".catLanguage("tr",$Row["kategori"]);
    kodu denemedim ama muhtemelen çalışacaktır.
    Sanırım sorun bende, dediğin şekilde yaptım ama çalıştıramadım.
  • 04-06-2014, 17:40:34
    #5
    Chapa adlı üyeden alıntı: mesajı görüntüle
    Dil değişkeninin kısaltmasını nasıl yapıcaz?
    mesela tablodaki dil belirteci tr_tabloadı şeklinde ise $dil = tr olur.
  • 04-06-2014, 17:56:10
    #6
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    mesela tablodaki dil belirteci tr_tabloadı şeklinde ise $dil = tr olur.
    $dil = $kat["tr_kategori"];
    $dil = $kat["en_kategori"];
    $dil = $kat["dl_kategori"];
    $dil = $kat[$dil."_kategori"];
    
     $menuler .= "<li><a href='kategorisayfa-".$kat['id']."-1.html'>".$kat['_kategori']."</a>\n";
    Bu şekilde mi?
  • 04-06-2014, 17:57:16
    #7
    $dil = "en";
    $deger= $kat[$dil."_kategori"];
    bu şekilde.
  • 05-06-2014, 12:47:41
    #8
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    $dil = "en";
    $deger= $kat[$dil."_kategori"];
    bu şekilde.
    Selam,

    Dilleri değiştirmeyi başardım;
    kullandığım kod
    <?php 
       function ozelmenu($ustkat) 
       {    
           $select = "select * from kategoriler where ustkat = $ustkat"; 
           $sorgu = mysql_query($select); 
           $veri=mysql_fetch_array($sorgu); 
           
           if($veri) 
               return true; 
           else 
               return false; 
       } 
    
       function menuGetir($ustkat = 0,&$menuler) 
       { 
           $select = "select * from kategoriler where ustkat = $ustkat order by sira ASC"; 
           $sorgu = mysql_query($select); 
    
    $id = $kat["id"]; 
    $sayfa = $kat["kategori"]; 
    $en_sayfa = $kat["en_kategori"]; 
    $dl_sayfa = $kat["dl_kategori"]; 
    
           while($kat=mysql_fetch_array($sorgu)) 
           { 
               
    
    $menuler .= "<li><a href='kategorisayfa-".$kat['id']."-".$kat['kategori']."-1.html'>";
    		   
    switch($_SESSION['lang']){
    case "tr":
    echo $kat['kategori'];
    break;
    case "en":
    echo $kat['en_kategori'];
    break;
    case "de":
    echo $kat['dl_kategori'];
    
    }"</a>\n";
    
    
               if(ozelmenu($kat['id'])) 
               {    
    
                   $menuler .= "<ul>\n"; 
                   menuGetir($kat['id'],$menuler); 
                   $menuler .= "</ul>\n</li>\n"; 
               } 
               else 
               { 
    
                   $menuler .= "</li>\n"; 
               } 
           } 
       } 
    ?> 
    
            <div id="webwidget_vertical_menu" class="webwidget_vertical_menu"> 
                <ul> 
                   <?php 
                   $menuler=""; 
                   menuGetir(0,$menuler); 
                   echo $menuler; 
               ?> 
                </ul> 
    
            </div> </div>
    yani bu kısmı değiştirdim
    $menuler .= "<li><a href='kategorisayfa-".$kat['id']."-".$kat['kategori']."-1.html'>";
    		   
    switch($_SESSION['lang']){
    case "tr":
    echo $kat['kategori'];
    break;
    case "en":
    echo $kat['en_kategori'];
    break;
    case "de":
    echo $kat['dl_kategori'];
    
    }"</a>\n";
    Ancak bu seferde <li>ler arasında gözükmüyor, düz yazı şeklinde üst kısımda listeleniyor.



    Yardımcı olursanız çok sevinirim.

    Teşekkürler.
  • 05-06-2014, 12:52:31
    #9
    Chapa adlı üyeden alıntı: mesajı görüntüle
    Selam,

    Dilleri değiştirmeyi başardım;
    kullandığım kod
    <?php 
       function ozelmenu($ustkat) 
       {    
           $select = "select * from kategoriler where ustkat = $ustkat"; 
           $sorgu = mysql_query($select); 
           $veri=mysql_fetch_array($sorgu); 
           
           if($veri) 
               return true; 
           else 
               return false; 
       } 
    
       function menuGetir($ustkat = 0,&$menuler) 
       { 
           $select = "select * from kategoriler where ustkat = $ustkat order by sira ASC"; 
           $sorgu = mysql_query($select); 
    
    $id = $kat["id"]; 
    $sayfa = $kat["kategori"]; 
    $en_sayfa = $kat["en_kategori"]; 
    $dl_sayfa = $kat["dl_kategori"]; 
    
           while($kat=mysql_fetch_array($sorgu)) 
           { 
               
    
    $menuler .= "<li><a href='kategorisayfa-".$kat['id']."-".$kat['kategori']."-1.html'>";
    		   
    switch($_SESSION['lang']){
    case "tr":
    echo $kat['kategori'];
    break;
    case "en":
    echo $kat['en_kategori'];
    break;
    case "de":
    echo $kat['dl_kategori'];
    
    }"</a>\n";
    
    
               if(ozelmenu($kat['id'])) 
               {    
    
                   $menuler .= "<ul>\n"; 
                   menuGetir($kat['id'],$menuler); 
                   $menuler .= "</ul>\n</li>\n"; 
               } 
               else 
               { 
    
                   $menuler .= "</li>\n"; 
               } 
           } 
       } 
    ?> 
    
            <div id="webwidget_vertical_menu" class="webwidget_vertical_menu"> 
                <ul> 
                   <?php 
                   $menuler=""; 
                   menuGetir(0,$menuler); 
                   echo $menuler; 
               ?> 
                </ul> 
    
            </div> </div>
    yani bu kısmı değiştirdim
    $menuler .= "<li><a href='kategorisayfa-".$kat['id']."-".$kat['kategori']."-1.html'>";
    		   
    switch($_SESSION['lang']){
    case "tr":
    echo $kat['kategori'];
    break;
    case "en":
    echo $kat['en_kategori'];
    break;
    case "de":
    echo $kat['dl_kategori'];
    
    }"</a>\n";
    Ancak bu seferde <li>ler arasında gözükmüyor, düz yazı şeklinde üst kısımda listeleniyor.



    Yardımcı olursanız çok sevinirim.

    Teşekkürler.
    Dikkatinizden kaçmış sanırım. }"</a>\n"; şurada </li> şeklinde kapatmamışsınız.