Hatena::ブログ(Diary)

bonlife このページをアンテナに追加 RSSフィード

言及ISBN/ASIN
  • Ringo EXPO 08 [DVD]
  • 三文ゴシップ
  • my way
  • ビジネスパーソンのための話し方入門 (日経文庫)
  • ザ・グーグルウェイ グーグルを成功へ導いた型破りな戦略
  • 考え・書き・話す3つの魔法
  • 自分の答えのつくりかた―INDEPENDENT MIND

2007-02-23 椎名林檎の音がゴージャス過ぎます。

PukiWikiのshowrssプラグインを改造して表示件数を制限するサンプル

会社休んで花粉症の薬をもらうために病院に行く予定でしたが、寝坊してすっかりテンションダウンのbonlifeです。市販の薬飲んだら眠いのなんのって…。

さてさて、人力検索はてなhttp://q.hatena.ne.jp/1172196359 を見て、RSSの表示件数ぐらい制御したいよなぁ、と思ったのでPukiWikiの plugin/showrss.inc.php を修正してみました。もっと上手いやり方もありそうですが、とりあえずなノリで。

まず、USAGEを修正してやる気を出す。

  • 後ろに引数を1つ追加して表示件数を制御させる想定
define('PLUGIN_SHOWRSS_USAGE', '#showrss(URI-to-RSS[,default|menubar|recent,Cache-lifetime,Show-timestamp,Show-number])');

続いて、plugin_showrss_convert関数を修正。

  • 追加した引数を$shownumとして処理
  • $shownumが数値かどうかのチェック
  • $shownumが指定されなかった場合、$rssの件数を取得し、それを$shownumにセット
  • オブジェクト生成時に$shownumを2つ目の引数で渡す
function plugin_showrss_convert()
{
	static $_xml;

	if (! isset($_xml)) $_xml = extension_loaded('xml');
	if (! $_xml) return '#showrss: xml extension is not found<br />' . "\n";

	$num = func_num_args();
	if ($num == 0) return PLUGIN_SHOWRSS_USAGE . '<br />' . "\n";

	$argv = func_get_args();
	$timestamp = FALSE;
	$cachehour = 0;
	$template = $uri = '';
	$shownum = '';
	switch ($num) {
	case 5: $shownum   = trim($argv[4]);			/*FALLTHROUGH*/
	case 4: $timestamp = (trim($argv[3]) == '1');		/*FALLTHROUGH*/
	case 3: $cachehour = trim($argv[2]);			/*FALLTHROUGH*/
	case 2: $template  = strtolower(trim($argv[1]));	/*FALLTHROUGH*/
	case 1: $uri       = trim($argv[0]);
	}

	$class = ($template == '' || $template == 'default') ? 'ShowRSS_html' : 'ShowRSS_html_' . $template;
	if (! is_numeric($cachehour))
		return '#showrss: Cache-lifetime seems not numeric: ' . htmlspecialchars($cachehour) . '<br />' . "\n";
	if ( $shownum != '' && ! is_numeric($shownum))
		return '#showrss: Show-Number seems not numeric: ' . htmlspecialchars($shownum) . '<br />' . "\n";
	if (! class_exists($class))
		return '#showrss: Template not found: ' . htmlspecialchars($template) . '<br />' . "\n";
	if (! is_url($uri))
		return '#showrss: Seems not URI: ' . htmlspecialchars($uri) . '<br />' . "\n";

	list($rss, $time) = plugin_showrss_get_rss($uri, $cachehour);
	if ($rss === FALSE) return '#showrss: Failed fetching RSS from the server<br />' . "\n";
	if ($shownum == '' ) $shownum = count($rss);

	$time = '';
	if ($timestamp > 0) {
		$time = '<p style="font-size:10px; font-weight:bold">Last-Modified:' .
			get_date('Y/m/d H:i:s', $time) .  '</p>';
	}

	$obj = new $class($rss,$shownum);
	return $obj->toString($time);
}

最後に表示処理を行う基本となるShowRSS_htmlクラスを修正。

  • カウンタ変数$iを使って、$shownumと比較しながら表示
  • $shownumで指定した回数表示したら処理を終了(return)
  • $shownumで指定した数が$rssの件数より多い場合、foreachまかせ
