バージョン別に気をつけること

目次

Ver. 1.7 から 2.0 のアップデート

Ver. 1.7 から Ver. 2.0 へのアップデートについて解説しています。最新版にアップデートする際の変更点については、以下の変更に加え、Ver. 2.0 & 2.1からのアップデート も合わせて対応ください。

また、Ver. 1.7 以前のバージョンからアップデートされる場合には、以下の PDFドキュメントも合わせてご確認ください。

【重要】テーマの変更点とアップデート時の注意事項

バージョンアップで変更となったテーマの変更点と注意事項です。アップデートされる場合は必ずお読みください。

バージョン共通でアップデートする時の注意事項

config.system.yaml に変更を加えていない場合

private/config.system.yaml を上書きしてください。

config.system.yaml に変更を加えている場合

private/config.system.yaml は、コンフィグの初期設定をしているファイルです。 Ver. 2.0.0.xではこれらの設定内容はconfig.system.default.yaml にすべて引き継がれていますが、 config.system.yaml の設定内容が優先されます。 以下の部分を変更してください。



Ver. 1.xまで Ver. 2.0.0以降
file_icon_dir: images/fileicon/ file_icon_dir: themes/system/images/fileicon/

Ver. 1.7.0からアップデートする場合の変更点

/themes/system/include/column.html をカスタマイズして利用している場合

Ver. 2.0.0.xでファイル名称が column.html から unit.htmlに変更されています。 このファイルをカスタマイズしている場合には、 column.html のカスタマイズ内容をunit.htmlに反映してください。 column.htmlは今後使用されません。

EntryBodyモジュール を利用しているテンプレート

Ver. 2.0.0.xで動的フォーム、バージョン管理の機能を追加しています。これらの機能を使用する場合には以下の記述が必要になります。記述位置などは /themes/system/acms-code/snippets/entry_body.html のスニペットファイルをブラウザでご覧ください。

インクルードファイルを変更

<!--#include file="/include/column.html"-->  <!-- 廃止 -->
<!--#include file="/include/unit.html"--> <!-- このコードに変更 -->

以下コードを追加

<!-- BEGIN formBody -->
   <!--#include file="/include/form/unit.html"-->
<!-- END formBody -->

<!-- BEGIN adminFormEdit -->
   <!--#include file="/admin/form2/edit.html"-->
<!-- END adminFormEdit -->

<!--#include file="/admin/entry/revision-info.html"-->

Column_Listモジュール を利用しているテンプレート

Ver. 2.0.0.xでモジュール名称が Column_List から Unit_Listに変更されています。テンプレートファイル側で名称変更をしてください。

/admin/entry/action.html および /admin/action.html をカスタマイズしているテンプレート

Ver. 2.0.0.xで各ファイルの内容が変更されています。これらのファイルにカスタマイズをおこなっている場合、カスタマイズ内容を新しいaction.html に反映してください。

/a-blogcms設置ディレクトリ/images/ を削除

Ver. 2.0.0.xで /themes/system/ に移動されています。/a-blogcms設置ディレクトリ/images/ 内のファイルにカスタマイズを行っている場合には /themes/system/images/ に変更分を反映して、 /a-blogcms設置ディレクトリ/images/ を削除してください。

ブログやカテゴリーの編集画面の変更

ブログやカテゴリーの編集画面へのリンクがindexからeditに変わった為、 1系で管理画面へのリンクを用意している場合に2系にアップデートするとリンクが切れる問題が発生します。リンクを用意している場合はリンクの修正をお願いいたします。

Ver. 2.x 手動アップデート

アップデート作業中にサイト閲覧者がアクセスすると、サイトが正常に表示されない場合がありますので、 アップデート作業をされる際には作業時間・タイミングにご注意ください。

1. ファイル・フォルダのバックアップ

以下のファイル・フォルダをバックアップします。

  • license.php
  • config.server.php
  • カスタマイズしているテーマフォルダ
  • .htaccess (カスタマイズしている場合のみ)
  • private/ディレクトリ(カスタマイズしている場合のみ)
  • php/ACMS/User/ディレクトリ (カスタマイズしている場合のみ)
  • php/AAPP/ディレクトリ (カスタマイズしている場合のみ)
  • extensions/ディレクトリ(カスタマイズしている場合のみ)
  • その他カスタマイズしているフォルダ・ファイル

アップデート作業をされる際には作業時間・タイミングにご注意ください。

2. テーマファイルの更新

テーマファイルを更新します。 「themes」フォルダ内の「system」フォルダを、“ディレクトリごと上書き” します。 テーマをカスタマイズしている場合は、変更点(「【重要】テーマの変更点と注意事項」参照)に合わせてテンプレー トを書き換えてからアップロードします。

3. プログラムファイルの更新

インストールパッケージの「ablogcms」フォルダ内にある下記の「上書きしないディレクトリ」以外のフォルダ・ファイルを上書きします。 php ディレクトリは書き換え対象ですが、phpディレクトリの中でカスタマイズしたものがある場合(php/ACMS/User, php/AAPP)はそのディレクトリは上書きしないでください。

上書きしないディレクトリ

  • setup/
  • themes/
  • php/ACMS/User/(カスタマイズしている場合のみ)
  • php/AAPP/(カスタマイズしている場合のみ)
  • extensions/(カスタマイズしている場合のみ)

4. 「setup」フォルダのアップロード

「setup」フォルダをアップロードします。アップロードが完了した時点で、一般に公開しているa-blog cms のページは メンテナンスページの表示に切り替わります。

「themes」フォルダ以外のファイルをカスタマイズしている場合は、フォルダ・ファイルを入れ替 える際、カスタマイズしているファイルを新しいファイルと入れ替えてしまわないようご注意くださ い。

5. メンテナンス画面からアップデート開始

a-blog cms を設置したアドレスにアクセスし、メンテナンス画面が表示されることを確認してください。 メンテナンス画面でユーザーIDとパスワードを入力し[ログイン]ボタンを押してログインします。 「アップデート実行画面へ」のリンクをクリックします。

「アップデートを実行できます」と表示されていることを確 認します。


メンテナンス画面

メンテナンス画面


6. データベースの更新

セットアップ画面の[データベースの更新処理を実行]ボタンを押します。


アップデート実行画面

アップデート実行画面


7. セットアップディレクトリの削除

アップデートプログラムの実行が終了したら、「setup」ディレクトリを削除します。

削除するまではメンテナンスページが表示されます。

8. 表示確認と公開

a-blog cmsを設置しているアドレスにアクセスします。各ページの表示を確認し、問題が無ければ公開となります。 必要に応じてデバッグモードをONにすることで、各種エラーメッセージが表示されたり、キャッシュ機能が無効となるなど、動作確認のための状態となります。 サーバ上のファイル config.server.php 内の記述 「DEBUG_MODE」の値を確認の上、変更を行う場合は再度アップロードしてください。



デバッグモードON デバッグモードOFF
define('DEBUG_MODE', 1); define('DEBUG_MODE', 0);

以上でアップデートは完了です。

Ver.2.5以上 へのアップデート

2.0.x と 2.1.x の環境から現在のバージョンでは、細かい変更も色々ありますが大きく以下の変更が必要になります。

  • acms-admin.css の追加
  • index.js から acms.js に変更
  • acms.js の前に jQuery の読み込み
  • ioncubeエンコーダーのバージョンアップ

Ver. 2.0.x または Ver. 2.1.x からアップデートする場合

【必須】acms-admin.css の追加

acms.css で使用しているメディアクエリーがモバイルファーストな書き方に変更された為、システムで利用している CSS を acms- admin.css に変更しました。acms.css についてはそのまま残して、ご利用のテーマに以下のコードを追記してください。

<link href="/css/acms-admin.min.css" rel="stylesheet" type="text/css" media="all">

acms- からはじまる今までのクラス名を変更しない場合は、使用していた旧バージョンの acms.cssはそのままご利用く ださい。また旧バージョンのacms.cssをご利用する場合は旧バージョンの/system/fonts/ディレクトリをご利用の テーマに移動をお願いします。

【必須】index.js から acms.js にファイル名変更

Ver. 2.5.0 以前では、組み込みJS を読み込む為に index.js を読み込んでいましたが、Ver2.5.0 より acms.js にファイル名が変更になりました。以下のようにリンクを修正をしてください。

<!-- BEGIN_MODULE Js -->
<script src="/acms.js{arguments}" charset="UTF-8" id="acms-js"></script><!-- END_MODULE Js -->

【必須】 jQuery の読み込み

組み込み JS が非同期で読み込まれるようになった事により、jQuery が読み込まれる前に、jQuery プラグインや組み込み JS のカスタマイズが動いてしまいエラーが出てしまいます。 そこで、jQuery が同期的に読まれるように以下の対策をお願いします。

対策1

jQuery を acms.js から読み込む事をやめ、テンプレートから直接 jQuery をロードします。

以前のバージョンでは組み込み JS の jQuery とバッティングしてエラーを出していましたが、Ver2.5.0 からテンプレー トから読み込んでいる jQuery を優先して読み込むようになりました。こうする事により、同期的にjQueryが読み込ま れますので、エラーを回避する事が出来ます。かならず、acms.js の前で読み込むようにしてください。

<script src="%{JS_LIB_JQUERY_DIR}jquery-%{JS_LIB_JQUERY_DIR_VERSION}.min.js" charset="UTF-8"></script>
<!-- BEGIN_MODULE Js -->
<script src="/acms.js{arguments}" charset="UTF-8" id="acms-js"></script><!-- END_MODULE Js -->

対策2

またテンプレートで config.js の値を書き換えている場合は、以下のように対応をお願いします。

ACMS.Ready(function() {
    ACMS.Config.toggleMark = ‘toggleMark2’; // 例
});

【任意】カスタムユニットを利用されている場合

インクルード先が変更になっております。

  • /include/unit.html に設置してある /include/custom-unit.html が /include/unit/custom.html に変更。
  • /admin/entry/unit.html に設置してある /admin/entry/custom-unit.html が /admin/entry/unit/custom.html に変更

【任意】Entry_Summary で tag を出力している場合

Ver2.5.0よりEntry_Summaryモジュールのタグループ内のglueブロック名が glue から tagGlue に変更されました。ご利用の場合は変更して下さい。

Feed_Rss2モジュールでフィールドによる絞り込みを行っている場合

ver2.5.0 以前は Feed_Rss2 モジュールで「モジュールIDの条件設定」でフィールドが設定できるようになっており、エントリーのカスタムフィールドで絞り込めるようになっていたが、 ver2.5.0以降では、ここの設定がなくなり、「モジュールの表示設定」にこの設定が移動しました。

モジュールの条件設定にあった絞り込み条件をモジュールの表示設定のエントリフィルタに設定してください。

【任意】システムテーマのオフキャンバスを利用している場合

Ver. 2.5.0 以前は、システムテーマにあるオフキャンバスのJSとCSSをテーマでも利用していましたが、Ver. 2.5.0 でなくなり、組み込みJSへと変更されました。 デフォルトテーマ(site2014など)ベースでカスタマイズしている場合は、このオフキャンバスを利用している可能性が高いので以下対応をお願いします。

アップデート時にいらなくなったscriptタグをHTML上から削除する

以下の記述が不要になります。

<!-- offcanvasに利用されていたmodernizr.jsの記述  -->
<!-- site2014テーマでは js.htmlに記述されている -->
<script src="/js/off-canvas/modernizr.js"></script>

<!-- offcanvasに利用されていたoff-canvas.cssの記述 -->
<!-- site2014テーマでは link.htmlに記述されている -->
<link rel="stylesheet" href="/css/off-canvas/off-canvas.css">

