カスタマイズ

このページでは a-blog cms を利用される上でよくはまるトラブルとその解決方法についてご紹介しています。

カスタマイズ

目次

Google マップが使えない

Google Map APIのAPI Keyを設定する必要があります。未設定の場合は、地図(Google Map)ユニットのページを確認し対応を行ってください。 複数のAPIを有効にする必要があります、設定忘れがないか再度確認をしてください。

編集時のGoogle Map検索など一部機能が動作しない

Google検索APIなど他のサービスを同時に利用している場合が考えられます。編集時はGoogle検索APIが動かないようにしたり、次のようにACMS.Readyで囲み、実行のタイミングをずらしてください。

<script>
  ACMS.Ready(function(){
    var cx = 'ここにコードが入ります';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//www.google.com/cse/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  });
</script>

フォームモジュールで、確認画面へ進もうとしてボタンをクリックしても進めない

お問い合わせフォームで、確認画面に進もうとしてもエラーもでず、進めない状況になった場合、何かしらバリデーションで引っ掛かっている可能性があります。

バリデーションを設定する方法は2つあります。1つは、テンプレートで設定する方法と、管理画面で設定する方法です。 テンプレートでバリデーションをかけている場合は、エラーメッセージも同時に記入すると思うので、今回のトラブルの場合は意図していないバリデーションを管理画面に設定している可能性があります。

管理画面でのバリデーション

管理画面 > フォーム > 該当フォームの変更 の「入力チェック・変換」項目に意図しないバリデーションがないかチェックください。


動的フォームで、thanksページが表示されない

デフォルトテーマで、動的フォームを実装する場合、フォーム送信後のURLは以下のようになります。

/bid/%{BID}/eid/%{EID}/tpl/thanks.html

このURLは「tpl」URLコンテキストを使用しており、 Ver. 2.11.25 以上のバージョンだと、セキュリティ上の理由による「tpl」URLコンテキストの仕様変更が影響してしまい、うまく表示することができません。

「tpl」URLコンテキスト・仕様変更について

対応方法

private/config.system.yaml に以下行を追加または、編集ください。

allow_tpl_path: [thanks.html]

リンクにブログコードが混入してリンク切れになる


概要

リンクパスに意図しない「ブログコード」が挿入され、リンク切れ(404エラー)が発生する

発生条件

  • リンクパスが /archives/... のように、ルート相対パス(スラッシュ始まり)で出力されている場合。

  • config.server.php の REWRITE_PATH_EXTENSION に指定されていない拡張子のファイル(例:.jww , .dwg など)を扱っている場合。

発生例

Twigを使用し、カスタムフィールドでアップロードしたarchivesファイルのパスをそのまま出力した場合などに発生します。

テンプレート側の記述:

<a href="{{ entry.fields.jww.value.path }}" download>Download</a>

期待される出力:

<a href="/archives/path/to/file.jww" download>Download</a>

子ブログでの実際の出力:

a-blog cms の仕様により、config.server.php の REWRITE_PATH_EXTENSION に指定されていない拡張子のファイルで、かつパスが / から始まる場合、システムが「ブログコード」を補完してパスの書き換えを行います。

<a href="/ブログコード/archives/path/to/file.jww" download>Download</a>

※ config.server.php 内で定義されている拡張子(pdf, doc, xlsx等)は自動書き換えの対象外となります。

対策方法

以下のいずれかの方法で回避可能です。

1. class属性に acms_no_rewrite を追加する

リンクに acms_no_rewrite クラスを付与することで、システムによるパスの自動書き換えを無効化できます。

HTML

<a href="{{ entry.fields.jww.value.path }}" class="acms_no_rewrite" download>Download</a>

2. config.server.php の設定を変更する

config.server.php の REWRITE_PATH_EXTENSION に、対象となるファイルの拡張子を追記します。

define('REWRITE_PATH_EXTENSION', 'pdf|doc|docx|ppt|pptx|xls|xlsx|lzh|zip|rar|jww|dwg');