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