Dokumen Ary

Belajar adalah suatu investasi yang tak ternilai harganya

Archive Berita Lokomedia

archive berita lokomediaPada kesempatan kali ini, saya ingin membagikan trik membuat archive berita pada CMS Lokomedia. Seperti yang kita tahu, pada CMS Lokomedia hanya pada template standard nya yang menyediakan fasilitas archive berita. Kali ini saya ingin membagikan sedikit trik lain untuk membuat archive berita pada Lokomedia, hasilnya bisa dilihat di SINI.

Berikut langkah demi langkah membuatnya :

Hal pertama yang paling penting yaitu kita harus menjediakan query nya terlebih dahulu, berikut querynya  :

SELECT DISTINCT(MONTH(tanggal)) as bulan, YEAR(tanggal) as tahun FROM berita ORDER BY tahun DESC,bulan DESC

Dengan query tersebut, kita sudah mendapatkan bulan dan tahun yang ada sesuai dengan berita yang ada di database.  Selanjutnya kita tinggal menampilkannya, dalam contoh ini saya menampilkannya dalam tag <ul> dan </li> seperti berikut :

<ul>
<?php
$archive = mysql_query("SELECT DISTINCT(MONTH(tanggal)) as bulan, YEAR(tanggal) as tahun FROM berita ORDER BY tahun DESC,bulan DESC LIMIT 5");
while($h = mysql_fetch_array($archive)){
       $jumlah_berita = mysql_num_rows(mysql_query("SELECT id_berita FROM berita WHERE MONTH(tanggal)='$h[bulan]' AND YEAR(tanggal)='$h[tahun]'"));
       echo "<li><a href='archive-$h[bulan]-$h[tahun].html'>".getBulan($h[bulan])." $h[tahun] ($jumlah_berita)</a></li>";
}
?>
</ul>

Didalam kode diatas, terdapat variabel $jumlah_berita yang berfungsi menampung hasil query menghitung berita berdasarkan bulan dan tahun yang telah kita dapat.

Langkah berikutnya yaitu menambahkan kode berikut ke file .htaccess kita :

RewriteRule ^archive-([0-9]+)-([0-9]+)\.html$ media.php?module=archive&bulan=$1&tahun=$2 [L]

Pada skrip htaccess di atas, didefinisikan modul baru bernama archive yang tentunya tinggal kita tambahkan kode berikut pada template anda :

elseif ($_GET['module']=='archive'){
  $berita = mysql_query("SELECT * FROM berita WHERE MONTH(tanggal)='$_GET[bulan]' AND YEAR(tanggal)='$_GET[tahun]'"); 
  $jml_berita = mysql_num_rows($berita);
  echo "<h1 class='post_title'>Archive Berita</h1><br>";

  echo "<h3><b>$jml_berita</b> Berita pada <b>".getBulan($_GET[bulan])." ".$_GET['tahun']."</b><div class='right'>Archive 
  <select id='bulan-tahun' onchange='archive()'>";

  $archive = mysql_query("SELECT DISTINCT(MONTH(tanggal)) as bulan, YEAR(tanggal) as tahun FROM berita ORDER BY tahun DESC,bulan DESC");
  while($r = mysql_fetch_array($archive)){
       if($_GET[bulan]==$r[bulan] AND $_GET[tahun] == $r[tahun]){
            $select = "selected";
       }
       else{
            $select = "";
       }
       echo "<option value='$r[bulan]-$r[tahun]' $select>".getBulan($r[bulan])." $r[tahun]</option>";
  }
  echo "</select>
  </div></h3>
  <ul id='middle_footer'>"; 

  while($b = mysql_fetch_array($berita)){
      echo "<li><a href='berita-$b[id_berita]-$b[judul_seo].html'>$b[judul]</a></li>";
  }

  echo "</ul>";
  ?>

  <script>
  function archive(){
     var str = $("#bulan-tahun").val();
     var datas = str.split("-");
     window.location = "archive-" + datas[0] + "-" + datas[1] + ".html";
  }
  </script>
<?php
}

Kode di atas merupakan langkah terahir dalam pembuatan archive berita pada tutorial ini.

Bagaimana?? tidak terlalu sulit kan dalam membuatnya? semoga anda tidak menemui kesulitan yang berarti…

terimakasih sudah berkunjung… 🙂

4 responses to “Archive Berita Lokomedia

  1. yeyep sudrajat May 11, 2013 at 5:26 pm

    mangtabz Mas Ary…trima kasih banyak atas tutorialnya…mohon update terus tutorial untuk cms lokomedianya…

  2. ronal May 30, 2013 at 2:23 am

    mau tanya query ini naronya dimna ya mas

    SELECT DISTINCT(MONTH(tanggal)) as bulan, YEAR(tanggal) as tahun FROM berita ORDER BY tahun DESC,bulan DESC

    masih bingung?

  3. bincar August 23, 2013 at 6:23 am

    mas bro ini query taro di modul mana berita kah? berarti gak nambahin filed lg di tabel berita
    SELECT DISTINCT(MONTH(tanggal)) as bulan, YEAR(tanggal) as tahun FROM berita ORDER BY tahun DESC,bulan DESC?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: