Paging Navigasi pada Halaman Fontpage (Home) Lokomedia

Menambahkan navigasi halaman pada frontpage (home) lokomedia sama seperti membuat paging pada halaman-halaman lainnya. Langkah-langkahnya dimulai dengan membuat class paging baru kemudian memanggilnya pada module yang akan kita beri paging dan yang terakhir adalah penyesuian file ‘.htaccess’.  Kali ini kita akan membahasnya dengan menggunakan template sandbox yang digunakan lokomedia. Karena template ini lebih cocok dikustomasi untuk memiliki paging pada halaman frontpagenya. Berbeda dengan template lain yang lebih mengedepankan image slider di halaman utamanya.  Template ini juga memiliki class paging tersendiri yang diletakkan dalam folder script pada file pageNavi.php yang berbeda dengan template lain yang masih memanfaatkan file class_paging.php dalam folder config.

Baiklah kita mulai dengan membuat class paging baru pada file pageNavi.php misalnya class pageNavi_Home. Tambahkan script berikut :

class pageNavi_Home{
		// Fungsi untuk mencek halaman dan posisi data
		function cariPosisi($batas) {
			if(empty($_GET['page'])) {
				$posisi = 0;
				$_GET['page'] = 1;
			} else {
				$posisi = ($_GET['page'] - 1) * $batas;
			}
			return $posisi;
		}
		
		// Fungsi untuk menghitung total halaman
		function jumlahHalaman($jmldata, $batas) {
			$jmlhalaman = ceil($jmldata/$batas);
			return $jmlhalaman;
		}
		
		// Fungsi untuk link halaman 1,2,3 
		function navHalaman($halaman_aktif, $jmlhalaman) {
			global $link;
			
			$link_halaman = "";
		
			// Link ke halaman pertama (first) dan sebelumnya (prev)
			if($halaman_aktif > 1) {
				$prev = $halaman_aktif - 1;
	
				if($prev > 1) { 
					$link_halaman .= "<a class=\"first\" href=\"page-1.html\"></a>";
				}			
				$link_halaman .= "<a class=\"previouspostslink\" href=\"page-".$prev.".html\"></a>";
			}
		
			// Link halaman 1,2,3, ...
			$angka = ($halaman_aktif > 3 ? "<span>...</span>" : " "); 
			for($i = $halaman_aktif-2;$i < $halaman_aktif;$i++) {
				if ($i < 1) continue;
				$angka .= "<a href=\"page-".$i.".html\">".$i."</a>";
			}
			$angka .= "<span class=\"current\">".$halaman_aktif."</span>";
			  
			for($i=$halaman_aktif+1; $i<($halaman_aktif+3); $i++) {
				if($i > $jmlhalaman) break;
				$angka .= "<a href=\"page-".$i.".html\">".$i."</a>";
			}
			$angka .= ($halaman_aktif+2 < $jmlhalaman ? "<span>...</span><a href=\"page-".$jmlhalaman.".html\">".$jmlhalaman."</a>" : " ");
		
			$link_halaman .= $angka;
			
			// Link ke halaman berikutnya (Next) dan terakhir (Last) 
			if($halaman_aktif < $jmlhalaman) {
				$next = $halaman_aktif + 1;
				$link_halaman .= "<a class=\"nextpostslink\" href=\"page-".$next.".html\"></a>";
				
				if($halaman_aktif != $jmlhalaman - 1) {
					$link_halaman .= "<a class=\"last\" href=\"page-".$jmlhalaman.".html\"></a>";
				}
			}
			
			return $link_halaman;
		}
	}

Berikutnya modifikasi module=home pada file content.php. Panggil class pageNavi_Home seperti script dibawah ini :

<?php if($_GET['module'] == 'home') { ?>
    <div id="content">
        <div class="title">
            <h2>Berita Terbaru</h2>
        </div>
        <?php
		$p = new pageNavi_Home;
		$batas = 3;
		$posisi = $p->cariPosisi($batas);
        // Berita Sebelumnya (tampilkan 5 berita terbaru) 
        $sebelum = mysql_query("SELECT COUNT(komentar.id_komentar) AS jml, judul, judul_seo, jam, 
                                berita.id_berita, hari, tanggal, gambar, isi_berita    
                                FROM berita LEFT JOIN komentar 
                                ON berita.id_berita = komentar.id_berita
                                AND aktif = 'Y' 
                                GROUP BY berita.id_berita DESC LIMIT ".$posisi.",".$batas."");		 
        while($t = mysql_fetch_array($sebelum)) {
        ?>
            <div id="post">
                <?php
                // Apabila ada gambar dalam berita, tampilkan
                if ($t['gambar']!='') {
                ?>
                    <a class="thumb" href="berita-<?php echo $t[id_berita] ?>-<?php echo $t[judul_seo] ?>.html">
                    <img src="<?php echo $f[folder] ?>/script/timthumb.php?src=foto_berita/<?php echo $t[gambar] ?>&amp;w=150&amp;h=105">
                    </a>
                <?php } ?>
                <div class="content">
                    <h3>
                    <a class="ease" href="berita-<?php echo $t[id_berita] . '-' .$t[judul_seo] ?>.html"><?php echo $t[judul] ?></a>
                    </h3>
                <?php
                    $tgl = tgl_indo($t['tanggal']);
                    echo '<div class="post-meta">';
                    echo $t[hari] .', ' . $tgl . ' - ' . $t[jam] .' WIB | ' . $t[jml] .' Komentar';
                    echo '</div>';
                    // Tampilkan hanya sebagian isi berita
                    $isi_berita = htmlentities(strip_tags($t['isi_berita'])); // membuat paragraf pada isi berita dan mengabaikan tag html
                    $isi = substr($isi_berita,0,180); // ambil sebanyak 180 karakter
                    $isi = substr($isi_berita,0,strrpos($isi," ")); // potong per spasi kalimat
                ?>
                    <p><?php echo $isi ?>... <a class="ease" href="berita-<?php echo $t[id_berita] . '-' .$t[judul_seo] ?>.html">Selengkapnya &rarr;</a></p>
                </div><!-- END #post .content -->
            </div><!-- END #post -->
       <?php }

	$jmldata = mysql_num_rows(mysql_query("SELECT * FROM berita WHERE aktif = 'Y'"));
	$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);
	$linkHalaman = $p->navHalaman($_GET['page'], $jmlhalaman);
?>
	<!-- Page Navigation -->
	<div class="light">
        <div class="pageNavi">
			<?php echo $linkHalaman ?>
		</div>
	</div>      
	<!-- END Page Navigation -->
    </div><!-- END #content -->
<?php
} 
?>

Terakhir tambahkan satu baris script pada file .htaccess seperti ini.

RewriteRule ^page-(.*)\.html$ media.php?module=home&page=$1 [L]

Cukup mudah pastinya. Selamat mencoba dan mudah-mudahan berhasil.
File Download.
paging