Japanese mtml guide 1 3 - Hiranyaloka/Documentation GitHub Wiki

ウィジェット「ユーザーアーカイブ」「ユーザー月別アーカイブ」「日付ベースのカテゴリアーカイブ」「日付ベースのユーザーアーカイブ」「月別アーカイブ」「月別アーカイブ(ドロップダウン)」「検索」

Back To Top

はじめに

今回もファンクションタグ、ブロックタグ、コンディショナルタグについて解説します。

また、一部Java Scriptが記載されているので、そちらも簡単に解説させていただきます。

ウィジェット「ユーザーアーカイブ」

アーカイブタイプをユーザーに設定したアーカイブ一覧です。タグは「最近のブログ記事」ウィジェットと近い構成になっています。

このウィジェットでは、 <mt:IfArchiveTypeEnabled>~</mt:IfArchiveTypeEnabled><mt:ArchiveList>~</mt:ArchiveList><mt:ArchiveListHeader>~</mt:ArchiveListHeader><$mt:ArchiveLink$><$mt:ArchiveTitle$><$mt:ArchiveCount$><mt:ArchiveListFooter>~</mt:ArchiveListFooter> タグが使われています。

  • 1行目~16行目 <mt:IfArchiveTypeEnabled>~</mt:IfArchiveTypeEnabled>
    • 指定したアーカイブの種類が有効のときに実行する条件タグです。モディファイア archive_type を指定することで、アーカイブの種類を選択できます。
    • ここでは archive_type="Author" を指定しているので、ユーザーアーカイブが設定されている場合、内部が処理されます。
      • 2行目~15行目 <mt:ArchiveList>~</mt:ArchiveList>
        • アーカイブの一覧を表示するためのブロックタグです。モディファイア archive_type で、表示するアーカイブの種類を指定できます。
        • ここでは archive_type="Author" に設定されているので、ユーザー別にリストされます。
          • 3行目~8行目 <mt:ArchiveListHeader>~</mt:ArchiveListHeader>
            • MTArchives タグの中で、最初にだけ実行する条件タグです。最初のとき内部が処理されます。
          • 9行目
            • <$mt:ArchiveLink$>
              • ブログ記事一覧アーカイブの絶対 URL を表示します。ブログ記事一覧アーカイブへのリンクを作るときに使います。
              • MTArchiveList ブロックの中か、アーカイブに関連したテンプレートで使用できます。表示する URL は、MTArchiveList ブロックの設定 (モディファイア) やテンプレートに準じます。
              • MTArchiveList ブロックに archive_type="Author" と設定しているため、ブロックの中ではユーザーアーカイブの URL を表示します。
            • <$mt:ArchiveTitle$>
              • ブログ記事一覧アーカイブのタイトルを表示します。表示されるタイトルは、アーカイブの種類に依存します。
              • MTArchiveList ブロックに archive_type="Author" モディファイアを設定したブロックの中では、ユーザー名を表示します。
            • <$mt:ArchiveCount$>
              • ブログ記事一覧アーカイブのブログ記事数を表示します。
          • 10行目~14行目 <mt:ArchiveListFooter>~</mt:ArchiveListFooter>
            • MTArchives タグの中で、最後にだけ実行する条件タグです。最後のときだけ処理されます。

ウィジェット「ユーザー月別アーカイブ」

アーカイブタイプをユーザー月別にしたアーカイブ一覧です。上で説明したユーザーアーカイブとほぼ同じ構成になっています。

変更されているのは <mt:IfArchiveTypeEnabled> , <mt:ArchiveList> のモディファイアが archive_type="Author-Monthly" になっている事と、 <$mt:AuthorDisplayName encode_html="1"$> が使われている点です。

モディファイアが archive_type="Author-Monthly" になっている事で「ユーザー月別アーカイブ」が利用されているときだけ処理が行われます。

<$mt:AuthorDisplayName encode_html="1"$> はユーザーのプロフィール設定で入力した『表示する名前』の内容を表示します。モディファイアに encode_html="1" が付いている事でHTMLタグを文字列として表示できるようにHTMLエンコードして表示します。

詳細は省略します。

ウィジェット「日付ベースのカテゴリアーカイブ」

年別( archive_type="Category-Yearly" )、月別( archive_type="Category-Monthly" )、週別( archive_type="Category-Weekly" )、日別( archive_type="Category-Daily" )のカテゴリーアーカイブが設定されている場合に一覧を表示します。

それ以外は「ユーザーアーカイブ」「ユーザー月別アーカイブ」と大きな変わりはありません。

