Pada tulisan kali ini saya akan memberikan tips untuk membuat Readmore (cuplikan) pada artikel di Content Management System buatan anda. Sebelumnya anda siapkan dulu tabelnya:
artikel
idartikel int(11) Primary Key Auto_increament

title varchar(30)

content text

author varchar(30)

datepub date

views int(11)


Dalam pembuatan pasilitas ini ada dua metode yang bisa digunakan yaitu dengan cara:

1. Dengan membuat tanda tertentu melalui fungsi explode()

Pada teknik ini suatu data akan dibatasi melalui tanda subtring yang sebelumnya telah diinput. Metode ini sering diberikan oleh Pak Lukmanul Hakim melalui bukunya.

artikel.php
<?php
// lakukan koneksi ke mysql
include "koneksi.php";

// query untuk membaca data artikel yang diurutkan
// berdasarkan id artikel
$query = "SELECT * FROM artikel ORDER BY idArtikel";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
// tampilkan title artikel
echo "<h3>$data[title]</h3>";

// tampilkan tanggal pub, author dan berapa kali dibaca
echo "<p><small>Tanggal publikasi: $data[datePub]. <br>Penulis:
$data[author]. Dibaca: $data[views] kali</small></p>";

// lakukan exploding isi artikel berdasar string <!--more-->
$pecah = explode("<!--more-->", $data['content']);

// excerpt : elemen pertama (index ke-0) dr hasil exploding
$excerpt = $pecah[0];

// tampilkan excerpt
echo "<p>$excerpt</p>";

// link untuk baca selengkapnya, id artikel sbg parameternya
echo "<p><a href='view.php?id=$data[idArtikel]'>
Baca selengkapnya...</a></p><hr>";
}

?>

Nah setelah itu anda tinggal buat file detail nya, pada file ini akan menanganai paramater yang dikirim melalui GET yang dikirim dari file artikel.php.

detail.php
<?php
// lakukan koneksi ke mysql
include "koneksi.php";

// baca id artikel dari parameter link 'Baca selengkapnya...'
$id = $_GET['id'];

// update jumlah views
// (jumlah views bertambah 1 dari sebelumnya) dari artikel
$query = "UPDATE artikel SET views = views + 1 WHERE idArtikel = '$id'";
mysql_query($query);

// baca data artikel berdasarkan id nya
$query = "SELECT * FROM artikel WHERE idArtikel = '$id'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);

// tampilkan title artikel
echo "<h3>$data[title]</h3>";
// tampilkan tanggal pub, author dan berapa kali dibaca
echo "<p><small>Tanggal publikasi: $data[datePub]. <br> Penulis:
$data[author]. Dibaca: $data[views] kali</small></p>";
// tampilkan isi artikel lengkapnya
echo "<p>$data[content]</p>";

?>

2. Dengan menggunakan fungsi substr()

Pada teknik ini menurut saya adalah paling mudah digunakan namun fungsi subtring() ini menampilkan data berdasarkan jumlah karakter bukan per kata atau perdefinisi string. Teknik pembuatanyan sama dengan yang diberikan oleh Pak Lukmanul Hakim namun penanganan datanya saja yang berbeda. Tekniknya seperti ini:

substr($string_data, batas_awal, batas_akhir);


Contoh : Jika field content pada tabel diatas memiliki data

Isi artikel isi artikel isi artikel isi artikel Isi artikel isi artikel isi artikel isi artikel Isi artikel isi artikel isi artikel isi artikel Isi artikel isi artikel isi artikel isi artikel

Nah untuk menampilkan cuplikannya seperti ini:

artikel.php
<?php
$data=mysql_query("SELECT * FROM artikel ORDER BY idartikel DESC");

while($d=mysql_fetch_array($data)){

echo '<a href="detail.php?id='.$d['idartikel'].'">'.$d['title'].'</a><br>

.substr($d['content'], 0, 200).'<p>

<a href="<a href="detail.php?id='.$d['idartikel'].'">Selengkapnya..</a>';

}

?>

Penjelasan:

Lihat pada fungsi substr($d['content'], 0, 200) itu artinya adalah tampilkan data field content mulai dari karakter 0 sampai karakter 200. Kelemahanya jika menggunakan fungsi substr() ada kata kata yang paling akhir kalimatnya tak lengkap alias kepotong. Setelah membuat file artikel.php kita buat file proses selengkapnya.

detail.php
<?php
//Buat dulu penanganan parameter GET nya karena sebelumnya GET nya itu dinamakan id maka:

$id = $_GET['id'];

//Karena data yang ditampilkan tunggal (hanya satu) maka tak perlu memakai while atau for

$a=mysql_fetch_array(mysql_query("SELECT * FROM artikel WHERE idartikel='$id' "));

echo '<a href="detail.php?id='.$d['idartikel'].'">'.$d['title'].'</a><br>

.$d['content'].'<p>

?>

Nah coba bandingkan dari kedua cara tersebut, mana menurut anda yang termudah dan hemat dalam pengkodean. Selamat mencoba semoga berhasil.

Post a Comment

 
Top