concrete5 のバージョン管理機能の紹介

moriai
moriai

concrete5 は動的CMSサイトです。

編集後、公開ボタンをクリックすればゲストユーザーにページが公開されます。しかし、逆を言えば公開ボタンをクリックしない限りゲストユーザーにはページは公開されません。(会員制サイトやイントラサイトなど、サイトの目的によってユーザーが限られてくることもあるかと思いますが、ここでは一般公開サイト前提で話を進めます)

 

「そもそもなんで編集中はゲストユーザーには見えないの?」

「間違って公開しちゃった!公開前の状態に戻せる?」

 

これらの疑問はすべてバージョン管理機能で解決できます。

(他のCMSでは更新履歴、ファイルの世代管理、変更履歴 etc... と呼ばれています)

 

目次

 

バージョン履歴=ページの保存履歴です

concrete5 では、ページを保存するたびにバージョン(保存)履歴が蓄積されていきます。「保存して終了」「変更を保存」「ページを公開」ボタンをクリックすることで、保存した段階のページの状態が保存されます。

※ カノニカルパスの変更、ブロックの保存操作だけでは履歴として残りません。

 

composer_save.png例外として、コンポーザーでは入力した項目からカーソルが外れるたびに自動的に保存されます。ユーザーが特別意識せずにページが保存される便利な機能です。

デメリットがあるとすれば、入力する項目数が多ければ多いほど、履歴の数が増えていくという点でしょうか。

 

実はこのバージョン履歴、保存時に「ページを公開」したかどうかによってフロントエンド側に表示するページを管理するのに一役買っています。

 

 
 

編集中の内容がゲストユーザーに見えないワケ

実際の画面を見てみましょう。

ツールバーのギア(歯車)アイコン > ページ設定 > バージョン を表示します。バージョン履歴は上方向が新しく、下方向が古いバージョンです。

 

versionmgr.png

水色で「公開」マークがついているバージョン2 がゲストユーザーに表示されている状態のバージョンです。

その上にあるバージョン3 はまだ編集中で、ゲストユーザーには表示されない状態のバージョンです。

バージョン1 は現在公開されているページの状態よりも前に編集・保存したバージョンです。これはゲストユーザーにも編集権限があるユーザーにも表示されません。

 

このページに対して編集権限を持たないゲストユーザーは、バージョン3 の状態のページを閲覧することができません。

これは保存を繰り返してバージョンが増えても同じで、左イメージの状態からバージョン10 まで増えていたとしても、「公開」アイコンがついているバージョン2 の状態でゲストユーザーは表示されます。

ページの保存状態と公開状態を履歴管理しているため、1つのページに対してゲストユーザーと編集ユーザーで表示を分けるといったことができています。

 

 

バージョン同士の比較もできる

現在公開中のページの状態と、現在編集中のページの状態を比較して見ることも可能です。

バージョン履歴で比較したいバージョンのチェックを入れると、ページ右側に比較対象のバージョンが表示されます。「バージョンx」と書かれたタブをクリックすると表示が切り替わります。

これなら前項で見えなかった古いバージョンのページ内容も確認できます。

compare_version.png

この機能、便利なのですがひとつだけ注意点がありまして会員制ページの場合は比較・表示できません。

プレビュー機能はゲストユーザーの権限が使われます。この比較しようとしているページ自体がゲストから見えないページだとプレビューできないんです。

 

バージョン履歴から指定したバージョンに対して様々な操作ができる

ページを作成していると、前の状態に戻したり、編集中だけど公開中の状態でページをコピーしたい、とかいろいろありますよね。実は指定したバージョンからいろんな操作ができるんです。

その機能をかんたんにご紹介しましょう。

 

バージョンをクリックすると、メニューが表示されます。reapprove.png

以下の2クリックだけでバージョン関連の操作は完結します。

  1. 操作したいバージョン上でクリックしてメニューを表示
  2. その中からやりたい操作をクリック

 

 

 

 

 

公開された内容を前のバージョンに戻す(承認)

concrete5 のボタンは「ページを保存と同時に公開するアクションは」「公開せずに保存するアクションは」「ページを削除するアクションは」と色分けされてはいるものの、保存ボタンをクリックしたつもりが公開ボタンを押してしまっていた…なんて誤操作はあることです。

そんなときでも大丈夫。間違って公開したページをすぐ前の公開状態に戻せます。

公開状態にしたいバージョンの上でクリックすると、メニューが表示されます。その中から「承認」をクリックするだけで、公開するページ内容をクリックしたバージョンに戻すことができます。

 

