dittoで更新履歴 1年分だけ表示する
- 2010.09.03 Friday
- 11:08
dittoで更新履歴を作る場合、トップページに最新のみを表示させるなら &display=`10` で10件表示とかにします。
ここで「もっと読む」とか「続きをよむ」などのリンクをつけて過去の履歴も見せたい場合、リンク先のページで &display=`all` にすればいいのだけど、長くやってるサイトだと件数が膨大になる。なので1年ごととか、更新日時でページを分けたい場合どうするか? ちょっと悩んだのですがfilterパラメータで簡単にできましたw
&display=`all` &filter=`pub_date,1262271600,6|pub_date,1293807599,5|`
これで公開日(pub_date)が2010年1月1日00:00:00以上(6)、2010年12月31日23:59:59以下(5)のリソースをすべて表示になります。
日付時刻はmodxが読めるようにunixタイムスタンプの形式にします。unixtime変換はググるといろいろでてきます。
ここが便利でした。
unixtime変換ツール
pub_dateでなくeditedonにすれば編集日時で区切れます。
filterパラメータの書き方と意味はMEGUさんのDitto - 2.1の解説を参考にどうぞ。
Let's enjoy MODx Ditto - 2.1
あと、これはサイトをmodxに移行して、過去の履歴は静的htmlを使いmodx移行後の履歴のみDittoで作りたい、という場合にも使えます。
というのも &orderBy=`pub_date DESC` で公開日ソートにした場合、公開日が未入力の時はリソース作成日時が使われます。
サイト移行の場合、過去のページでも作成日時はすべて、当然ですが移行日以後です。単に&display=`all`にした場合、困ったことに…。古いページにいちいち公開日を設定するのはうんざりするくらい大変です。(←実は途中までやったorz)
filterで公開日がサイト移行日以後のものだけ表示にすれば、この問題も解決ですw
ここで「もっと読む」とか「続きをよむ」などのリンクをつけて過去の履歴も見せたい場合、リンク先のページで &display=`all` にすればいいのだけど、長くやってるサイトだと件数が膨大になる。なので1年ごととか、更新日時でページを分けたい場合どうするか? ちょっと悩んだのですがfilterパラメータで簡単にできましたw
&display=`all` &filter=`pub_date,1262271600,6|pub_date,1293807599,5|`
これで公開日(pub_date)が2010年1月1日00:00:00以上(6)、2010年12月31日23:59:59以下(5)のリソースをすべて表示になります。
日付時刻はmodxが読めるようにunixタイムスタンプの形式にします。unixtime変換はググるといろいろでてきます。
ここが便利でした。
unixtime変換ツール
pub_dateでなくeditedonにすれば編集日時で区切れます。
filterパラメータの書き方と意味はMEGUさんのDitto - 2.1の解説を参考にどうぞ。
Let's enjoy MODx Ditto - 2.1
あと、これはサイトをmodxに移行して、過去の履歴は静的htmlを使いmodx移行後の履歴のみDittoで作りたい、という場合にも使えます。
というのも &orderBy=`pub_date DESC` で公開日ソートにした場合、公開日が未入力の時はリソース作成日時が使われます。
サイト移行の場合、過去のページでも作成日時はすべて、当然ですが移行日以後です。単に&display=`all`にした場合、困ったことに…。古いページにいちいち公開日を設定するのはうんざりするくらい大変です。(←実は途中までやったorz)
filterで公開日がサイト移行日以後のものだけ表示にすれば、この問題も解決ですw