フッターにblogの最新投稿を表示するようにしました

add_wordpress_rss

e2esound.comのフッター部分に、当blogの最新記事を表示できるようにしました。手法はpearライブラリのXML_RSSを使用して、feedをparseし、表示を最適化しただけのものです。

ただし、コアにはCodeIgniterを使用していますので、Modelでpearライブラリを使用し、Codeigniter的に呼び出しができるようにしています。

Modelを作る

では、早速Modelに処理を記述してみます。

<?php  class Wprss extends Model
{
    function __construct()
    {
        parent::Model();
    }

    function get_wp_rss($feed_url)
    {
        require_once('XML/RSS.php');
        //Create Instance
        $rss = new XML_RSS($feed_url);
        $rss->parse();
        //Get Rss feed as Hash
        $items = $rss->getItems();
        
        $result =  "<ul id='blog'>\n";
        if(!empty($items)){
            foreach($items as $item){
                $result .= "<li><a target='_blank' href=\"".$item&#91;'link'&#93;."\">" . $item['title'] . "</a></li>\n";
            }
        }
        else
        {
            $result .= "<li>No Contents</li>";
        }
            $result .= "</ul>\n";
        return $result;
    }
}
/* End of file wprss.php */
/* Location: ./system/application/models/Fwprss.php */

手順としては、ユーザー定義関数を作るのと変わりません。注意点として、CodeIgniterの数少ないルールの中で、Model、Controllerのファイル命名規則とそのクラス名があります。

例えば、サンプルとして提示したクラス名は「Wprss」です。クラス名の1文字目は必ず大文字でなければなりません。また、このModelファイルは「wprss.php」のように「(Model名称).php」で保存しなければなりません。

具体的な処理は、以下のようになります。

  1. XML_RSSをインスタンス化+RSSのURL読込み
  2. RSS feedをパース
  3. RSSを連想配列として取得し、foreach構文で展開、リスト形式にする

前提として、XML_RSSを使用できるよう、pear installしておく必要があります。XML_RSSの具体的な方法についてはpearのページか、検索すれば幾つも見つかると思います。

ControllerからViewへ渡す

具体的に書くと、長くなるので簡潔に書きます。Modelができた時点で残された作業は、以下の2点になります。

  1. ControllerからのModelの呼び出し、値の取得
  2. ControllerからViewへ値を繋ぐ

まず、ControllerからModelを呼び出し、RSS一覧を取得します。

//Load Model
$this->load->model('wprss');
$data['rss'] = $this->wprss->get_wp_rss('http://hoge.com/feed');
//Load View
$this->load->view('home',$data);

Modelの使い方は至って簡単です。

  1. $this->load->model(‘filename’);で呼び出し
  2. $this->(Model Name)->(function);でModelの関数を使用

2行目で、連想配列$dataに値を確保。そして、Viewに値を繋ぎます。Viewの呼び出し時に、第2引数で連想配列を指定することでViewに値を表示することができます。

  • $this->load->view(‘filename’,’$data);読みこむファイルを指定
  • 第2引数に連想配列を指定することで、Viewで値を表示することができる

VIeファイルで、今回渡した$data[‘rss’]の中身を表示するには、以下のように書きます。連想配列のキー名を変数としてechoするだけです。

<?php echo $rss;?>

VIewファイルの中身は、基本的には、(X)HTML/CSSをそのまま記述したものです。その中で、PHPを使って値をechoしていきます。イメージとしては、smartyに値を渡してから、display()するのと似ていますね。

次は、モバイル対応?をするかもしれません。(未定)

参考

コメントを残す

メールアドレスが公開されることはありません。