jsRSS++ v3.0
jsRSS++ v3.0 を公開しました
2.0βからの変更点
・表示部分を外部テンプレートとして読み込むように変更
・表示出来る要素の追加(Subject、Creator等)
・更新時間の桁不足による不具合を解消
・更新時間データの無いRSS0.91で順番がおかしくなる不具合を解消
・内部コードの一部改善(改悪?)
2.0がβ版だったのにいろいろ書き換えたらだいぶ別モノになったので
正式版の2.0をスッ飛ばして3.0になりました
●jsRSS++とわ?
ページ埋め込み型 RSS リーダです
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み JavaScript を使って
自分のサイトの好きな所に貼り込む事が出来ます
リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます
RSS と書いていますが atom も読み込む事が出来ます
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み JavaScript を使って
自分のサイトの好きな所に貼り込む事が出来ます
リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます
RSS と書いていますが atom も読み込む事が出来ます
●サンプル
●ダウンロード
●スクリプトの修正
以下の箇所を各自の環境に合わせて修正して下さい
#!/usr/bin/perl
perlのパス:サーバ環境にあわせて書き換えて下さい
#use lib './lib';
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
use lib './lib';
のようにして書き換えてください
例えば、MovableTypeをインストールしている場合は /任意のディレクトリ/mt/extlib 内に Jcode.pm があるので
use lib './任意のディレクトリ/mt/extlib' となります
※ Jcode に関してはコチラをご参考にしてください
my $dir = 'feed';
RSS 保存ディレクトリ:任意に変更して下さい
mmy $check = 60;
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
my $acchk = '1';
外部サーバからのアクセス:許可する場合は空欄にしてください
ホスティングサービスに拠っては CGI の貸し出しになるような使い方を禁止していますので
特に必要がなければこのままにしておいてください
my $dir_temp = 'temp';
テンプレート設置ディレクトリ:任意に変更して下さい
my $def_temp = 'RSS1.0.tmp';
デフォルトテンプレート名:テンプレートを指定しなかった際に使用するテンプレートを指定します
my $new_entry = ;
新着マーク表示期間の設定(n時間):ここで設定した時間以内に投稿されたエントリーに新着マークが付きます
my $new_mark = 'new!';
新着マーク:任意のテキスト、画像を指定出来ます
my $CR = 'no';
下部のスクリプト名(+リンク)の表示('no'以外だと表示されます)
#!/usr/bin/perl
perlのパス:サーバ環境にあわせて書き換えて下さい
#use lib './lib';
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
use lib './lib';
のようにして書き換えてください
例えば、MovableTypeをインストールしている場合は /任意のディレクトリ/mt/extlib 内に Jcode.pm があるので
use lib './任意のディレクトリ/mt/extlib' となります
※ Jcode に関してはコチラをご参考にしてください
my $dir = 'feed';
RSS 保存ディレクトリ:任意に変更して下さい
mmy $check = 60;
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
my $acchk = '1';
外部サーバからのアクセス:許可する場合は空欄にしてください
ホスティングサービスに拠っては CGI の貸し出しになるような使い方を禁止していますので
特に必要がなければこのままにしておいてください
my $dir_temp = 'temp';
テンプレート設置ディレクトリ:任意に変更して下さい
my $def_temp = 'RSS1.0.tmp';
デフォルトテンプレート名:テンプレートを指定しなかった際に使用するテンプレートを指定します
my $new_entry = ;
新着マーク表示期間の設定(n時間):ここで設定した時間以内に投稿されたエントリーに新着マークが付きます
my $new_mark = 'new!';
新着マーク:任意のテキスト、画像を指定出来ます
my $CR = 'no';
下部のスクリプト名(+リンク)の表示('no'以外だと表示されます)
●設置&実行
CGIが実行可能な任意のディレクトリにアップロードして下さい
任意のディレクトリ ---- jsRSS.cgi(755)
+ feed(777など)
+ temp(444など)
()内はパーミッション ※御利用のサーバに因って変わる場合があります
表示させるページの任意の場所に
<script language="JavaScript" src="./jsRSS.cgi?url=http://www.daikoku-ya.org/atom.xml::line=10::enc=euc::temp=RSS1.0.tmp"></script>
のように記載して呼び出します
オプションとして指定出来るのが下の3つです
line=5 表示件数
enc=euc 文字コード(jis or sjis or euc or utf8)
temp=RSS1.0.tmp 表示用テンプレート名
※表示形式、日時表示、概要はテンプレートで設定するようになりました
デフォルト(上記の設定)のままでよければオプションの指定を省略できます
これらのオプションを :: で繋ぎます
通常、引数の連結は & ですが RSS を動的に生成するサイトで
RSS への URL に & が含まれる場合があるので :: としました
ポップアップで表示させる場合は以下のソースも一緒に書き込んで下さい
読み込み用のソースより前ならば大丈夫です
ポップアップをいくつ設置しても1ヶ所に書けば大丈夫です
<script language="JavaScript">
<!--
//
function popup(f)
{
var num = f.selectedIndex;
var url = f.options[num].value;
if(num != 0) { w = open(url); }
}
//
-->
</script> を記載してください
任意のディレクトリ ---- jsRSS.cgi(755)
+ feed(777など)
+ temp(444など)
()内はパーミッション ※御利用のサーバに因って変わる場合があります
表示させるページの任意の場所に
<script language="JavaScript" src="./jsRSS.cgi?url=http://www.daikoku-ya.org/atom.xml::line=10::enc=euc::temp=RSS1.0.tmp"></script>
のように記載して呼び出します
オプションとして指定出来るのが下の3つです
line=5 表示件数
enc=euc 文字コード(jis or sjis or euc or utf8)
temp=RSS1.0.tmp 表示用テンプレート名
※表示形式、日時表示、概要はテンプレートで設定するようになりました
デフォルト(上記の設定)のままでよければオプションの指定を省略できます
これらのオプションを :: で繋ぎます
通常、引数の連結は & ですが RSS を動的に生成するサイトで
RSS への URL に & が含まれる場合があるので :: としました
ポップアップで表示させる場合は以下のソースも一緒に書き込んで下さい
読み込み用のソースより前ならば大丈夫です
ポップアップをいくつ設置しても1ヶ所に書けば大丈夫です
<script language="JavaScript">
<!--
//
function popup(f)
{
var num = f.selectedIndex;
var url = f.options[num].value;
if(num != 0) { w = open(url); }
}
//
-->
</script> を記載してください
●テンプレートファイルの作り方
テンプレートを使って自由に表示を設定できるようになりました
が、その分若干面倒でもあります
下の説明文(tempフォルダに同梱)とサンプルのテンプレートを参考にしてください
下の3つは
が、その分若干面倒でもあります
下の説明文(tempフォルダに同梱)とサンプルのテンプレートを参考にしてください
jsRSS3.0用のテンプレートには4つの要素があります ○日時の表示形式 各エントリーの投稿時間になります 「y = 年,m = 月,d = 日,H = 時,M = 分,S = 秒」の 各アルファベットが対応する数字に置き変わります [ y年m月d日H時M分S秒 ] など自由に設定できますが 置き換えに使われるアルファベットは使えません $time_format = "[ y/m/d H:M:S ]"; 以下は実際にRSSが表示される部分になります $RSS{repeat} が各エントリー1つ1つに対応するので イメージとしては $RSS{header} $RSS{repeat} $RSS{repeat} $RSS{repeat} $RSS{repeat} $RSS{repeat} $RSS{footer} のように表示されることになります 通常の HTML の文法のまま書けますが 繰り返しがあるのでタグのネストには気をつけて下さい データの置き換えは以下の通りです ヘッダで使える物 #SiteTitle# サイトのタイトル #SiteLink# サイトのURL #SiteDescription# サイトの概要 #SiteCreator# サイトの管理者 #SiteDate# サイト(RSS)の更新日 各エントリーに使える物 #TimeStamp# エントリーの投稿日時 #WhatsNew# 新着マーク #Title# エントリーのタイトル #Link# エントリーのURL #Subject# エントリーのカテゴリーなど #Creator# エントリーの投稿者 #Description# エントリーの概要 各サイト、出力されるRSSに拠って変わる要素があるので 確認しながら調整してみてください ○表示ヘッダ部分の設定(リスト表示用) $RSS{header} = <<_SRC; <div> <div class="RSSsite"> <a href="#SiteLink#" target="_blank">#SiteTitle#</a> <div class="RSSdescript">#SiteDescription#</div> </div> _SRC ○繰り返しブロックの設定(リスト表示用) $RSS{repeat} = <<_SRC; <div class="RSSline"> <div class="RSStime">#TimeStamp##WhatsNew#</div> <div class="RSStitle"><a href="#Link#" target="_blank">#Title#</a>[#Subject#<]</div> <div class="RSSdescript">#Description#</div> <div style="text-align:right">#Creator#</div> </div> _SRC ○表示フッタ部分の設定(リスト表示用) $RSS{footer} = <<_SRC; </div> _SRC
= <<_SRC; この部分を書き換えて下さい 改行しても構いませんが上下の色の付いている部分は書き換えないで下さい _SRC
トラックバック(0)
このブログ記事を参照しているブログ一覧: jsRSS++ v3.0
このブログ記事に対するトラックバックURL: http://www.daikoku-ya.org/mt/mt-tb.cgi/15


コメントする