hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

19年11月17日(Sun) 19時45分
TOP » xpWiki::Dev » xpWiki開発日記 » 2013-02-16

Sat 16 Feb 2013
 

xpWiki 5.01.23 リリース anchor.png Edit

module_icon.png Tag: プラグイン Plugin GoogleMaps

Page Top

概要 anchor.png Edit

xpWiki Version 5.01.23 をリリースしました。

今回の主な内容は、Google Maps Javascript API V3 に対応するプラグイン gmap, gmap_draw, gmap_icon, gmap_insertmaerker, gmap_mark のリリースです。

+ This map's Wiki TAG.

今回の Google Maps Javascript API V3 対応にあたり、PukiwikiでGoogleMaps3 - mynote をベースに xpWiki 版 googlemaps2 と同様に xpWiki 独自の改造を加えています。

素晴らしいプラグインを開発された、reddog(reddog.s35.xrea.com) さんに大感謝致します。 :-) :thumb_up:

googlemaps2 プラグインと比較して次のような違いがあります。

  • reddog さんの google maps プラグインとの相違点 (V2 時代も含む)
    • マップ名の自動付与 mark 利用時にもマップ名を省略すると直前のマップにポイントされる
    • insertmarker に住所を追加
    • マップオプシションの追加
      • autozoom 自動ズームで複数マーカー時にすべてのマーカーが表示される
      • wikitag マップの Wiki 記法表示オプション
      • dropmarker (マーカーを移動してポイント指定)を追加 (V3)
      • googlebar オプションの復活 (使用している API がすでにサポート対象外なので使えなくなるかも知れない) (V3)
    • マーカー用画像に ref プラグインを利用するようにした(サムネイル自動作成)
    • ズーム最大値を 17 から 21 に変更
    • ズーム値範囲を指定したマーカーのみズーム変更時にリライトするようにした (V3)
    • icon の影指定、Infowindow位置指定、ポリゴン指定のバグ修正 (V3)
    • insertmarker のフォームの値の cookie への保存する項目を増やした (V3)
    • insertmarker のフォームの値の cookie 保存の path を '/' に指定した (V3)
Page Top

googlemaps2 を gmap として使用する方法 anchor.png Edit

googlemaps2 プラグイン用の記述をそのままにしたまま、gmap プラグインを使用するようにしたい場合は、次のファイルを html側の xpWiki モジュールディレクトリ/private/plugin に配置してください。

ただし、ディレクトリ名を変更している場合は、各 Class のクラス名を変更する必要があります。

例えば、UsersWiki というディレクトリ名にしているなら "class xpwiki_xpwiki_plugin_googlemaps2" を "class xpwiki_UsersWiki_plugin_googlemaps2" いった具合に5つすべてのプラグインを修正してから xpWiki モジュールディレクトリ/private/plugin ディレクトリに配置してください。

filegooglemaps2.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2 extends xpwiki_plugin_googlemaps2 {
    
    var $_refname = 'gmap';
    
    function plugin_googlemaps2_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_draw.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_draw extends xpwiki_plugin_googlemaps2_draw {
    
    var $_refname = 'gmap_draw';
    
    function plugin_googlemaps2_draw_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_draw_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_draw_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_icon.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_icon extends xpwiki_plugin_googlemaps2_icon {
    
    var $_refname = 'gmap_icon';
    
    function plugin_googlemaps2_icon_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_icon_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_icon_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_insertmarker.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_insertmarker extends xpwiki_plugin_googlemaps2_insertmarker {
    
    var $_refname = 'gmap_insertmarker';
    
    function plugin_googlemaps2_insertmarker_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_insertmarker_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_insertmarker_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_mark.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_mark extends xpwiki_plugin_googlemaps2_mark {
    
    var $_refname = 'gmap_mark';
    
    function plugin_googlemaps2_mark_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_mark_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_mark_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
Page Top

GitHub 更新内容 anchor.png Edit

  • 5314944: [ref] add 4th parm $for_exterior(def:false) into get_ref_url()
    • ref プラグインの get_ref_url() メソッドに第4引数として $for_exterior(デフォルト false) を
      追加。添付ファイルを外部から取得する場合の URL を返す。
  • 4c76027: [core] head tag outputs in order of directions
    • head tag に出力指定した順番通り出力するようにした。 (js, css などのタイプ別にまとめられるのは以前の通り)
  • cf9cb33: [core:JavaScript] add domInitFunctionsFirst & domInitFunctionsFinal
  • 5d34d59: [plugin] gmap (Google Maps Javascript API V3)
    • Google Maps Javascript API V3 に対応するプラグイン gmap, gmap_draw, gmap_icon,
      gmap_insertmaerker, gmap_mark をリリース。

      指定するオプションは基本的に googlemaps2 プラグイン群と互換性がありますが、一部廃止されたものもあります。

  • 141bf07: xpWiki version 5.01.23
Page Top

一行コメント anchor.png Edit




Comments list

Posts tree


nonn50  Posted on 2013-2-16 20:00 | Last modified

gmap プラグインを提供いただき、ありがとうございました。

リリースされた xpWiki 5.01.23 に同梱されているものを利用させていただき、gmap の機能を確認しました。

  1. 取りあえず、「googlemaps2 を gmap として使用する方法」により、同時提供いただいた phpを小生サイトの2つのxpWikiに設置してみましたがOKです。
  2. その後、「管理者専用ツール」⇒「ページ内容の一括置換」により「googlemaps2」⇒「gmap」に置き換え処理を行いました。
    1. しかし、これだけでは「gmap」として機能付加されたオプションを有効としていない為か、貴サイトの gmap サンプルのように「地図の左下と真ん中上部に住所検索用ボックス」が表示されませんでした。
    2. 貴サイトでのgmap サンプルより 「ページの記述」と「日本の世界遺産.kml」をゴッソリとまねっこしてみましたが、「住所検索用ボックス」が表示されないことは変わりませんでした。

貴サイトでの gmapプラグイン記述(サンプルより転載)

引用:

#gmap(lat=35.179998, lng=136.906180, type=roadmap, zoom=8, width=100%, height=450px, autozoom=0, panctrl=normal, zoomctrl=normal, typectrl=normal, scalectrl=1, rotatectrl=1, streetviewctrl=1, crossctrl=1, searchctrl=1, overviewctrl=1, googlebar=1, dbclickzoom=1, scrollwheel=1, dropmarker=1, togglemarker=1, wikitag=1, kml=日本の世界遺産.kml, noiconname=無名, importicon=, backlinkmarker=0)

#gmap_insertmarker

貴サイトでの googlemaps2プラグイン記述(サンプルより転載)

引用:

#googlemaps2(lat=35.178298, lng=136.911621, width=100%, height=400px, zoom=9, type=hybrid, mapctrl=normal, typectrl=normal, scalectrl=show, overviewctrl=hide, crossctrl=show, togglemarker=1, googlebar=1)

#googlemaps2_insertmarker()

小生サイトの gmapプラグイン記述(「ページ内容の一括置換」にて置き換えしたもの)

引用:

#gmap(lat=37.683820, lng=139.746093, width=100%, height=500px, zoom=5, type=normal, mapctrl=normal, typectrl=normal, scalectrl=show, overviewctrl=hide, crossctrl=show, togglemarker=1, googlebar=1, wikitag=hide)

#gmap_insertmarker(?, option=value, ...?)

質問

  • 「住所検索用ボックス」を表示させるオプションを教えてください。
nao-pon  Posted on 2013-2-17 1:50

nonn50 さん、早速にありがとうございます。 :-)

検索ボックスは、上部が searchctrl=1、下部が googlebar=1 で表示されます。

これで表示されない場合は、何かが原因で JavaScript エラーが出ている可能性があります。

xpWikiX-update で更新されましたか?それなら問題ないはずなので、ブラウザのキャッシュをクリアしてみるとかをお試しください。

nonn50  Posted on 2013-2-17 10:58

御教授いただき、ありがとうございました。

  • 「ページ内容の一括置換」にて置き換えしたページに、検索ボックス表示のオプションを付けることにより、表示されました。
  • 誤解の無いように蛇足します。
    引用:

    これで表示されない場合は、何かが原因で JavaScript エラーが出ている可能性があります。
    xpWikiX-update で更新されましたか?それなら問題ないはずなので、ブラウザのキャッシュをクリアしてみるとかをお試しください。

    • ↑このことについては、「貴サイトでの gmapプラグイン記述」を真似っこしたページでは、当初から検索ボックスが表示されています。
    • 小生サイトの既存ページで「ページ内容の一括置換」を行いましたが、「googlebar=1」が無かったことと「scalectrl=show」の記述であったため表示されなかったということです。
      これを追加、修正することで表示できるようになったということです。

修正が可能であれば、以下をおねだり

  • 下部に表示される検索ボックスが、XOOPSの画面幅が狭い場合には「検索ボックス」と「Googleの利用規約」とが被ります。
    20130217_01.PNG
    XOOPSの画面幅が広い場合は問題無いのですが...
    20130217_02.PNG

蛇足

  • 現在、Firefox、 Google Chrome では、Googleのマップが表示されます。
  • しかし、Internet Explorer 9、Opera では表示されません。
    いずれのブラウザも最新のバージョンです。
    ブラウザのキャッシュをクリアして、模様眺めしています。
    20130217_03.PNG
nao-pon  Posted on 2013-2-17 17:35
引用:

「ページ内容の一括置換」にて置き換えしたページに、検索ボックス表示のオプションを付けることにより、表示されました。

よかったです。 :-D

引用:

下部に表示される検索ボックスが、XOOPSの画面幅が狭い場合には「検索ボックス」と「Googleの利用規約」とが被ります。

確かにそうですよね。規約の上に表示することも可能ですが、Google Maps API の利用規約違反になると思います。

表示位置を変えてみたりしていますが、いまいちしっくりときません。どのようにするかちょっと考えてみます。

引用:

Internet Explorer 9、Opera では表示されません。

私の環境だと問題ないですね。なんだろう?

IE 9
更新バージョン 9.0.13 (Windows 7)
Opera 12
12.14 Build 1738 (Windows 7)
nonn50  Posted on 2013-2-17 18:07 | Last modified

毎度御世話様です。
自己レスです。

その後、「[plugin:gmap] correction of CSS」が上がっていたので、X-updateで更新してみました。

  • おねだりしました「XOOPSの画面幅が狭い場合には「検索ボックス」と「Googleの利用規約」とが被ることは解消できませんでした。
    • gmapプラグインのオプションである「overviewctrl=1」を除去することで、当該表示用行の幅で「検索ボックス」と「Googleの利用規約」が被らずに表示できることが判り、そのようにして対応することにしました。
    • この被る現象はテーマにより発生する物としないものが有ります。
      ちなみに、Xoops(X)に標準添付されている basic5、pack2011_default では被ります。
  • 蛇足として書きました 「Internet Explorer 9、Opera では、Googleのマップが表示されない状況」に変化はありませんでした。

ニァミスしたようなので追記

小生のパソコン環境

IE 9 (64bit-editon)
 更新バージョン 9.0.13 (Windows 7)
Opera 12
 12.14 Build 1738 (Windows 7) - 同じです

ついでながら報告します。

crossctrl をオンにした場合、利用しているテーマによっては "+" マークが肥大化して表示されます。
(このことは、以前からそうでした。)

20130217_10.PNG

テーマ側で解決すべきことなのか(?)判りませんが、とりあえず..

旧バージョンでもそうでしたが、新バージョンになってからはことさらに不自由してはおりませんが..

nonn50  Posted on 2013-2-18 9:00

本日、xpWiki 5.01.24 にアップデートしました。
これにより

引用:

「Internet Explorer 9、Opera では、Googleのマップが表示されない状況」が解消されました。

ありがとうございました。

nao-pon  Posted on 2013-2-18 9:10

ブラウザ依存ではなく、cookie が存在しない場合にエラーになっていました。 :hammer:

nonn50  Posted on 2013-2-18 16:43

手ごろなオプション機能を提供いただき、ありがとうございました。

scalectrl=RB
googlebar=LB
として設定し、ついでに一旦除去した「overviewctrl=1」を復活させ。以下の画面に落ち着きました。

20130218_01.PNG

この表示ですと、小生が利用しているテーマの全てで問題無く表示できました :D



Post a new comment

Subject
guestname
Body

Go to richer form

Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 2203, today: 1, yesterday: 0
Princeps date: 2013-02-16 (Sat) 16:51:31
Last-modified: 2013-02-16 (Sat) 17:06:22 (JST) (2465d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?



メインメニュー
付箋機能 (xpwiki)
Fusen(Tag) menu 
Tag Editor
Color: BG:
Name:  Connect line ID:
 
MenuBar (xpwiki)
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 60 人がオンライン中 :-)
(xpWiki::Dev : 1 人)

登録ユーザ: 0 & ゲスト: 60

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4619


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報