category

エントリを分類ごとに並び替えするためにエントリ選択のフィールドを利用する #craftcms

2019-11-06

2019年も11月になってしまったというのに、こんなこと考えていてなんか虚しいところもあるのだけど。

MTAppjQuery へのお問い合わせが多いことをまとめておいて、いつでも参照してもらえるようにしておこうと思っているところで。

作りたいイメージはこんな感じで分類ごとにまとめておくようなのを想定。

そうなると各分類ごとにエントリの並び順を自由に定義したくなるよなー、ということで考えてみている。


Craft CMS で管理してるページで、とりあえずそれぞれのデータはチャンネルタイプ(MTのブログ記事、WPの投稿みたいなの)のセクションで管理しはじめた。

ストラクチャ(MTのページ、WPの固定ページみたいなの)で管理してもいいのだけど。

ストラクチャにしてしまえばエントリ全体での並び替えは自由にできるけど、分類ごとにエントリを並び替えるということができない。

MTでやるならなにか並び替え用の値を入れるフィールドを作っておいて、カテゴリごとの記事一覧画面でD&Dで並び替えしたら、並び順に相当するものをそのフィールドにセットするとかやりそうな気はする。

カテゴリを使って分類をわける

分類についてはとりあえずカテゴリを使うことにした。

分類用のセクションを用意してそこに登録したエントリを選択する形で分類わけにしてもよいのだけど。
ここはとりあえずカテゴリで。

カテゴリにするか、エントリにするか、はいずれはエントリという形に落ち着く方向になるんじゃないかなぁという気はするが。

セクションはエントリの移動が難しそう

そもそも分類ごとにセクションを分けてそこにエントリを入れていくということもできるっちゃできるけど。

エントリの分類を変えたい時に Feed Me つかってやるとかやればできそうだけど、それは若干めんどそうなので却下。

分類をかえるとかはあまりないだろうけど。

色々とかんがえてみてエントリ選択を使う

分類を持たせつつ、並び替えもするということで色々考えてみて。。。

  • 並び替えに日付を使うとかもできなくはないけど、更新日などは情報として必要なので使いづらい。
  • エントリに並び順を数字で持たせることもできなくはないけど、変更する時が辛い。
  • エントリには分類を持たせておきたい
  • 分類関係なく並び替えすればいいかもしれないけど、分類ごとの並び順をイメージしづらい
  • 親を分類にして、子がデータという親子関係のエントリにした場合、親は特に意味を持たないエントリになる。親は一覧ページにする、というやり方もあるが。
  • それぞれの分類ごとに属するエントリを選択して並び順を定義する。エントリ作成と並び順を定義するところがわかれて二度手間作業になりそう。

とかとか色々考えつつ、、、

結果としてカテゴリのフィールドにエントリ選択のフィールドを持たせる方法にとりあえず落ち着きそうな雰囲気。

「全般」カテゴリの編集画面。

こうしておくことでエントリを作成して、そのエントリ側でカテゴリを選択したら、そのカテゴリを編集する画面も開くのでそこでエントリの並び順の設定を一緒にやってしまえるなぁということで。

数がめちゃくちゃ多くなってくると、このモーダル内で選択するのも辛くなるだろうなぁという気はしているけど。

選択画面。

他にもいい方法とかありそうな気がするのだけど、とりあえず考えている懸念点はある程度カバーできそうなきがするからこの方針で行こうかなぁという感じで。

こんなタイミングでこんな程度のことを今更ながらあーだこーだ考えてしまうのが残念な感じではあるけれど、どう管理していけば操作もしやすくてデータが破綻しないかは常に意識していくようにしないとなぁ。