0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[baserCMS]コンテンツの公開状態を調べてみる(self_status, self_publish_begin, self_publish_end)

Posted at

baserCMSでは、各コンテンツに公開開始日時、終了日時を設定することができます。
コンテンツ管理されている各コンテンツ(固定ページ、フォルダ、エイリアス、リンク、ブログ、メールフォーム)では基本的に全てに設定することが可能な便利機能となっています。

スクリーンショット 2023-10-07 23.03.03.png

コンテンツデータが持っているカラムで、公開状態を示すものは以下となってます。

カラム名 名前 備考
status 公開状態
publish_begin 公開開始日時
publish_end 公開終了日時
self_status 自身の公開状態
self_publish_begin 自身の公開開始日時
self_publish_end 自身の公開終了日時

スクリーンショット 2023-10-07 23.07.17.png

これらがどういった動作になっているのか調べてみました。

想定している対象者

  • baserCMSでウェブサイトを制作をしている方
  • PHPer

結論

  • 親フォルダの公開状態、公開開始・終了日時を更新したタイミングで、配下コンテンツの公開状態、公開開始・終了日時を、親フォルダの値で更新している
  • コンテンツの編集画面で表示しており編集出来るのは 自身の公開状態, 自身の公開開始日時, 自身の公開終了日時
  • コンテンツの編集画面で編集した自身の公開状態, 自身の公開開始日時, 自身の公開終了日時は、保存時に公開状態, 公開開始日時, 公開終了日時に反映している
    • 親フォルダの公開状態を自身の公開状態に反映する

でした。
つまり、公開状態は常に親フォルダの値を見ているのと同義で、各コンテンツの公開状態を判定する際には、いちいち親フォルダの状態チェックを行わずとも済む仕組みとなってました。

カラム名 名前 備考
status 公開状態 親フォルダの値が入る
publish_begin 公開開始日時 親フォルダの値が入る
publish_end 公開終了日時 親フォルダの値が入る
self_status 自身の公開状態
self_publish_begin 自身の公開開始日時
self_publish_end 自身の公開終了日時

データで見る公開状態

■ これはフォルダと配下全てが公開状態にあるとき。
スクリーンショット 2023-10-08 1.21.04.png

■ フォルダを非公開に更新 → 配下の公開状態も併せて更新される
スクリーンショット 2023-10-08 1.19.18.png

■ フォルダの公開開始・終了日時を設定
スクリーンショット 2023-10-08 1.22.52.png

■ フォルダを非公開にし、配下のコンテンツ(固定ページ)に公開開始・終了日時を設定
スクリーンショット 2023-10-08 1.25.29.png

まとめ

自分自身の公開開始・終了日時を保持しつつ公開状態を切り替えることのできる仕組みはこうなっていたんですね。
baserCMSの内部動作の理解をするのに良い機会でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?