本文へジャンプ

PowerCMS X で全く同じタイムスタンプのオブジェクトの並びがおかしい?場合の対策
~環境変数「strict_offset」~

日本国内3000サイト以上で導入実績を持つハイエンドCMS「PowerCMS X」
MONSTER DIVEではPowerCMS Xを含めて多くのCMS構築実績がありますが、今回はPowerCMS Xを使ったWebサイト構築で便利な「小ネタ」を紹介します。

「複製」オプション

モデルのオプションで「複製」にチェックをいれると、一覧画面および編集画面でオブジェクトを複製できるようになります。

複製すると公開日時が全く同じになる

複製されたオブジェクトは、複製元のオブジェクトと公開日時(自動監査ありの場合)が同じになります。

一覧画面および、出力結果での並び順

同じ日時のオブジェクトの場合、データベースからの取得したリスト順となっているようで、 意図した順番にならない場合があります。
これは、一覧画面および出力結果ともに同じように起こります。

対策1:公開日とIDで2重ソートする

PowerCMS Xでは、ソート条件(sort_by)を複数設定することができます。
この機能を利用して、第1ソート条件に「公開日」、第2ソート条件に「ID」を指定します。
こうすることで、基本は「公開日順」、日時が同じ場合は、「ID順」で明確にオブジェクトをソートできるようになります。

「sort_by」を複数にした場合、「sort_order」も複数指定可能です。

<mt:Entries sort_by="'published_on','id'" sort_order="'descend','descend'">

対策2:環境変数「strict_offset」を指定する

ソートキーが「id」以外で limit, offset指定のある時、第2ソートキーに「id」を追加します。

→ 環境変数「strict_offset

環境変数「strict_offset」を「TRUE」にすると、自動的に第2ソート条件に「ID」を指定してくれます。
さきほどの「対策1」と同じ状態になります。

環境変数の設定は、config.jsonもしくは、管理画面の「環境変数」から指定して下さい。
→ 「環境変数の設定方法(PowerCMS X ブログ)

CMS構築ならMONSTER DIVEまでご相談を!

MONSTER DIVEでは、PowerCMSをはじめ、Movable TypeやWordPressなど、CMSを活用したWebサイト構築のご相談、承っています。
お気軽お問い合わせください。

Recent Entries
MD EVENT REPORT
What's Hot?