Under the Bridge

a Picture of the Late Him

★マークでエントリ数を示すエントリリストつきカレンダー

2008年1月26日 16:36 | Writer: yoshi | 記事本文 | コメント(0) | トラックバック(0)

★マークを並べて、エントリを(リンクつきで)すべて表示するカレンダー。

つまり1/25にエントリが3件ある場合は「25 ★★★」、1/26にエントリが2件ある場合は「26 ★★」、1/27にエントリが一件もないときは「27」というふうな表示をする。

説明しても伝わりにくいので、続きを読んでもらったほうがはやいかも。

貼ってみた

2008年8月のエントリ状況

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

コード


<p><$mt:Date format="%B %Y"$>のエントリ状況</p>
<MTSetvar name="DayIndex" value="0">

<mt:Calendar>

<MTSetVar name="BlankCheck" value="OK">
<mt:CalendarIfBlank>
	<MTSetVar name="BlankCheck" value="Blank">
</mt:CalendarIfBlank>

<!-- 日付文字列をリンクつきで生成 -->
<MTIf name="BlankCheck" ne="Blank">
	<MTSetvar name="DayIndex" value="1" op="inc">
	<MTSetvar name="EntIndex" value="0">
	<mt:CalendarIfEntries>
		<mt:Entries>
			<MTSetvar name="EntIndex" value="1" op="inc">
			<MTSetvarBlock name="DayLinks[$EntIndex]">
				<a href="<$mt:EntryPermalink$>" title="<$MTEntryTitle$>">★</a>
			</MTSetvarBlock>
		</mt:Entries>
	</mt:CalendarIfEntries>
	
	<MTGetVar name="DayIndex">
	<MTIf name="EntIndex" gt="0">
		<MTFor var="x" from="1" to="$EntIndex">
			<MTGetVar name="DayLinks[$x]">
		</MTFor>
	</MTIf>
	<br />
</MTIf>

</mt:Calendar>

結果と考察

まずカレンダーループ先頭付近で、BlankCheck変数へ、ブランク(カレンダーの位置あわせ?のために挿入される空白)チェックの結果をセットする。

その後、「ブランクでなかったら...」というIf文が入るのだが、そのIf文ブロックは、けっこう広範囲にわたる。内部では、日は単にインクリメント(これでブランクをはじき、正確な日を取得する)、エントリループに入るとその日のすべてのエントリをインクリメントカウントして配列にリンクつきでSetVarBlockする。title属性を付け、オンマウスでエントリタイトルが出るようにしてみたが...

なお、14行目のEntIndex変数にゼロをセットする部分は必須である。これは16行目以降のMTEntriesループ内でEntIndexがインクリメントされ、配列要素となるからである。

出力部にはMTForを用い、For上限にはインクリメントでカウントした月の日数を入れ、DayLink配列を吐き出しているだけ。このForでaリンクの文字「★」が連結される。

実験なんでbrタグで改行しているが、別にpでもliでも何でもよし。

配列は要素を0で初期化してインクリメント、つまり1から使用しているが、-1で初期化して0から使用してもOK。

このカレンダーは、サイドバーやTOP付近に貼り付けるパーツとしては、場所をとりすぎるので駄目だと思う。「最近のエントリ傾向」などというカスタムページを作ってそこに貼っておくとよいかも知れないが、めったに更新しないブログに貼るとそれはそれはさびしい結果となるだろう。あまり役に立たないカレンダーかもしれない。

トラックバック(0)

このブログ記事を参照しているブログ一覧: ★マークでエントリ数を示すエントリリストつきカレンダー

このブログ記事に対するトラックバックURL:

コメントする






Categories
Entries
Feed
スポンサードリンク

parts

フィードメーター - Under the Bridge

あわせて読みたい

なかのひと

2008年4月5日開催、MT4LP5

2008 yoshi(apstar)