管理画面からファイルをアップロードする際に、ステータス「公開」「下書き」を選んでアップロードを行うことで、アイテムの公開状態を指定することができます。
「公開」を選んだ場合は従来通りファイルはアップロードされ、「下書き」を選んだ場合はアップロードされたファイルのファイル名の先頭に「.」が付与されます。合わせて、公開サーバー側の .htaccess やサーバー設定により「.」から始まるファイルを非公開設定することで、ファイルが意図せず公開される事を防止します。
Copy2Public プラグインを使用している場合は、ファイル名の先頭に「.」があるファイルはコピー対象にならないため、公開サーバーへの同期操作を行なってもコピーされません。
また、記事/ウェブページの公開状態と連動してアイテムの公開状態を制御することも可能です。具体的には、記事/ウェブページが公開になった際にアイテムを公開にし、記事/ウェブページが非公開になった際に、アイテムも非公開にすることができます。
DynamicMTML を利用することで、ログイン状態であれば、「下書き」状態のアイテムを CMS の管理画面を介せず直接閲覧することも可能です。
インストール
ドキュメント『プラグインのインストール』を参照し、プラグイン「AssetStatus」をインストールしてください。
アイテムの挿入と編集
画像の挿入ダイアログに「ステータス」という項目が追加されます。ここで初期に選択されている値は、環境変数 AssetStatusDefaultStatus で設定した値になります。また、環境変数 AssetStatusShowTagField 1
を設定することで、「タグ」の入力欄が追加されます。
アップロードしたファイルは、アイテムの編集画面から「ステータス」を変更できます。また、DynamicMTML の利用できない環境下でも「下書き」状態の画像を確認することができます。
アイテム一覧でのフィルタ
表示オプションに「ステータス」列、フィルタに「下書きのアイテム」と「公開されているアイテム」が追加されます。また、アクションに「公開取り消し」が追加されます。
DynamicMTML 設定
DynamicMTML を利用することで、下書き状態の画像等にアクセスしても、ログイン状態であれば、直接表示ができるようになります。
アイテムの拡張子を処理対象にする
DynamicMTML はデフォルトでは「.html」, 「.mtml」以外の拡張子を処理しないため、「ビルドする拡張子」に必要な拡張子を入力しておく必要があります。「.html」, 「.mtml」に加え、「.jpg」「.pdf」など、対象とする拡張子を追加してください。
環境変数を設定する
加えて、環境変数 CookiePath
が設定されていない場合は、下記の記述を追加してください。
CookiePath /
環境変数 CookiePath を変更する場合、すでにブラウザがクッキーを持っている場合は、いちどクッキーを削除する必要があります。
動作を確認する
下書き状態のアイテム編集画面から [表示] ボタンを押し、画像が表示されることを確認してください。加えて、シークレット モードで開いたブラウザで画像の URL にアクセスし、画像が表示されないことを確認してください。
ファイル名の先頭に「.」をつけて直接アクセスしようとしても表示されません(DynamicMTML が除外します)。
プラグインの利用をやめる場合の注意点
AssetStatus プラグインを削除あるいは無効化される場合、先にアイテムのステータスを公開へ変更してください。AssetStatus プラグインを削除あるいは無効化されたあとはアイテムのステータスの設定ができなくなるため、アイテムのステータスを「下書き」から「公開」へ変更することもできなくなります。
アイテムのステータスを連動する動作を変更する
デフォルトの動作では、記事など他のオブジェクトのステータスとアイテムのステータスが連動する設定のため、例えば記事を下書きで保存するとその記事と関連付けされたアイテムのステータスも下書きにかわります。設定を変更することでステータスの連動をやめたり、連動するタイミングや対象をかえることができます。
アイテムのステータスを連動しない
環境変数 AssetStatusSyncStatus 0
を指定すると、記事など他のオフジェクトとアイテムのステータスが連動しなくなります。
公開時のみアイテムのステータスを連動する
環境変数 AssetStatusSyncObjectsIfPublished 1
を指定すると、記事などのオフジェクトを公開するときのみアイテムのステータスも連動して公開します。記事などの関連オブジェクトを下書きにするときアイテムのステータスは連動しません。
アイテムが他の公開中のオブジェクトと関連付けされている場合、アイテムのステータスを下書きへ連動しない
環境変数 AssetStatusUnpublishIfNoOtherPublished 1
を指定すると、アイテムのステータスを下書きへ連動する時、そのアイテムが複数の関連オブジェクトで利用されており、その関連オブジェクトのどれかが公開されているとアイテムのステータスを下書きへ連動しません。
例えば「公開中の記事A」と「公開中のウェブページB」で「アイテムC」を利用している場合、AssetStatusUnpublishIfNoOtherPublished が有効だと「記事A」のステータスを非公開化しても「ウェブページB」が公開中のため「アイテムC」のステータスは下書きになりません。
環境変数
設定項目 | 解説 | 初期値 |
---|---|---|
AssetStatusRequiresLogin | ログインしている人だけ非公開のファイルが見える | 1 |
AssetStatusDenyFiles | ログインしている人もこれらのファイルは見られない | .htaccess,.htpassword,.mtview.php |
AssetStatusSyncStatus | オブジェクトの関連アイテムについて、オブジェクトのステータスとする | 1 |
AssetStatusSyncObjects | ステータスを連動する対象のオブジェクト | entry,page,campaign |
AssetStatusDefaultStatus | アイテムをアップロードする際のデフォルトのステータス 1=下書き 2=公開 |
2 |
AssetStatusSyncObjectsIfPublished | 公開時のみステータスを連動する | 0 |
AssetStatusShowTagField | アイテムをアップロードする際にタグの入力画面を表示する | 0 |
AssetStatusUnpublishIfNoOtherPublished | 1 を指定すると、アイテムがひも付けられたオブジェクトの非公開時に、他オブジェクトが公開状態である場合はアイテムを非公開化しなくなります。 | 0 |
- 次は
- 一覧へ