■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

1ページ内にGoogleMapの複数設置

shin > 1ページ内にGoogleMapの複数設置 @ 2011/10/25 15:46
コード的にバグではなく仕様な気がしたので、こちらでご報告させていただきます。

GoogleMapsHelperを利用して、1ページ内にGoogleMapを複数出力しようとすると、正常に動作しません。
原因は、GoogleMapsHelper::_getScriptで生成するJavaScrptコードでmap変数がグローバルスコープにあるせいでした。そのため無名関数で囲えば解決します。

ただ、この問題はGoogleMapsHelperに限ったことではないと思うので、もしグローバル空間を汚すコードがあれば、修正されるとよいかなと思います。

それと、GoogleMapsHelperに関しての追加の提案としましては
・GoogleMapsAPIを_getScriptのたびに生成しているので、複数設置だと呼び出すたびにロードすることになるので別に分けるなど工夫。
・GoogleMapsHelper::loadで$addressを指定した場合はロケーションを読み直すのが自然な気がする。(もっとも、今の仕様なのはelemenets/googlemaps.ctpで$longitude・$latitudeを強制的に優先で使用させるためだとは思いますが。)
といった感じです。

よろしくお願い致します。

以下テンプレです。
■ BaserCMSのバージョン:1.6.14
■ レンタルサーバー名:ローカル
■ OSの種類:Windows Vista
■ PHPのバージョン:5.2.10
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:SQLite
■ PHPスキル(自己評価):C
ryuring > Re: 1ページ内にGoogleMapの複数設置 @ 2011/10/27 17:39
shinさん、ご報告ありがとうございます。

たしかに、グローバル空間汚しまくりですね。
取り急ぎ、課題としてチケットをきりました。
http://project.e-catchup.jp/issues/1756

baserCMSは、これまで、新機能開発は、機能実装ベースとなってました。
というわけで、とにかく動くように!という感じであった為、駄コードも散らばってます。

もう少しで、baserCMSとして最低限必要な機能実装が落ち着きそうですので、
今後はリファクタリングも含めた改善フェーズに入っていけると思っています。

こういったご指摘は本当にありがたいです。今後ともよろしくお願いします。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
7 人のユーザが現在オンラインです。 (7 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 7