• 11-10-2016, 20:37:49
    #1
    Merhaba arkadaşlar,
    Kendi MVC frameworkumu ve kütüphanelerimi yazmaya başladım. Ancak biraz daha kendimi geliştirmek istiyorum. Problem ise şu: Html ve php kodlarını birbirinden ayırarak kendi tema motorumu yazmak istiyorum. Baya bir araştırma yaptım ancak bir türlü kafamda olayı netleştiremedim. Ana dizinde view adında bir klasörüm var. Bu klasör altında default, black vs. gibi tema klasörlerim mevcut. Veritabanında ayarlar alanımda tema ismini saklayıp. Index controller dosyamda view altında eşleşen dosyayı include ediyorum.
    Tema dosyaları içerisinde controller dosyamdan göndermiş olduğum dizileri <?php echo $data["title"]; ?> gibi kodlarla işliyorum. Ancak ben tema dosyalarında php taglarını kullanmak yerine örneğin : {$title} gibi bir kullanımla $data dizisinin "title" elamanına erişmek istiyorum. Bunu nasıl yapabilirim ? Yardımcı olursanız çok mutlu olurum iyi çalışmalar dilerim
  • 11-10-2016, 21:29:19
    #2
    Bir yöntem view dosyasını yükleyip regex ile find replace yapmak olabilir.
  • 11-10-2016, 21:38:30
    #3
    samurat2000 adlı üyeden alıntı: mesajı görüntüle
    Bir yöntem view dosyasını yükleyip regex ile find replace yapmak olabilir.
    Biraz daha açar mısınız ?
  • 11-10-2016, 21:42:14
    #4
    view i dosya olarak içeriğini alacaksın, $data['title'] daki key'in ('title')'ın içeriğini dosya içerisinde {$title} ile yer değiştirip echo layacaksın.

    emrtnm adlı üyeden alıntı: mesajı görüntüle
    Biraz daha açar mısınız ?
  • 11-10-2016, 21:54:40
    #5
    samurat2000 adlı üyeden alıntı: mesajı görüntüle
    view i dosya olarak içeriğini alacaksın, $data['title'] daki key'in ('title')'ın içeriğini dosya içerisinde {$title} ile yer değiştirip echo layacaksın.
    Çok basit bir örnek verirmisiniz kod olarak
    (Çok oluyorum kusura bakmayın)
  • 11-10-2016, 21:59:49
    #6
    Çok kabaca fikir vermesi açısından aşağıdaki şekilde olabilir.


    $view_dosyasi = file_get_contents('./view.tpl');
    $html = str_ireplace($data['title'],"{$title}",$view_dosyasi);
    echo $html;
    emrtnm adlı üyeden alıntı: mesajı görüntüle
    Çok basit bir örnek verirmisiniz kod olarak
    (Çok oluyorum kusura bakmayın)
  • 11-10-2016, 22:15:02
    #7
    samurat2000 adlı üyeden alıntı: mesajı görüntüle
    Çok kabaca fikir vermesi açısından aşağıdaki şekilde olabilir.


    $view_dosyasi = file_get_contents('./view.tpl');
    $html = str_ireplace($data['title'],"{$title}",$view_dosyasi);
    echo $html;
    Teşekkür ederim ancak ekrana {$title} {$title} iki kere basıyor değişkeni. Daha doğrusu $data["title"] daki değeri değil sadece {$title} olarak yazıyor.
  • 12-10-2016, 10:44:30
    #8
    [ÇÖZÜLDÜ]
    Sorunu şu şekilde çözdüm. @samurat2000 abimin vermiş olduğu örnek koddan yola çıkarak " çift tırnak olarak vermiş olduğu yeri ' tek tırnak ile değiştirince yapmak istediğim şeyi yaptım.
    $view = file_get_contents('view.tpl');
    $view = str_ireplace('{$title}',$data["title"],$view);
    echo $view;
    Bu şekilde kullanabilirsiniz.