BlogPeopleにNucleusの話題を作りましたが、単純に話題を作っただけでは面白く無いので、その話題をNucleusに取り込んで見ます。取り込む方法としてはJavaScriptでも可能ですが、どうせならRSSを用いた方法で取り込んでみたいと思います。
またその話題から来る人は別の話題にはあまり興味が無いでしょうから、トップページに表示させるのではなくその話題と同じカテゴリー一覧を選んだときだけ表示させるようにします。
NucleusではRSS出力は可能ですが、RSSの入力はできません。しかし、きっとそれを可能にするプラグインがあるはずと探してみたところ、やはりありました。NP_NewsFeedがそれで、http://wiki.nucleuscms.org/NewsFeedからダウンロードできます。
このNP_NewsFeedは表示する度にRSSサーバを見に行くのではなくキャッシュを使用しますので、そのキャッシュを保存するディレクトリをまず作成します。"media"ディレクトリの下に"rsscache"ディレクトリを作成し、パーミションを777にします。これでスキンに、
と記入すれば表示されるはずです。しかし、実際には"DISALLOWED (NewsFeed)"とエラーメッセージが表示されてしまいました。NP_NewsFeedをダウンロードしたサイトには上記のように記入するように書かれていますが、"NewsFeed"でなく次のように"Newsfeed"としてやらなけらばならないようです。
またこのプラグインがデフォルトではき出すhtmlでは、話題のクラス名が"title"、各記事のクラス名が"feedTitle"となっていますので、cssでこのクラスを定義してやることで見栄えを変更することができます。ただクラス名の"title"は既に定義済みなので、このままでは使えません。そのため、NP_NewsFeedのソースを修正してクラス名を"siteTitle"に変更しました。
※ 実は上記以外の問題ではまってしまい一筋縄ではいきませんでした。それは後述します。
次にそのNucleusピープルのRSSを、カテゴリ別でNucleusを選択時のみに表示させるようにします。スキン変数の"<%if(category)%>"ではカテゴリ選択時かどうかは判定できても、そのカテゴリの中身までは判定できません。そのため、もっと細かい条件まで判定でき、かつスキン変数が展開できるものが必要となります。
これを満たすプラグインがNP_IncludeEXで、PHPの実行とスキン変数を展開してファイルを読み込むことが可能となります。http://nucleus.datoka.jp/index.php?itemid=198にそのプラグインと、その説明が記入されています。
この機能を使って読み込むためのPHPファイルを作成します。自分が作成したNucleusと既に作成してあったDVDの話題の2つを、それぞれNucleusと映画のカテゴリ選択時に表示するように、以下のようなmenu_cat.phpファイルを作成します。
「メインの目次ページ」スキンに、このファイルを読み込む部分を埋め込み、このときにcatidの値をmenu_cat.phpに渡してやります。
これで希望通り、Nucleusと映画のカテゴリを選択時に、それぞれ用のRSSを表示することができます。
またその話題から来る人は別の話題にはあまり興味が無いでしょうから、トップページに表示させるのではなくその話題と同じカテゴリー一覧を選んだときだけ表示させるようにします。
NP_NewsFeed
NucleusではRSS出力は可能ですが、RSSの入力はできません。しかし、きっとそれを可能にするプラグインがあるはずと探してみたところ、やはりありました。NP_NewsFeedがそれで、http://wiki.nucleuscms.org/NewsFeedからダウンロードできます。
このNP_NewsFeedは表示する度にRSSサーバを見に行くのではなくキャッシュを使用しますので、そのキャッシュを保存するディレクトリをまず作成します。"media"ディレクトリの下に"rsscache"ディレクトリを作成し、パーミションを777にします。これでスキンに、
<%NewsFeed(http://www.blogpeople.net/display/TB_People/tbp00737.rdf)%>
と記入すれば表示されるはずです。しかし、実際には"DISALLOWED (NewsFeed)"とエラーメッセージが表示されてしまいました。NP_NewsFeedをダウンロードしたサイトには上記のように記入するように書かれていますが、"NewsFeed"でなく次のように"Newsfeed"としてやらなけらばならないようです。
<%Newsfeed(http://www.blogpeople.net/display/TB_People/tbp00737.rdf)%>
またこのプラグインがデフォルトではき出すhtmlでは、話題のクラス名が"title"、各記事のクラス名が"feedTitle"となっていますので、cssでこのクラスを定義してやることで見栄えを変更することができます。ただクラス名の"title"は既に定義済みなので、このままでは使えません。そのため、NP_NewsFeedのソースを修正してクラス名を"siteTitle"に変更しました。
※ 実は上記以外の問題ではまってしまい一筋縄ではいきませんでした。それは後述します。
NP_IncludeEX
次にそのNucleusピープルのRSSを、カテゴリ別でNucleusを選択時のみに表示させるようにします。スキン変数の"<%if(category)%>"ではカテゴリ選択時かどうかは判定できても、そのカテゴリの中身までは判定できません。そのため、もっと細かい条件まで判定でき、かつスキン変数が展開できるものが必要となります。
これを満たすプラグインがNP_IncludeEXで、PHPの実行とスキン変数を展開してファイルを読み込むことが可能となります。http://nucleus.datoka.jp/index.php?itemid=198にそのプラグインと、その説明が記入されています。
この機能を使って読み込むためのPHPファイルを作成します。自分が作成したNucleusと既に作成してあったDVDの話題の2つを、それぞれNucleusと映画のカテゴリ選択時に表示するように、以下のようなmenu_cat.phpファイルを作成します。
<?php
switch($catid) {
case 3: // Nucleus
$people_url = "http://member.blogpeople.net/TB_People/tbp_737.html";
$people_img = "/nucleus/image/TB_Nucleus.png";
$people_alt = "BlogPeople Nucleusピープル";
$people_rdf = "http://www.blogpeople.net/display/TB_People/tbp00737.rdf";
break;
case 7: // 映画
$people_url = "http://member.blogpeople.net/TB_People/tbp_621.html";
$people_img = "/nucleus/image/TB_DVD.gif";
$people_alt = "BlogPeople DVD見たよヽ(´¬`)ノ";
$people_rdf = "http://www.blogpeople.net/display/TB_People/tbp00621.rdf";
break;
}
if($catid==3 || $catid==7) {
?>
<div class="shadow">
<div class="box">
<div class="title">
<h3>
<a href="<? echo $people_url ?>">
<img src="<? echo $people_img ?>" alt="<? echo $people_alt ?>" />
</a>
</h3>
</div>
<div class="boxbody">
<%Newsfeed(<? echo $people_rdf ?>)%>
</div>
</div>
</div>
<div class="separate"><br /></div>
<?
}
?>
switch($catid) {
case 3: // Nucleus
$people_url = "http://member.blogpeople.net/TB_People/tbp_737.html";
$people_img = "/nucleus/image/TB_Nucleus.png";
$people_alt = "BlogPeople Nucleusピープル";
$people_rdf = "http://www.blogpeople.net/display/TB_People/tbp00737.rdf";
break;
case 7: // 映画
$people_url = "http://member.blogpeople.net/TB_People/tbp_621.html";
$people_img = "/nucleus/image/TB_DVD.gif";
$people_alt = "BlogPeople DVD見たよヽ(´¬`)ノ";
$people_rdf = "http://www.blogpeople.net/display/TB_People/tbp00621.rdf";
break;
}
if($catid==3 || $catid==7) {
?>
<div class="shadow">
<div class="box">
<div class="title">
<h3>
<a href="<? echo $people_url ?>">
<img src="<? echo $people_img ?>" alt="<? echo $people_alt ?>" />
</a>
</h3>
</div>
<div class="boxbody">
<%Newsfeed(<? echo $people_rdf ?>)%>
</div>
</div>
</div>
<div class="separate"><br /></div>
<?
}
?>
「メインの目次ページ」スキンに、このファイルを読み込む部分を埋め込み、このときにcatidの値をmenu_cat.phpに渡してやります。
<%IncludeEX(php+parsed,menu_cat.php?catid={catid})%>
これで希望通り、Nucleusと映画のカテゴリを選択時に、それぞれ用のRSSを表示することができます。
▲ motoi
Add Comments
Trackbacks
Trackback URL
ebook house のSEO対策 ebook house pinged on 2006-04-02
ebook house SEO対策、月別検索ヒット調査
2006年2月の検索エンジンヒット数(6
SEO対策の方法の一つ、被リンクを簡単に集めるには 情報商材レビュー:身銭でeBook-navi pinged on 2006-03-16
【スパムじゃない!】たった5分の作業で70サイトから喜んでリンクされる方法 【何サイトでも無料】 SEO対策の方法の一つ、被リンクをいかに多くするか! これ、...
セオる技術 〜SEOであなたのブログをアクセスアップ!〜 I ラブ Me pinged on 2005-05-31
アナタのブログをたくさんの人に見てもらいたいよね? そのためには、検索エンジン(GoogleとかYahoo!)に引っかかるのが 近道だよ。今日は私がいい方法を教えよう。 皆さん、SEOってご存知ですか? 今日は、真面目な...
NP_NewsFeed試してみた。 LOWTECH.NE.JP Weblog pinged on 2004-11-22
LOWTECHメンバーが配信しているRSSを受信して、TOPページで最新記事配信をしようとNucleusのプラグイン「NP_NewsFeed」を試してみた。でも、「DISALLOWED (NewsFeed)」と出てどうしてもうまくいかない。何でだ?...
|
最高気温33℃
Nucleusフォーラムの方で質問してたんですけど、回答なくて困ってたんですよね。
おかげさまでNP_NewsFeedがやっと使えるようになりました。
なるほどこういう理由だったんですね。
NP_Referer2も動かなくて???って感じだったんですが、こういうアプローチで原因調べてみようと思います。
ありがとうございました。