Konsep kerja dari list arsip berdasarkan bulan dan tahun adalah, bila salah satu bulan dan tahun ini diklik, maka akan menampilkan list artikel yang diposting pada bulan dan tahun tersebut. Apabila kita menggunakan Wordpress atau Blogger, tentu untuk membuat arsip dalam bentuk bulan dan tahun tentunya tidak menjadi masalah karena hanya menggunakan widget, selesai… Namun bagaimana bila kita ingin membuatnya di AuraCMS? Nah… sekarang kita akan coba mencari ide untuk membuatnya.
Pertama kita membuat list bulan dan tahunnya terlebih dahulu. Harapan kita, nantinya dalam script akan muncul list sbb:
· November 2008
· December 2008
· January 2009
· February 2009
Kalau kita klik ‘December 2008′ maka akan muncul list artikel yang diposting pada bulan dan tahun tersebut. Demikian pula kalau yang diklik adalah ‘February 2009′.
Berikut ini script yang langsung bisa langsung di implementasikan di AuraCMS:
if(ereg(basename (__FILE__), $_SERVER['PHP_SELF']))
{
header("HTTP/1.1 404 Not Found");
exit;
}
ob_start();
global $koneksi_db;
$perintah = "SELECT DISTINCT date_format(tgl, '%M %Y') as bulantahun FROM artikel";
$hasil = $koneksi_db->sql_query( $perintah );
$topikbox = "
";
while ($data = $koneksi_db->sql_fetchrow($hasil)) {
$url=str_replace(" ", "_", $data[bulantahun]);
$topikbox.= "
}
$topikbox.= "";
echo $topikbox;
$out = ob_get_contents();
ob_end_clean();
?>
Silahkan copy paste script di atas kemudian simpan di folder mod/news dengan nama arsip.php
Apakah script di atas sudah selesai? Belum ternyata. Sekarang yang menjadi pertanyaan adalah, bagaimana mengkaitkan antara link list bulan dan tahun dengan artikelnya. Kaitan ini digunakan untuk menentukan artikel apa yang akan muncul bila diklik salah satu bulan dan tahun. Nah… parameter yang diberikan pada link nantinya akan kita gunakan pada querynya untuk memfilter artikel yang sesuai bulan dan tahunnya.
Sekarang coba kita buka file news.php yang ada di folder mod/news. Kemudian sisipkan script ini:
if($_GET['aksi']=="blth"){
$blth =
$_GET['blth'];
$url=str_replace("_", " ", $blth);
$hasil = $koneksi_db->sql_query( "SELECT * FROM
artikel WHERE date_format(tgl, '%M %Y') ='$url' AND publikasi=1" );
$data = $koneksi_db->sql_fetchrow($hasil);
$tengah .='
Arsip :
'.$url.'
';
if (empty ($url)){
$tengah.='
$tengah .='';
}else {
$limit = 10;
$offset = int_filter(@$_GET['offset']);
$pg = int_filter(@$_GET['pg']);
$stg = int_filter(@$_GET['stg']);
$totals = $koneksi_db->sql_query( "SELECT id FROM artikel WHERE publikasi=1 AND date_format(tgl, '%M %Y') ='$url'" );
$jumlah = $koneksi_db->sql_numrows( $totals );
$a = new paging ($limit);
if ($jumlah>0 ){
$hasil = $koneksi_db->sql_query( "SELECT * FROM artikel WHERE publikasi=1 AND date_format(tgl, '%M %Y') ='$url' ORDER BY id DESC LIMIT $offset, $limit" );
while ($data = $koneksi_db->sql_fetchrow($hasil)) {
$data[5]= datetimes($data['tgl']);
$tengah .='
'.$data['1'].'
'.limitTXT(strip_tags($data[2]),250).'
By '.$data[3].'
'.$data[5].'
';
} //end while
if($jumlah>10){
$tengah .='
$tengah.="";
if (empty($_GET['offset']) and !isset ($_GET['offset'])) {
$offset = 0;
}
if (empty($_GET['pg']) and !isset ($_GET['pg'])) {
$pg = 1;
}
if (empty($_GET['stg']) and !isset ($_GET['stg'])) {
$stg = 1;
}
$tengah.= $a-> getPaging($jumlah, $pg, $stg);
$tengah.="";
$tengah .='';
}
} else{
$tengah.='
$style_include[] ='';
}
} //end if kosong
} //end function
Berhubung aksi=arsip sudah ada, maka untuk arsip bulan tahun ini saya beri aksi=blth, gpp kan.
Selanjutnya anda tinggal login sebagai admin kemudian pilih menu modul manager trus buat blok modul baru isi judul blok terserah anda, isi file modul (*.php) dengan mod/news/arsip.php.
Selamat mencoba.
Visitors | : 477807 Org |
Hits | : 1489478 hits |
Month | : 6219 Users |
Today | : 452 Users |
Online | : 13 Users |
Stat. Web | : Klik |