• 締切済み

Movable Typeの再構築について

Movable Typeで再構築しないで反映させる方法はないのでしょうか? 一つとしてPHPなどを使って、よくあるサイドのナビゲーションのマンスリーリストやカテゴリーリストなどはDBから情報をひぱっていけばできるかと思うのですが、アーカイブテンプレートに更新情報を反映させるために、再構築しなければならないと思います。 できるだけ再構築せずに運用できる方法はないでしょうか? 何かアイデアがあれば教えて下さい。 もちろん、だったらMTじゃないCMSを使えばって話なのですが、運用者がただ面倒だからだと思うのですが、そんなオーダーがでてて困ってます。

みんなの回答

  • CHI-512
  • ベストアンサー率69% (63/91)
回答No.2

こんにちは。 私は1MT7Blogで構築されたポータルサイトを構築したことがあります。 その時は、phpとMT4のマルチブログ機能を活用しました。 再構築を必要としたのは、クライアントが記事を修正したのにページにそれが反映されなかった時のみでした。 MTは、記事を投稿した時に、 インデックスアーカイブと記事に関係するアーカイブス(カテゴリーや月別)を再構築しますが、 この時の『再構築』で大抵の事が済むようにすればいいと思います。 まず、前提として、全てのファイルの拡張子をphpにします。 phpインクルードを多用するためです。 AブログにBブログの最新記事5件を表示したいと思ったら、 Bブログのインデックスアーカイブで新規にテンプレートを作成。 中身は、<MTEntries lastn="5">~</MTEntries> これを仮にB-news.phpと保存 Aブログのテンプレート、もしくはHTMLコードに、 <?php include('Bブログの絶対パス/B-news.php'); ?> とすれば、Aブログの再構築の必要無く、 Aブログには常にBブログの最新記事5件が表示されます。 例)ポータルサイトのトップページ Aブログの最新情報(AブログでA-news.phpとして出力、phpインクルード) Bブログの最新情報(BブログでA-news.phpとして出力、phpインクルード) ・ ・ ・ このように、○ブログの記事を○ブログ以外の場所“X”で使用したいと思ったら、 ○ブログのインデックステンプレートでインクルード用のテンプレートを作成し、 “x”でphpインクルードさせます。 また、ポータルサイトですと、 時に複数のブログ記事を混ぜて表示したいということがあると思います。 その場合は、マルチブログ機能で、該当するブログを勝手に再構築させます。 A~Eのブログの記事を織り交ぜて最新記事リストを表示したい、とします。 その時は、Aブログのインデックステンプレートに以下のようなテンプレートを作成します。 <MTMultiBlog mode="context" include_blogs="a,b,c,d,e"><MTEntries lastn="x">~</MTEntries></MTMultiBlog> これをAE-news.phpとして出力 Aブログのツール→プラグイン→MultiBlogで再構築トリガーを設定します。 ・Bブログ/ブログ記事の保存時/インデックスを再構築する ・Cブログ/ブログ記事の保存時/インデックスを再構築する ・Dブログ/ブログ記事の保存時/インデックスを再構築する ・Eブログ/ブログ記事の保存時/インデックスを再構築する 上記設定で、それぞれのブログ(B~E)に記事が保存された際に、Aブログのインデックステンプレートが勝手に再構築されます。 よって、AE-news.phpが常に最新記事リストとして出力されます。 マルチブログ機能で注意が必要なのは、記事の修正時にその修正が出力に反映されない場合があるということです。 『記事を削除したのに、記事リストに並んでいる』 たまにあります。 恐らく、マルチブログ機能の再構築トリガーの条件に当てはまらなかったのでしょう。 この場合は、Aブログのインデックスアーカイブの再構築が必要です。 マルチブログで複数記事を織り交ぜて表示したいと思ったら、マルチブログ用にブログを1つ作っておくと便利です。 私の場合、一切記事を持たない『0ブログ』を作り、 この『0ブログ』上で他のブログ記事を集めたテンプレートを作成します。 『0ブログ』を作る利点は、マルチブログ関連の再構築が必要な際、『0ブログ』さえ再構築すればOKという分かりやすさ(管理側にもクライアント側にも)です。 他に『再構築』を不必要とするために、 エントリーアーカイブはあくまでもそのエントリーの内容だけを表示させるようにする! ※ 『次の記事、前の記事』や、同一カテゴリーの記事など、他のエントリーの内容を引っ張ってくるとややこしくなります!どうしても表示したい時は極力phpインクルードで片付けます。 ・カテゴリーリスト、アーカイブリスト等はphpで出力→インクルードさせる。 といったところでしょうか? 参考になれば幸いです。 ブログ16個・・・・・・制作サイドとしては吐き気がしますね(笑)

yoncyome
質問者

お礼

CHI-512さん、すごく丁寧な解説ありいがとうございます。 実際に試してみました。 うまくいきました。これで解決できそうです。 すごく助かりました。 ちなみにブログ16個から24個に増えそうです。 がんばります!

  • CHI-512
  • ベストアンサー率69% (63/91)
回答No.1

こんにちは。 どういった時に発生する『再構築』を減らしたいのですか? 『面倒』ということは、 『エントリーを投稿する』 以外の作業時に再構築を必要とするような事態が頻繁に起きているんですよね? 恐らく、100%再構築を無くすことは不可能でしょうが、 『エントリー保存時の再構築』である程度済ますようにすることは可能だと思います。 とりあえず、情報が足りないので補足してください。

yoncyome
質問者

補足

返信ありがとうございます。 情報不足ですみませんでした。 トップページをポータルとし、一つのMTにいくつものBlog (コンテンツや一人一人のBlog)が存在します。 コンテンツとしてはフォトギャラリー、ニュース、いくつものBlogをまとめたポータルページなどが存在します。 Blogも現在は8つなのですが、これが倍くらいになる予定だそうです。 複数のものが存在する上に、Blogの記事の投稿の更新が頻繁なため、すでに過去の記事も多くあります。 各コンテンツなどにはBlogやニュースの更新履歴などを表示しているために再構築は欠かせません。 今回はリニューアルということで『再構築』がどうにかならないかということで、 『再構築』の際の負荷をできるだけ、軽減したいと思ってます。 何かいいアドバイスがあったら教えていただきたいです。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう