web関連tips備忘録

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

ContentsListのバグ修正


パラメーターにフィルター指定する方法で、ブログを複数指定するとブログが選択されなくなる不具合を修正します。

例、<%ContentsList(bshortname='blogA', bshortname='blogB')%>
とすると、全てにマッチしなくなる。

修正箇所:NP_ContentsList.phpの337行当たりにある行の"and"を"or"に直して括弧で括る。

修正前
if (count($aWhere) >= 1) $query .= ' and '. implode(' and ',$aWhere);

修正後
if (count($aWhere) >= 1) $query .= ' and ('. implode(' or ',$aWhere).')';

NuCleus 2006-05-29(月) 20:31:04 - kei - TrackBacks

googleマップの文字化け対策


GETでのデータ送信元のcharsetがEUC-JP、受け取り側のgoogleマップAPIスクリプトが含まれるファイルのcharsetがUTF-8、EUC-JPいずれも場合でも文字化けが発生。

対策として、送信側のjavascriptで当該送信データ(address)を
encodeURIComponent(address);
としてエンコードしてGETで送り、
受け取ったデーターをPHPで
$address = mb_convert_encoding($address, 'UTF-8', _CHARSET);
していたが現象は変わらず。

ネット検索でいろいろ調査した結果、javascriptのencodeURI()とencodeURIComponent()コマンドは、UTF-8としてエンコードすることが判明し、上記のPHPスクリプト
$address = mb_convert_encoding($address, 'UTF-8', _CHARSET);
は意味がないことが判り、コメントアウトした。

変わりにgoogle.comへ自サイトのgoogleAPIキーを連絡するスクリプトにcharset="utf-8"を付加してみたら、文字化けが解消された。

整理すると
1)送信側データをjavascriptでエンコードする場合は、encodeURI()または、encodeURIComponent()を使用する。
2)受信側は、
<script src="http://maps.google.com/maps?file=api&v=verNO&key=APIキー" type="text/javascript" charset="utf-8"></script>
としてやると、受信側のcharsetがUTF-8、EUC-JPに関係なく文字化けが発生しなくなった。

NuCleus 2006-03-29(水) 14:42:48 - kei - TrackBacks

NP_GoogleMapsの使い方


1.スキンの編集
ページのヘッダ部分(<head>と</head>の間)に<%GoogleMaps(HEAD)%>と書き,さらにページの最後</body>の直前に<%GoogleMaps(SCRIPT)%>と書きます。

2.アイテム(記事)での書き方
ポップアップ表示方式
<%gmap(popup(リンク文字),p[経度 | 緯度] |マーカー|インフォウインドウの文字列),m(地図の横幅 | 地図の高さ| type | control | zoomlevel) )%>

例えば称名寺へのリンクは
<%gmap(popup(称名寺を緯度・経度で表示) ,p([139.62985 | 35.34412]|yes|称名寺), m(800|800|map|b/s/s|1))%>
となります。

住所で指定する場合は
<%gmap(popup(称名寺) ,p(jp[神奈川県横浜市金沢区金沢町212]|yes|称名寺), m(800|800|map|b/s/s|1))%>
と書きます。




といったリンクになります。

インライン表示方式:これはUTF-8でないと文字化けすると思います。
<%gmapinline(経度,緯度,地図の横幅,地図の高さ,マーカー,インフォウインドウの文字列)%>例えば称名寺の地図を埋め込むには<%gmap(inline , p([139.62985 | 35.34412]|yes|称名寺),m(400|400|map|b/s/s|3))%>
となります。



と表示されます。
住所指定は
<%gmap(inline , p(jp[神奈川県横浜市金沢区金沢町212]|yes|桐蔭学園),m(400|400|map|b/s/s|3))%>
と書きます。

3番目以降(住所指定の場合2番目以降)のパラメータは省略可能です。例えばgmap(139.7456261,35.6587632)%>はgmap(139.7456261,35.6587632,400,300,no,,Link to Map)%>と同じです。

NuCleus 2006-03-17(金) 19:19:35 - kei - TrackBacks

カテゴリー表示URLの乱れの原因


メインのインデックスページでサイドメニューのカテゴリーをクリックすると、表示されるアドレスが最初は、

http://mysiteurl/cagory/id/blogid/bid
と、なり次に同じカテゴリーをクリックすると

http://mysiteurl/cagory/id/blog/id/cagory/id/blogid/bid

と、"/cagory/id/blog/bid"が積み重なっていく。
FancyUrl、通常表示URLでも同様な現象が出る。

調査の結果、ブログ設定でURLを"/"で終わらると上記現象が出ると判明。
ブログ設定のURLから最後の"/"を取り除くことによって、"/cagory/id/blog/bid"の積み重なりがなくなって、正常に表示されるようになった。

調査手順
nucleus/BLOG.phpのfunction showCategoryList内、634行目当たりにある
$temp = TEMPLATE::fill($template['CATLIST_LISTITEM'],$data);
で、カテゴリーURL表示のされるようすを確認。


NuCleus 2006-03-13(月) 12:03:43 - kei - TrackBacks

スキン変数if/else/endifの応用


index(玄関)ページでは、あるアイテムを固定表示して、そこから分岐するカテゴリーは固定表示なしの通常の表示をさせたい場合、以下のようにする。

例1.
<%if(category)%> //カテゴリーが選択されていたら。
<%ShowBlogs(grey/short,1,,2,DESC)%>
<%else%>
<%ShowBlogs(grey/short,1,,2,DESC,73,grey/short)%>
<%endif%>

例2.
<%if(category)%>
<%blog(grey/short,10)%>
<%else%>
<%StickyIt(grey2/short,固定表示したいitemid)%>
<%endif%>

NuCleus 2006-03-12(日) 01:12:49 - kei - TrackBacks
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
LINK