ページ 11

GoogleMAPのふきだしにリンク

Posted: 2007年6月21日(木) 13:32
by bikle
お世話になっています。
maplog_list.phpを元にGoogleMapに表示される吹き出しの中の文章にCMSDesignerで作成したページへのリンクを張りたいと考えています。

以下のようなデザイン定義を作ったのですが、リンクが張れない状態です。

コード: 全て選択

<a href="●●_detail.php{@href}"><p id="link{@id}"><xsl:value-of select="hi" disable-output-escaping="yes" /></p></a>
リンクを張れるようにするにはJavascriptにも手を加えないとだめなのでしょうか?

よろしくお願いします。

Re: GoogleMAPのふきだしにリンク

Posted: 2007年6月22日(金) 11:34
by webmaster
 bikleさん、お世話になっております。
 ふきだしの内容をいじる際には、特にJavaScriptを変更しなくても大丈夫です。

 gmap.list.default.design.xslには次のような箇所があるかと思います。

コード: 全て選択

<h2 id="title{@id}" class="entry"><xsl:value-of select="title" /></h2>
<p id="description{@id}" class="entry"><xsl:value-of select="description" disable-output-escaping="yes" /></p>
<div id="map{@id}" class="gmap"></div>
 そして、maplog_list.phpのJavaScriptでは、

コード: 全て選択

        // マーカーのclickイベント時に、情報ウィンドウを表示する。
        GEvent.addListener( marker, "click", 
            function() {
                marker.openInfoWindowHtml( '<div class="marker_data_html"><h2>' + cmsdVars.d( 'title' + mapdata.eid ).innerHTML + '</h2>'
                    + '<p>' + cmsdVars.d( 'description' + mapdata.eid ).innerHTML + '</p></div>' );
            }
        );
 の場所で、ふきだしを生成しています。
 この marker.openInfoWindowHtml という部分がそれで、デザイン定義で
出力した

コード: 全て選択

<h2 id="title00001">タイトル</h2>
 や、

コード: 全て選択

<p id="description00001">内容</p>
 の「タイトル」「内容」の部分だけを取り出して、

コード: 全て選択

<div class="marker_data_html">
  <h2>タイトル</h2>
  <p>内容</p>
</div>
 というHTMLに再構築し、それをふきだしとして設定しています。

 なので、ふきだしにエントリ詳細へのリンクを入れたい場合には、デザイン定義側で
h2タグやpタグの中に必要なものを入れればOKです。

コード: 全て選択

<h2 id="title{@id}" class="entry"><a href="xxx_detail.php{@href}"><xsl:value-of select="title" /></a></h2>
<p id="description{@id}" class="entry"><xsl:value-of select="description" disable-output-escaping="yes" /></p>
<div id="map{@id}" class="gmap"></div>
 上記の例では、h2タグの中身(タイトル)を、詳細ページへのリンクで囲って
います。
 もちろん、pタグの中身にリンクを入れることも可能です。