インストールをお任せしますか?
お客様のサーバーに導入・設定します。簡単な見積もりの後、固定価格でお受けします。
🌐 言語: 🇻🇳 Tiếng Việt · 🇬🇧 English · 🇯🇵 日本語(現在)
SandboxDemo — GP247 v3 向け読み取り専用の管理画面デモモード
はじめに
SandboxDemo プラグインは、GP247 の管理画面を安全なデモサイトに変えます。訪問者はすべての機能を見ること(閲覧、検索、フォームを開く、ページ送り)はできますが、データを変更することはできません。保存・削除・編集の操作はすべてブロックされ、「デモモード」の通知が表示されます。このドキュメントは、管理画面のデモを公開したいサイトオーナーと、ブロックの仕組みを理解・カスタマイズしたい開発者を対象としています。読み終えると、デモモードのオン / オフを切り替えられ、どの操作がブロックされ、どの操作が許可されるかを正確に把握できます。
1. プラグイン情報
- 名前:SandboxDemo module
- 開発者:GP247
- 必要な Core:
>= 2.1(GP247 v3 — Laravel + Livewire) - パス:
app/GP247/Plugins/SandboxDemo - スイッチ:
.envファイルの変数SANDBOX_DEMO_ENABLED
2. 動作の仕組み(わかりやすく)
GP247 v3 は管理画面を Livewire で動かしています。すべてのボタン(保存や削除を含む)が共通の1つのアドレスに送信されるため、従来の「リクエストの種類でブロックする」方法は効かなくなりました。そこで SandboxDemo は、画面に依存せず2つのレイヤーでブロックします。
- レイヤー A — データベースへの書き込みをブロック。 プラグインは、データベースに送られるすべてのクエリの入口に立ちます。読み取りのクエリ(一覧の表示、検索)は常に通し、書き込みのクエリ(データの追加・編集・削除)はブロックします。データ層に位置するため、Livewire からでも、旧来のコントローラーからでも、直接のクエリからでも、あらゆる書き込みの経路を捕捉できます。
- レイヤー B — 危険なファイル操作をブロック。 画像 / ファイルマネージャー(File Manager)には、削除・名前変更・移動・画像の切り抜き・フォルダー作成を通常のリンク(GET)で実行する操作があります。レイヤー B はこれらの操作を名前で正確にブロックし、ファイルの閲覧・参照は引き続き許可します。
「閲覧」中もシステムが動作し続けられるよう(ログイン、セッションの保持、キャッシュ)、一部のインフラテーブルへの書き込みは常に許可されます(「条件と制約」のセクションを参照)。
3. インストールとデモモードの有効化
-
ソースコードが正しいパス
app/GP247/Plugins/SandboxDemoにあることを確認します。 -
管理画面の「Extensions(拡張機能)」ページを開き、SandboxDemo プラグインを探して「Install(インストール)」をクリックします。
-
インストール後、「Enable(有効化)」をクリックします。
-
サイトのルートフォルダーにある
.envファイルを開き、次の行をそのまま追加(または修正)して保存します。SANDBOX_DEMO_ENABLED=1 -
変更を反映させるため、設定のキャッシュをクリアします。サイトのルートフォルダーでターミナルを開き、次の行を入力して Enter キーを押します。
php artisan optimize:clear成功すると、画面に
... DONEの行がいくつか表示されます。これ以降、管理画面にログインして任意の画面で「保存」を押してみてください。システムは「デモモード: システムデータの変更は無効です。」と表示し、データは変更されません。
デモモードを無効にするには: SANDBOX_DEMO_ENABLED=0 に戻し(またはその行を削除し)、もう一度 php artisan optimize:clear を実行します。=0 にすると、管理画面でプラグインが Enable のままでもブロックは無効になります。
コマンドラインでインストール(CLI、gp247 3.x)
gp247 3.x 以降では、管理画面を開かずに、GP247 ライブラリから SandboxDemo をダウンロードしてコマンドラインですぐにインストールできます。Web サイトのルートフォルダーでターミナルを開き、次を実行します。
# 1) 各 Web サイトで1回だけ:GP247 ライブラリに接続するための API License(無料)を登録
php artisan gp247:ext-register-license
# 2) ライブラリからプラグインをダウンロードしてインストール
php artisan gp247:ext-install --type=plugin --key=SandboxDemo
- 手順1の前に、
.envのAPP_URLが Web サイトの実際のドメインであることを確認してください(http://localhostのままにしないでください)。ライセンスはこのドメインに紐付けられます。 - インストールが完了すると、プラグインは有効化済みになり、キャッシュも自動で更新されます。管理画面で追加の操作は必要ありません。
- コマンドは
gp247.jsonで宣言された条件(core のバージョン、composer パッケージ、依存プラグイン)を自動で確認します。不足があれば、何が足りないかを明示して停止します。 app/GP247/Plugins/SandboxDemoフォルダーが既にサーバー上にある場合(手動でコピーした、またはインストーラーに同梱されていた場合)、コマンドは再ダウンロードせずにその場でインストールします。- プラグインが既にインストールされている場合、コマンドは拒否します。新しいバージョンにするには
php artisan gp247:ext-update --type=plugin --key=SandboxDemoを実行します。 - コマンドの末尾に
--jsonを付けると、機械で読める形式の結果を受け取れます(スクリプト / CI 用)。 - このコマンドは上記の手順1〜3(フォルダーの配置、「Install」、「Enable」)の代わりになります。CLI でインストールした直後は、デモモードはまだオフです:書き込みのブロックを有効にするには、手順4(
.envにSANDBOX_DEMO_ENABLED=1を追加)と手順5(php artisan optimize:clear)を行う必要があります。 - 詳細:プラグインとテンプレートのインストールガイド · コマンドリファレンス。
4. カスタマイズ(開発者向け)
すべてのリストは app/GP247/Plugins/SandboxDemo/config.php ファイルで宣言されています。ここを編集すればよく、コアのコードに触れる必要はありません。
infra_write_allowlist— デモ中でも常に書き込みが許可されるテーブル(デフォルト:sessions、cache、cache_locks、jobs、job_batches、failed_jobs、password_reset_tokens)。サイトにバックグラウンドで書き込む別のテーブル(例:閲覧数カウンター、ログ)があり、閲覧するだけのページが誤ってブロックされる場合は、そのテーブル名(プレフィックスを除いたもの)をここに追加してください。lfm_destructive_routes— デモ中にブロックされる File Manager のルートのリスト。必要に応じて追加・削除します。
5. 条件と制約(操作の前に確認)
ブロックの通知を見て驚かないよう、ルールを把握しておきましょう。
デモモードが有効になるのはいつですか?
- スイッチをオンにする必要があります。
.envのSANDBOX_DEMO_ENABLED=1。=0または設定がない場合、(管理画面で Enable になっていても)プラグインは何もブロックしません。 - 管理者 / PMO パートナー / ベンダーとしてログインしている人がいる必要があります。 そのため、ログインの操作やログイン前のページは通常どおり動作します(誤ってブロックされません)。
- 適用されるのは管理画面と管理画面向け API(
api/core)だけです。 ストアフロント全体は常に通常どおり動作します。同じブラウザで管理者がログインしている場合でも、お客様のアカウント作成、ログイン、カートへの追加、決済 / 注文は動作します。お客様向けの REST API(api/front/*)もブロックされません。管理画面のプレフィックスのリストはadmin_surface_prefixes(config.php)で宣言されており、サイトの管理画面のプレフィックスと、インストール済みのベンダー / PMO プラグインのプレフィックスはインストール時に自動で追加されます。
どの操作がブロックされますか(デモモードが有効なとき)?
- すべてのデータ書き込み操作:どの画面でも、レコードの追加・編集・削除。デモデータをそのまま保つことが目的だからです。
- File Manager の危険なファイル操作:削除、名前変更、移動、リサイズ、画像の切り抜き、フォルダー作成、画像のアップロード。GET のリンクで実行される場合も含みます。
- 対象のテーブルを特定できない書き込みもブロックされます(安全の原則:見逃すより誤ってブロックする方がよい)。
どの操作が常に許可されますか?
- すべての閲覧操作:一覧を開く、検索、絞り込み、ページ送り、閲覧用のフォームを開く。体験が中断されないようにするためです。
- インフラテーブルへの書き込み(ログインセッション、キャッシュ、キュー)。途中でログアウトされず、システムが動作し続けるようにするためです。
対象外(このバージョンではまだブロックしないもの): 実際のメール送信、決済ゲートウェイの API 呼び出し、Webhook など、データベースの外に及ぶ処理は現在まだブロックされません。公開デモサーバーでは、安全のためメール / 決済ゲートウェイをテストモード(各プロバイダーの test / sandbox)に設定することをおすすめします。
6. サポート
- Website:
https://GP247.net - Email:
support@gp247.net
よくある質問(Q&A)
Q1: 管理画面でプラグインを Enable にしたのに、何もブロックされないのはなぜですか?
→ .env のスイッチが足りないためです。.env ファイルに SANDBOX_DEMO_ENABLED=1 を追加し、php artisan optimize:clear を実行してから、もう一度試してください。
Q2: デモモードをオンにすると、訪問者は何度もログアウトされますか?
→ されません。ログインセッション / キャッシュのテーブルは常に書き込みが許可されるリストに入っているため、閲覧中もログインセッションは通常どおり保持されます。
Q3: 訪問者はページ送りや検索ができますか?それともすべてブロックされますか?
→ 閲覧、検索、絞り込み、ページ送りはすべて許可されます。ブロックされるのはデータを変更する操作だけです。
Q4: 訪問者はファイル管理で画像を削除・編集できますか?
→ できません。削除・名前変更・移動・画像の切り抜き・フォルダー作成・アップロードはすべてブロックされます。GET のリンクで実行される場合も同様です。許可されるのはファイルの閲覧・参照だけです。
Q5: ブロックされたとき、訪問者には何が表示されますか?
→ 簡潔な通知「デモモード: システムデータの変更は無効です。」が表示されます(Livewire の管理画面上のフローティング通知)。生のエラーページではありません。
Q6: 閲覧するだけの場所でページが誤ってブロックされます。どう直せばよいですか?
→ そのページがバックグラウンドのテーブル(閲覧数カウンター、ログ)に書き込んでいる可能性が高いです。そのテーブル名を config.php の infra_write_allowlist に追加し、キャッシュをクリアしてください。
Q7: デモモードは実際のメール送信や決済をブロックしますか?
→ 現在のバージョンでは、データベースの外に及ぶ処理(メール、決済ゲートウェイ、Webhook)はまだブロックしません。デモサーバーではこれらをテストモードに設定してください。
Q8: デモモードをすばやく無効にするには?
→ .env の SANDBOX_DEMO_ENABLED=0 に変更し(またはその行を削除し)、php artisan optimize:clear を実行します。プラグインが Enable のままでも無効にできます。
Q9: 従来のブロック方法(リクエストの種類でブロック)をなぜ使わないのですか?
→ GP247 v3 では、管理画面のすべての操作が Livewire の共通の1つのアドレスを通るため、リクエストの種類でブロックしても書き込み操作を検出できなくなりました。そのため新しいバージョンでは、データベースのレイヤーとファイル操作のレイヤーでブロックしています。
Q10: プラグインは私のデータや構造を変更しますか?
→ 変更しません。プラグインはデモモードがオンのときにブロックするだけです。テーブルを追加することも、業務データを変更することもありません。
📅 最終更新: 2026-10-22 · ✍️ 作成者 (Author): GP247
Ratings & reviews
Please sign in to write a review.
ログインNo reviews yet. Be the first to review this product.