詳細は省略します。

ウィジェット「日付ベースのユーザーアーカイブ」

年別( archive_type="Author-Yearly" )、月別( archive_type="Author-Monthly" )、週別( archive_type="Author-Weekly" )、日別( archive_type="Author-Daily" )のユーザーアーカイブが設定されている場合に一覧を表示します。

それ以外は「日付ベースのカテゴリアーカイブ」と大きな変わりはありません。

詳細は省略します。

ウィジェット「月別アーカイブ」

月別アーカイブ一覧です。 5行目で <$mt:ArchiveTypeLabel$> が使われていますが、 archive_type="Monthly" の指定がされているため、「月別」と表示されます。

それ以外は「ユーザーアーカイブ」と大きな差はありません。

詳細は省略します。

ウィジェット「月別アーカイブ(ドロップダウン)」

上述した「月別アーカイブ」ウィジェットのドロップダウン版です。ページ上で縦幅を取らないためコンパクトに出来るのが利点です。

基本的には「月別アーカイブ」と同じなので、ここではJava Scriptの解説を行います。

  • 7行目 <select onchange="nav(this)"> で、プルダウンメニューで変更を行ったら nav(this) 関数を呼びます。この this はプルダウンメニュー自体を指します。
  • 17行目 関数 function nav(sel) が呼ばれます。
  • 18行目 プルダウンが選択されていなかったら、何もせずに関数を抜けます。
  • 19行目 プルダウンで選択された行数( sel.selectedIndex )を、 sel.options[] で指定する事で選択されたオプションのオブジェクト( opt )が取得できます。
  • 20行目~21行目 opt が存在し、 opt.value も値がある場合、ページを opt.value で指定されたURLに移動します。

ウィジェット「検索」

検索を行うウィジェットです。

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

  • 4行目
    • <$mt:CGIPath$>
      • システムの CGI プログラムを配置したパスを表示します。環境設定ファイル (mt-config.cgi) の CGIPath の値を表示します。
    • <$mt:SearchScript$>
      • ブログの検索 CGI プログラムのファイル名を表示します。<$mt:CGIPath$>と組み合わせることで、プログラムへのパスを生成できます。
  • 5行目 <$mt:SearchString$>
    • 検索する条件 (文字列) を表示します。
  • 6行目~15行目 <mt:If><mt:Else>
    • name="search_results" 検索結果ページだった場合、内部の処理を行います。
    • 7行目 <$mt:SearchIncludeBlogs$>
      • 検索対象のブログのブログ ID を、カンマ区切りで表示します。
    • 8行目~14行目 <mt:Ignore>~</mt:Ignore>
      • 指定した範囲について、処理を行わないブロックタグです。ここではコメントアウトの手段として利用されています。(旧検索用のMTタグ)
  • 15行目~17行目 <mt:Else></mt:If>
    • name="search_results" 検索結果ページでない場合、処理を行います。
      • 16行目 <$mt:BlogID$>
        • ブログの ID 番号を表示します。ブログには 1, 2, 3… といった正の整数の ID 番号が割り当てられます (必ずしも1から始まる連番になるわけではありません)。
  • 18行目 <$mt:SearchMaxResults$>
    • 環境設定ファイル (mt-config.cgi) で設定されている環境変数 SearchMaxResults の値(検索時最大出力件数)を出力します。
  • 23行目~36行目 <mt:If>~</mt:If>
    • name="search_results" 検索結果ページだった場合、内部の処理を行います。
      • 24行目~35行目 <mt:IfTagSearch>~</mt:IfTagSearch>
        • ブログ記事の検索の場合に実行する条件タグです。タグでの検索時に囲まれた内容を処理します。
          • 29行目~31行目 <mt:Tags>~</mt:Tags>
            • タグ一覧を表示するためのブロックタグです。
          • 30行目
            • <$mt:TagSearchLink$>
              • 特定のブログ内で、特定のタグを付加したコンテンツを検索するためのリンクです。
              • encode_js="1" としているので、Java Scriptで利用するのに問題のある文字をエンコードします。
            • <$mt:TagName$>
              • 特定のタグの名前を表示します。
            • <$mt:TagCount$>
              • 特定のブログ内で、指定したタグが設定されたブログ記事数を表示します。

まとめ

ここまでウィジェットを多く読んできましたが、行っている事は単純な事はご理解いただけましたでしょうか?

残るは、あと7つのウィジェットです。さくっと読み進めましょう。

Back To Top

⚠️ **GitHub.com Fallback** ⚠️