OpenStreetMap

OpenStreetMapがVer.2.9から利用可能になりました。

使い方

js-open-street-map という class 属性を適用すれば、簡単に好きなページで利用できます。

さらに、data 属性を指定することで経度、緯度、zoom値などを指定できます。


属性 入力する値
data-lat 緯度 35.18531791793727
data-lng 経度 136.89938921481374
data-zoom zoom値 14
data-lazy 表示領域(viewport)に入るまで、組み込みJSの実行を遅延させるかどうか(true | false) true
data-multiple 複数のピンを表示するかどうか(true | false) true
data-markers ピンを表示させたい位置情報を | 区切りで指定できます。 35.170394,136.887383|35.176559,136.885409|35.172762,136.887447
data-messages 複数のピンを表示させる場合に、それぞれのピンに対して表示するメッセージを [[:split:]] 区切りで指定できます。 メッセージ1[[:split:]]メッセージ2[[:split:]]メッセージ3
data-msg ピンが1つの場合に、表示するメッセージを指定できます。 メッセージ
<div class="js-open-street-map" data-lat="35.18531791793727" data-lng="136.89938921481374" data-zoom="14" data-lazy="true" style="width: 100%; height: 300px;"></div>

また、data-multipleという属性にtrueを設定し、data-markers属性に対してピンを立てたい位置情報を|区切りで記述します。そうすることで下のように複数ピンを表示することが可能になります。

<div class="js-open-street-map"
  data-lazy="true"
  data-multiple="true"
  data-lat="35.172775"
  data-lng="136.887466"
  data-zoom="15"
  data-markers='35.170394,136.887383|35.176559,136.885409|35.172762,136.887447'
  style="width: 100%; height: 400px;"
></div>

さらに、data-messagesという属性を使えばpin一つ一つにコメントをつけることも可能です。メッセージを区切りたい場合は、[[:split:]]このような記号を使って分割します。

<div class="js-open-street-map"
  data-lazy="true"
  data-multiple="true"
  data-lat="35.172775"
  data-lng="136.887466"
  data-zoom="15"
  data-markers='35.170394,136.887383|35.176559,136.885409|35.172762,136.887447'
  data-messages='<table><tr><td><a href="/realestate/entry-17.html">物件情報3</a></td></tr></table>[[:split:]]<table><tr><td><a href="/realestate/entry-16.html">物件情報2</a></td></tr></table>[[:split:]]<table><tr><td><a href="/realestate/entry-15.html">物件情報1</a></td></tr></table>'
  style="width: 100%; height: 400px;"
></div>

表示領域(viewport)に入るまで、組み込みJSの実行を遅延させる


OpenStreetMap の地図が画面の下部に存在する場合、組み込みJSの実行を、表示領域(viewport)に入るまで遅延させることで、パフォーマンスを向上させることが可能です。

data-lazy 属性の値に true を指定することで、組み込みJSの実行を遅延させることができます。

<div 
  class="js-open-street-map"
  data-lat="35.18531791793727"
  data-lng="136.89938921481374"
  data-zoom="14"
  data-lazy="true"
  style="width: 100%; height: 300px;"
></div>

設定

この機能の設定は、/js/config.js で設定されています。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。


設定項目 説明 デフォルト
openStreetMapMark OpenStreetMap を表示する要素をセレクター形式で設定します。 '.js-open-street-map'
openStreetMapTileLayer 表示する OpenStreetMap のタイルレイヤーをURLで設定できます。 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'

【重要】CMSアップデートにより、Shoping Cart 拡張アプリが動作しなくなる問題について


2025年3月21日 a-blog cms に発見された脆弱性への対応で、CMSを以下バージョン以上にアップデートしているとCMSの仕様変更により「Shopping Cart」拡張アプリが動作しなくなります

脆弱性について

https://developer.a-blogcms.jp/blog/news/security-update202503.html

対象バージョン

  • Ver. 3.1.37 以上
  • Ver. 3.0.41 以上

アップデート方法

https://developer.a-blogcms.jp/document/ec-cart/update.html をご覧ください。

大変お手数ですが、CMSのバージョンアップに合わせ「Shopping Cart」拡張機能のアップデートのご対応をお願いいたします。

Ver. 3.1.43 リリースのお知らせ


この記事では、2025年4月8日にリリースした Ver. 3.1.43 の修正内容について紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

本リリースでは、セキュリティ上の問題を修正しております。 当該脆弱性をご報告いただいた haidv35 (Dinh Viet Hai) at Viettel Cyber Security 様に感謝申し上げます。

We appreciate the report of this issue by haidv35 (Dinh Viet Hai) at Viettel Cyber Security, which helped improve the security of this product.

Ver. 3.1.43 リリースノート

変更点

  • CMS-7109 デシリアライズ可能なクラスを追加できるHookを追加(unserializeAllowedClasses)
  • CMS-7101 400ステータスのエラー画面を用意(themes/system/400.html)

修正点

  • CMS-7110 POSTモジュール動作時は、そのリクエストではキャッシュを利用しないように改善
  • CMS-7098 エントリー公開時にページキャッシュが削除されない問題の修正
  • CMS-7104 open_basedir設定時に、ファイル存在確認でパスの内容によってはphpエラーが発生する問題を修正
  • CMS-7111 .htaccess を apache2.4 の書き方に統一 & IPアドレス制限や実行php制限の記述を追加
  • CMS-6890 スマホで、ダイレクト編集をするとユニット部分がスクロール出来ない問題を修正
  • CMS-7113 ブログコードが1文字だと、メディアのダウンロードリンクが切れてしまう問題を修正
  • CMS-7114 フォームのコンバーターオプションで、不正な入力があるとphpエラーが発生する問題を修正
  • CMS-7103 バックアップ機能のディレクトリ・トラバーサル対策(管理者限定)
  • CMS-7115 エントリー編集者画面のXSS対策(投稿者以上限定)

一部リリースノートの詳細な内容

CMS-7101 400ステータスのエラー画面を用意(themes/system/400.html)

入力内容が不正な場合に400ステータスのエラー画面を出力するようになりました。また以下テンプレートで400エラー画面をカスタマイズすることができます。

themes/ご利用テーマ/400.html

CMS-6890 スマホで、ダイレクト編集をするとユニット部分がスクロール出来ない問題を修正

スマホでダイレクト編集モードに入ると、ユニット部分がスクロールできず、スマホではユニットが画面いっぱいに広がってるため、スクロールが実質できない不具合を修正しました。

.htaccess を apache2.4 の書き方に統一 & IPアドレス制限や実行php制限の記述を追加

.htaccessの記述をapache2.4の記述方法に統一し、IPアドレス制限や実行PHP制限のコードを追加しました。デフォルトではコメントされている部分もあるため、必要に応じて設定ください。

IPアドレス制限

# ---------------------------
# 全体のIPアドレス制限
# ---------------------------
# <RequireAll>
#   Require not ip xxx.xxx.xxx.xxx
#   Require not ip yyy.yyy.yyy.yyy
#   Require all granted
# </RequireAll>

サイト全体で拒否したいIPアドレスを指定ください。デフォルトではコメントアウトで無効化されています。

index.php以外のPHPスクリプトを実行禁止

# ---------------------------------------
# index.php以外のPHPスクリプトを実行禁止
# ---------------------------------------
<FilesMatch "\.php$">
  Require all denied
</FilesMatch>
<Files "index.php">
  Require all granted
</Files>

index.php以外は実行できないようになっております。 下階層のディレクトリなどで、独自のindex.php以外のphpを動作させたい場合は、以下のように該当ディレクトリに.htaccessを設置ください。

# hoge.php と fuga.phpを許可
<FilesMatch "^(hoge|fuga)\.php$">
  Require all granted
</FilesMatch>

実行可能なスクリプトをブロック

# ------------------------------------------------------------------
# 実行可能なスクリプト (PHP, CGI, Perl, Python, Shell, EXE) をブロック
# ------------------------------------------------------------------
# RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]
# RewriteCond %{REQUEST_URI} !^/_setup/.*\.php$ [NC]
# RewriteCond %{REQUEST_URI} !^/other2/index\.php$ [NC]
# RewriteCond %{REQUEST_URI} \.(php|cgi|pl|py|sh|exe|bin|dll|bat|cmd|msi|jar)$ [NC]
# RewriteRule ^.*$ - [F,L]

CMSのindex.php以外のスクリプトは実行できないように設定します。制限がきついため、デフォルトはコメントアウトされています。 よりセキュリティを高める場合に、コメントアウトを外してください。


最後に

該当する問題がございましたら、できるだけ早めのバージョンアップをご検討ください。 ご報告いただいた haidv35 (Dinh Viet Hai) at Viettel Cyber Security 様を含め、当プロジェクトの安全性向上にご協力くださった皆さまに深く感謝申し上げます。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。
今後ともどうぞよろしくお願いいたします。