blue

半月ごとのアーカイブを生成するための Movable Type用プラグイン・MT7対応版

  • Posted by: SOMA Hitoshi
  • June 3, 2018 2:04 AM
  • mt

 需要はおそらく皆無と思われるもののいちおうその昔に公開・配布もしていた自家用プラグイン「 HalfMonthlyArchives」の、MT7対応版をこちらに。

 「 HalfMonthlyArchives」は小川宏高さんの「 FiscalYearlyArchives」をもとに見よう見まねで作った、半月ごとのアーカイブを生成するためのプラグイン。

 半月ごとのアーカイブを生成させるMT4専用プラグインを作ったので配布してみます。当サイトの「Yellow」というコンテンツのために作り、現状ではまったくのところ、〈わたしにとっての必要充分〉を満たしているのみの動作を提供します。じゃあ配布するなよというほどの出来ですが、あるいはどこかの誰かに何かをもたらさないともかぎりません。

web-conte.com | blue | 半月ごとのアーカイブを生成するためのMovable Type用プラグイン

 このイニシャルリリース版は MT5ではそのまま動いたが MT6で動かなくなり、自力で対応させたその MT6対応版は公開・配布するのを忘れていた(すっかり公開・配布したつもりになっていたが、してなかった)
 で、今回 MT7でふたたび不具合が出、無事修正に成功したのがこちらのバージョン。たんに記事を公開・再構築するだけなら(幻の)MT6対応版でもそのまま動いたのでしばらく不具合のあることに気づかなかったのだが、アーカイブテンプレートの編集画面を開こうとすると、

Can't locate object method "order" via package "HalfMonthlyArchives::HalfMonthly"

というエラーが出て開けなくなったのだった。どうやら、編集画面にアーカイブマッピングの選択肢(「日別」とか「月別」とか)を出すさいに参照される、並び順の指定のための「 order」という要素が MT7から加わったらしい。
 てなわけで、(繰り返すが幻の)MT6対応版からの変更箇所としては HalfMonthlyArchives/lib/HalfMonthlyArchives/HalfMonthly.pmの、

sub order {
    return 55;
}

の 3行を追加しただけである。この MT7対応版はそのまま MT6でも動くと思うが、もし動かない場合は上記 3行を削ってもらえば大丈夫なはず。
 以上、前置き。

プラグイン概要

 1日〜 15日を上旬、16日〜 31日を下旬として、半月ごとのアーカイブを生成するためのプラグインです。
 テンプレートタグとしては <$MTArchiveHalfMonthLabel$>という変数タグがひとつだけ追加されます。

更新履歴

v0.03
MT7に対応
v0.02
MT6に対応(未配布)
v0.01
イニシャルリリース

ダウンロード

HalfMonthlyArchives-0.03.zip

使い方

 パッケージに含まれる HalfMonthlyArchivesディレクトリを Movable Typeのプラグインディレクトリ内にアップロードすればインストール完了です。正しくインストールできていれば、Movable Typeのシステムメニュー > プラグインにリストアップされ、アーカイブマッピングの種類に「半月ごとに」という選択肢が追加されます。

 新しいアーカイブマッピングを作成するさいに「半月ごとに」を選び、テンプレートにはこれまで「月別アーカイブ」に用いていたものをあてはめれば、基本的には OKなはずです。1月上旬、1月下旬、2月上旬……というふうに区切られたアーカイブが生成されます。
 テンプレートにて、MTArchiveListコンテナの archive_typeオプションを指定する場合には「 HalfMonthly」とします。

<$MTArchiveHalfMonthLabel$> について

 このタグは、そのアーカイブが上旬であるか下旬であるかにより、それぞれを示す文字列を返します。デフォルト値は上旬が「 a」、下旬が「 b」です。
 ひとつにはアーカイブマッピングのさいのパス指定に用いられます。デフォルトのパス指定は、

%y/%m/<$MTArchiveHalfMonthLabel$>/%i

となっていて、この場合たとえば、

http://<hostname>/<blog directory>/2008/12/a/index.html (2008年12月上旬)
http://<hostname>/<blog directory>/2008/12/b/index.html (2008年12月下旬)

といったふうにファイルが生成されます。
 この、上旬・下旬それぞれの場合の文字列は、プラグイン設定にて変更できます。

TIPS というか

 なお、上記の <$MTArchiveHalfMonthLabel$>は、日付コンテクストの外部では使用できません。
 そのページが上旬か下旬かに応じて別の画像を表示したいというような場合、半月ごとのアーカイブページではこの <$MTArchiveHalfMonthLabel$>を利用することもできますが、個別アーカイブ等では利用できません。その場合は、<MTIf>の条件分岐を使い、

<MTSetVarBlock name="mtdate"><$MTEntryDate format="%e"$></MTSetVarBlock>
<img src="<$MTBlogURL$>images/<MTIf name="mtdate" ge="16">b<MTElse>a</MTIf>.jpg" />

といったふうにすればいいかと思います。

関連記事

トラックバック(0)

トラックバックURL: https://web-conte.com/blue/mt-tb.cgi/1288