拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
PlainCalendarプラグイン
Movable Type Advent Calendarの7日目として、カレンダーにちなんだ「PlainCalendar」というプラグインを公開します。
1.PlainCalendarプラグインのインストール
PlainCalendarプラグインは、ただカレンダーを出力するだけのプラグインです。
カレンダーに出力する内容を、配列やハッシュで用意することを想定しています。
プラグインは以下からダウンロードします。
ダウンロードしたZipファイルを解凍すると、「plugins」ディレクトリができます。
このディレクトリを、Movable Typeのインストール先ディレクトリにアップロードします。
2.追加されるテンプレートタグ
このプラグインをインストールすると、以下のテンプレートタグが追加されます。
2-1.MTPlainCalendarタグ
カレンダーを出力するブロックタグです。
モディファイアを指定しない場合、テンプレートを再構築した日を含む月のカレンダーを出力します。
以下のモディファイアで、他の月のカレンダーを出力することもできます。
| モディファイア | 出力するカレンダー |
|---|---|
| month="last" | 先月のカレンダー |
| month="next" | 来月のカレンダー |
| month="this" | 月別アーカイブテンプレート内で使う場合は、それぞれの月のカレンダー ブログ記事アーカイブテンプレート内で使う場合は、個々のブログ記事の月のカレンダー |
| month="yyyymm" | yyyy年mm月のカレンダー 例:「month="201301"」と指定すると、2013年1月のカレンダーを出力 |
また、「weeks_start_with="mon"」のモディファイアで、月曜始まりのカレンダーを出力することもできます。
weeks_start_withモディファイアには、「mon」の他に、他の曜日(「sun」~「sat」)を指定することもできます。
MTPlainCalendarタグのブロック内では、MTCalendarタグと同様に、以下のテンプレートタグを使うことができます。
- MTCalendarCellNumber
- MTCalendarDay
- MTCalendarDate
- MTCalendarIfBlank
- MTCalendarIfToday
- MTCalendarWeekHeader
- MTCalendarWeekFooter
ただし、MTCalendarIfEntries/MTCalendarIfNoEntriesタグは使うことができません。
2-2.MTCalendarIfDayタグ
MTCalendarIfDayタグは、MTCalendarIfBlankタグの逆で、日付のセルかどうかを判断するブロックタグです。
3.事例
PlainCalendarプラグインを使った例として、「今月アップロードした画像のカレンダー」を作ってみます。
テンプレートは以下のようになります。
<$mt:Date format="%m" setvar="m"$>
<$mt:Date format="%d" setvar="d"$>
<mt:Assets type="image" days="$d">
<mt:If tag="AssetDateAdded" format="%m" eq="$m">
<mt:SetVarBlock name="array_name">array<$mt:AssetDateAdded format="%d"></mt:SetVarBlock>
<mt:SetVarBlock name="$array_name" function="push">
<$mt:AssetThumbnailLink width="70" square="1"$>
</mt:SetVarBlock>
</mt:If>
</mt:Assets>
<table>
<tr><th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th></tr>
<mt:PlainCalendar>
<mt:CalendarWeekHeader><tr></mt:CalendarWeekHeader>
<mt:CalendarIfDay>
<td>
<div>
<mt:CalendarIfToday>
<b><$mt:CalendarDay$></b>
<mt:Else>
<$mt:CalendarDay$>
</mt:CalendarIfToday>
</div>
<mt:SetVarBlock name="array_name">array<$mt:CalendarDate format="%d"></mt:SetVarBlock>
<mt:If name="$array_name">
<ul>
<mt:Loop name="$array_name">
<li><$mt:GetVar name="__value__"$></li>
</mt:Loop>
</ul>
</mt:If>
</td>
<mt:Else>
<td> </td>
</mt:CalendarIfDay>
<mt:CalendarWeekFooter></tr></mt:CalendarWeekFooter>
</mt:PlainCalendar>
</table>
前半(MTAssetsタグのブロック)は、今月アップロードした画像を、日毎に「array01」「array02」・・・の配列に格納する処理です。
5行目のMTSetVarBlockタグで、変数array_nameに「array○○」(「○○」は画像をアップロードした日)を求めます。
そして、6~8行目で、その配列の最後に画像を追加(push)します。
後半は、MTPlainCalendarタグを使って、それぞれの日の画像の情報を順に出力する処理です。
MTPlainCalendarタグのブロックを使い、日付を順に出力し(18~22行目)、その日の配列に画像があれば(25行目のMTIfタグ)、配列の要素を順に出力します。
