2003年12月25日

mt-listでlive info

このブログでは,ライブのスケジュールを右のLive info!ってところで出しているのですが,
ライブのスケジュールって,結構前から日程が決まるのもあれば,
直前になって入るものもあるので,
決まった順にエントリを作ると,エントリの順番でタイトルを並べると,
日付の順番がむちゃくちゃになってしまうんですね.
そこで,ずっとライブの日付でソートできるようにしたかったのですが,
mt-listというプラグインを使って一応解決しました.

使い方は他のプラグインと同様,ダウンロードしてきたmt-list.plをpluginsフォルダに入れるだけです.

書いたコードは以下の通り

<MTList name="liveinfo">
<MTEntries category="LIVE INFO">
<$MTEntryTitle$><a href="<$MTEntryLink$>">[See info]</a>
</MTEntries>
</MTList>
<MTListLoop name="liveinfo" sort="ascending">
◇<$MTListItem$></a><br />
</MTListLoop>

<MTList>
というコンテナタグの中で,name="適当な名前"(ここではliveinfo)で
指定したリストに,コンテナタグで囲んだ中身のリストを作ってくれます.
ここではLIVE INFOというカテゴリからエントリのタイトルを拾ってくるようにしています.
ここで,コンテナタグの中身を
<MTEntries><$MTEntryTitle$></MTEntries>
みたいに一行で書いてしまうと個々のタイトルが個別のアイテムとして認識されなくて,
一個のアイテムになってしまいます.(最初これでハマりました)

次に,
<MTListLoop>
というコンテナタグでnameで指定したリストの中身を出力してくれます.
ここでsortには昇順"ascending"と降順"descending"を指定できます.
これでソートできるようになりました.めでたしめでたし.

ただ,エントリのタイトルにエントリへのリンクをつけたかったのですが,
例えば,MTListの中身を
<a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
としちゃうと$MTEntryLink$も含めてソートされてしまうので,
タイトルでソートすることができなくなってしまいます.
というわけで,タイトルの後にくっつけた[See info]にリンクを貼るという苦し紛れな方法をとりました...
また暇ができたらplugin自前で書いてみることにします.
(というかこの情報が役立つ人って思いっきり限られてるような...)

Posted by sasapong on 2003年12月25日

Comments

ちょいと変更.

三行目
<$MTEntryTitle$><div style="text-align:right" /><a href="<$MTEntryLink$>">&gt;&gt;&gt;See info</a></div>

やや無理矢理ですが・・・

Posted by: sasapong on 2003年12月25日 22:00

ごめんなさい。コード部分が消えてしまい、余計な多重投稿してしまいました。
ご面倒をおかけしますが削除おねがいします。タグ部分が悪さをしたようですので、タグ部分<>は全角にして試します。実際に使用の際は半角に変換おねがいします。
古いエントリのようですがですが、たまたま最新(スパム?)コメントがついているので気がつき興味をもちました。
MTCollateというPluginを使うとご希望通りのものができそうなのでコメントつけます。
Plugin Directory->Template/Tag Helpers->Collate
からダウンロード、解凍、pluginディレクトリにアップロードします。
そして、目的箇所のtemplateを下の通りに記述します。

<MTEntries categories="LIVE INFO">
<MTCollateRecord>
<MTCollateSetField name="title"><$MTEntryTitle></MTCollateSetField>
<MTCollateSetField name="url"><$MTEntryParmalink$></MTCollateSetField>
</MTCollateRecord>
</MTEntries>

</MTCollateCollect>
<MTCollateList limit="2 title:-" sort="title:+">
<a href="<MTCollateField name="url">">◇<MTCollateField name="title"></a><br/>
</MTCollateList>


<MTCollateCollect>コンテナタグの中で、LIVE INFOをリストアップして、タイトルとURLを記録します。
<MTCollateList>コンテナタグでlimit="2 title:-"が上で記録したtitleを降順でソートしたときの上から2個を取り出し、sort="title:+"でtitleを昇順で出力するということをしております。

蛇足ですが文字色がグレーになってしまうと思うのでスタイルシートの書き換えが必要だと思います。

Posted by: DiaBlog on 2005年05月07日 13:19

>DiaBlogさん
コメントありがとうございます!
一個目のコメントで,タグの部分は生きてましたので
(ただ表示されない)
後で時間のあるときに追記しつつ,試してみますね.
最近はこういうMovabletypeいじりはご無沙汰なので,
忘れないようにちょっとやってみようと思います.

Posted by: sasapong on 2005年05月07日 13:21

あ,うまくいきましたね.何度もスンマセンです.
上二つのコメント消しておきますね.

Posted by: sasapong on 2005年05月07日 13:22
コメントする









名前、アドレスを登録しますか?


*e-mailアドレスの入力は必須ですが,入力されたアドレスはいっさい表示されません.
*投稿ボタンを押した後,たまにエラーが出る場合がありますが,コメントは保存されています.再度投稿の必要はありません.