Skip to Main Content.

nagomu.me

【再掲】PageButeとTruncateURLを同時に使う場合

この記事は、Jun 23, 2009に投稿された「(当時の)URL:http://www.nagomu.me/archives/2009/nagomu090623.html」を再掲載したものです。
基本的にはそのまま掲載していますが、脚注は、Mar 04, 2011に付け足しました。

[Movable Typeで静的にページ分割を行うために、非常に便利なプラグイン『PageBute』と、「http://www.nagomu.me/」などを「/」に置換したい時に便利なプラグイン『TruncateURL』を同時使用したい時にハマったからメモしておく]という内容です。

PageButeとTruncateURLを同時に使う場合 1

PageButeはファイルの生成時に動作します 2
なので、SetVarBlockとか使って変数に入れてIfで。。。とか無理。
あと、何か文字列が入ったりするので、デザインによっては結構キビしいです。。。と毎回、その事を忘れててハマりつつ、許される場合は、JSでゴニョゴニョしてごまかしたりしてます。

上記の理由からか、併用するとTruncateURLが上手く動作してくれないようです。

対応方法案

例えば、

インデックステンプレート:
<MTTruncateURL><$mt:Include module="index"$></MTTruncateURL>
テンプレート・モジュール「index」
<MTPageContents count="10"><mt:Entries>
・・・
<mt:Entries></MTPageContents>

というのはダメなので、どうするかというと、

インデックステンプレート:
<MTTruncateURL><$mt:Include module="index"$></MTTruncateURL>
テンプレート・モジュール「index」
<MTPageContents count="10"><mt:Entries><MTTruncateURL>
・・・
</MTTruncateURL><mt:Entries></MTPageContents>

と、こんな感じでちょっと面倒です 3
個人レベルではどうにでもなるけど、仕事となると、ページ分割は、色々検討の余地がありますね 4

*1 2009年の記事だという事をお忘れなく。

*2 なんか、メモとはいえ言い切ってて怖いです。ちゃんとコードを追ったりしていませんので、理由については鵜呑みにしないでください。 当時のMTのバージョンが書いていなくて、申し訳ございません。 (MT標準のグローバル・モディファイア)replaceなどでも同様だったと記憶しています。

*3 意味不明だと思いますが、要するに「分割対象よりも内側でTruncateURLを使うと(たぶん)先に処理されるから大丈夫」という意味だと思います。

*4 MTの強みは静的なファイル生成だと思うので、標準機能にして欲しいところです。