ページ自体を非公開にする(承認取消)

「このページ自体を非公開にしたい」場合は、「公開」アイコンが表示されているバージョンでメニューを表示し「承認取消」をクリックすると、ゲストユーザーには表示されなくなります。

ちなみに、ページの非公開操作は権限設定でも可能です。会員限定にしたい場合は権限設定、編集権限を持つユーザー以外に非公開にしたい場合はバージョン履歴から操作する、と使い分けることができます。

 

指定したバージョンの内容をコピーする(複製、新しいバージョン)

コピーする目的によってメニューで選択する項目が異なります。

  • 指定したバージョンの内容で最新バージョンとして置き換えたい → 複製
  • 指定したバージョンの内容で新しくページを作成したい   → 新しいページ

たとえば、キャンペーンのために「現在企画中です。しばらくお待ちください。」というバージョン1 のページを作成して公開したとしましょう。

version_copy.png

キャンペーン開始のためページを編集し、ページの内容を「キャンペーン中」としたバージョン2 を公開します。キャンペーンが終了したら、「キャンペーン終了」と編集したバージョン3 を公開します。

ここで、また「企画中」という表示内容に戻す場合は、バージョン1 のメニューから「複製」を選択することで最新バージョン4 にバージョン1 の内容がコピーされます。バージョン2 〜 3 の内容は履歴に保持されたままです。

 

 

 

同じ構造の新規キャンペーンページを作成するときに、また1からページを作成するのは手間です。そんなときはバージョン2 のメニューから「新しいページ」を選択することで、新規ページ(下書きページ)としてバージョン2 の内容がコピーされます。

「複製」と「新しいページ」はどちらもバージョンをコピーする、という点は変わりないため、慣れないうちは混同しやすいです。実際に動かしてみると分かりやすいですよ。

 

指定したバージョンを削除する(削除)

何回か編集したけれど、公開してる状態に戻したいということもあります。前述の「複製」から戻すことも可能ですが、履歴自体を破棄する場合は「削除」をクリックします。

メニューから「削除」を選ぶ方法もありますが、複数バージョンを削除したい場合はチェックボックスにチェックを入れて、履歴の一番上にある「削除」リンクをクリックすると一括削除することができます。

 

 

バージョン履歴が多すぎるときに便利な自動実行ジョブ

サイトを運用していくと、1ページのバージョン履歴が10, 100...と積み上がっていくこともあるでしょう。それがページ数が多い環境となるとパフォーマンスにも影響が出てきます。

だからといってたくさんあるページの中から1ページずつ古い履歴を削除する…なんて操作するのは非効率です。

 

そこでご紹介するのがバージョン履歴を削除する自動実行ジョブ「古いページバージョンを削除(Remove Old Page Versions)」です。

このジョブは、全サイトからバージョン履歴が10以上あるページを抽出し、その中から3ページ分のバージョン履歴を削除します。バージョン履歴は全削除ではなく、最新10バージョン分が必ず残ります。

最新10バージョンだけ履歴が保持されていれば問題ないのでしたら、ぜひこの自動実行ジョブを定期的に実行してください。

 

ただこのジョブ、説明のとおり「1回の実行で3ページ分」しか処理してくれません。サイトをしばらく運用していて初めてこのジョブを実行する場合は、しばらくの間は実行する間隔を短く設定しておくのが良いでしょう。

※ ちなみに、バージョンを削除させたいページを指定したり、残せるバージョン数を指定して実行させることはできません。残念。

 

ほかにもバージョン履歴にはこんな情報も残ります

バージョン履歴にはこんな情報が記録されます。

  • 誰が、いつこのページを保存したか
  • 誰が、いつこのページを公開(承認)したか
  • 誰が、このページのスケジュール公開を設定し、いつから公開するのか
  • バージョン履歴コメント

静的サイトだと「誰がこのページを編集したのか」「誰がこのページを公開したのか」「このページの何を変更したのか」といった情報が分からないので、ここは動的サイトの強みですね。

 

ちなみに、concrete5 にあるスタックですが、こちらもバージョン管理機能があります。

ページと異なり、バージョン同士の比較と指定したバージョンで新しくスタックを作成する機能はありませんが、承認、承認取消、バージョンの複製、削除ができますよ。

 

いかがでしたでしょうか?

今まで concrete5 を使っていて特に意識していなかった方も、なんとなく使っていた方も、ぜひこの機会にバージョン履歴でいろいろと操作してみてください。