Flash ve PHP ile dinamik içerik (Ör: Haberler)

19 Temmuz 2007

Flash kullanarak bir site yaptınız ve bu flash’ın içerisine bir haber bölümü ya da ona benzer, flash dışından güncellenebilecek bir metin eklemek istiyosunuz ama nasıl yapacağınızı bilmiyorsunuz? O zaman bu yazı tam size göre.

Laf kalabalığından hoşlanmayanlar için: bu yazının en altındaki linkten ya da hemen buradan flash, XML, PHP, MySQL dosyalarından oluşan kullanıma hazır bir örneği indirebilirsiniz.

Flash ile dinamik haberler yapımı ekran görüntüsü

Şimdi dinamik haberleri nasıl yapacağınızı anlatayım. Gerçekten kolay olacak. Yukarıdaki resim zaten herşeyi gösteriyor. Bir flash dökümanı açın. İçine bir text alanı yaratın. Farklı bir ‘layout’ kullanmıyorsanız programın alt kısmındaki properties kısmında bu text alanının tipini “Static Text” yerine “Dynamic Text” yapın. Bu bölümün hemen altındaki alana text alanımızın ismini “newsText” olarak girin. Tamam. Şimdi sağ tarafta “Single Line” yazan seçeneği “Multi Line” yapın. Onun da sağında yer alan 3 küçük ikondan ortada yer alan <a> ikonuna tıklayıp haber metninin içerisine HTML kullanılmasına izin verin. Eer scrollbar yani kaydırma çubuğu istiyorsanız CTRL+F7′ye basarak Components penceresini açın. Burada alt taraflarda bir yerlerde UIScrollBar isminde bir Component var. Onu tutup, text alanımızın üstüne çekin.

Son olarak aşağıdaki actionScript kodunu flash dosyanıza ekleyin. news.xml dosyasını da aynı dizine koymayı unutmayın.

PHP ve MySQL dosyaları için yazının devamına bakmanız gerekecek.

// flash kodu: *************
var newsArray:Array=new Array();
 
var newsList:XML = new XML();
newsList.ignoreWhite = true;
 
//xml dosyasinin tamami okundugunda calisir.
newsList.onLoad = function(success) {
	var i:Number=0;
 
	/* xml'de okudugu root altındaki düğümleri sırayla parse eder 
	* ve değerlerini array'e atar. bu örnekte asagidaki gibi bi array olusacak, 
	* newsArray[0][date]="21-12-2006"; newsArray[0][title]="baslik"; 
           * newsArray[0][content]="this is news content"
	* newsArray[1][date]="22-12-2006"; newsArray[1][title]="2. baslik"; 
           * newsArray[1][content]="this is a news content too"
           */
	for(var newsNode:XMLNode = newsList.firstChild.firstChild; 
			newsNode!=null; 
			newsNode = newsNode.nextSibling)
	{
		newsArray[i]=new Array();
		for(j=0; j<newsNode.childNodes.length; j++){
		    newsArray[i][newsNode.childNodes[j].nodeName] = 
                                   newsNode.childNodes[j].firstChild.nodeValue;
		}
		i++;
	}
 
	locateNews();
};
 
//"news.xml" yerine "createnews.asp?id=34" gibi birşey de yazılabilir
newsList.load("news.xml");
 
 
//flash içerisinde ekrana yazdırmak için kullanılıyor
//aşağıdaki "newstext" flash ta ekrana yerleştirilmiş bir text alanı
function locateNews(){
	var output:String = "";
	for(i=0; i<newsArray.length; i++){
		output+="<b>"+newsArray[i]["date"]+"</b><br>\n";
		output+=newsArray[i]["content"]+"<br><br>\n\n";
	}
	//trace(output)
	newsText.wordWrap = true;
	newsText.htmlText  = output;
}

Örnek xml dosyası.

Formatı kendi ihtiyacınıza göre değiştirebilirsiniz.

<?xml version="1.0" encoding="utf-8"?>
<newslist name="site_name">	
	<news>
		<date>15-01-2007</date>
		<title>Quod amet impedit id pro</title>
		<content>te adipisci dissentiunt necessitatibus sea.
 Habeo phaedrum scriptorem id eum.Ad eos dolor
 mnesarchum, elaboraret complectitur vix an, graece ignota officiis 
ea sed. Et cum illum maiorum recteque, at iusto possim his. Labore 
senserit consectetuer sit et</content>
	</news>	
	<news>
		<date>06-02-2007</date>
		<title>Dolores quaestio per ad</title>
		<content>putant expetendis eam in. 
