baserCMSでは、各コンテンツに公開開始日時、終了日時を設定することができます。
コンテンツ管理されている各コンテンツ(固定ページ、フォルダ、エイリアス、リンク、ブログ、メールフォーム)では基本的に全てに設定することが可能な便利機能となっています。
コンテンツデータが持っているカラムで、公開状態を示すものは以下となってます。
カラム名 | 名前 | 備考 |
---|---|---|
status | 公開状態 | |
publish_begin | 公開開始日時 | |
publish_end | 公開終了日時 | |
self_status | 自身の公開状態 | |
self_publish_begin | 自身の公開開始日時 | |
self_publish_end | 自身の公開終了日時 |
これらがどういった動作になっているのか調べてみました。
想定している対象者
- baserCMSでウェブサイトを制作をしている方
- PHPer
結論
- 親フォルダの公開状態、公開開始・終了日時を更新したタイミングで、配下コンテンツの公開状態、公開開始・終了日時を、親フォルダの値で更新している
- コンテンツの編集画面で表示しており編集出来るのは 自身の公開状態, 自身の公開開始日時, 自身の公開終了日時
- コンテンツの編集画面で編集した自身の公開状態, 自身の公開開始日時, 自身の公開終了日時は、保存時に公開状態, 公開開始日時, 公開終了日時に反映している
- 親フォルダの公開状態を自身の公開状態に反映する
でした。
つまり、公開状態は常に親フォルダの値を見ているのと同義で、各コンテンツの公開状態を判定する際には、いちいち親フォルダの状態チェックを行わずとも済む仕組みとなってました。
カラム名 | 名前 | 備考 |
---|---|---|
status | 公開状態 | 親フォルダの値が入る |
publish_begin | 公開開始日時 | 親フォルダの値が入る |
publish_end | 公開終了日時 | 親フォルダの値が入る |
self_status | 自身の公開状態 | |
self_publish_begin | 自身の公開開始日時 | |
self_publish_end | 自身の公開終了日時 |
データで見る公開状態
■ フォルダを非公開に更新 → 配下の公開状態も併せて更新される
■ フォルダを非公開にし、配下のコンテンツ(固定ページ)に公開開始・終了日時を設定
まとめ
自分自身の公開開始・終了日時を保持しつつ公開状態を切り替えることのできる仕組みはこうなっていたんですね。
baserCMSの内部動作の理解をするのに良い機会でした。