zencart用のgoogle sitemaps用サイトマップジェネレータを作成しました。  【解決済み】

困った時はこちらで質問してください。回答を担当する人は特に決まっていませんので、分かる方は回答をお願いします。
アバター
gato

zencart用のgoogle sitemaps用サイトマップジェネレータを作成しました。  【解決済み】

投稿記事by gato » 2005/9/17 09:05

件名の通りです。
zencartでショップを構築して運営を開始してから多くのショップ管理者が最初に頭を抱える問題はgoogle対策なわけですが、googleが用意してくれたgoogle sitemapsはこの問題を解決してくれる1つの有効な手段といえます。
しかし、google sitemapsはお世辞にも簡単に利用できるとはいえないのが現状です。
そこでzencart専用のphpのモジュールを作成しました。
わずか1ファイルですしzencartやデータベースを一切変更しませんから簡単にインストールも削除もできます。
私はこれで作成したサイトマップを登録したところ10日後には膨大なページをクロールして貰うことに成功しました。

とりあえず日本語のページも用意しましたのでお読み頂いて興味が沸いたら是非お試し下さい。
たぶん損することはないと思います。

がとらぼ
http://www.intaa.net/~gato/zen_google_s ... index.html

gato@intaa.net
アバター
gato

追伸

投稿記事by gato » 2005/9/17 09:21

これはαバージョンです。
テレビ観ながらボケボケしながらという状況で2時間で作ったものですから現状で動作はしているもののバグがある可能性は大です。
私としては現状で機能的には十分ではないかと思っていますがこれだけは追加して欲しいとか、逆にこんなの追加したけどどうだ?とかフィードバック宜しくお願いします。
どうも日本人の方はほとんどフィードバックくれないので私としては張り合いないしさみしいです。
アバター
志田
記事: 526
登録日時: 2005/5/15 14:14
お住まい: 東京都
連絡を取る:

投稿記事by 志田 » 2005/9/17 09:53

がとさん、こんにちは。おひさしぶりです。

よろしければこちらのページにも掲載していただけると嬉しいです。

http://zen-cart.jp/pukiwiki/475.html


ちなみに、本家フォーラムの方でも2件くらい、GoogleサイトマップのXML生成ツールはコントリされてたと思いますよ。

それぞれのモジュールの違いは僕はわかりません。
アークウェブ http:/www.ark-web.jp
きものリメイク comachi http://comachi-kimono.jp
アバター
gato

投稿記事by gato » 2005/9/17 16:46

と゜うもありがとうございます。
他の方が作っているのも知っています。でも妙に面倒な仕組みに作られているようで、「えーっ何これ?」みたいな気がしたので、とにかくこうすれば簡単にできるんだってことで作ってみました。
私のも現在は自分でも無駄な部分が少し混じっているとは思うですが他の人のよりはいいかな?(うぬぼれ)と思っています。
これをベースにすれば誰でも楽に拡張できる筈です。
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2005/9/19 07:44

木下です。

gato さんが書きました:これをベースにすれば誰でも楽に拡張できる筈です。


もしかして出力項目を弄れば
ark-webさんが自社サイトの方で公開されている

Zen CartでFlashを使って商品画像を魅力的に見せる
http://www.ark-web.jp/blog/archives/200 ... flash.html

このFlashの設定用のxmlを作成できるようになるのかな?
これは面白そうですね。

やりたいことやらないといけないことが一杯だ
:roll:
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
がと

投稿記事by がと » 2005/9/24 12:48

バグフィックスを行いβ版となりました。
主な変更: カテゴリーのURLの& が&になるバグを修正しました。
その他諸々

ダウンロードはこちらからどうぞ。
http://www.intaa.net/~gato/zen_google_s ... index.html
http://www.intaa.net/~gato/zen_google_s ... index.html
アバター
fermium

投稿記事by fermium » 2005/9/25 02:22

こんにちは。google対策に頭を悩ましていた時にsitemap.phpを上げて頂き、非常に助かっています。

導入後、googlebotのアクセス頻度が非常に増えました!

私の環境独自の可能性もあるのですが、実行時に下記内容のエラーが表示されてしまいます。

コード: 全て選択

