MT::FileInfoについて

MT::FileInfoについて

Posted at April 22,2010 11:55 PM
Tag:[DynamicPublishing, FileInfo, MovableType, mt_fileinfo]

昨日の「ダイナミックパブリッシングでURLが重複する事象について」の続きで、ダイナミックパブリッシングの設定方法の違いによるMT::FileInfoの状態などを簡単に調べてみました。

1.前準備

ブログ記事は次のものが投稿済みです。

  • モバイルサイトオープン
  • 業務提携に関するお知らせ
  • ソリューションセミナー
  • Movable Type 入門セミナー
  • オフィシャルサイトオープン
  • Movable Type 4 へようこそ!
  • シンポジウム2010
  • ホームページリニューアル

この状態で、phpMyAdminを使って、MT::FileInfo(mt_fileinfoテーブル)のオブジェクトデータを削除しておきます。

2.インデックステンプレートを個別にダイナミックパブリッシングにする

次のサブテンプレートを記述した、ダイナミックパブリッシングのインデックステンプレートを作成します。

<mt:Entries>
  <mt:EntriesHeader>
<ul>
  </mt:EntriesHeader>
  <li><a href="<mt:EntryPermalink />"><mt:EntryTitle /></a></li>
  <mt:EntriesFooter>
</ul>
  </mt:EntriesFooter>
</mt:Entries>

このインデックステンプレートで作成したページにアクセスすると、ソースコードは次のようになりました。MTEntryTitleタグは評価されていますが、MTEntryPermalinkタグがまったく評価されていないことが分かります。

<ul>
<li><a href="">モバイルサイトオープン</a></li>
<li><a href="">業務提携に関するお知らせ</a></li>
<li><a href="">ソリューションセミナー</a></li>
<li><a href="">Movable Type 入門セミナー</a></li>
<li><a href="">オフィシャルサイトオープン</a></li>
<li><a href="">Movable Type 4 へようこそ!</a></li>
<li><a href="">シンポジウム2010</a></li>
<li><a href="">ホームページリニューアル</a></li>
</ul>

そしてmt_fileinfoテーブルには、このインデックステンプレートのオブジェクトデータが1件追加されます。このデータはテンプレートの保存時に追加されます。

mt_fileinfoテーブル

3.公開プロファイルでダイナミックパブリッシングを選択する

次に、公開プロファイルでダイナミックダイナミックパブリッシングを選択してみます。

公開プロファイルの選択

この後、選択したプロファイルを実行すると、「ダイナミックリンクを再構築中」という聞きなれない単語が表示されます。

ダイナミックリンクを再構築中

完了後、mt_fileinfoテーブルを参照すると、すべてのページに対するオブジェクトデータが生成されていることが分かります。つまり「ダイナミックリンク」とは、mt_fileinfoテーブルへのオブジェクトデータ追加、つまりダイナミックパブリッシングで生成したページにアクセスできる状態を指すようです。

mt_fileinfoテーブル

この状態で2項のページにアクセスすると、冒頭のMTEntryPermalinkタグも評価されました。

<ul>
  <li><a href="http://user-domain/2010/09/post-9.html">モバイルサイトオープン</a></li>
  <li><a href="http://user-domain/2010/08/post-8.html">業務提携に関するお知らせ</a></li>
  <li><a href="http://user-domain/2010/07/java.html">ソリューションセミナー</a></li>
  <li><a href="http://user-domain/2010/06/movable-type.html">Movable Type 入門セミナー</a></li>
  <li><a href="http://user-domain/2010/05/post-1.html">オフィシャルサイトオープン</a></li>
  <li><a href="http://user-domain/2010/05/movable-type-4.html">Movable Type 4 へようこそ!</a></li>
  <li><a href="http://user-domain/2010/04/2010.html">シンポジウム2010</a></li>
  <li><a href="http://user-domain/2010/03/post.html">ホームページリニューアル</a></li>
</ul>

4.mt_fileinfoテーブルのオブジェクトデータがない場合

ちなみに、再度mt_fileinfoテーブルのオブジェクトデータをすべて削除して、2項のページにアクセスすると、次のようなエラーになりました。

ダイナミックパブリッシングエラー

5.まとめ

ページアクセス時の動作は次のとおりです。

  • MT::FileInfoオブジェクトあり:オブジェクトに対応するページは表示される(2項)。ただしMT::FileInfoオブジェクトの生成状態によっては正常に評価されないテンプレートタグあり。
  • MT::FileInfoオブジェクトなし:ダイナミックパブリッシングエラー(4項)

また、ダイナミックパブリッシングの設定方法によるMT::FileInfoオブジェクトの生成範囲は次の通りです。

  • 個別にダイナミックパブリッシングを設定:該当のテンプレートから生成されるページのMT::FileInfoオブジェクトを生成(2項)
  • 公開プロファイルで設定:すべてのページのMT::FileInfoオブジェクトを生成(3項)
関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)