Archive

Archive for 4 月, 2009

Google SiteMap 生成

4 月 20th, 2009

GenSiteMap.xmlについてMemoしましたが、今回Obitastar(kimono)さんが紹介されております。

説明:
検索エンジン共通のサイトマップです。
URLの吐き出しがおかしかったので、色々と調べている間に、現在の吐き出しの形ではまずいと思い、考えておりましたが、本家のモジュール『Google Sitemap』が素晴らしく、こちらを紹介していきたいと思い、日本語訳し、若干の修正を加え、公開してみました。
当然のことながら別物に変わっております
readme_jp.txtに詳細は記載しましたが、下記のような機能があります。
特徴:
=====
- マルチリンガルサイトの商品ページカテゴリページに対応しています。
- 検索エンジン対策用のSearch-Engine Safe URLs (osC default)に対応しています。
- httpまたはコマンドラインにてアクセスすることが可能です。
- 商品、及びカテゴリページ用のサイトマップの生成。(分割ファイルにて)
- サイトマップインデックスファイルの生成
- 50,000ページ以上のページがあるサイトのサイトマップ生成にも対応しています。
- 10MBを越えるサイトマップファイルのサイトマップ生成にも対応しています。
- 圧縮、非圧縮ファイルでのサイトマップ生成にも対応しています。
- グーグル、ヤフー、Ask.comおよびマイクロソフトに自動通知します。(live.comとmsn.comの両方)

こちら、日本語のみでの利用の場合で、英語をそのまま残している場合や、携帯モジュールを言語で追加している場合は、
googlesitemap.phpの
288行目辺りに
AND pd.language_id = ‘2′
と、
322行目辺りに
AND cd.language_id = ‘2′
を設定すると日本語のみの抽出となります。

また、wordpressはwordpress側でサイトマップのプラグインが公開されておりますので、そちらで利用するのがベストかなと思い、切り離しました。
・・・現在、コメントアウトしてある、プラグインに読み込めればいいのかもしれませんが

早速インストールしましたがよさそうで、Genから試験的に切り替えました。

インストールは説明書どおり問題ありませんでしたが、私のZenCartはUT-8化しておるので文字化けしました。

●変更したファイルはドメイン/googlesitemap.php

333:// generate product sitemap data

345: LEFT JOIN ” . TABLE_LANGUAGES . ” l ON (pd.language_id = ‘2′)

l.languages_id2に変更

378:LEFT JOIN ” . TABLE_LANGUAGES . ” l ON (cd.language_id = ‘2′)

l.languages_id2に変更

XML書き込み language enを解消した。
●UTF化

管理画面->追加設定・ツール>Google XML サイトマップ(作動説明部分)

ADMIN//includes/languages/japanese/googlesitemap.php

管理画面->追加設定・ツール>Google XML サイトマップ(メニュー名)

ADMIN//includes/languages/japanese/extra_definitions/googlesitemap.php

文字差し替えUTFで保存。 文字化けを解消

●Robots.txt

robots.txtファイルを使用して、サイトマップの位置を指定することができます。これをするためには、次のラインを加えてください:
Sitemap: http://<your shop>/sitemapindex.xml

結果は後述します。


admin Site Map, ZEN Cart

ZenCart Can’t open file:

4 月 19th, 2009

■解決策

データベースを開き、右フレームにテーブルのリストが表示されると思います。
そのリストのしたの「全てチェック」をチェックし、(念のため全てリペアした方が良いでしょう)プルダウンからテーブルを復旧するを選択。

admin ZEN Cart

Zen Cart データベースバックアップ

4 月 19th, 2009

「エクスポート」エリアでは、デフォルトですべてのテーブルが選択され、SQLのセレクトボックスにチェックが入っているはずですので、そのままにします。

「オプション」エリアでのチェックを入れる項目

■ 構造
■ DROP TABLE / DROP VIEWを追加
■ AUTO_INCREMENT 値を追加する
■ テーブル名やフィールド名を逆クォートで囲む

■ データ
■ 完全な INSERT 文を作成する
■ 長い INSERT 文を作成する
■ BLOBに16進数表記を利用する
■ エクスポート形式 => INSERT

■ ファイルに保存する

admin ZEN Cart

Google Sitemapsモジュール for ZenCart

4 月 1st, 2009

インストール:

このモジュールのインストールは非常に簡単です。
なにせ1ファイルだけですから。
もちろんzencart側には何も変更は必要ありませんし、ましてやsqlでデータベースをいじったり拡張したりいうのもありません。

1. gen_sitemap.phpをzencartのルートディレクトリに置きます。
2. gen_sitemap.phpを編集します。

これですべて完了です。
アンインストールもgen_sitemap.phpを削除するだけです。

設定:

スクリプトファイルの最初の方が設定項目になります。変数$zenrootはzencartのルートディレクトリのpathを記述します。これはURLのpathではなくファイルシステムのpathです。最後にスラッシュを付けて下さい。

次の3つの変数は優先度(重要度)です。

$cpriorityはカテゴリーの優先度です。
$gpriorityは一般商品の優先度です。
$spriorityはスペシャル(割引)商品の優先度です。
優先度の最高値は1.0000で最低値は0.0001です。
一般商品よりもスペシャル商品を優先するなら$spriorityの値より$gpriorityの値を大きくします。 現在はカテゴリー毎または商品毎の優先度は設定できません。と、いうかそういう風にする予定は今のところありません。
googleもどこまでこの値を重要視しているか不明です。すくなくとも全て最高値の1にしても無効であるという記述がgoogle sitemapsのサイトにありました。

