1~2年前から『Drupal』をちょくちょく触っています。
Drupalとは、世界中で利用されているオープンソースのCMS(コンテンツ・マネジメント・システム)のひとつです。日本ではまだなじみが薄いですが、海外では、公的機関や教育機関の公式サイトで使用されているほどのCMSで、セキュリティーに優れています。読み方は「ドルーパル」です。
触るようになったのは、数年前、XOOPS(ズープス)で構築した、会員制WEBサイトの代替CMSについてご相談をもらったのが、きっかけ。
会員制サイトといえば、ユーザー設計の優れているXOOPS一択でしたが、残念ながらXOOPSはPHP8ではもう動作しません……。代替するシステムはないかなぁ~と、数年来いろいろなCMSを触ってみて、ようやく(お~!これいいなぁ)と出会ったのがDrupal。
比較的立ち上げやすいWordPressに対して、Drupalは専門的な知識が必要とされますが、機能は高度だし、なんにせよカスタマイズ性に優れているのが魅力!触っていて超楽しいです。
ということで、今日はDrupalを構築の際に実装した機能を、備忘録として書きますね。(へぇ~Drupalってこんなことができるんだ~)と読んでもらえれば幸いです。
ちなみに私は「ドルーパル」をずっと「ドゥリュパル」と読んでいて、最近間違いに気付きました。(えらい発音しにくいな)と思っていました。そんなレベルでCMSについて偉そうに語っています。大変申し訳ございません。
ノードが自動で非公開になる機能
先日依頼のあった要望はこちら。
「ノードを、一定期間が経過したら自動で非公開になるようにしてほしい」
ノードとは、Drupal特有の呼び名で、記事やページのこと。例えば、期間限定で作成したノードを、期日が過ぎたら自動で非公開に、というケースなどで有効です。
それでは実装してみましょう!
Schedulerモジュールをインストールする
Schedulerモジュールは、ノードに「公開開始日時」と「公開終了日時」を設定できるモジュールです。指定した日時になると自動で公開・非公開を切り替えます。
主な機能
- ノード作成画面に「公開開始」「公開終了」フィールドが追加される
- Cronが実行されるタイミングで自動的に公開・非公開を処理
- コンテンツタイプごとに「有効化/無効化」設定が可能
設定手順
- 手順1管理画面で「機能拡張」から Schedulerの[Configure]をクリックします。
![Schedulerの[Configure]をクリックします](https://imoto-webdesign.com/blog/wp-content/uploads/2026/02/drupal-scheduler-01.png)
- 手順2対象のコンテンツタイプの設定ページへ
- 手順3「ホーム 管理 サイト構築 コンテンツタイプ」の編集タブに移動します。
- 手順4「Entity Types」で「記事」を選択します。

- 手順5「Enable scheduled publishing」および「Enable scheduled unpublishing」を有効にします。

- 手順6ノード作成時に「非公開にする」を設定すれば、その日時がきたら自動で非公開になります。

ちなみに「公開する」を設定をしたら、予約公開ができますよ。
非公開にならない場合
Schedulerは、Cron実行時に自動非公開処理を実行します。もし、非公開にならない場合は以下を確認してみてください。
- 確認1管理画面の「レポート」-「サイトの状態」/admin/reports/statusに移動します。

- 確認2最後のCron実行の「Cronを実行」をクリックします。

- 確認3非公開になっているか、該当のノードを確認してみましょう。
おわり
いかがでしたか?自動非公開・予約公開の機能、けっこう便利でしょ?
今回納品したお客さんにはとっても喜んでもらいました。
「わが社のDrupalにも実装してほしい!」もしくは「新規でDrupalを構築してほしい!」という企業がおられましたら、ぜひ弊工房までご依頼くださればと思います♪
ご相談、お待ちしておりま~す。
今月のキャラクター
弊工房が運営している、キャラクター直売所『キャラ市楽座』。
今月のキャラクターはこれ!

趣味は「雲の形」を眺めること。ふわふわしたものに目がなく、柔らかそうなものを見つけると、ついつい寝心地を確かめたくなってしまいます。


コメント