Life of Multimedia

life that bring happiness

Membuat RSS Feed di Codeigniter

Tinggalkan komentar

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:

1 CREATE TABLE `tbl_posts` (
2   `post_id` int(5) NOT NULL AUTO_INCREMENT,
3   `post_title` varchar(100) NOT NULL,
4   `slug` varchar(255) NOT NULL,
5   `post_content` longtext NOT NULL,
6   `post_img` varchar(100) NOT NULL,
7   `post_date` datetime NOT NULL,
8   `click` int(10) NOT NULL,
9   PRIMARY KEY (`post_id`)
10 ) 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)

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 class Rss extends CI_Controller{
3
4     public function __construct() {
5         parent::__construct();
6         $this->load->helper(array('xml','text'));
7         $this->load->model('mdl_rss');
8     }
9     
10     public function index(){
11
12         $data = array(
13             'encoding'          => 'utf-8',
14             'feed_name'         => 'Tutorial-webdesign.com',
15             'feed_url'          => 'http://www.tutorial-webdesign.com/feed/',
16             'page_description'  => 'Web Design & Development + Graphic Design Indonesia',
17             'page_language'     => 'en-ca',
18             'creator_email'     => 'tut.webdesign@gmail.com',
19             'posts'             => $this->mdl_rss->get_posts(10)
20         );
21
22
23         header("Content-Type: application/rss+xml");
24         $this->load->vars($data);
25         $this->load->view('rss');
26     }
27 }

Buat Model (mdl_rss.php)

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 class mdl_rss extends MY_Model
3 {
4     public function __construct()
5     {
6         parent::__construct();
7     }
8
9
10     function get_posts($count)
11     {
12         $query = $this->db->get('tbl_posts', $count)->result();
13         return $query;
14     }
15     
16 }

Buat View (rss.php)

1 <?php
2 echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
3 ?>
4 <rss version="2.0"
7 xmlns:admin="http://webns.net/mvcb/"
11  
12     <channel>
13         <title><?php echo $feed_name; ?></title>
14         <link><?php echo $feed_url; ?></link>
15         <description><?php echo $page_description; ?></description>
16         <dc:language><?php echo $page_language; ?></dc:language>
17         <dc:creator><?php echo $creator_email; ?></dc:creator>
18         <image>
19             <url><?php echo _THEMEPATH_?><?php echo _THEME_?>/assets/img/logo-75.png</url>
20         </image>     
21
22         <dc:rights>Copyright <?php echo gmdate("Y", time()); ?></dc:rights>
23         <admin:generatorAgent rdf:resource="http://www.aplikasiphp.com/" />
24
25         <?php foreach($posts as $row):?>
26             
27             <item>
28                 <title><?php echo $row->post_title; ?></title>
29                 <link><?php echo site_url("detail/".$row->slug); ?></link>
30                 <guid><?php echo site_url("detail/".$row->slug); ?></guid>
31                 <pubDate><?php echo date('l, F d, Y h:i A', strtotime($row->post_date));?></pubDate>
32                 <description>
33                     <![CDATA[
34                         <?php echo $row->post_content;?>
35                     ]]>
36                 </description>
37
38                 <enclosure url="<?php echo base_url('assets/uploads/mobile_'.$row->post_img);?>" length="10240" type="image/jpg" />
39             </item>
40
41         <?php endforeach; ?>
42
43     </channel>
44 </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

Sumber/Source

Penulis: DHYARIE

smart

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s