アルファサード株式会社 代表取締役 野田 純生のブログ


Movable Type4で「年度別」アーカイブ。


公開日 : 2007-08-22 19:48:19


「Movable Typeな夏。」で書いたように、今週末に開発者向けカンファレンス(8月24日)とMovable Type 4 Hack-a-thon(8月25日)があって参加する予定なんだけど、色々忙しくてMT4をいぢくったりソース読む時間がないので、ちょっと助走というか頭の体操がてらに「年度別アーカイブ」が作れないかやってみた (&ProNetミーティングで質問したんだけど「ごにょごにょ...今度開発者向けMtgとかHack-a-thonとかありますので...」ってな回答だったので!)。

使い捨て気味のプログラムですがさらしておきますね。文字通り年度別アーカイブを作れるかどうかやってみよう! ってなことで書いたもの。IR系のウェブサイトなんかだと必須だもの。

MT4からは「年」アーカイブが作れる...ということは年度もできるかも!?

「デザイン」→「テンプレート」→「アーカイブテンプレート」→「ブログ記事リスト」で「新しいアーカイブマッピングを作成」、種類「年別」を選択。

年別アーカイブマッピングの設定

コードは以下。エラー処理も再構築(スタティックなファイルの書き出し)も何もないし4月〜3月決めうち! だけど許してね。うまくいったら来週あたりプラグインになってるかも...なってるかな? なってるといいね(誰?)


#!/usr/bin/perl -w

my $MTDIR;
use strict;
BEGIN {
	if ( $0 =~ m!(.*[/¥¥])! ) {
		$MTDIR = $1;
	} else {
		$MTDIR = './';
	}
	unshift @INC, $MTDIR . './lib';
	unshift @INC, $MTDIR . './extlib';
}

use MT;
use MT::TemplateMap;
use MT::Template;

my $mt = MT->new(Config => $MTDIR.'./mt-config.cgi');

use CGI;
my $q = new CGI;
my $at = 'Yearly';
my $year = $q->param('year');
my $blog_id = $q->param('blog_id');
my $start = $year.'040100000';
my $end = $year+1;
$end .='0331235959';

my $tmap = MT::TemplateMap->load(
                        {	blog_id => $blog_id,
                            archive_type => $at,
                            is_preferred => 1
                        },);
my $blog = MT::Blog->load({ id => $blog_id });
my $template = MT::Template->load({id => $tmap->template_id});
my $page_tmpl = $template->text;
my $ctx = MT::Template::Context->new;
$ctx->stash('blog', $blog);
$ctx->stash('blog_id', $blog_id);
$ctx->{current_archive_type} = $at;
$ctx->{archive_type} = $at;
$ctx->{current_timestamp} = $start;
$ctx->{current_timestamp_end} = $end;
my $build = MT::Builder->new;
my $tokens = $build->compile($ctx, $page_tmpl);
my $html = $build->build($ctx, $tokens);
print "content-type: text/html; charset=utf-8¥n¥n";
print $html;

http://localhost/mt/f_year.cgi?blog_id=1&year=2006

ってな具合にアクセスすると...出来てるっぽいな。

うまくいったら来週あたりプラグインになってるかも...なってるかな? なってるといいね(しつこい!?)

カテゴリ


このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