Selamat Datang

Membuat RSS Feed di Codeigniter

Membuat RSS Feed dengan Codeigniter adalah bahasan kita kali ini.

Setiap website seharusnya memiliki sebuah RSS Feed, ini berguna agar orang lain dapat mengambil berita yang ada di website kita untuk ditampilkan di website mereka, konten nya boleh seluruh artikel, atau hanya potongan artikel-artikel saja.

Selain ditampilkan di website pengunjung, RSS Feed juga berguna jika pengunjung website ingin berlangganan artikel terbaru dari website kita melalui Google Reader, atau Aplikasi yang ada di Handphone mereka.

rsss

Jika kita menggunakan CMS seperti WordPress, Drupal atau Joomla, biasanya RSS Feed sudah tersedia, contoh untuk website kesayangan kita ini alamat RSS Feed nya terletak di DOMAIN/feed.

http://www.tutorial-webdesign.com/feed/

Namun jika kita membuat website tanpa bantuan CMS yang kami sebutkan diatas, maka RSS Feed harus kita generate manual.

Kita asumsikan kita membuat website dengan menggunakan Framework Codeigniter (Kami anggap anda sudah paham dasar-dasar MVC di Codeigniter), maka step nya kira-kita seperti ini:
Kita ambil beberapa artikel yang ada di tabel postingan kita, biasanya 10 artikel sudah cukup. Kita load artikel tersebut di model, Lalu kita parsing datanya dari Controller ke View dalam bentuk XML (bukan HTML). Contohnya seperti berikut ini.

Membuat Database dan Table

Buat sebuah database dengan nama sesuka kamu, lalu buat tabel dengan nama tbl_posts, strukturnya sebagai berikut:

CREATE TABLE `tbl_posts` (
  `post_id` int(5) NOT NULL AUTO_INCREMENT,
  `post_title` varchar(100) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `post_content` longtext NOT NULL,
  `post_img` varchar(100) NOT NULL,
  `post_date` datetime NOT NULL,
  `click` int(10) NOT NULL,
  PRIMARY KEY (`post_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Masukan beberapa data, dalam contoh ini sebaiknnya masukan 10 contoh artikel, kamu juga bisa mencoba file SQL yang sudah kami siapkan file yang bisa anda download dibagian akhir artikel ini

Buat Controller (rss.php)

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Rss extends CI_Controller{

	public function __construct() {
		parent::__construct();
		$this->load->helper(array('xml','text'));
		$this->load->model('mdl_rss');
    }
	
	public function index(){

		$data = array(
			'encoding' 			=> 'utf-8',
			'feed_name' 		=> 'Tutorial-webdesign.com',
			'feed_url' 			=> 'http://www.tutorial-webdesign.com/feed/',
			'page_description' 	=> 'Web Design & Development + Graphic Design Indonesia',
			'page_language' 	=> 'en-ca',
			'creator_email' 	=> 'tut.webdesign@gmail.com',
			'posts' 			=> $this->mdl_rss->get_posts(10)
		);


		header("Content-Type: application/rss+xml");
		$this->load->vars($data);
		$this->load->view('rss');
	}
}

Buat Model (mdl_rss.php)

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class mdl_rss extends MY_Model
{
	public function __construct()
	{
		parent::__construct();
	}


	function get_posts($count)
	{
		$query = $this->db->get('tbl_posts', $count)->result();
		return $query;
	}
	
}

Buat View (rss.php)

<?php
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
 
	<channel>
		<title><?php echo $feed_name; ?></title>
		<link><?php echo $feed_url; ?></link>
		<description><?php echo $page_description; ?></description>
		<dc:language><?php echo $page_language; ?></dc:language>
		<dc:creator><?php echo $creator_email; ?></dc:creator>
		<image>
			<url><?php echo _THEMEPATH_?><?php echo _THEME_?>/assets/img/logo-75.png</url>
		</image>		

		<dc:rights>Copyright <?php echo gmdate("Y", time()); ?></dc:rights>
		<admin:generatorAgent rdf:resource="http://www.aplikasiphp.com/" />

		<?php foreach($posts as $row):?>
			
			<item>
				<title><?php echo $row->post_title; ?></title>
				<link><?php echo site_url("detail/".$row->slug); ?></link>
				<guid><?php echo site_url("detail/".$row->slug); ?></guid>
				<pubDate><?php echo date('l, F d, Y h:i A', strtotime($row->post_date));?></pubDate>
				<description>
					<![CDATA[
						<?php echo $row->post_content;?>
					]]>
				</description>

				<enclosure url="<?php echo base_url('assets/uploads/mobile_'.$row->post_img);?>" length="10240" type="image/jpg" />
			</item>

		<?php endforeach; ?>

	</channel>
</rss>

Maka nanti hasilnya akan terbentuk seperti RSS Feed yang ada di website kita ini. Hampir setiap website memiliki RSS Feed ini, khususnya website berita.

Oke silahkan download dan jalankan di codeigniter kamu. Letakkan model, view, controller nya di folder masing-masing.

DOWNLOAD | DEMO

Semoga berguna.
Salam Web Development Indonesia





Penulis :

Website yang berisi Tutorial, Tips, Trik, Inspirasi, Opini, Cerita, Studi kasus, dan berbagai hal menarik tentang Web Design, Web Development dan Graphic Design untuk orang-orang kreatif di Indonesia. View all posts by TWD Editorial

Comments

17 thoughts on “Membuat RSS Feed di Codeigniter

  1. Thanks sharingnya, gan!
    Salam kenal…Kalau berkenan mau ngundang untuk ikutan gabung dengan teman-teman lain yang sudah SUBMIT URL BLOG-nya ke Direktori Weblog Indonesia :)

  2. ReeZh Design says:

    Thanks bwt sharing artikelnya… nice post.
    Salam kenal bwt semuanya.

  3. Muhammad Yusup Hamdani says:

    [OOT]
    saya mau tanya,
    saya punya tabel berita memiliki id_berita, judul, dilihat, dll.
    saya ingin menampilkan data yang telah dilihat lebih dari 5 kali nah gimana ya?? sebelumnya terimakasih :D

    ini coding yang saya coba tapi engga bisa. mohon koreksinya :D

    function ambildata_pavorit() {
    $query = “select dilihat from tbl_berita limit 1”;
    $rows = $this->db->query($query);
    $row = $rows->row();
    $ambildata_pavorit = $this->db->get(“tbl_berita”);
    if ($row->dilihat > 5) {
    if ($ambildata_pavorit->num_rows() > 0) {
    foreach ($ambildata_pavorit->result() as $data) {
    $hasil_ambildata_pavorit[] = $data;
    }
    return $hasil_ambildata_pavorit;
    }
    }
    }

  4. misi gan kok punya ane ko ga sama ya??
    ini udah betul apa belum??
    http://batik-kendal.com/rss

  5. Terimakasih gan, tutorialnya, salam kenal.
    dan Sukses selalu :D

  6. […] RSS Feed adalah hal terpenting dari web, dengan adanya rss feed maka orang lain dapat memanfaatkan konten web baik untuk ditampilkan di web lain dan lain sebagainya, untuk tutorial lengkapnya dapat dilihat pada tautan berikut, Panduan Membuat RSS Feed Dengan Codeigniter […]

  7. ferry says:

    header(“Content-Type: application/rss+xml”); untuk apa dan dari mana datangnya
    $this->load->vars($data) ngeload dari mana

  8. […] RSS Feed adalah hal terpenting dari web, dengan adanya rss feed maka orang lain dapat memanfaatkan konten web baik untuk ditampilkan di web lain dan lain sebagainya, untuk tutorial lengkapnya dapat dilihat pada tautan berikut, Panduan Membuat RSS Feed Dengan Codeigniter […]

  9. Joe says:

    gan ane mau tanya,ane udah ngoding sesuai di atas
    damipi.esy.es/contoh/rss

    trus ane coba share via dlvr.it kok gak mau share ke facebook ya
    tapi pas ane konek ke twitter bisa.

    mungkin agan bisa bantu ? hehe
    thx

  10. Putri Widya says:

    mas, maaf mau nanya.
    ko yg saya hasilnya :

    Class ‘MY_Model’ not found in C:\xampp\htdocs\project\application\models\mdl_rss.php on line 2

  11. kalo mau ngambil feed tsb yg udah jd, gmn caranya?

Leave a Comment

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


Klik Tombol Like / Suka ya kawan..

Klik tombol "Like" atau "Suka" untuk mendapatkan update tutorial, tips & tricks serta info terbaru seputar dunia web design & development