class ShowRSS_html
{
	var $items = array();
	var $class = '';
	var $i     = '';

	function ShowRSS_html($rss,$shownum)
	{
		$i = 1;
		foreach ($rss as $date=>$items) {
			foreach ($items as $item) {
				if ($i > $shownum) {
					return;
				} else {
					$i++;
				}
				$link  = $item['LINK'];
				$title = $item['TITLE'];
				$passage = get_passage($item['_TIMESTAMP']);
				$link = '<a href="' . $link . '" title="' .  $title . ' ' .
					$passage . '" rel="nofollow">' . $title . '</a>';
				$this->items[$date][] = $this->format_link($link);
			}
		}
	}

後ろの関数は省略してます。全表示の場合でも毎回$iとの比較を行ってしまうので、無駄が多いような気もしますね。表示件数が指定されなかった場合と指定された場合の関数を分けておいた方がスッキリするかもしれませんが、まぁ、そのあたりは素人なので気しないことにします。

以下のような感じで5つ目の引数に件数を指定すれば表示件数に反映されます。(下記の例では3件に制限。)

#showrss(http://d.hatena.ne.jp/bonlife/rss,menubar,24,0,3)

これを見た気が利くPHPプロな人がより良い方法を考えてPukiWikiに反映させてくれるんじゃないかなぁ、と期待しつつ。(それにしてもxamppって楽ですね。)

フジファブリック主催イベント「倶楽部AKANEIRO」@なんばHatch

明日試験だって言うのに今日(ってすでに日付変わっちゃいましたが)まだ勉強に着手していないbonlifeです。この日記書いたら少し勉強して寝よう。寝坊しないように気をつけよう。

ということで、mixiチケットを譲っていただき、フジファブリック主催の倶楽部AKANEIROに行ってきました。すごく私好みの3バンド。(ね。凄いでしょ、これ。)

なんば駅でロッカーに荷物を入れようとしたら女子軍団がロッカー前でたむろっていまして。何個か鍵がついてる(つまり、空いている)ロッカーがあったので「すみません…。」って遠慮がちに声をかけてどいてもらおうとしたら、「そこ使います!そこも!」ってキッパリ言われちゃいました…。なんだか言い方がすごく人を苛立たせる感じでしたよ。可愛く「あ、ここは使う予定なんです。ゴメンナサイね。ウッフン。」って言ってくれたら、「しょーがないなー。他を探すか。(ニコニコ)」ってなるのに、全く…。と思いつつ会場のなんばHatchへ。会場のロッカーに入れようと思っていたのですが、入場時間が近づいていたせいか、会場内からしか入れないように封鎖されてました。でも、大丈夫。整理番号がAの300番台前半。入場してから無事にロッカーに荷物を詰めることができましたよ。(おかげでフライヤーも無事にロッカーに入れられました。)

なんだかんだで手ぶらで会場入り。ステージ向かって左側の4列目ぐらいのところにポジショニング。Hatchでこんなに前で良いのかしら、とか思いながら、まわりのヤングスターたちの会話に耳ダンボ。花粉症の薬の力でウトウトして(グラングラン揺れてまわりの人にぶつかって)るうちに開演時間。

いきなりGRAPEVINE。予想してたよりグッときました。妙に大人っぽい音しか出さない硬質なバンドになっちゃってるイメージだったのですが、昔のちょっとあぶなっかしい感じが曲に戻ってきてたような。一周回って包容力が出てきたのかな。とにかく新曲たちも粒揃いでしたね。3月7日発売のニューアルバム、久しぶりに買ってみようかな、と思いました。いや、ホントに。田中が「GRAPEVINEに第2の春が訪れます。」とかなんとか言ってましたが、そうなっても不思議じゃないですね。

From a smalltown(初回限定盤)(DVD付) [Limited Edition]

From a smalltown(初回限定盤)(DVD付) [Limited Edition]

後、田中が「なつかシングル」とか言った後にやった超久しぶりの「君を待つ間」で軽く泣きそうになりました。色々思い出しちゃうよね、青い春な日々に何度も聴いた曲だし。「Ah 経験不足だった恥ずべき僕達は、禁断の味わいに溺れた。」の「僕達」を「ガキ達」に変えてたような。この曲はやっぱり特別です。

続いてPERIDOTS高橋、観る度に元気になってる気がします。(そうそう、ライヴレポ書いてませんが、この間Gottcha!も観に行ったんですよ。)今日笑顔で「イェイ!」と叫んでました。似合わないのにシャウトしちゃうところが母性本能くすぐるのかしら。セットリストはだいたい以下のような感じでした。

