Selasa, 28 Desember 2010

Membuat Script Komentar Ala Blog

Banyak sekali pengunjung setia blog ini yang menanyakan ke saya, bagaimana cara membuat script komentar dalam blog ini. He.. 3x jujur saja, bahwa di blog ini saya tidak pernah membuat script tersebut sama sekali karena blog ini saya bangun menggunakan Wordpress. Di dalam Wordpress, memang sudah tersedia fasilitas untuk mengirim komentar yang ditujukan bagi para pengunjung blognya.

But.. anyway di sini saya akan memberikan sedikit ide sederhana bagaimana membuat script PHP untuk memberikan komentar ala blog tersebut. Mudah-mudahan paparan saya ini bisa berguna buat Anda yang ingin mengembangkan script komentar ala blog di situs buatan sendiri atau bahkan siapa tahu ada yang membuat software blogging sendiri seperti layaknya Wordpress buatan anak bangsa Indonesia



OK.. sebelum kita bahas point utama pembuatannya, saya berikan dulu screen shot hasilnya berikut ini untuk memberikan gambaran awal skenario penggunaan scriptnya.

Gambar di atas menunjukkan tampilan pertama (halaman index) dari script yang menampilkan list atau daftar artikel yang telah dipublish. Sekarang perhatikan tampilan di bawah ini yang menunjukkan tampilan script setelah salah satu artikel diklik

Terlihat pada gambar di atas bahwa di bawah konten artikel terdapat bagian komentar yang nantinya akan diisi oleh pengunjung. Perhatikan hasil tampilan script komentarnya setelah user mengisi komentar pada artikel tersebut di bawah ini

Nah.. sedangkan gambar di bawah ini tampilan bila sudah ada lebih dari satu komentar yang ada dalam artikel.

OK dah paham ya dengan skenario tampilan dan penggunaannya? Kalo sudah, kita bisa mulai membuat script komentar ala blog ini.

Pertama, kita siapkan tabel databasenya. Di sini saya hanya membuat 2 tabel saja, yaitu untuk menyimpan data konten artikel serta tabel untuk menyimpan data komentar. Perlu diingat bahwa hal terpenting untuk pembuatan script komentar ini adalah pengkaitan antara suatu artikel dengan komentar yang berada di dalam postingan artikel tersebut. Oleh karena itu di dalam tabel komentar, kita harus membuat field yang menghubungkan suatu komentar dengan artikel tertentu.

CREATE TABLE `artikel` (
`idArtikel` int(11) AUTO_INCREMENT,
`title` varchar(30),
`content` text,
`author` varchar(30),
`datePub` date,
PRIMARY KEY (`idArtikel`)
);

CREATE TABLE `komentar` (
`idComment` int(11) AUTO_INCREMENT,
`idArtikel` int(11),
`commentAuthor` varchar(30),
`urlAuthor` varchar(30),
`comment` text,
`commentDate` date,
PRIMARY KEY (`idComment`)
);

Perhatikan struktur tabel ‘komentar’ di atas bahwa di dalam tabel tersebut terdapat field ‘idArtikel’. Field ini digunakan untuk merelasikan suatu komentar dengan artikel tertentu yang ada di tabel ‘artikel’ melalui id artikelnya. Sehingga suatu komentar bisa jelas miliknya artikel yang mana.

OK sekarang saya berikan sampel data konten artikelnya (2 data saja ya).

INSERT INTO `artikel` VALUES ('1', 'Title Artikel 1', 'Ini adalah konten artikel 1. Ini adalah konten artikel 1.
Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1.
Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1. ', 'Rosihan Ari',
'2010-01-20');

INSERT INTO `artikel` VALUES ('2', 'Title Artikel 2', 'Ini adalah konten artikel 2. Ini adalah konten artikel 2.
Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2.
Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. ', 'Rosihan Ari',
'2010-01-21');

Yes !! tabel untuk menyimpan data artikel dan komentar sudah dibuat, now what? ya… kita mulai bikin scriptnya deh.

Script pertama yang dibuat adalah script untuk menampilkan list artikelnya dulu (sesuai skenario di atas). Ini dia scriptnya. Oya.. hampir lupa, sebelum membuat script list artikel, ada baiknya kita buat dulu script untuk koneksi ke MySQL nya.

koneksi.php



Silakan diisi sendiri ya parameter koneksi di atas..

Selanjutnya kita bisa buat script untuk menampilkan list artikelnya

index.php

Daftar Artikel



".$data['title']."";
}

?>

Keterangan:
Pada script di atas, setiap title artikel diberikan link menuju ke script view.php untuk menampilkan detail konten artikelnya. Oya, jangan lupa gunakan parameter pada link nya ya. Dalam hal ini parameter yang digunakan dalam link nya adalah id setiap artikel.

Sekarang, kita buat script view.php nya. Di dalam script ini nanti kita akan buat bagian untuk menampilkan full isi artikelnya berdasarkan id artikel yang berasal dari parameter link, sekaligus bagian untuk menampilkan list komentar dan form untuk mengisi komentar.

view.php

".$data['title']."";
echo "

Tanggal publikasi: ".$data['datePub'].", Oleh: ".$data['author']."

";
echo "

".$data['content']."

";

// proses menampilkan komentar berdasarkan id artikelnya

echo "

Komentar

";

$query = "SELECT * FROM komentar WHERE idArtikel = '$idArtikel'";
$hasil = mysql_query($query);

if (mysql_num_rows($hasil) > 0)
{
// jika ada komentar (jumlah data hasil query > 0), maka tampilkan komentarnya
while ($data = mysql_fetch_array($hasil))
{
echo "

Dikirim oleh: ".$data['commentAuthor']." (".$data['urlAuthor']."), Tanggal: ".$data['commentDate']."

";
echo "

".$data['comment']."


";
}
}
// jika tidak ada komentar (jumlah data hasil query = 0), tampilkan keterangan belum ada komentar
else if (mysql_num_rows($hasil) == 0) echo "

Belum ada komentar.

";

// menampilkan form pengisian komentar

echo "

Kirim Komentar

";

echo "
";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "
Nama Anda:
URL Anda:
Komentar Anda:


";
echo "
";

?>

Keterangan:
Perhatikan perintah berikut ini pada script di atas

// membaca id artikel
$idArtikel = $_GET['idArtikel'];

Perintah di atas digunakan untuk membaca id artikel berasal dari link yang ada di index.php nya maupun dari action form submit komentarnya. ID artikel ini nantinya digunakan query SQL untuk menampilkan detail artikel , menampilkan komentar berdasarkan ID artikel tersebut, maupun untuk query INSERT komentarnya.

Oya, mungkin ada yang bertanya mengapa bagian script untuk proses menyimpan komentar (INSERT komentar) yang ada di blok atau bagian

if ($_GET['act'] == "submit")
{
...
}

diletakkan di atas atau sebelum bagian script untuk menampilkan data komentarnya? Iya donk, hal ini dilakukan supaya komentar yang baru saja dikirim nantinya akan langsung tampil di daftar komentar yang telah masuk setelah tombol submit komentarnya diklik. Jika Anda letakkan bagian script untuk menyimpan komentar setelah bagian menampilkan daftar komentar, maka Anda harus merefresh halaman tersebut untuk melihat komentar yang baru saja dikirim, karena proses INSERT dilakukan setelah proses menampilkannya. Seharusnya kan INSERT dulu baru ditampilkan. Paham ya maksud saya?

Nah.. mudah bukan membuatnya? Selamat mencobanya ya. Kalau sukses, silakan mengembangkan sendiri sesuai imajinasi dan kreatifitas Anda. Good luck.

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | Free Samples