カスタムHTMLでメンテナンス画面を編集し、日時指定による自動メンテナンスモード切り替え機能を提供するプラグインです。
管理者の除外設定や特定のパス・IPアドレスの除外機能、プレビュー機能も備えており、計画的なメンテナンス作業を効率的に実行できます。
- HTMLエディター付きのメンテナンス画面編集機能
- ACE Editorを使用したシンタックスハイライト
- プレビュー機能でリアルタイム確認
- 管理者による閲覧除外設定
- 開始日時・終了日時の指定による自動メンテナンスモード切り替え
- 柔軟な日時管理
- 開始日時 ≥ 終了日時のケースにも対応した特殊動作
- 手動制御とタイマー制御の併用可能
-
パス除外: 特定のURLパスをメンテナンス対象から除外
-
IP除外: 特定のIPアドレスをメンテナンス対象から除外
-
ワイルドカード対応: パス除外でワイルドカード(*)使用可能
- 管理画面は常に除外対象
-
管理画面バナー: メンテナンス状況を管理画面に表示
-
フロント画面バナー: 管理者ログイン時にフロント画面に表示
-
カウントダウン機能: メンテナンス開始や終了時間を表示
-
メンテナンスモード: 手動でのON/OFF切り替え
-
管理者での閲覧: 管理者ログイン時のフロント画面閲覧可否
-
メンテナンス画面HTML: カスタムHTMLコンテンツ
-
メンテナンス開始日時: 自動開始タイミング
-
メンテナンス終了日時: 自動終了タイミング
-
除外パス: メンテナンス対象外のパス(1行に1つ、ワイルドカード対応)
-
除外IP: メンテナンス対象外のIPアドレス(1行に1つ)
2024-12-01 10:00 〜 2024-12-01 18:00
→ 10:00にメンテナンスON、18:00にメンテナンスOFF
2024-12-01 18:00 〜 2024-12-01 10:00
→ 10:00にメンテナンスOFF、18:00にメンテナンスON
- タイマー条件を満たした場合、手動設定より優先
- 管理画面で適切なエラーメッセージを表示
- タイマー期間外では手動制御が有効
- 当プラグインをインストール&有効化してください
-
管理画面 > オーナーズストア > プラグイン一覧 > カスタムメンテナンスプラグイン(4.2系) の設定(歯車アイコン)より設定を行ってください
- メンテナンス画面のHTMLを編集し、必要に応じてプレビューで確認してください
- タイマー機能を使用する場合は、開始日時・終了日時を設定してください
- 除外機能を使用する場合は、対象のパスやIPアドレスを設定してください
-
メンテナンスモード: 即座にメンテナンス開始/終了
-
管理者での閲覧: 管理者ログイン時の例外設定
-
HTMLエディター: ACE Editorによるシンタックスハイライト付き編集
-
プレビューボタン: 設定内容をリアルタイムで確認
-
開始日時: DateTimeピッカーによる直感的な日時選択
-
終了日時: 開始日時との整合性チェック付き
-
動作パターン: 設定値に応じた自動判別
-
パス除外: URLパスパターンによる柔軟な除外設定
-
完全一致: / → トップページのみ除外
-
前方一致: /products → /productsで始まるページを除外
-
ワイルドカード: /products/* → 商品系ページのみ除外、/* → 全ページ除外
-
IP除外: 192.168.1.100、10.0.0.0/8などのIP/CIDR指定
/help
/help, /help/about, /help/contact
helpページとその配下
/api
/api, /api/users, /api/products/123
APIエンドポイント全体
/*
すべてのURL
全ページ除外(実質的にメンテナンス解除)
/products/*
/products/, /products/123, /products/category/shoes
商品関連ページのみ
/api/*/public
/api/v1/public, /api/v2/public
パブリックAPIエンドポイント
/help
/api/*
/about
/contact
-
管理画面は自動除外: `管理画面のパスは設定不要で常に除外されます
-
ワイルドカード: *は任意の文字列にマッチします
-
大文字小文字: 区別されます(/Helpと/helpは別パス)
-
完全一致: /は完全一致でトップページのみを除外します
-
メンテナンス判定: EventSubscriberによるリクエストレベル処理
-
除外判定: IPアドレス・パスパターンマッチング(ワイルドカード対応)
-
タイマー処理: 複雑な条件ロジック
-
HTMLエディター: ACE Editor(Twig mode、Tomorrow theme)
-
日時管理: DateTime型による秒単位の精密制御
-
バナーシステム: 管理画面・フロント画面での状況表示機能
-
パターンマッチング: 正規表現による柔軟なパス除外処理
- DBテーブル plg_custom_maintenance_config を作成
- ID=1のデフォルト設定レコードを作成
- デフォルトHTMLテンプレートを設定
- DBスキーマの更新(タイマー機能用カラム追加)
- 既存設定データの保持・移行
- 初期設定の確認・作成
- EventSubscriberの登録
- DBテーブル plg_custom_maintenance_config の削除(オプション)
- 全設定データの削除
- 本体のカスタマイズを行っている場合、正常に動作しない可能性があります
- 静的ファイル(CSS、JS、画像等)は除外できません(Webサーバーによる直接配信のため)
- 管理画面は常にメンテナンスから除外されます
- タイマー機能は各リクエスト時に判定されるため、指定時刻ちょうどではなく最初のアクセス時に切り替わります
- ワイルドカード/*を設定すると全ページが除外され、実質的にメンテナンス機能が無効化されます
- バナーは管理者ログイン時のみフロント画面に表示されます
- 日時比較はUNIXタイムスタンプを使用して正確な判定を行います
※管理画面にログイン中に、フロント画面にメンテナンスのステータスバナーを表示することができます。
下記の方法でテンプレートを配置してください。
${ECCUBE_ROOT}/src/Eccube/Resource/template/default/default_frame.twig
{% if isMaintenance %}
<div class="ec-maintenanceAlert">
<div>
<div class="ec-maintenanceAlert__icon"><img src="{{ asset('assets/icon/exclamation-white.svg') }}"/></div>
{{ 'メンテナンスモードが有効になっています。'|trans }}
</div>
</div>
{% endif %}
上記のコードを下記に置き換えてください。
{{ include('@BootechCustomMaintenance42/front/custom_maintenance_alert.twig', ignore_missing = true) }}
※タグ配置後は 管理画面 > コンテンツ管理 > キャッシュ管理 より、キャッシュ削除 を行ってください。
※管理画面にメンテナンスのステータスを表示することができます。
下記の方法でテンプレートを配置してください。
${ECCUBE_ROOT}/src/Eccube/Resource/template/admin/default_frame.twig
{{ include('@admin/alert.twig') }}
上記のコードを下記に置き換えてください。
{{ include('@admin/alert.twig') }}
{{ include('@BootechCustomMaintenance42/admin/custom_maintenance_info.twig', ignore_missing = true) }} {# 追加 #}
※タグ配置後は 管理画面 > コンテンツ管理 > キャッシュ管理 より、キャッシュ削除 を行ってください。
デモ環境で動作をご確認いただけます。アクセス情報は下記をご参照ください。
※デモ環境は、EC-CUBEのデフォルト環境にプラグインをインストールし、有効化したのみの状態です。プラグインの仕様によっては、別途追加の設定が必要になる場合がございます。
4.3.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
4.2.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
4.1.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
4.0.x 系
フロント 管理画面 ログインID: administrator パスワード: password12345678
- 毎日午前0時より数分間、システムメンテナンスを実施します。この間、初期化処理を行うため、設定情報がリセットされます。
- 事前の予告なしに、システムメンテナンスを実施する場合があります。
- デモ環境で不具合などを発見された場合は、サポートまでメールでご連絡ください。
プラグインのロジック変更や項目追加のほか、本体カスタマイズも承っております。お気軽にこちらまでご連絡ください。
EC-CUBE やシステム開発関連の情報発信をしています。詳しくは、Bootech 公式サイトをご覧ください。
EC-CUBE 4系のローカル環境構築プロジェクトの運営も行なっています。詳しくは、Docker for EC-CUBE 4をご確認ください。