Skip to content

Japanese mtml guide 1 2

Hatsuhito UENO edited this page Jun 28, 2011 · 59 revisions

ウィジェット「ホームページウィジェットグループ」「購読」「アイテム」「タグクラウド」「最近のコメント」「最近のブログ記事」

Back To Top

はじめに

今回は<$mt:Include$>タグや、その他のブロックタグについてウィジェットを参考に解説していきます。

ウィジェット「ホームページウィジェットグループ」

メインインデックスのテンプレートにだけ表示されるように制御されているウィジェットです。

このウィジェットでは、 <mt:if>~</mt:if><mt:Ignore>~</mt:Ignore><$mt:Include$> タグが使われており、ウィジェットとして「最近のコメント」「最近のブログ記事」「アイテム」「タグクラウド」がインクルードされています。

  • 1~3行目の <mt:Ignore>~</mt:Ignore>
    • このタグは指定した範囲について、処理を行わないブロックタグです。
    • 今回のようにコメントとして利用したり、MTタグやHTMLの文言を表示させないようにする事ができます。
  • 4~9行目の <mt:if>~</mt:if>
    • name 指定で main_index を指定しているため、このウィジェットがメインインデックスで処理されるときのみ、このブロックタグの内容が表示されます。
    • 5~8行目の <$mt:Include$>
      • テンプレートモジュールや、外部ファイルを読み込むときに使うタグです。モディファイア module や file などにより、読み込む対象を指定します。widget モディファイアを利用すれば、ウィジェット単体の読み込みも行えます。
      • 外部ファイルを更新しても、サイトの再構築をしない限り、更新は適用されません。再構築せずに更新を反映するためには、ダイナミックパブリッシングを利用するか、SSI や PHP のインクルードを利用します。
        • widget 指定がされているため、「最近のコメント」「最近のブログ記事」「アイテム」「タグクラウド」ウィジェットが順に読み込まれ処理されます。

ウィジェット「購読」

RSSフィードによってブログを購読するための物です。また、検索結果のページではその検索結果をRSSフィードで出力し、検索キーワードの出てくる記事をチェックする事ができます。

このウィジェットでは、 <$mt:CGIPath$><mt:If>~</mt:If><mt:Else><mt:IfTagSearch>~</mt:IfTagSearch><$mt:Link$><$mt:SearchIncludeBlogs$><$mt:SearchMaxResults$><$mt:SearchScript$><$mt:SearchString$><$mt:StaticWebPath$> タグが使われています。

ウィジェット「アイテム」

登録した画像を最新から10枚取り出し、サムネールと画像へのリンクを付加して表示するウィジェットです。

このウィジェットでは、<mt:If>~</mt:If><mt:Assets>~</mt:Assets><mt:AssetsHeader>~</mt:AssetsHeader><$mt:AssetURL$><$mt:AssetThumbnailURL$><$mt:AssetLabel$><mt:AssetsFooter>~</mt:AssetsFooter> が、利用されています。

  • 1行目~16行目 <mt:If>~</mt:If>
    • tag="AssetCount" が指定されているため、アイテムがある場合に内部の処理を行います。
    • 2行目~15行目 <mt:Assets>~</mt:Assets>
      • ブログのアイテム一覧のためのブロックタグです。モディファイアを指定することで、特定の条件にあてはまるアイテムだけを抜き出すことや、日付順で指定した数のアイテムを一覧することができます。
      • ここではモディファイアとして、 type="image" として画像を対象に、 lastn="10" として最新10件を取得し、取得された分ループ処理を行います。
        • 3行目~8行目 <mt:AssetsHeader>~</mt:AssetsHeader>
          • MTAssets ブロックタグの中で、最初にだけ実行する条件タグです。
          • ここではウィジェットの先頭部分を作成し、 <ul> タグのスタートまで表示します。
        • 9行目
          • <$mt:AssetURL$>
            • アイテムのオリジナルファイルへの URL を表示します。
            • これによりサムネールをクリックするとオリジナルサイズの画像が表示されます。
          • <$mt:AssetThumbnailURL$>
            • MTAssetThumbnailLink がサムネイルを表示する img 要素を表示するのに対し、MTAssetThumbnailURL はサムネイルの URL のみを表示します。
            • height="70" と指定されているので、画像のサムネイルの高さを70pxで出力します。
          • <$mt:AssetLabel$>
            • アイテムをアップロードする際に設定したラベルを表示します。
        • 10行目~14行目 <mt:AssetsFooter>~</mt:AssetsFooter>
          • MTAssets ブロックタグの中で、最後にだけ実行する条件タグです。
          • ここでは、 <mt:AssetsHeader>~</mt:AssetsHeader> で表示したタグの閉じタグを出力します。