<!-- offcanvasに利用されていたmain.jsの記述 -->
<!-- site2014テーマでは footer.htmlに記述されている -->
<script src="/js/off-canvas/main.js"></script>

組み込みJSを適応させるために該当部分にクラスを付与する

オフキャンバスメニューに収めたいエリアを「js-offcanvas」でくくるだけなので、特にHTMLの構造を気にする必要はありません。ただ、画面幅がbreakpointで指定した値よりも数値が小さい場合はoffcanvasMarkでくくられたHTMLが画面上に表示されなくなるので注意してください。 オフキャンバスメニューを使用したHTMLの構造は例えば以下のようになります。

<ul class="js-offcanvas" id="offcanvas">
    <li><a href="#">メニュー</a></li>
    <li><a href="#">メニュー</a></li>
    <li><a href="#">メニュー</a></li>
    <li><a href="#">メニュー</a></li>
</ul>
<a class="js-offcanvas-btn js-offcanvas-btn-r" href="#offcanvas">メニューを表示</a>

site2014テーマの場合は、id="nav"と振られた要素があるのでその要素に対して「js-offcanvas」というクラスを付与します。

<div id="nav" class="js-offcanvas">
...

また、header.htmlにオフキャンバスを開閉するためのボタンが記述されているのでそのボタンに対して「js-offcanvas-btn」というクラスを付与します。 さらにオフキャンバスを右から開閉させたい場合は「js-offcanvas-btn-r」左から開閉させたい場合は「js-offcanvas-btn-l」というクラスを追加します。

<a class="nav-btn acms-btn js-offcanvas-btn js-offcanvas-btn-l" id="nav-open-btn" href="#nav"><i class="acms-icon-sort"></i>メニュー</a>

オフキャンバスメニューを開閉させた時にヘッダーも追随させたい場合はさらにheaderに対して「js-offcanvas-header」というクラスを付与します。

<header id="headWrapper" class="js-offcanvas-header">
...

Ver. 2.0.x からアップデートする場合

ionCube Loader のバージョンアップが必要

Ver. 2.0.x では ioncube エンコーダー Ver. 6.5 を利用していましたが、現在は新しい PHP のバージョンに対応するため ioncube エンコーダー Ver. 9.0 を利用しています。古いバージョンの ioncube Loader では動作させることができませんので新バージョンの ionCube Loader をご利用ください。

ionCube Loader のバージョンアップについては ioncube Loader のインストール をご覧ください。

Ver.2.7.0以上へのアップデート

Ver. 2.7.0 未満からのアップデートでの注意点になります。

グローバルルールのコンフィグ設定の仕様が変更になりました。

仕様の違い

Ver. 2.7.0 未満 でのグローバルルールの仕様

  • グローバルルールに設定した場合は、子ブログでもグローバルルールが存在するブログのコンフィグを参照
  • 子ブログ毎にグローバルルールの設定はそれぞれ出来ない。

Ver. 2.7.0 以上 でのグローバルルールの仕様

  • グローバルルールを設定しても、ルールのみグローバルであってコンフィグはグローバル化しない。
  • グローバルルールの設定はそれぞれの子ブログで設定する必要がある。

解決方法

もし、Ver. 2.7.0 未満のバージョンでグローバルルールを使って、全ての子ブログに、グローバルルールがある ブログのコンフィグを利用している場合、バージョンアップすると、コンフィグが子ブログ毎になりうまく動作しません。 そこで、以下方法を行うと後方互換性を持たせる事が出来ます。

config.system.yaml に以下を追記

global_rule_config_load: global
  • global を設定すると Ver. 2.7.0 未満の仕様
  • each(デフォルト)を設定すると Ver. 2.7.0 以上の仕様

Ver.2.11以上へのアップデート

Ver.2.11以上へのアップデートについて

Ver.2.11にて校正オプションの仕様変更を行いました。

経緯

