2008年10月アーカイブ

MT4.2(多分4.1でも出来ると思う)のMT::Objectではlike,not_like,<=なんかを使ってオブジェクトを検索したり絞り込んだりできます。ドキュメントにも書いてある(4.1では書いてない)。

MTOS-4.22-ja/lib/MT/Object.pm

This selects all I<MT::Foo> objects where foo == 'bar'. But you can provide
a hashref value to provide more options:

    my @foo = MT::Foo->load( { foo => { like => 'bar%' } });

This selects all I<MT::Foo> objects where foo starts with 'bar'. Other
possibilities include 'not_like', 'not_null', 'not', 'between', '>',
'>=', '<', '<=', '!='. Note that 'not' and 'between' both accept an
arrayref for their value; 'between' expects a two element array, and
'not' will accept an array of 1 or more values which translates to
a 'NOT IN (...)' SQL clause.

I<¥%arguments> should be a reference to a hash containing parameters for the
search. The following parameters are allowed:

例えば、本文に「Movable Type」を含むエントリーを検索するのであれば以下のように書けます。


my @entries = MT::Entry->load( { text => { like => '%Movable Type%' } });

例としてMTEntriesでtarget(カラム名), operator(条件), query(クエリ)を指定して絞り込めるようにしてみました。あくまでもサンプル。


<mt:entries target="text" operator="like" query="%Movable Type%">

MTOS-4.22-ja/lib/MT/Template/ContextHandlers.pm


8139a8140,8146
>         my $target = $args->{target};
>         my $operator = $args->{operator};
>         my $query = $args->{query};
>         if (($target) && ($operator =~ /^not_like|like|not|not_null|not|>|>=|<|<=|!=$/i)) {
>             $terms{$target} = { $operator => $query };
>         }
>

一応? プラグインにしたものも置いておきます。

追記:インデックス・アーカイブでしか有効になりません。

'between' ではarrayrefが渡せるようなことが書いてるのですが、以下のようなコードではうまく取得できなかった...のでもうちょっと調べてみることにします。


my @query = [1,10];
my @entries = MT::Entry->load( { id => { between => \@query } });

いずれにしても色々な絞り込みがやりやすくなりますね。

[関連記事]→ MT::ObjectこそがMTの本質であると勝手に思っている。

今日(16日)から国立国会図書館開館の東京本館で開催されている「国立国会図書館開館60周年記念貴重書展 学ぶ・集う・楽しむ」に行ってきました。

貴重書、準貴重書等約80点を 和漢の代表的な古典(伊勢物語、源氏物語、論語等)[学ぶ]、江戸時代の学者・文人の自筆本・書入本・書簡等[集う]、絵巻から多色刷り版本までの彩色本[楽しむ]という3部構成で展示されています。

さすがに手に取る事はできませんが、コピーを製本したものが手に取れるコーナーなどもあって楽しめます。ウェブでも公開されていますが、サイトはあくまでも「見開きの電子化」にすぎないので、やはり現物には本の質感と言うか、現物の雰囲気? がありますね。

「南総里見八犬伝」とか、パネルになってた。「犬」の話だ(あたりまえか)。

東京本館では10月29日まで開催。11月13日から26日までは関西館で開催されます。

図録 看板

ウェブサイトはこちらから。

アルファサードでデザイン、制作をお手伝いしました。今回はMT+Power CMS for MTをサイト構築ツールとして全面的に使用したのですが、CMSとしての活用だけじゃなく、データベース・ウェブパブリッシングツール的な使い方をすることでサイト制作のワークフローがスムーズになります。

制作の舞台裏というか、制作のワークフローについて、来月行われるセミナーでご紹介をする予定です。

無料セミナーです。よろしければご参加くださいませ。

エントリーの日付(authored_on)が祝日だったら、祝日名(例:体育の日)を返すファンクションタグ(MTEntryHoliday)、同じくエントリーの日付が祝日だったら真を返すブロックタグ(MTIfEntryIsInHoliday)を提供します。

判別にはCalendar::Japanese::Holidayモジュールを使っているので、サーバーにインストールしておく必要があります。

21時12分修正(バグ修正。ついでにMTCalendar内でも使えるようにしました)。

Q(Staff):MTのブログ記事アーカイブで基本的には、%c/entry%Y%m%d.html(category/subcategory/entry20081006.html) としているのですが、同日に2つ以上のエントリがある場合には、category/subcategory/entry20081006-2.html とかにしたいのです。

A(Junnama):ブログに上げといたよ!
プラグイン(EntryNumberByDayプラグイン)をインストールしてアーカイブマッピングを%c/entry%Y%m%d<$MTEntryNumberByDay prefix="-"$>.html としてください。

もう帰ろーよ、週末やし飲みに行こーよ〜

え、再構築時点から日付ベースで未来の5件のエントリーを取り出したいの? タスク実行して毎日更新するの?

3分待ってね。

これでどーよ。

えーっと、もう帰ろーよ、週末やし飲みに行こーぜ。

Facebook

Twitter

このアーカイブについて

このページには、2008年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年9月です。

次のアーカイブは2008年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6