  1. 曲名不明 (よく聴く曲です)
  2. 労働
  3. when the summer goes down (新曲)
  4. eyes
  5. フリージア
  6. オールライト
  7. ライフワーク

いきなり未発表曲。とはいえ、よく聴くあの曲です。(曲名ご存知の方、教えてくださいませ。)「労働」ではイントロのギターを軽くミスってやり直し。恒例の行事になってるそうな(苦笑)。ただ、ビックリしたのはその後!なんだかドラムが走る、走る。ベースと一緒にポーコアポーコアッチェル状態ですよ。やっぱり城戸の方が良いなぁ、とか思ってしまいました。サニーリズム隊を苦々しい目で眺めていたように見えたのは気のせいじゃにはず。(ギターの人の演奏は見た目ほど目立ってませんでしたね。Gottcha!の時の人は無駄な小技を挟んだりしてちょっとイヤだったことを思い出しました。)この曲の後、サポートメンバー舞台袖に退いて、高橋一人舞台MCで一人バンドになった経緯をボソボソと喋ってくれました。バンドを組む前にCDを出すことが決まっちゃって、仕方なく一人なんだそうです。ロンリネス高橋。そんなトークの後、新曲。曲名聞き間違えてるかもしれませんが、だいたいそれっぽい名前でしたよ。弾語り。次がおそろしく力が入った傑作「eyes」。天使とか悪魔とか言うあの曲ですよ。サニーと2人で作り出す高橋ワールド。地声と裏声が何度も入れ替わるサビで鳥肌!うわ、うわわわ…ってなりますね。その後、ラジオ番組エンディングでも流れる「フリージア」。これも名曲。続いて「オールライト」。Everything, everything…って連呼する時にわざともたつかせるのが良いじゃないの。私の中ではPERIDOTSを代表する曲ですね。最後は「ライフワーク」。サビで高橋の声がスーッと伸びるのがたまりません。素敵な曲を届けてくれた彼に拍手を。(ただ、このサポートメンバーで続けるのにはちょっと抵抗があるなぁ…。馴染んでくれば良いんですが。)

そして、ラストは大本命のフジファブリック。このあたりは熱烈なファンの人が詳しく書いてそうな気がするので私は遠慮しときます。とりあえず、汗だくになりました。あ、そうそう1曲新曲演ってましたね。くるりの「ばらの花」と「ロックンロール」を彷彿とさせる曲でした。(私だけかもしれませんが。)

帰り際、見知らぬ女子に声をかけられまして。

「あの、えびすなんとか商店街って知りませんか。」
「え、戎橋商店街かな。」
「あ、たぶんそれです。」
「たぶん、分かると思いますけど。」
「途中まででも良いんで、案内していただけませんか。」
「はぁ…。」
「あ、お急ぎでしたら結構です。」
「いや、別に急いではいないですよ。戎橋商店街のどこに行くんですか?」
ゲーセンです。ジオとかレオとかいう名前だったと思うんですが。」
「待ち合わせですか。何時までに着かないとマズイとかありますか。」
「あ、はい。でも、何時まで、とかそういうのはないです。」

ってことで地図があるところまで連れて行って、だいたいの場所を説明してお別れしたのですが、あの子は無事に目的地にたどり着けたかしら。それにしてもなんだか全体的にあいまりでぼんやりしてたなぁ。謎です…。

あぁ、結局この日記書くのに時間かかっちゃったので、明日の試験勉強はせずに寝ることにします…。オヤスミナサイマセ。

B00005FQGH
ポニーキャニオン GRAPEVINE
購入: 3人 クリック: 23回
B0018AIY54
ポニーキャニオン GRAPEVINE
購入: 3人 クリック: 84回