カスタムフィールドを利用してエントリーを装飾してみる(前回記事の改変)

Movable Type 4 ドキュメント■Movable Type 4 ドキュメント前回、カスタムフィールドとCutStringプラグインを用いた方法を試してみたのですが、よくよく考えたらCutStringプラグインは不要でサイズ指定を行う事が出来ますね。


ふとしたきっかけで「あれ?そういえば。。。」なんて事が発生しますので、やっぱりドキュメントは一通り眺めておくのが良いですね。
たとえその時意味が判らない箇所があるとしても。

変更の箇所

「記事装飾画像用のフィールドを用意」は同じです。

そのカスタムフィールド部分を、表示させたい箇所に書き加えるのも前回のままです。

変わってくるのはそのあとのスタイルシートの表記部分です。

  1. アーカイブテンプレート⇒ブログ記事 を作成
  2. アーカイブマッピング⇒css/ent-<$MTEntryID$>.css
  3. 生成したCSSの読み込み例⇒<link type="text/css" rel="stylesheet" href="<$MTBlogArchiveURL$>css/ent-<$MTEntryID$>.css" />

前回から変わったテンプレート内容は以下。

<MTIfNonEmpty tag="EntryTitleImage">
<MTEntryTitleImageAsset>
<mt:SetVarBlock name="imgheight"><$MTAssetProperty property="image_height"$></mt:SetVarBlock>
#asset-<$MTAssetID$> a {
   background: url(<$MTAssetURL$>) no-repeat center bottom;
   width: <$MTAssetProperty property="image_width"$>px;
   height: <MTGetVar name="imgheight" value="2" op="/">px;
   display: block;
}

#asset-<$MTAssetID$> a:hover {
   background: url(<$MTAssetURL$>) no-repeat center top;
}
</MTEntryTitleImageAsset>
</MTIfNonEmpty>

アイテムのサイズは、propertyモディファイアで取得出来るのでそれを利用してます。

width に関してはそのまま取得すれば良いのでそのまま利用。


height に関しては、そのまま取得してもダメなので、取得した数値を「op モディファイア」を使って計算して、1/2の数値を出すようにしてみました。

op モディファイアではその他の演算関数も使えますので、そこはドキュメントの方に目を通してみる事をおすすめします。

  • add または +: 加算
  • sub または : 減算
  • mul または *: 乗算
  • div または /: 除算
  • mod または %: 剰余
  • inc または ++: インクリメント
  • dec または --: デクリメント


というわけで、画像のサイズはアップしたファイルの MTAssetLabel から抜き出す必要がなくなりましたので、ファイルアップ時に名前欄を用いて指定を行う事はしなくて済むようになりました。

まとめ

簡単な計算も行えるようになったので、MT4の便利感が更に上がった感じです。
まだこういったカタチでの利用場面に当たらないのですが、他にも何か見つけたら記事にしてみようかなー?と思います。

▲ to Top

トラックバック(0)

▲ to Top