CMSの機能の1つでワークフロー(承認依頼)がよくある。
フローの内容についての要望は結構クライアントによって変わることが多いイメージ。
頑張って設計とかしても結局裏道で対応するとかが多いのでは?という気もしている。
とはいえ、これは実際にちゃんと使っている会社を知らない自分の視野の狭さだけなのかもしれない。
Craft CMS のワークフロー(プラグイン)はそこまで強くない。
要望を満たせるのであれば Workflow プラグインを使う。
どうしても要望を優先したワークフローが必要な場合は、その機能があるCMSをオススメしている。
それでも要望を完全に満たせる場合があるのか、、、というのはいつも気になっている。
承認待ち&公開予約しているエントリ
先日話を聞いていて、ワークフローっぽい事を Craft CMS でやるなら、1つのCMSで
- CMS用サイト / cms.example.com
- Production用サイト / www.example.com
みたいなマルチサイト構成にする。
承認OKなエントリのデータを Production 用サイトでステータスを有効にすればできそうだなぁとは思った。
「承認済み = Prodサイトで有効」ということになる。
メール通知とか機能部分の自動化とかは要開発。
フィールドごとにサイト間でデータを共通にするかしないか、というのが Craft CMS では設定できる。
そのため今回の場合は基本的に各サイト間でフィールドを共通利用することになる。
「承認待ち状態」「承認依頼中」といったワークフローのステータス自体はなにかプルダウンとかで持つ必要はあったりする。
この場合だと、未来日に予約公開予定で設定されて、承認待ちの状態だったエントリが公開されてしまう、という事自体は防げる。
公開中エントリに対するワークフロー
公開中のエントリを差し替えたいといったときのワークフローを考えると、別リビジョンを作ってそこで進めていく形になる。
その中でもワークフローっぽいかんじで進めていくことはできる。
ワークフローのステータスを1つのフィールドの値として持っているため。
Craft のエントリ一覧はエントリのステータスごとの一覧と、ドラフトが別になる。