ウィジェット「タグクラウド」

登録されているタグの使用頻度を視覚的(サイズの大小)にあらわして列挙するウィジェットです。

このウィジェットでは、<mt:Tags>~</mt:Tags><mt:If>~</mt:If><$mt:TagRank$><$mt:TagSearchLink$><$mt:TagName$> 、 が利用されています。

  • 1行目~14行目 <mt:Tags>~</mt:Tags>
    • タグ一覧を表示するためのブロックタグです。
    • モディファイアとして top="20" が指定されているため、登録されているタグの上位20個が対象となりループします。
      • 2行目~7行目 <mt:If>~</mt:If>
        • モディファイアとして name="__first__" が指定されているのでタグのループ中1回目だけ、この間の処理が行われます。
        • 表示されるのはウィジェットのヘッダと <ul> タグまでです。
      • 8行目
        • <$mt:TagRank$>
          • 特定のタグの頻度を表示します。数値が小さい方が頻度が高くなります。
          • モディファイアとして max="10" が指定されていて、頻度の基準値を指定します。
        • <$mt:TagSearchLink$>
          • 特定のブログ内で、特定のタグを付加したコンテンツを検索するためのリンクです。
          • モディファイアとして encode_js="1" が指定されているので、Java Script内で利用可能な文字列に変換します。
        • <$mt:TagName$>
          • タグの名前を表示します。
      • 9行目~13行目 <mt:If>~</mt:If>
        • モディファイアとして name="__last__" が指定されているのでタグのループ中最後だけ、この間の処理が行われます。
        • 表示されるのは name="__first__" で表示したタグの閉じタグになります。

ウィジェット「最近のコメント」

最新のコメントを最大10件表示するウィジェットです。

このウィジェットでは、<mt:If>~</mt:If><mt:Comments>~</mt:Comments><mt:CommentsHeader>~</mt:CommentsHeader><$mt:CommentAuthor$><$mt:CommentBody$><$mt:CommentLink$><mt:CommentEntry>~</mt:CommentEntry><$mt:EntryTitle$><mt:CommentsFooter>~</mt:CommentsFooter> が、利用されています。

  • 1行目~16行目 <mt:If>~</mt:If>
    • モディファイアに tag="BlogCommentCount" が指定されているので、当該のブログにコメントがある場合、ブロック内の処理を行います。
      • 2行目~15行目 <mt:Comments>~</mt:Comments>
        • コメントを表示するためのブロックタグです。コメントを表示するときは、このブロックタグの内側に記述します。
        • また、モディファイア lastn で、表示するコメント数を指定できます。指定しないとき、すべてのコメントが表示されます。ここでは lastn="10" と指定されているので、最大10件のコメントが表示されます。
        • モディファイア sort_order="descend" が指定されているので、降順(新しい物から順)に表示されます。
          • 3行目~8行目 <mt:CommentsHeader>~</mt:CommentsHeader>
            • コメントの一覧で最初のときだけ実行する条件タグです。最初のときブロックタグの内容を実行、表示します。
          • 9行目
            • <$mt:CommentAuthor$>
              • コメントの投稿時に入力されたコメント投稿者の名前を表示します。モディファイア default を指定することで、無記名のときに表示する名前を指定できます。
            • <$mt:CommentBody$>
              • コメントの内容を表示します。
              • モディファイアで remove_html="1" と書かれているので、HTMLタグが削除されます。
              • モディファイアで words="10" が指定されているので、10文字に制限されます。
            • <$mt:CommentLink$>
              • 投稿されたコメントへのパーマリンク URL を表示します。
            • <mt:CommentEntry>~</mt:CommentEntry>
              • コメント元のブログ記事の内容を表示するためのブロックタグです。この中ではブログ記事に関係するタグを使うことができます。
              • <$mt:EntryTitle$>
                • ブログ記事のタイトルを表示します。
          • 10行目~14行目 <mt:CommentsFooter>~</mt:CommentsFooter>
            • コメントの一覧で最後のときだけ実行する条件タグです。最後のときブロックの内容を実行、表示します。