利用方法:

このモジュールの目的はgoogleが読みに来るsitemap.xmlファイルを生成することです。
そのsitemap.xmlを生成または更新する方法は3種類あります。

1. ブラウザで http://your_zencart/gen_sitemap.php にアクセスする。
2. コマンドラインでphpが利用できるなら “php gen_sitemap.php”
3. UNIXなどでcronが利用できて且つコマンドラインでphpが利用できるならcronで自動実行できます。

3の場合はあなたの/etc/crontab(UNIXの種類によって違う場合があります)を編集して下さい。
7 1 * * * root /usr/local/bin/php /YOUR_ZENCART_ROOT/gen_sitemap.php
(上はFreeBSDの場合の/etc/crontab)

以上でsitemap.xmlがあなたのzencartのルートディレクトリに生成されます。また、gen_sitemap.phpを実行する毎に更新されます。UNIXの場合はsitemap.xmlファイルの所有者をapacheの所有(実行)権を持つユーザーにして下さい。初めて gen_sitemap.php実行する際に例えばrootで上の2の方法でsitemap.xmlを生成してから1の方法で更新しようとすると sitemap.xmlの所有者がrootであるため上書きできません。
ところでsitemap.xmlが生成されても、google sitemapsの方で登録しないとgoogleは訪れてくれませんしsitemap.xmlを読んでくれません。必ずgoogle sitemapsに登録しましょう。
以上 からとんぼさんHP
————————————————————-

<?php

// +———————————————————————
// Small site map generator for google sitemaps
// +———————————————————————
// $Id: gen_sitemap.php,v 0.4 (beta) 2005/10/20 13:35:00JST
// Copyright (c) 2005 Yoshito Uchiyama

$zenroot = “/usr/local/www/nyahonyaho/”; //Please put the slash on the end of path.
$cpriority = “0.4000″; //priority of categories.
$gpriority = “0.5000″; //priority of general products.
$spriority = “0.7000″; //special products.
$sitemap_file = “sitemap.xml”; //Do not change.

// —– Do not change the following. —–

chdir($zenroot);
require(’includes/application_top.php’);

$sitemap = ”;
$sitemap = ‘‘ . “\n”;

$sitemap .= ” $sitemap .= ‘ xmlns=”http://www.google.com/schemas/sitemap/0.84″‘ . “\n”;
$sitemap .= ‘ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”‘ . “\n”;
$sitemap .= ‘ xsi:schemaLocation=”http://www.google.com/schemas/sitemap/0.84′ . “\n”;
$sitemap .= ‘ http://www.google.com/schemas/sitemap/0.84/sitemap.xsd”>’ . “\n”;
$sitemap .= ” \n”;
$sitemap .= ” ” . HTTP_SERVER . DIR_WS_CATALOG . “\n”;
$sitemap .= ” ” . strftime(’%Y-%m-%dT%H:%M:%SZ’) . “\n”;
$sitemap .= ”
1.0000\n”;
$sitemap .= ” \n”;

$dbc = “select categories_id, parent_id “;
$dbc .= “from ” . TABLE_CATEGORIES . ” “;
$dbp .= “where categories_status = 1″;
$dbc .= ” order by categories_id”;
$categories = $db->Execute($dbc);
while(!$categories->EOF)
{
$sitemap .= ” \n”;
$category_link = $categories->fields['parent_id'] . ‘_’ . $categories->fields['categories_id'];
$clink = zen_href_link(FILENAME_DEFAULT, ‘cPath=’ . $category_link);
if (ereg(’zenid’, $clink)) {
if (SEARCH_ENGINE_FRIENDLY_URLS == ‘true’){
$clink = ereg_replace(’\?zenid=([a-f0-9]{5,})’,”, $clink);
}else{
$clink = ereg_replace(’\&zenid=([a-f0-9]{5,})’,”, $clink);
}
}
$sitemap .= ” ” . $clink . “\n”;
$sitemap .= ”
” .$cpriority . “\n”;
$sitemap .= ” \n”;
$categories->MoveNext();
}

$dbp = “select products_id from ” . TABLE_PRODUCTS;
$dbp .= ” where products_status = 1 order by products_id”;
$products = $db->Execute($dbp);

while(!$products->EOF)
{
$scheckid=$products->fields['products_id'];

$sbp = “select specials_id, products_id “;
$sbp .= “from ” . TABLE_SPECIALS . ” “;
$sbp .= “where products_id = $scheckid”;
$sbp .= ” order by products_id”;
$spcheck = $db->Execute($sbp);
$sck = $spcheck->fields['specials_id'];
if ($sck == NULL) {
$priority = $gpriority;
}else{
$priority = $spriority;
}
$sitemap .= ” \n”;
$plink = zen_href_link(zen_get_info_page($products->fields['products_id']), ‘products_id=’ . $products->fields['products_id'], ‘NONSSL’, false);
$sitemap .= ” ” . $plink . “\n”;

$sitemap .= ”
” . $priority . “\n”;

$sitemap .= ” \n”;

$products->MoveNext();
}
$sitemap .= “\n”;

if ($sitemap) {
$output_file = $zenroot . $sitemap_file;
if(!is_file($outout_file)){
touch($output_file);
}
$fp = fopen($output_file, ‘w’);
fputs($fp, $sitemap);
fclose($fp);
}
echo “New sitemap.xml was created.\n”;
?>

admin 未分類