a-blog cms で制作されたサイトで、お問い合わせフォームなどのフォームを作成する際にエスケープ処理を忘れてしまった結果、カスタマイズにより脆弱性を作り込んでしまう問題 が多く見られました。この問題の対策として、Ver.2.11からすでに校正オプションが適用されていた場合もエスケープ処理を行う仕様へ変更になりました。

影響のあるテンプレート

仕様変更に伴い、Ver.2.11にアップデートした際、影響をおよぼす範囲は以下の3つの条件に当てはまる箇所の表示が崩れる可能性があります。

カスタムフィールド 、カスタムフィールド グループ、カスタムユニット、拡張ユニットなどの変数を仕様している 1つ以上の校正オプションを適用している 「<」、「>」、「&」、「"」などの文字列の入力(例:ソースコードなど)を許可しているけど、[raw]校正オプションを適用していない



変更を行わなかった場合、HTMLタグがそのまま表示されたり、「&」などが実体参照で表示される可能性があります。 バージョンアップする際は事前に該当の箇所を確認し、対応することをお勧めいたします。

対応する際はパイプを繋げて[raw]を適用してください。

  • 例){text}[raw|nl2br]
  • 例){text}[raw|markdown]

スタンダードライセンスのアップデート期間の延長について

スタンダードライセンスを利用していて、Ver.2.11以上のバージョンへアップデートを行う場合、アップデート期間が切れていたらアップデート期間延長オプションの購入が必要になりました。

アップデート期間の延長が必要になるとき

  • Ver.2.11 以上へのアップデート(例:Ver.2.10.0→Ver.2.11.0)
  • 2桁目のバージョン番号が変わるとき(マイナーバージョンへのアップデート)(例:Ver.2.11.0→Ver.2.12.0)

アップデート期間の延長が不要なとき

  • 3桁目のバージョン番号が変わるとき(パッチバージョンへのアップデート)(例:Ver.2.11.1→Ver.2.11.2は不要です)
  • Ver.2.10までのアップデート(例:Ver.1.7.0→Ver.2.10.0は不要です)
  • ライセンスを新規購入してから半年以内のアップデート

アップデート期間延長オプションを購入する方法

アップデート期間延長オプションはマイページより購入できます。ログインし、所有ライセンス一覧でバージョンアップしたいライセンスの「アップデート」ボタンをクリックして購入ページへ移動してください。


マイページの所有ライセンス一覧ページ


アップデート期間延長オプションを選択し、決済まで進みます。

アップデート期間を延長した後

  1. マイページの所有ライセンス一覧で新しいライセンスファイルをダウンロードする
  2. 新しいライセンスファイルに差し替える
  3. バージョンをアップデートする

万が一、アップデート期間を延長する前にVer.2.11以上にアップデートしてしまった場合

30日間のトライアルモードに切り替わります。30日経過後は開発モードに切り替わります。開発モードに切り替わったあとそのまま運用すると、サイトが検索エンジンから検索されない状態になったり、閲覧ページにもアラートが表示されます。 開発モードにならないために、トライアルモード期間中に新しいライセンスファイルを適用することをお勧めします。

また、アップデート期間を延長したくない場合には更新ページに移動して直前まで使用していたマイナーバージョンへダウングレードすることが可能です。


トライアルモードのアラート

「ダウングレードする(無料)」ボタンをクリック後に移動した更新ページ

Ver.3.0以上へのアップデート

Ver.3.0以上へのアップデートする際に気をつけることは下記の4点です。

  • 簡単アップデートを使用する
  • 事前に新しいライセンスファイルを用意する
  • データベースのアップデートを実行する
  • すでに「api」が使われている箇所があれば変更する

簡単アップデートを使用する

Ver.3.0はメジャーバージョンです。Ver.3.0よりも低いバージョンからアップデートする時はメジャーバージョンアップをすることになります。
オンラインアップデートでは、マイナーバージョンとパッチバージョンのみに対応しているため、今回は対象外となるため利用できません。
より簡単に手動アップデートを行う方法として、「簡単アップデート」を用意しています。

詳しくは以下のドキュメントをご覧ください

事前に新しいライセンスファイルを用意する

