常々から思っていた「MTの新着情報をTopPegeに表示させる」を決行してみる。
一通りGoogle先生に教えを乞う。
Magpieなるものが便利で簡単とnJOY BLOG様のサイトにRSSを埋め込んで表示させる方法を見てわかる。
早速、記事に従いながら導入。簡単に表示!
ありがたや~。
しかしこの時点だと記事のタイトルは出ても作成日などの情報が表示しない。
しかもRSSの件数分だけ出てしまうのでなんとか自分で指定した量の記事数を表示させたい。
ここからがHYPER四苦八苦。
PHPさっぱりな俺にはハードル高い高いw
とりあえず色々なサイト様を参照した上での自分流の導入方法
1・必要なもの
・magpierss-0.72 >MagpieRSSのタブ「download」から入手
・下に書いてある「読み込ませるためのphpファイル」
2・設置方法
2-1
下記ソースをコピーしてテキストエディタなどでphpファイルとして保存。
名前は適当に分かりやすいもので。(例:rss.php)
2-2
MTなどのRSSを吐き出す機能がRSS2.0の場合はRSS0.1で吐き出すように
設定しておく。MT4.1の場合はこの記事の続きを開き
「■時間の表示っていうか注意点だねもうorz」
を参照。
2-3
magpierss-0.72を解凍。自分の場合はrootにアップ。
public_html
├index.html(トップページ)
└任意のディレクトリ名
├rss.php(自分で作る。下記のソースをコピーしたphp)
├rss_cache.inc
├rss_fetch.inc
├rss_parse.inc
├rss_utils.inc
├extlib
│ └Snoopy.class.inc
└ cache(このディレクトリは自分で作る)
2-4
cacheディレクトリのパーミッションを707または777に変更する。
2-5
rss.php に直接アクセスして動作確認。
動作していればこんな感じで表示される。
2-6
RSSを埋め込みたいページにSSIで以下の記述を追加
<--#include file="rss.phpのアドレス" -->
3・完成こんな感じになります。
TopPage
rdfファイル
読み込ませるためのphpファイル
<?php
define('MAGPIE_CACHE_AGE','900');//cacheを残す時間
define('MAGPIE_CACHE_DIR', './cache');//Cache(キャッシュ)用のディレクトリ
require_once 'rss_fetch.incの場所';
$count = 表示させたいタイトル数;
$url = 'RSSのアドレス';
$rss = fetch_rss($url);
array_splice($rss->items, $count);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "SJIS", "auto");
$link = $rss->channel['link'];
print "<p><a href=\"${link}\">$title</a></p>\n";
print "<dl>\n";
foreach ($rss->items as $item ) {
$title = $item['title'];
$title = mb_convert_encoding($title, "SJIS", "auto");
$url = $item['link'];
$itemday = date('Y/n/j',strtotime(substr($item['dc']['date'],0,10)));
$youbi = array(0 => '(日)', 1 => '(月)', 2 => '(火)', 3 => '(水)', 4 => '(木)', 5 => '(金)', 6 => '(土)');
$mday = date('w',strtotime(substr($item['dc']['date'],0,10)));
$itemtime = date('G:i',strtotime(substr($item['dc']['date'],11,8)));
print "<div class=\"part\"><dt>${itemday} $youbi[$mday] ${itemtime}</dt><dd><a href=\"$url\">$title</a></dd></div>\n";
}
print "</dl>\n"
?>
長くなるので紆余曲折解説は続きから
続きを読む Magpieを導入してみる