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.

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.
Semoga berguna.
Salam Web Development Indonesia
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 :)
Ok gan.
Tolong dipasangkan saja sama agan langsung ya :) kami sedang tidak sempat karena beberapa kesibukan
Thanks bwt sharing artikelnya… nice post.
Salam kenal bwt semuanya.
Ok :) Senang kenal dengan anda
[…] Sumber/Source […]
[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;
}
}
}
misi gan kok punya ane ko ga sama ya??
ini udah betul apa belum??
http://batik-kendal.com/rss
Terimakasih gan, tutorialnya, salam kenal.
dan Sukses selalu :D
[…] 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 […]
header(“Content-Type: application/rss+xml”); untuk apa dan dari mana datangnya
$this->load->vars($data) ngeload dari mana
Itu untuk mendeklarasikan bahkan kontennya berupa rss xml.
isi
$data
diambil dari$data
yang atas di atas nya, yaitu data array[…] 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 […]
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
Pastikan format rss nya sesuai dengan standar, jadi lihat di dlvrt nya apa yang kurang, biasanya dikasih tau.
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
kalo mau ngambil feed tsb yg udah jd, gmn caranya?
http://www.domain.com/rss
http://www.domain.com/index.php/rss
ini yang saya cari,,, mksh gan tutorialnya…