Ver.3.0以上では、プログラムの暗号化が廃止され ionCube Loader が必要なくなりました。この変更によりライセンスファイルの内容もアップデートされ、正しく動作するには新しいライセンスファイルの適用が必要になります。
正しいライセンスファイルを適用しないと予期せぬ表示を起こすことがありますので、差し替える時間を短縮するためにアップデート作業時には事前にマイページよりダウンロードすることを推奨いたします。

ライセンスファイルをダウンロードする方法

  1. マイページにログインする
  2. 「所有ライセンス」のページへ移動する
  3. 該当するライセンスをさがし、「ライセンスDL」項目の「Ver.3.0以上」を選んでライセンスファイルをダウンロードする

「ライセンスDL」項目の「Ver.3.0以上」を選択してください


データベースのアップデートを実行する

データベースに変更があるため、データベースのアップデートを実行する必要があります。
1.テンプレートファイルのアップデート後、メンテナンスメニュー(http://ドメイン/〇〇(setupフォルダをリネームしたもの)/index.php)にアクセスしてください。アクセスするためにはログイン情報が必要です。 2.メンテナンスメニューにアクセスしたら、アップデートを実行するために「アップデート実行画面へ」のリンクをクリックします。



3.進んでいくと、削除するテーブルを聞かれますが削除するかは任意で構いません。バックアップをとっておきたい場合は選択せず、アップデートを完了してください。



4.完了画面が現れたら、setupフォルダをリネームします。

すでに「api」が使われている箇所があれば変更する

API機能が新しく追加されたことにより、「api」が予約語に登録されました。
制作したサイトでテーマフォルダ内に同じ名前のディレクトリやカテゴリコードに指定していると思わぬ不具合につながりますので、リネームまたはconfig.server.phpのAPI_SEGMENTの値を「api」以外のものを指定してください。
API_SEGMENTを「api」以外のものを指定すると、API機能を使う際に「api」と指定していたものはAPI_SEGMENTで指定した値に差し替えてご使用いただくことになります。

config.server.phpのAPI_SEGMENTの設定は以下のコードになります。 define('API_SEGMENT', 'api');

アップデート完了後の確認

アップデート完了後は、念のためバージョンが正常に上がっているかダッシュボードで確認しましょう。

Ver. 3.1 以上へのアップデート

Ver. 3.1以上へのアップデートする際に気をつけることは下記の2点です。

  • ログイン画面をカスタマイズしている場合
  • SNSログイン・SNS会員登録以外の外部サービス連携機能を廃止

ログイン画面をカスタマイズしている場合

themes/ご利用テーマ/login.html を設置してログイン画面や会員サイトのログイン画面をカスタマイズしている場合、Ver. 3.1 にアップデートするとログインできなくなる可能性があります。

Ver. 3.1 では会員機能の強化のため、ログイン周りのテンプレートの改修、管理者と一般会員でログインページを別にする修正がはいっているので、ログイン画面のテンプレートが新しくなっております。ログイン画面をカスタマイズしている場合や、会員サイトの場合は、テンプレートの修正が必要になりますので、慎重にアップデートください。

SNSログイン・SNS会員登録以外の外部サービス連携機能を廃止

Ver. 3.1 で SNSログイン・SNS会員登録、Google Map以外の外部サービス連携機能が廃止になりました。廃止になった機能は以下になります。

  • Google Analyticsランキング(Api_GoogleAnalytics_Ranking)拡張アプリに移行
  • Twitterホームタイムライン(Api_Twitter_Statuses_HomeTimeline)
  • Twitterユーザータイムライン(Api_Twitter_Statuses_UserTimeline)
  • Twitterサーチ(Api_Twitter_Search)
  • Twitterリストタイムライン(Api_Twitter_List_Statuses)
  • Twitterリストメンバーズ(Api_Twitter_List_Members)
  • Bingウェブ検索(Api_Bing_WebSearch)
  • Bingイメージ検索(Api_Bing_ImageSearch)