• 04-09-2012, 09:33:30
    #1
    Yapacağım proje de değişik birşey denemek istiyorum. Bunun için hazır birşeyler kullanmak yerine kendim birşeyler denemeyi tercih ettim ama nasıl yapacağıma dair bir fikrim yok. Mesela php bilmeyen sadece html/css bilgisi olan birisi benden sonra tasarımda değişiklik yapmak istediği zaman zorlanmasın istiyorum ve mümkün olduğunca tasarım dosyasının sade olmasına çalışıyorum. Buradan yola çıkarsa echo kullanmak yerine süslü parantez içinde tek kelimelik tanımlamalar ile çıktılarımı göstermek istiyorum.
    Örneğin:

    <?php echo $set["analytics"]; ?>
    kodu yerine {analytics} kodunu koyarak nasıl aynı işlemi yaptırabilirim? Bu konuda örnek verebilecek var mı?
  • 04-09-2012, 11:00:02
    #2
    Fonksiyonlar ile yapılabiliyor örneğini görmüştüm netten araştır istersen detayı hakkında pek bilgim yok.

    bi tane function.php oluşturuyoruz yada başka bi isimde.

    Alıntı
    function ust()
    { echo '
    <a href="index.php?sayfa=kategoriekle">Kategori Ekle</a> -
    <a href="index.php?sayfa=kategorilistele"">Kategori Listele</a>';
    }
    İçine mesela bunları yazdık iki tane link kategori ekle ve listele diye.
    Sonra index php içerisine
    Alıntı
    include "function.php";
    ust();
    yazarak ordaki kodları daha sade bir şekilde çekebiliriz. Bildiğim bu
  • 04-09-2012, 11:10:26
    #3
    Hackew, söylediğin şey loc'un istediğiyle tamamen alakasız.

    Fonksiyon:
    function parse_template($template_file, $data = array())
    {
       $content = file_get_contents('templates/' . $template_file);
    
       foreach ($data as $key => $value)
          str_replace('{' . $key . '}', $value, $content);
    
       echo $content;
    }
    Kullanımı:
    $sorgu = mysql_query('SELECT id, baslik, icerik FROM makale WHERE id = 14');
    $makale = mysql_fetch_assoc($sorgu);
    
    $data = array(
       'makale_id' => $makale['id'],
       'makale_baslik' => $makale['baslik'],
       'makale_icerik' => $makale['icerik'],
       'baslik' => 'Makale'
    );
    
    parse_template('makale.php', $data);
    Makale.php
    <html>
    <head>
       <title>{baslik}</title>
    </head>
    <body>
       <h1>{makale_baslik}</h1>
       <p>{makale_icerik}</p>
    </body>
  • 04-09-2012, 12:57:55
    #4
    Hkan adlı üyeden alıntı: mesajı görüntüle
    Hackew, söylediğin şey loc'un istediğiyle tamamen alakasız.

    Fonksiyon:
    function parse_template($template_file, $data = array())
    {
       $content = file_get_contents('templates/' . $template_file);
    
       foreach ($data as $key => $value)
          str_replace('{' . $key . '}', $value, $content);
    
       echo $content;
    }
    Kullanımı:
    $sorgu = mysql_query('SELECT id, baslik, icerik FROM makale WHERE id = 14');
    $makale = mysql_fetch_assoc($sorgu);
    
    $data = array(
       'makale_id' => $makale['id'],
       'makale_baslik' => $makale['baslik'],
       'makale_icerik' => $makale['icerik'],
       'baslik' => 'Makale'
    );
    
    parse_template('makale.php', $data);
    Makale.php
    <html>
    <head>
       <title>{baslik}</title>
    </head>
    <body>
       <h1>{makale_baslik}</h1>
       <p>{makale_icerik}</p>
    </body>
    Teşekkürler. Tam aradığım şey.
  • 04-09-2012, 15:13:10
    #5
    Silex ve smarty gibi profesyonel template motorları da kullanabilirsiniz.
  • 04-09-2012, 21:02:23
    #6
    norelpy adlı üyeden alıntı: mesajı görüntüle
    Silex ve smarty gibi profesyonel template motorları da kullanabilirsiniz.
    Hemen hemen hepsini kullandım. Smarty'i a dan z ye biliyorum. Ama kendim birşeyler yapmak istedim. Hep hazır kullanarak bu işin temelini öğrenemedik. Artık birşeyler öğrenmenin zamanı geldi diye düşünüyorum.
  • 14-09-2012, 23:25:32
    #7
    Euroturk'ün de biraz gazıyla küçük bi template parser yazmaya başladım. Bitirince forumda paylaşacağım. Eğer istediğim gibi giderse videolu olarak da anlatabilirim.

    Düzenleme (23.04.2013): Bu mesajımı şu an tekrar okudum. Template parser yazacak zamanı bulamadığım için vazgeçtim.
  • 21-08-2016, 23:40:32
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bunu çalıştıramadım. Nedendir bilmiyorum ama array'i çıktı vereceğine {xxx}'i veriyor. Nerede hata yapıyorum birtürlü çıkamadım işin içinden.

    Hkan adlı üyeden alıntı: mesajı görüntüle
    Hackew, söylediğin şey loc'un istediğiyle tamamen alakasız.

    Fonksiyon:
    function parse_template($template_file, $data = array())
    {
       $content = file_get_contents('templates/' . $template_file);
    
       foreach ($data as $key => $value)
          str_replace('{' . $key . '}', $value, $content);
    
       echo $content;
    }
    Kullanımı:
    $sorgu = mysql_query('SELECT id, baslik, icerik FROM makale WHERE id = 14');
    $makale = mysql_fetch_assoc($sorgu);
    
    $data = array(
       'makale_id' => $makale['id'],
       'makale_baslik' => $makale['baslik'],
       'makale_icerik' => $makale['icerik'],
       'baslik' => 'Makale'
    );
    
    parse_template('makale.php', $data);
    Makale.php
    <html>
    <head>
       <title>{baslik}</title>
    </head>
    <body>
       <h1>{makale_baslik}</h1>
       <p>{makale_icerik}</p>
    </body>