Eu timeam democritum interesset eum. 
Has iuvaret adversarium necessitatibus ad.
 Pro consul aperiri mnesarchum ad.
 Duis populo eam in, est ei ignota everti pertinacia. 
No ipsum recusabo eos, quando diceret in vis, vis
 ne salutandi tincidunt reprimique. Labores verterem in est</content>
	</news>			
</newslist>

Örnek PHP Dosyası

Buraya kadar işin flash tarafı dinamikti ama XML dosyamız statikti. Şimdi XML dosyasını da dinamik yapalım. PHP, ASP ya da diğer web dillerinden birisini biliyorsanız zaten XML dosyasını nasıl oluşturacağınız tahmin edebilirsiniz.

   $conn = mysql_connect ("localhost", "username", "password") 
                    or die("no connection");
   mysql_select_db("database") or die("noDatabase");
 
   header('Content-type: text/xml');
   echo '<?xml version="1.0" encoding="utf-8"?>';
   echo '<newslist name="site_name">';
        $sql="SELECT * FROM news ORDER BY newsdate DESC";
        if($query=mysql_query($sql)){
                while($rs=mysql_fetch_array($query)){
                        echo "<news><date>{$rs['newsdate']}</date>";
                        echo "<title>{$rs['title']}</title>";
                        echo "<content>{$rs['content']}</content></news>";
                }
        }
        echo '</newslist>';

Örnek MySQL

İşte bu da gerekli mysql tablo yapısı

-- 
-- Tablo yapısı : `news`
-- 
 
CREATE TABLE `news` (
  `id` mediumint(9) NOT NULL AUTO_INCREMENT,
  `newsdate` datetime NOT NULL,
  `title` varchar(255) collate utf8_unicode_ci NOT NULL,
  `content` text collate utf8_unicode_ci NOT NULL,
  `details` text collate utf8_unicode_ci NOT NULL,
  `lang` char(2) collate utf8_unicode_ci NOT NULL DEFAULT 'tr',
  `is_active` tinyint(4) NOT NULL DEFAULT '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;



Bu yazıyı oylayın

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (5 oy, ortalama: 4,60 / 5)
Loading ... Loading ...

Konular: Programlama
Etiketler: , , , ,


Yorumlar

15 cevap to “Flash ve PHP ile dinamik içerik (Ör: Haberler)”
  1. ser diyor ki:

    güzel anlatım teşekkürler..

  2. Nejdet Menzir diyor ki:

    Güzel bi döküman olmuş. Teşekkür ederim.

  3. avşa adası diyor ki:

    teşekkürler bu bilgiler iyi oldu

  4. avşa diyor ki:

    Hemen deniyorum inşallah olur

  5. mehmet emre diyor ki:

    güzel çalışma

  6. barbaros diyor ki:

    kardeş çok teşekkür ederim 1 haftadır arıyordum nette var ama bir türlü çalıştıramamıştım çok saol tekrar:)

  7. saadet diyor ki:

    bilgi için çok teşekkürler. fakat bende sadece 15-01-2007 yazası geldi acaba nerde hata yapıyor olabilirim. teşekkürler..

  8. saadet diyor ki:

    örnek dosyanızı yeni gördüm. sorun yok teşekkürler..

  9. newgene diyor ki:

    çok açıklayıcı ve net bir örnek olmuş.Özellikle Flash ve xml create mekanizmasına iyi bir yaklaşım olmuş. Teşkkürler…

  10. Selman diyor ki:

    hocam bi sorun var yapamadım
    verdiğiniz örnek dosyadaki news tablosunu veritabanımda oluşturdum News içeriğindeki bilgileri almıyor hocam bu.tamamen xml de örnek olarak yazılan yazıları gösteriyor hala statik gibi calışıyor yani.
    news.php veritabanından bilgileri alıyor fakat xml e aktarmıyor bu yüzden flash da görünmüyor yardımcı olursanız sevinirim

  11. gudubeth diyor ki:

    sorunu tam anlamadım ama şansımı bi deneyeyim. flash dosyası içerisinde bulunan newsList.load(”news.xml”) satırdaki news.xml yerine php dosyanın adını yazdın mı?

  12. mehmet diyor ki:

    çalıştıramayan varsa duzenledım ıstedıgınız her db den bılgı ceker hale geldı. ayarlarını yapınca olay bıter. ama sabahlattı namussuz

  13. salim diyor ki:

    çok açıklayıcı ve net bir örnek olmuş Teşkkürler

  14. hameti diyor ki:

    hocam bu konuda başka kaynaklarda mevcutmu acaba

  15. alper diyor ki:

    Anlayanlar için çok açıklayıcı çok işime yaradı teşekkürler

Yorum bırakın