PHP Warning:  gethostbyaddr(): Address is not a valid IPv4 or IPv6 address in /ZENカートディレクトリ/includes/カスタム名/application_top.php on line 239
PHP Fatal error:  Call to undefined function:  mb_language() in /ZENカートディレクトリ/includes/languages/カスタム名/japanese.php on line 23
Content-type: text/html
X-Powered-By: PHP/4.3.11
Set-Cookie: zenid=****************; path=/; domain=*****************.com
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache


エラー表示されているファイルの該当する行をを//で処理すると、生成されるのですが、まずい処理でしょうか?
アバター
がと

投稿記事by がと » 2005/9/25 10:44

1つ目の警告は無視して大丈夫です。
次のエラーはサーバー側の問題です。
phpのマルチバイト文字列関数を司るmbstringが有効になっていないようです。
自前のサーバーでしたらmbstringを有効にして下さい。
ホスティング会社のサーバーを利用している場合は管理者に有効にして貰って下さい。
(大抵は使えないのは仕様だからと断られるようですが)

mb_language()関数が使用できないのですからコメントにしても構いません。
ただし、それが他に影響を及ぼす可能性があります。
と、いうかmb_language()関数が使えていない影響は既に出ていませんか?
いま、zencartの日本語版を展開していなくてソースを読めない状態ですのでよく
解らない状態ですが、zencart日本語版ってmbstringが必要じゃないですか?
よくメール関係とかで(他言語版からの移植がお手軽だから)mbstring使いますよね?
fermiumさんの環境ではzencartが発信するメールは文字化けしていませんか?
アバター
志田
記事: 526
登録日時: 2005/5/15 14:14
お住まい: 東京都
連絡を取る:

投稿記事by 志田 » 2005/9/25 15:32

がと さんが書きました:と、いうかmb_language()関数が使えていない影響は既に出ていませんか?
いま、zencartの日本語版を展開していなくてソースを読めない状態ですのでよく
解らない状態ですが、zencart日本語版ってmbstringが必要じゃないですか?


日本語版Zen Cartでは、extra_functionsからmbエミュレーターをインクルードするようになっています。

http://www.matsubarafamily.com/blog/mbemu.php
アークウェブ http:/www.ark-web.jp

きものリメイク comachi http://comachi-kimono.jp
アバター
fermium

投稿記事by fermium » 2005/9/25 23:25

がと様・志田様

普段使用しているメールソフト(shuriken)では特に文字化けはなかったのですが、チェックしたところ、OutlookExpressなどの一部のメールソフトで文字化けがおきておりました。

http://www.zen-cart.jp/bbs/viewtopic.php?t=1664

上記で皆様にお世話になり、php-mbstringなしで構築していたものに、php-mbstringをインストールしてみました。その後、php.iniを調整した結果文字化けとsitemap.xmlの生成について改善されました。ありがとうございました。

コード: 全て選択

output_buffering = On
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.script_encoding = auto
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2005/9/28 16:42

木下です。

kino さんが書きました:木下です。

gato さんが書きました:これをベースにすれば誰でも楽に拡張できる筈です。


もしかして出力項目を弄れば
ark-webさんが自社サイトの方で公開されている

Zen CartでFlashを使って商品画像を魅力的に見せる
http://www.ark-web.jp/blog/archives/200 ... flash.html

このFlashの設定用のxmlを作成できるようになるのかな?
これは面白そうですね。

やりたいことやらないといけないことが一杯だ
:roll:


Flashの設定用のxmlを作成するコードに拡張することに成功しました。
http://zen-cart.jp/bbs/viewtopic.php?p=9531#9531

まだテンプレートとして纏められていませんが
色々と自動化処理を行うときのベースとして利用できそうです。
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
hiroki

sitemap.xmlのParse Error

投稿記事by hiroki » 2005/10/03 13:34

使用させていただいております。素晴らしいツールを作っていただきありがとうございます。

Google Sitemapsに登録したのですが、Parse Errorになってしまいました。
原因は、「&」がエスケープされていなからのようです。

70行目
$sitemap .= " <loc>" . htmlspecialchars($clink) . "</loc>\n";

101行目
$sitemap .= " <loc>" . htmlspecialchars($plink) . "</loc>\n";