ウィジェット「最近のブログ記事」

最近のブログ記事を新しい物順に10件表示するウィジェットです。

このウィジェットには、<mt:If>~</mt:If><mt:Entries>~</mt:Entries><mt:EntriesHeader>~</mt:EntriesHeader><$mt:EntryPermalink$><$mt:EntryTitle$><mt:EntriesFooter>~</mt:EntriesFooter> 、 が、利用されています。

  • 1行目~16行目 <mt:If>~</mt:If>
    • モディファイアとして tag="BlogEntryCount" が指定されているので、そのブログにブログ記事がある場合に、ブロックの内容を実行、表示します。
      • 2行目~15行目 <mt:Entries>~</mt:Entries>
        • ブログのブログ記事の一覧のためのブロックタグです。
        • モディファイアを指定することで、特定のカテゴリのブログ記事だけを抜き出すことや、日付順で指定した数のブログ記事を一覧することができます。
        • ブログ記事アーカイブ以外のテンプレートでブログ記事を表示するときは、MTEntries ブロックタグを使います。
        • モディファイアに lastn="10" が指定されているため、最新10件のブログ記事が処理されます。
          • 3行目~8行目 <mt:EntriesHeader>~</mt:EntriesHeader>
            • MTEntries ブロックタグの中で、最初のブログ記事のときだけ実行するブロックタグです。ここでは、表題や ul タグの開始タグなどを表示します。
          • 9行目
            • <$mt:EntryPermalink$>
              • ブログ記事を含むアーカイブの絶対 URL を表示します。
              • <$MTEntryLink$> ファンクションタグとの違いは、ブログ記事へのアンカーが付加される点です。
              • カテゴリアーカイブのように複数のブログ記事が掲載されるページでも、目的のブログ記事にリンクできます。
            • <$mt:EntryTitle$>
              • ブログ記事のタイトルを表示します。
          • 10行目~14行目 <mt:EntriesFooter>~</mt:EntriesFooter>
            • MTEntries ブロックタグの中で、最後のブログ記事のときだけ実行するブロックタグです。

まとめ

タグの種類

今回使用したタグは以下の3つです。

  • ファンクションタグ
    • <$mt:foo$>等と記述するとMovable Typeの設定やデータなどが表示されます。
  • ブロックタグ
    • <mt:hoges>~</mt:hoges>等と表記すると、対応するhogeオブジェクトが列挙されるなどの処理を行います。
  • コンディショナルタグ
    • <mt:ifbar>~<\mt:ifbar>等と記述すると条件に応じて囲われた内部の処理(今回は表示の可否)を行います。

<mt:If>

今回の一連のウィジェットは最初から最後まで <mt:If>~</mt:If> タグで囲い、条件文によって表示、非表示を切り替える物が多くありました。

また大事なのは <mt:Else> で、 <mt:If> タグの内部で利用する事によって、 <mt:If> タグの条件文に合わない場合に、 <mt:Else> タグの内容を処理する点です。

<mt:If (条件文)>
 #処理A
<mt:Else>
 #処理B
</mt:If>

これらの利用により、複雑な処理が出来るようになります。

もっと知りたい方は <mt:If>タグリファレンス を参考にしてみてください。

Back To Top

Clone this wiki locally