phpKF - php Kolay Forum     
Hakkında  |  Sürümler  |  indirme  |  Telif  |  Kurulum  |  Tema  |  Eklenti  |  Mod  |  Ekip  ]
Forum  |  Portal  |  Yardım  |  Üyeler  |  Arama  |  Giriş  |  Kayıt
 
Önemli Uyarı
Bu bölümde ödev sormak yasaktır.

Öğrenmek için soranlar cevap alır ama hazırcılar hiçbir yerde cevap bulamaz.
Forum Ana Sayfası  »  Webmaster Genel  »  PHP (Personal Home Page) programlama dili
 »  template sınıfı yapıyorum ama takıldığım nokta...

Yeni Başlık  Cevap Yaz
template sınıfı yapıyorum ama takıldığım nokta...           (gösterim sayısı: 268)
Yazan Konu içeriği

boşluk

bo2tr
[gökhan Deniz]

Kayıt Tarihi: 06.10.2007
İleti Sayısı: 28
Şehir: İstanbul
Durum: Forumda Değil

E-Posta Gönder
Özel ileti Gönder

Konu Tarihi: 02.09.2011- 11:59
Alıntı yaparak cevapla  


merhaba arkadaşlar;

şuanda basit sade bi template sınıfı üzerinde çalışıyorum

sınıfım


 Kod Çizelgesi     Dil Seçin: Hepsini Seç
<?php

class template_engine {

	public $html_content;

	public function file_import($template_file)
	{       
		if (file_exists($template_file)) { $this -> html_content = file_get_contents($template_file); } else { exit ("<h3>The Not Found Template File : ".$template_file."</h3>"); }
	}
		
	public function template_loop($loop_name,$template_loop = array())
	{
		if (is_array($template_loop)) 
		{ 
			if (preg_match_all("/<!-- BEGIN: POST -->(.*?)<!-- END: POST -->/si",$this -> html_content,$cikti))
			{
				foreach($template_loop as $replace => $value) { $this -> html_content = str_replace("{".$replace."}",$value,$cikti); } 
				print $this -> html_content; 
			}
		}
	}

}

?>



kullanım



 Kod Çizelgesi     Dil Seçin: Hepsini Seç
$template = new template_engine;

$blog_post_read	= mysql_query("SELECT * FROM bblog_post ORDER BY post_id ASC");

while ($post_read = mysql_fetch_assoc($blog_post_read)) 
{ 
	$template -> file_import("template/test.html");
	$template -> template_loop("POST",array(
	
		'POST_ID'	 => $post_read["post_id"],
		'POST_TITLE' => $post_read["post_title"]
		
	));
} 



html yapısı



 Kod Çizelgesi     Dil Seçin: Hepsini Seç
<!-- BEGIN: POST -->

<h1>{POST_ID} - {POST_TITLE}</h1>

<!-- END: POST -->



yapmakta olduğum template sınıfı bu şekilde tıkandığım daha doğrusu takıldığım nokta döngüyü <!-- BEGIN: Tag --> <!-- END: Tag -->

begin etiketinin olduğu yerden başlamasını ve end etiketinin olduğu yerde bitmesini sağlamak istiyorum nasıl yapıcam konusunda takıldı bana bu konuda yardımcı olursanız cok sevinirim arkadaşlar.

Cvp:
Yazan Cevap içeriği

boşluk

diemurat
[Murat ALABACAK]

Kayıt Tarihi: 01.09.2011
İleti Sayısı: 3
Şehir: Manisa
Durum: Forumda Değil

E-Posta Gönder
Özel ileti Gönder

Cevap Tarihi: 08.09.2011- 10:44
Alıntı yaparak cevapla  


Aslında çok basit. Örneğin php içerisinde döndürdüğünüz bütün veriyi ve değiştirilecek değerleri tek 1 array içerisinde depolayıp template_engine sınıfı içerisinde tekrar belirtilen sayı kadar döndürebilirsiniz. Mesela


 Kod Çizelgesi     Dil Seçin: Hepsini Seç
$tema = new Tema();
for($i=1;$i<=5;$i++) {
        $tema->dongu_kur($i,"POST",array( "{rakam}"=> $i));
}




böyle bir mantık sınıfta ise döngü kur fonksiyonu her döndürmede yeniden çalıştığı için sınıf içindeki bir arraya depolamaya çalışabiliriz



 Kod Çizelgesi     Dil Seçin: Hepsini Seç
class Tema {
var $donguler = array();

function dongu_kur($dongu_no,$etiket,$degisecekler) {
if(!$this->donguler["dongu_sayisi"]) {
$this->donguler["dongu_sayisi"] = 0;
}
// Bu sayede her döndürüldüğünde döngü sayısını 1 arttıracak
$this->donguler["dongu_sayisi"] = $this->donguler["dongu_sayisi"]+1;

$this->donguler["dongu_sayisi"]["etiket"] = $etiket;
$this->donguler["dongu_sayisi"]["dongu_no"] = $dongu_no;

// Bu sayedeyse döngüler arrayı oluşturup içerisine bu döngü numarasına ait $degisecekler array'ını atıyoruz.
$this->donguler["dongu_sayisi"]["donguler"][$dongu_no] = $degisecekler;

}
}




sınıf içerisinde file_import'u en son kullanırsanız kullanımdan önce dosya içeriğini açıp döngü sayısı kadar döndürtüp bilgileri array içinden çekerek düzenleme yaptırtabilirsiniz. Mantığını çözerseniz sizin için çok kolay olacaktır...

Yeni Başlık  Cevap Yaz



Forum Ana Sayfası  »  Webmaster Genel  »  PHP (Personal Home Page) programlama dili
 »  template sınıfı yapıyorum ama takıldığım nokta...

Forum Ana Sayfası


 Bu konuyu 1 kişi görüntülüyor:  1 Misafir, 0 Üye
 Bu konuyu görüntüleyen üye yok.

Benzer konular
Başlık Yazan Cevap Gösterim Son ileti
Konu Klasör Başlıkta nokta hatası systemeffect 2 392 28.10.2009- 22:22
Konu Klasör template olayı hakkında bo2tr 2 827 08.10.2008- 16:14
Konu Klasör Web Page Maker Template Arşivi EnwerAbLe 0 12703 29.05.2008- 23:08

Etiketler   template,   sınıfı,   yapıyorum,   ama,   takıldığım,   nokta.

    Forum Teması:
     

php Kolay Forum (phpKF)   Telif - Copyright © 2007 - 2011   phpKF Ekibi


Tema:   5 Renkli   |   phpKF


- PHP KOLAY FORUM -
 RSS Beslemesini Görmek için Tıklayın   RSS Beslemesini Google Sayfama Ekle   RSS Beslemesini Yahoo Sayfama Ekle