TopMovable Typeテンプレートタグ > 2009年10月
2009年10月29日

Movable Type のアーカイブページへのリンクを相対パス(ホストからの相対URL)で表示する

October 29,2009 1:41 AM
Tag:[, , ]
Permalink

Movable Type のアーカイブページ(ブログ記事ページ・月別アーカイブページ・カテゴリアーカイブページ)へのパーマリンクを、相対パス(ホストからの相対URL)で表示するカスタマイズです。以下、ブログ記事ページを例に説明します。

通常、ブログ記事ページのパーマリンクは MTEntryPermalink タグを利用します。

<a href="<mt:EntryPermalink />"><mt:EntryTitle /></a>

このブログ記事ページへのアーカイブパスが

yyyy/mm/entry-basename.html

となっている場合、URLの代わりに相対パスで出力するには、次のようにします。

<a href="<mt:BlogRelativeURL /><$mt:EntryDate format="%Y/%m/"$><mt:EntryBasename separator="-" /><mt:BlogFileExtension />"><mt:EntryTitle /></a>

MTBlogRelativeURL タグは、ホストからの相対URLを出力するタグです。MTEntryDate タグはブログ記事の公開日時を出力し、format モディファイアを適用することで任意のフォーマットで出力できます。

MTEntryBasename タグはファイル名を出力します。separator モディファイアは、ファイルに含まれる「_」を「-」に変換するものです。MTBlogFileExtension タグはアーカイブの拡張子をピリオド付きで出力します。

このようにテンプレートタグを書き換えることで、

http://user-domain/2009/11/07/post.html

という URL を、

/2009/11/07/post.html

で出力することができるようになります。

アーカイブパスによって設定内容は異なりますが、以下のページを参考にすれば、すべてのアーカイブページの相対パスが出力できると思います。

Movable Type 4 ドキュメント - アーカイブマッピングで利用するアーカイブファイル名の定義
Comments [0] | Trackbacks [0]
2009年10月22日

include_with_website モディファイア

Movable Type 5 では include_with_website モディファイアが追加されています。

このモディファイアは、自ウェブサイトのIDを include_blogs="site" というモディファイアの値に加えるものです。次のように設定すれば、ウェブサイト配下のブログ名と自ウェブサイト名を出力します。

<mt:Blogs include_blogs="site" include_with_website="1">
    <mt:BlogName />
</mt:Blogs>

include_with_website モディファイアは、include_blogs モディファイアが使える以下のテンプレートタグで使えると思います(他にも使えるかもしれません)。

  • MTAssets
  • MTAuthors
  • MTBlogs
  • MTCategories
  • MTBlogCategoryCount
  • MTComments
  • MTBlogCommentCount
  • MTEntries
  • MTAuthorEntryCount
  • MTBlogEntryCount
  • MTPings
  • MTBlogPingCount
  • MTTags
  • MTTagSearchLink
  • MTTagRank
  • MTWebsites

また、以下のモディファイアも追加されています(上記のテンプレートタグで利用可能)。

  • site_ids
  • include_websites
  • exclude_websites

ちなみに、デフォルトテンプレートの「最近のコメント(下)」を見ると、MTIf タグ(厳密には、MTIf タグの tag モディファイアに上記のテンプレートタグを使用した場合)にも include_with_website モディファイアを(つまり include_blogs="site" も)適用できるようです。

<mt:If tag="BlogCommentCount" include_blogs="site" include_with_website="1">
    <mt:Comments lastn="10" sort_order="descend" include_blogs="site" include_with_website="1">
        <mt:CommentsHeader>
<div class="widget-recent-comments widget">
    <h3 class="widget-header">最近のコメント</h3>
    <div class="widget-content">
        <ul>
        </mt:CommentsHeader>
            <li><strong><$mt:CommentAuthor$>:</strong> <$mt:CommentBody remove_html="1" words="10"$> <a href="<$mt:CommentLink$>" title="<mt:CommentEntry><$mt:EntryTitle$></mt:CommentEntry>へのコメント">続きを読む</a></li>
        <mt:CommentsFooter>
        </ul>
    </div>
</div>
        </mt:CommentsFooter>
    </mt:Comments>
</mt:If>

このサブテンプレートは、自ウェブサイトの(ウェブページへの)コメントも含めて、コメントが1件以上投稿(公開)されていれば、MTIf タグブロック内を実行するようになっています。MTIf タグの条件と整合するよう、中にある MTComments タグにも同じモディファイアを適用しています。

ということで、MTIf タグに設定できるモディファイアがさらに増えました。

Comments [0] | Trackbacks [0]
2009年10月 7日

Movable Type 5.0 情報(テンプレートタグ Tips)

October 7,2009 1:55 AM
Tag:[, , ]
Permalink

Movable Type 5.0 のテンプレートタグの操作に関する Tips です(ベータ2現在の情報)。以前の記事と若干重複しているかもしれませんがあしからず。

また、情報の一部は「Movable Type 5 BETA ドキュメント」からの引用です。

1.親ウェブサイトのコンテキストに移動する

<mt:BlogParentWebsite>
   :
</mt:BlogParentWebsite>

2.親ウェブサイトのモジュールをインクルードする

<mt:BlogParentWebsite><mt:WebsiteID setvar="website_id"></mt:BlogParentWebsite>
<mt:Include module="Test" blog_id="$website_id">

3.ウェブサイトに属するブログのコンテキストに移動する

<mt:Blogs include_blogs="site">
   :
</mt:Blogs>

4.コメントのカスタムフィールドをコメント投稿フォームに表示する

<input type="hidden" name="blog_id" value="<MTBlogID>" />
<input type="hidden" name="customfield_beacon" value="1" id="customfield_beacon" />
<mt:CommentCustomFields>
<mt:SetVarBlock name="custom_field_name"><$mt:CustomFieldName$></mt:SetVarBlock>
<mt:SetVarBlock name="field-content"><$mt:CustomFieldHTML$></mt:SetVarBlock>
<mt:SetVarBlock name="custom_field_id">profile_<$mt:CustomFieldName dirify="1"$></mt:SetVarBlock>
<$mt:Include module="フォームフィールド" id="$custom_field_id" class="" label="$custom_field_name"$>
</mt:CommentCustomFields>

5.カスタムフィールドの埋め込みオブジェクトを表示する際の注意点

Movable Typeの標準テンプレートでは、プロフィールやコメントのカスタムフィールド項目をブログで表示する際、安全のためにHTMLタグを除去するグローバルモディファイア sanitize="1" を指定しています。

このため、カスタムフィールドの『埋め込みオブジェクト』で入力される<embed>や<object>タグは、標準の設定では除去されます。

タグを除去せずに、カスタムフィールドの値を表示したい場合は、 sanitize="0" とすることでHTMLをそのまま表示できます。ただし、これによりウェブサイト上で任意のHTMLを表示したり、JavaScriptを実行することが可能になります。ウェブサイトのセキュリティ確保のために、信頼されたユーザーだけがその項目を編集できるよう、コメント認証やユーザーの権限を厳しく設定してください。

Comments [0] | Trackbacks [1]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3