Movable Type5に関する質問です。Movable Typeをつかって、ウェブサイトを制作しています。


トップページに、開催予定のイベントを、ある件数分だけ表示するようにしたいと考えています。

例えば、今日が2011年3月1日とすると以下のように表示されるようにしたいと思います。(4件表示の場合)
---
2011年3月5日 ●●イベントのお知らせ
2011年3月10日 ●●イベントのお知らせ
2011年4月15日 ●●イベントのお知らせ
2011年5月25日 ●●イベントのお知らせ

>>イベント一覧はこちら
---

「イベントの開催日」は、「投稿日」を書き換えるか、カスタムフィールドで入力するか、どちらかを考えています。

「ある日付が来ると下書き記事になる」プラグインがありましたが、これではイベント一覧ページ(全ての記事の一覧ページ)からも、非表示になってしまいます。
全ての記事が「イベント一覧」に表示されるようにしたいので、「公開」状態を保ったままであることが望ましいです。

トップページのみ「本日より過去の記事は表示せず、かつ、本日から特定の件数分のみ表示させる」ことは可能でしょうか。

ご教授いただければ幸いです。どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/03/01 17:28:15
  • 終了:2011/03/02 14:23:31

ベストアンサー

id:rouge_2008 No.1

rouge_2008回答回数594ベストアンサー獲得回数3512011/03/02 13:51:04

ポイント100pt

イベントの詳細ページは、ブログの記事で作成(※カテゴリは「イベント」、イベント開催日は、投稿日(公開日)を変更して使用)している事を前提にしています。


1. ウェブサイトのデザインテンプレートで、次の内容のテンプレートモジュールを新規作成します。

※ここでは「イベントインフォ」という名前のテンプレートモジュールを作成します。

<mt:Entries category="イベント" sort_order="ascend" include_blogs="ブログのID">
    <mt:EntriesHeader>
<div>
    <h2>イベントのお知らせ</h2>
    <ul>
    </mt:EntriesHeader>
    <mt:SetVarBlock name="i_day"><mt:EntryDate format="%Y%m%d"></mt:SetVarBlock>
    <mt:SetVarBlock name="today"><$mt:Date format="%Y%m%d"$></mt:SetVarBlock>
    <mt:If test="$i_day ge $today && $item lt 4">
        <li><a href="<$mt:EntryPermalink$>"><$mt:EntryDate format="%x"$> <$mt:EntryTitle$></a></li>
    <$mt:SetVar name="item" op="+" value="1"$>
    </mt:If>
    <mt:EntriesFooter>
    <mt:If test="$item == 0"><li>現在イベントのお知らせはありません。</li></mt:If>
    </ul>
    <p>
        <a href="「イベント」カテゴリアーカイブのURL">>> イベント一覧はこちら</a>
    </p>
</div>
    </mt:EntriesFooter>
</mt:Entries>

2. インデックステンプレートのメインページの任意の場所(※イベントのお知らせを表示したい場所)に以下の記述を追加します。

<$mt:Include module="イベントインフォ">

※ブログのIDとカテゴリのアーカイブURLは、ご自分の環境に合わせて変更してください。

※表示する数を変更したい場合は、「$item lt 4」の数値を変更します。(現在は4件表示)


※後は適当な時間に毎日再構築する必要がありますが、「リアルタイム再構築プラグイン」を使用すると、メインページ(トップ)にアクセスした時にリアルタイムに再構築したメインページを表示する事が出来ます。

ウェブサイトのディレクトリのルートにある.htaccessに以下の記述を追加します。

  RewriteEngine on
  # 上記のすぐ後ろに以下を追加
  # 環境によって「RewriteBase」の記述が必要な場合があります。
  RewriteRule ^/?(index\.html)*$ 表示データの読み込み先 [L]

※表示データの読み込み先には、リアルタイム再構築プラグインの動作テストでクリックしたリンク先のアドレスを記述します。

※以下のようなWEBルートからのパスを記述します。

例)/mt/plugins/RealtimeRebuild/mt-realtime-rebuild.cgi?blog_id=**&tmpl_id=**



※再構築の別の方法として、「mt-rebuild」もありますが未確認です。

「mt-rebuild」の導入方法は、以下のサイトなどを参考にしてください。

http://blog.remora.cx/2010/03/rebuild-movabletype-periodically.h...

※MT5でも動作するとの事です。

http://bizcaz.com/archives/2006/08/09-221138.php

http://www.ngo-jvc.net/blogs/wfn/2009/08/mtcron.html

※カスタムフィールドを利用していると失敗するようです。


※何か分からない事がある場合、コメント欄を開けて置いてくださるとやり取りしやすいです。

id:iesarepo06

丁寧な回答ありがとうございます!!

お陰様で、うまく設定することができました。

再構築の方法については、環境に合わせて試してみることにします。

2011/03/02 14:21:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません