広告

posted by fanblog
「ここにブログの名前を入れます」は更新を終了しました。記事はすべて新ブログ「Big Bang」に移転済みです。記事のタイトルをクリックすると新ブログの該当記事に移動します。そちらでお楽しみください。

お友達の最新記事を表示しよう!

「パート派遣主婦のぐーたら子育て生活」
☆最新記事☆

こんなカンジで、お友達の最新記事をサイドバーに表示できるようにしました。
デザインはスタイルシートで調整できます。

使い方

使いたい方がもしいれば、(いないか?)説明を見ながら使ってください。
ただし、ノーサポートです。質問には答えません。

以下が、このブログで使っているコードです。アレンジして使ってください。
ファンブログの場合はfeedのURLと表示場所のidの2つを変更するだけでいいはずです。

変更したらサイドバーに貼り付ければ表示されます。
上にも書きましたが、デザインはスタイルシートで変更します。

ソースコード

<div id="kako_new">
「パート派遣主婦のぐーたら子育て生活」<br/>☆最新記事☆<br/>
<!-- リンクはここに追加されます -->
</div>

<script type="text/javascript">
//読み込みたいブログのフィードのURL
//フィードのURLの調べ方は下に書いてあります
var feed="https://fanblogs.jp/parthaken/index1_0.rdf";
//表示するエリアのID(上のid="kako_new"のこと)
var area="kako_new";
//コールバックを使う場合のみ使用。わからなければnullのまま!
var callback=null; 

/**************************************************/
/* ファンブログの場合、変更するのはここより上だけ */
/**************************************************/

//atomの場合は"atom"に変更する
var type="rss";
//結果を表示するブログの文字コード(フィードの文字コードではない)
var charset="Shift_JIS";

//PHPのスクリプトURL(変更しないように)
var url="http://api.dwm.me/get_new_item/"; 

//URLエンコード
feed=encodeURIComponent(feed);

//GETのパラメータを構成する
var src=url+'?feed='+feed+'&type='+type
	+'&area='+area+'&charset='+charset;

if(callback&&callback.length){
	src+='&callback='+callback;
}

//以下、ヘッダにエレメントを追加してスクリプトを読み込む
var script=document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src',src);

var head=document.getElementsByTagName('head');
head[0].appendChild(script);
</script>

注釈が多すぎて見づらい場合は、「コバヤCチェッカーを公開します」で注釈なしのソースをご覧ください。

以上で、最新1記事のリンクが表示されます。
また、リンクにマウスを乗せると、記事の内容がわかるようになっています。

コールバックの設定は記事の最後にある、PHPのソースコードを読んでください。

関連記事:
別ブログの最新記事を自動でリンクして紹介(このスクリプトのコールバックについて説明)

フィードのURLの調べ方

Internet Explorerの場合、まずメニューバーの表示をクリック。出てきた一覧からソースをクリックします。

メニューバーからソースを選択

すると、見ているページのソースコードが別窓で、開きます。

この中から、bodyタグを探すために、ソースコードのメニューバーから、編集、検索と順にクリック。

ソースコードから検索窓を開く

検索窓が現れるので、RSSと入力します。

検索窓

すると次のような場所が見つかります。

検索結果

<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/fanblogs/IVln">

titleがRSSとなっているのが確認できたら、そこに一緒に書いてあるhrefがフィードのURLです。(href="この部分"をコピーします。)

PHP側のソースコード

呼び出しているPHPのソースコードは以下の通りです。

<?php
if(empty($_GET["feed"])||empty($_GET["type"])){
	header("HTTP/1.0 400 Bad Request");
	exit();
}

if($_GET["type"]!="atom"&&$_GET["type"]!="rss"){
	header("HTTP/1.0 400 Bad Request");
	exit();
}

if(empty($_GET["area"])&&empty($_GET["callback"])){
	header("HTTP/1.0 400 Bad Request");
	exit();
}

$charset=!empty($_GET["charset"])?$_GET["charset"]:"UTF-8";
$feed=rawurldecode($_GET["feed"]);
$xml=@simplexml_load_file($feed);

header("Content-type: text/javascript; charset=".$charset);

if(!$xml){
	if(!empty($_GET["callback"])){
		print $_GET["callback"].'({"error":"cannot get feed."});';
	}else{
		print 'var error="cannot get feed.";';
	}

	exit();
}

if($_GET["type"]=="atom"){
	$title=$xml->entry[0]->title;
	$link=$xml->entry[0]->link[0]['href'];
	$description=$xml->entry[0]->summary;

	if(empty($description)){
		$description=$xml->entry[0]->content;

		if(empty($description)){
			$description="";
		}
	}
}else{
	$title=$xml->item[0]->title;
	$link=$xml->item[0]->link;
	$description=$xml->item[0]->description;

	if(empty($description)){
		$description="";
	}
}

$title=mb_convert_encoding($title,$charset,"UTF-8");
$description=mb_convert_encoding($description,$charset,"UTF-8");
$description=preg_replace("/[\r\n]/","",$description);

if(!empty($_GET["callback"])){
	print $_GET["callback"]
		.'({"title":"'.$title.'","link":"'.$link
		.'","description":"'.$description.'"});';
}else{
	$value='<a href="'.$link.'" '.'target="_blank" title="'
		.$description.'">'.$title.'</a>';

?>var elem=document.getElementById('<?php print $_GET["area"];?>');

if(elem){
	elem.innerHTML+='<?php print $value;?>';
}
<?php }
PHPの最後の終了タグがないのは間違えているのではありません。

PHP コードのみからなるファイルでは、終了タグ ("?>") は決して含めてはいけません。これは必須なものではなく、 終了タグを省略することで、ファイルの最後にある空白文字が出力に影響することを防ぎます。

これはPHP コードのみからなるファイルではありませんが、説明の内容からするとファイルの最後がPHPの場合は、という判断でいいのではないかと思います。私はHTMLとの混合PHPの場合でも、最後がPHPの場合はいつも閉じタグを書きませんが、エラーが出たことはありません。

関連記事:
別ブログの最新記事を自動でリンクして紹介(このスクリプトのコールバックについて説明)

新ブログ「Big Bang」で続きを読む