• 12-10-2009, 18:48:34
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba böyle bir PHP kodum var;

    <?php 
    
    $komuto = '{tum_forumlar.FORUM_ID}'; 
    
    // BLOG 
    $result=mysql_query("SELECT topic_id, forum_id, topic_title, topic_time
       FROM topics   
       WHERE forum_id = $komuto
       ORDER BY topic_time DESC 
       LIMIT 3");
    echo mysql_error();
    while ($row=mysql_fetch_row($result)) 
    {
          $topic_id = $row[0];
          $forum_id = $row[1]; 
          $topic_title = $row[2];
    print "<b>$topic_title</b><br>";
    }
    // BLOG TAMAMLANDI
    ?>
    Ancak ilk satırlarda görüdünüz üzere birde SMARTY den gelen bir kodum var;
    {tum_forumlar.FORUM_ID}
    ancak bu kodu PHP kodlama içinde kullanınca parantez işaretlerinden ötürü hata alıyorum bunu nasıl düzeltebilirim, kısacası php içinde smarty kodlarımı nasıl kullanabilirim ?
  • 12-10-2009, 21:04:34
    #2
    Üyeliği durduruldu
    tam olarak ne yapmak istiyorsunuz tam olarak ne hata mesaji aliyorsunuz. smarty de kullanabilmek için assign ile tanimlamallisiniz
  • 12-10-2009, 21:23:51
    #3
    $komuto değişkenini GET, POST vb yöntem ile elde edeceksiniz.

    Smarty nin kullanıma hazır olduğunu varsayarsak (yani genel bir dosya içinde smarty include edip new smarty() yaptığınızı varsayarsak), while içinde assign yapabilirsiniz.

    $smarty->assign(array(
        'topic_id'        => $row[0],
        'forum_id'        => $row[1],
        'topic_title'    => $row[2],
    ));
    ----------------------------------------

    Daha da farklı olabilir, while içinde array

    $konu = array(
        'topic_id'        => $row[0],
        'forum_id'        => $row[1],
        'topic_title'    => $row[2],
    );
    while dışında assign

    $smarty->assign('konu' = $konu);
    kullanımı da, direk arraya erişim

    {konu.topic.id}
    Elbette tam doğru olması için smarty-tema taraflı loop yapmamız gerekecek.

    .
  • 13-10-2009, 00:13:22
    #4
    Alexis sağ ol epey detaya girip anlatmışsın, fakat nasıl desem bu arada vereceğim cevap sdemirkeser inde sorusunu yanıtlayacak;

    İnsanlar smarty i PHP sayfalara HTML (tema vs) ekleyebilmek için kullanır, bense tam tersini yapmaya çalışıyorum üstte verdiğim kodu SMARTY sistemini kullanan bir HTML sayfaya ekledim ama bu defa HTML Sayfa içindeki

    <?php ile başlayan alandaki
    $komuto = ' {tum_forumlar.FORUM_ID} '; hata veriyor php de parse hatasına nedne oluyor bunu yapmam ama tum_forumlar.FORUM_ID nin içersinde bir ID var o yi $komuto ya vermem gerekiyor, çok şey denedim ama yapamadım henüz.
  • 13-10-2009, 00:42:38
    #5
    O şekilde kullanamazsın, değişken bir defa smarty tarafından yorumlanıp temaya gitmiş. Belki yorumlama öncesine müdahale edip gerçek değişkeni alabilirsin. Ama sanırım php kaynak kodları kriptolu olduğundan bu şekilde bir yol izlemeye çalışıyorsunuz.

    Tam tersini düşündüğün yol ile yapamazsın. Belki smarty nin cache dosyalarından çekip elde edebilirsin, aynı sayfaya yazacaksan cache teki dosyayı dinamik olarak değiştirebilirsin.

    Daha basit php alternatifleri düşün, kodlar kapalı değil ise.

    .
  • 13-10-2009, 01:28:17
    #6
    Üyeliği durduruldu
    smarty kasar sistemi birsürü tema motoru var ben yakında bir ders hazırlayacagım .
    smarty ile pek vakit kaybetme bence
  • 13-10-2009, 01:43:28
    #7
    Alexis adlı üyeden alıntı: mesajı görüntüle
    O şekilde kullanamazsın, değişken bir defa smarty tarafından yorumlanıp temaya gitmiş.
    .
    evet zaten sorunda bu ya, yorumlanıp temaya gitmese idi 10 kere yapmıştım ama bu şekilde olacağı yok sanırım, aslında sorunum biraz WHILE İLE ilgili peki WHILE döngüsü içinde, döngü kapanmadan 2. bir WHILE kullanmanın yolu var mı ?
  • 13-10-2009, 01:44:49
    #8
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    smarty kasar sistemi birsürü tema motoru var ben yakında bir ders hazırlayacagım .
    smarty ile pek vakit kaybetme bence
    Bencede smarty dandik bişey smarty hiçkullanmayada gerek yok smart nin tek artısı adamlar içerisine PHP fonksiyonlarını koymuşlar hali hazırda fonksiyon var sen A yazıyorsun bir fonksiyona ait işi yapıyor ama ne gerek var kendi fonksiyonunuyazar kullanırsın smarty nin belki tek + sı cache , oda nekadar + tartışılır.
  • 13-10-2009, 01:57:27
    #9
    dwoo, h2o, twig (symfony ürünü), smarty; bunların kohana modüllerini yazdım, aralarında en hızlısı smarty çıktı.

    smarty'yi kötülemeye de hiç gerek yok, kullanmayı bildikten sonra hiçbir sorun çıkartmıyor. Gayet te iyi bir cache sistemi var.

    php'nin kendisi bir tema motoru tartışmasına girmeye hiç gerek yok. Bir gün profesyonel ve çok kişinin gözdesi olacak bir proje hazırladığınızda anlayacaksınız template motorunun yararını.

    Kendi sitelerimde bende tema motoru kullanmıyorum, controller'den direk view'e ve php alternatif stili.

    .