と変更しました。

さっきSubmitしたばかりなので、まだパースエラーが解決しているかどうかはわからないのですが、
https://www.google.com/webmasters/sitem ... Validation
にも同様の事が書いてあったので、たぶんこれで正しいと思います。

最近Google側で仕様変更があったのでしょうか?
それとも私の環境が変なんでしょうか?

よろしくお願いいたします。
アバター
がと
記事: 207
登録日時: 2005/10/04 05:26
お住まい: 東京
連絡を取る:

投稿記事by がと » 2005/10/05 10:50

ご指摘ありがとうございます。
Ver.0.1が正しかったのを勘違いしてわざわざ変更していました。
ver.0.1からver.0.2の主な変更が実は&amp;を&に書き直すというものだったので・・・(爆死)
と、いうのも私のテストサイトで生成されたsitemap.xmlの<loc></loc>中に&amp;が
あるを見てこれじゃURL間違っているじゃん!なんて勘違いをしたわけで・・・

指摘して頂いた周辺に存在する以下の行を削除して下さい。
$clink = str_replace("&amp;","&",$clink);
$plink = str_replace("&amp;","&",$plink);
それだけでhtmlspecialchars()を使用しなくても問題ない筈です。

あと、&zenid=****をカットする行があるのでその行も変更する必要があります。
$clink = ereg_replace('\&amp;zenid=([a-f0-9]{5,})','', $clink);

と、いうことで私のページにバグフィックス版をアップロードしました。

私が運用しているサイトでは私のURL rewriteパッチを当てているので&がURL中に出現しないので
google sitemapsの方では問題点が指摘されませんでした。
アバター
がと
記事: 207
登録日時: 2005/10/04 05:26
お住まい: 東京
連絡を取る:

投稿記事by がと » 2005/10/21 05:53

Ver.0.4をリリースしました。
タイムスタンプの付け方を単純化してxmlファイルを出力した日時にしました。
Ver.0.3までは最後に商品が追加された日時か商品を編集した日時のどちらか新しい方を
タイムスタンプにしていました。
これでさらに小型になりました。


ところでGoogle sitemapsですが、いつのまにかMobile Sitemapなんてものが追加に
なっていました。
携帯サイト用のサイトマップの様です。
WAP 2.0, WAP1.2, imode用のサイトを選択するようになっています。
zencartにはあまり関係ないかも知れませんが一応ご報告までに。
アバター
Hirai
記事: 59
登録日時: 2005/9/20 22:10
お住まい: 愛知県名古屋市昭和区檀渓通
連絡を取る:

投稿記事by Hirai » 2005/10/21 09:59

がと さんが書きました:Ver.0.4をリリースしました。
タイムスタンプの付け方を単純化してxmlファイルを出力した日時にしました。
Ver.0.3までは最後に商品が追加された日時か商品を編集した日時のどちらか新しい方を
タイムスタンプにしていました。
これでさらに小型になりました。


がと様、便利なツールありがとうございました。
私はxoopsモジュール上のZenCartでサイトを運用していて、ためしにgen_sitemap.phpを/modules/shopディレクトリに
入れてみたのですが、$zenrootを、

$zenroot = "/virtual/*****/public_html/modules/shop/";

という風にして設定して実行すると、

New sitemap.xml was created.

という表示が出た後、xmlファイルが生成されていません。
xoops用ZenCartモジュールには対応をしていないということでしょうか?
なにか設定の取りこぼしなどあれば、教えていただきたいので宜しくお願いします。
最後に編集したユーザー Hirai on 2005/10/25 18:05 [ 編集 1 回目 ]
自動車電装の都電機  管理人:平井
http://www.miyakodenki.com
★バッテリー・ETC車載器・カーナビをZenCartで販売中!★
アバター
がと
記事: 207
登録日時: 2005/10/04 05:26
お住まい: 東京
連絡を取る:

投稿記事by がと » 2005/10/21 12:11

先日メールで問い合わせていただいた方もxoopsでの運用の方でしたが同内容のお問い合わせ
でした。私がxoopsを利用していないので私のモジュールはxoopsとの組み合わせでは
動作を
確認していません。
できればどなたかxoops版ではこうやれば動きますという報告をして頂ければ助かります。
そこで、確認していただきたいのですが、
1. コマンドライン上で実行した場合にどのようなerrorまたはwarningが出るでしょうか?
  (ブラウザ上では「New sitemap.xml was created.」としか表示されません)
