• ベストアンサー
  • すぐに回答を!

MT4.1でCMS

  • 質問No.4018618
  • 閲覧数135
  • ありがとう数6
  • 気になる数1
  • 回答数3
  • コメント数0

お礼率 67% (19/28)

MT4.1でとある企業サイトを構築しようと考えてます。
会社概要などの固定ページが数ページと、頻繁に更新する複数の
コンテンツ(プレスリリース、企業ブログ)、という構造を以下
のような構成で作り始めてます。

○汎用ウェブサイト
 ・サイトトップページ
 ・会社概要等(ウェブページ)
 ・固定ページの更新情報(ブログ【A】)
○既定のブログ・プレスリリース(ブログ【B】)
○既定のブログ・企業ブログ(ブログ【C】)

上記の三つをMultiBlogを使ってまとめ、汎用ウェブサイトを親
サイトとして【A】~【C】の情報を統合したトップページを構築
したいと考えています。
そのトップページの要素の一つとして、【A】~【C】のブログ記
事の中からある一件の[タイトル]、[本文]の一部、[画像]の縮小
版を表示させたいと思っています。

とりあえずクローズアップに表示を「する・しない」の二択を指
定するカスタムフィールドを作成し、【A】~【C】の各ブログの
各ブログ記事でフラグを立てられるようにしているのですが、こ
の条件で【A】~【C】のブログ記事のうち、closeupを「する」と
設定した中で最も新しいブログ記事を取得してトップページの
「クローズアップ」に上記の内容で表示させる、といったことは
可能なのでしょうか。
また、どのように構築すればよろしいでしょうか。

よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 81% (800/979)

追記:今日出された情報ですが、Movable Type 4.15では、簡単にカスタムフィールドの値がフィルタリングできるみたいです。
「カスタムフィールドの値で並べ替えやフィルタリングする」
http://www.movabletype.jp/blog/filtering_sorting_based_on_a_customfield.html
使ってみないとわかりませんが、とても簡単そうに見えます・・・
お礼コメント
MAT335

お礼率 67% (19/28)

わざわざありがとうございます!
残念ながら4.15はまだ使えない環境のため、先日お教えいただいた方法で試したところ、上手く動作しました。
おかげさまで大変助かりました。
ありがとうございます。
また何かでつまずいた時はよろしくお願いします!
投稿日時:2008/05/15 18:36

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 81% (800/979)

<MTEntries lastn="1">で条件に一致する最初のエントリーが表示されるのかと思っていたのですが、どうも違うみたいです(MTElseで条件に一致しないものを出してみたらわかりました)

http://www.movabletype.jp/blog/mt41_tagcloud.html
ここを参考にしてみました。解説もこちらを参照下さい。

<MTSetVar name="i" value="1">
<MTEntries lastn="10"> ←最新10件のエントリーを条件にあてはまるかチェックするという意味なので、もし最新10件が「しない」の場合、何も出ません。適宜変更下さい ※要はこれが"1"だったので「新しい記事の「closeup」が「する」になっている場合のみ表示がされ」ていたということらしいです;;)
<$MTCloseup setvar="Closeup"$>
<MTUnless name="seen{$Closeup}">
<MTIf name="closeup" eq="する">
<MTIf name="i" gt="0">
<MTSetVar name="i" op="--">
<MTSetVar name="seen" key="$Closeup" value="1">
<MTSetVarBlock name="tag_htmls" function="push"><$MTEntryTitle$><$MTEntryExcerpt$><MTEntryAssets><img src="<$MTAssetThumbnailURL$>" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" />
</MTEntryAssets></MTSetVarBlock>
<MTLoop name="tag_htmls">
<MTVar name="__value__">
</MTLoop>
</MTIf>
</MTIf>
</MTUnless>
</MTEntries>

参考先のソースをちょっと変えてみただけですので(すみません)、もしかしたら不要な記述があったりもっと他にいい方法があるかもしれません。(MultiBlogは未検証です。これをMTMultiBlogで囲んでみてください・・・)

出力されるHTMLには<h*>などのHTMLタグを全く入れていませんので、このままだととってもプレーンな状態で出力されます。参考先の「出力される HTMl を配列変数 tag_htmls に代入」を参考にしてみてください。
  • 回答No.1

ベストアンサー率 81% (800/979)

<MTMultiBlog include_blogs="*,*,*" mode="context">
<MTEntries lastn="1">
<MTSetVarBlock name="closeup"><$MT[カスタムフィールドで設定したベースネーム]$></MTSetVarBlock>
<MTIf name="closeup" eq="する">
<$MTEntryTitle$>
<$MTEntryExcerpt$>
<MTEntryAssets>
<img src="<$MTAssetThumbnailURL$>" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" />
</MTEntryAssets>
</MTIf>
</MTEntries>
</MTMultiBlog>

MTSetVarBlockでカスタムフィールドで入れた値を取得し、MTIfを使って条件抽出、これをMTMultiBlogタグで囲めばできないかなと思ったのですが、検証してないのでできなかったらすみません・・・
HTMLタグなどは入れていません。

「テンプレート内で、カスタムフィールド項目を利用する」
http://www.movabletype.jp/documentation/professional/custom-fields.html

蛇足ですが、モジュールにしてトップページにインクルードということになるかと思いますが、他のブログを更新したとき、トップページも再構築されないと更新情報は反映しないので、再構築トリガーを設定する必要があるかと。(ダイナミックパブリッシングだったら不要)
http://www.movabletype.jp/documentation/designer/multiblog/configure_portal_blog.html
お礼コメント
MAT335

お礼率 67% (19/28)

詳細なご説明ありがとうございます。
お教えいただいた通りやってみたのですが、残念ながら【A】~【C】のブログ記事で最も新しい記事の「closeup」が「する」になっている場合のみ表示がされ、逆に「しない」になっていると「クローズアップ」自体が表示されないようです。
私の説明が不十分だったのですが、仮に最新の記事が「しない」になっている場合でもトップページのクローズアップは常に表示されていて、表示される記事は現存する記事で「する」を設定している中の最も新しい記事、という形ができればと考えています。
よろしければアドバイスお願いいたします。
投稿日時:2008/05/13 17:42
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