Skip to main content

GoogleMapsカスタムフィールドプラグインの不具合

· 2 min read

SOY CMSのGoogleMapsカスタムフィールドプラグインで不具合を発見&対処した。

現象

記事中の "設定" や "クリア" を押しても無反応(JavaScriptエラー)。

再現方法

記事中の設定を押してマップの設定画面(別ウィンドウ)を開く。 下にあるテキストエリアに複数行に渡るコメントを書く。 (要するに改行を含ませるってこと) これで保存をし、ページを再度読み込んだあとに現象発生。

原因

html.push('...')の文字列に入力した改行が含まれるため、
html.push('... ...');
となり、構文エラーとなる。

対処法

次のファイルの一行を修正する。 .../soycms/common/site_include/plugin/googlemaps/customform.php
<?php echo htmlspecialchars($info); ?>
改行もそのまま出力されるようになっている。
<?php echo str_replace("rn", "[object Object]", htmlspecialchars($info)); ?>

改行がそのまま出力されては困るので<br/>に置換するように修正。

■ SOY CMS フォーラム • トップページ

http://www.soycms.org/フォーラムに書いた方がいいのかな?

余談

PHPの置換方法知らなくて、こんな風に書いてエラー出したよ(笑)
<?php echo htmlspecialchars($info).replace("rn", "[object Object]"); ?>