2.apacheのエラーログには何か出ているでしょうか?
3.目的のディレクトリのパーミッションは適切に設定されているでしょうか?
(ファイルの生成を禁止している場合は予め空のsitemap.xmlを作成しapacheの権限で
書き込める許可を与える必要があります)
最後に編集したユーザー がと on 2005/10/21 16:52 [ 編集 1 回目 ]
アバター
Hirai
記事: 59
登録日時: 2005/9/20 22:10
お住まい: 愛知県名古屋市昭和区檀渓通
連絡を取る:

投稿記事by Hirai » 2005/10/21 14:41

がと さんが書きました:3.目的のディレクトリのパーミッションは適切に設定されているでしょうか?
(ファイルの生成を禁止している場合は予め空のsitemao.xmlを作成しapacheの権限で
書き込める許可を与える必要があります)


まさにこの通りで、私の場合は空のsitemap.xmlを作成し、FTPアップロードをした後、(
権限はapacheではないのですが)パーミッションを777に設定したら、xoopsモジュール上でもsitemap.xmlは無事更新されました!

がと様、ありがとうございました。
自動車電装の都電機  管理人:平井

http://www.miyakodenki.com

★バッテリー・ETC車載器・カーナビをZenCartで販売中!★
アバター
kotobukiko
記事: 76
登録日時: 2005/6/14 20:05

投稿記事by kotobukiko » 2006/1/25 16:27

gen_sitemap.phpを導入したくて苦労しています。

マニュアルの通りに設定して実行してみたところ下記のエラーが表示されました。

コード: 全て選択

Warning: touch(): Utime failed: Operation not permitted in /home/httpd/vhosts/wa-uniform.com/httpdocs/gen_sitemap.php on line 94

Warning: fopen(/home/httpd/vhosts/wa-uniform.com/httpdocs/sitemap.xml): failed to open stream: Permission denied in /home/httpd/vhosts/wa-uniform.com/httpdocs/gen_sitemap.php on line 96

Warning: fputs(): supplied argument is not a valid stream resource in /home/httpd/vhosts/wa-uniform.com/httpdocs/gen_sitemap.php on line 97

Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/wa-uniform.com/httpdocs/gen_sitemap.php on line 98
New sitemap.xml was created.


その後、空の「sitemap.xml」を作成しFTPでアップしパーミッションを「777」に再実行したところ、今度は下記のエラーが表示されました。


コード: 全て選択

Warning: touch(): Utime failed: Operation not permitted in /var/www/vhosts/biosafe.co.jp/httpdocs/gen_sitemap.php on line 94
New sitemap.xml was created.



これは、

(ファイルの生成を禁止している場合は予め空のsitemao.xmlを作成しapacheの権限で
書き込める許可を与える必要があります)


sitemap.xmlのオーナーを「apache」に変更すればOKということでしょうか?
アバター
kotobukiko
記事: 76
登録日時: 2005/6/14 20:05

投稿記事by kotobukiko » 2006/1/25 16:34

ごめんなさい。

質問する前に自分で試してみるべきでした。

sitemap.xmlのオーナーを「apache」に変更したらちゃんと出力されました。

有用なソフトの公開ありがとうございました。
アバター
kotobukiko
記事: 76
登録日時: 2005/6/14 20:05

GoogleSitemapについて

投稿記事by kotobukiko » 2006/5/02 23:47

GoogleSitemapについて一つ質問があります。

sitemap.xmlを作成してGoogleに登録しました。
その後で気がついたのですが、生成されたURLにアクセスすると「指定された商品は見つかりませんでした。」となります。

「生成されたURL」 http://www.domain/index.php?main_page=p ... ucts_id=81
 
「実際のURL」   http://www.domain/index.php?main_page=product_info&cPath=3&products_id=81

sitemap_gen.phpで生成されたURLには「cPath=3」が抜けているようですが、これで正しいのでしょうか?

“Zen Cart 質問コーナー” へ戻る