zen cartショッピングカート数量動的変更


zen cartのショッピングカートで数量変更後、更新ボタンを
押すことなしに動的に金額を変更するカスタマイズについて
メモしておきます。

なお、zen cartのヴァージョンは1.3.0.2です。
メジャーが 1 、マイナーが 3.0.2-l10n-jp-6 です。
php は 5.3.2です。

***template***includesmodulespagesshopping_cartheader_php.php
124行目
$quantityField = zen_draw_input_field(‘cart_quantity[]’, $products[$i][‘quantity’], ‘size=”4″‘);

$quantityField = zen_draw_input_field(‘cart_quantity[]’, $products[$i][‘quantity’], ‘size=”4″ onchange=”cart_quantity_update(value)”‘);
に変更

***template***includesmodulespagesshopping_cartjscript_main.php
の末尾に以下のjavascriptを追加し、アップロード

<script language=”javascript” type=”text/javascript”><!–
function cart_quantity_update(value) {
if (value.match(/[^0-9]/g) || parseInt(value, 10) + “” != value) {
return false;
} else {
document.getElementsByName(“cart_quantity”)[0].submit();
}
}
//–></script>

最後のサブミットのところは、古いブラウザだと動かないかもしれません。
私が試したところでは、FireFox3、FireFox5、Google Chromeの最新と、IE 8、IE 6だと動作
しました。

このエントリーをはてなブックマークに追加


zen cartカスタマイズ


このところ、zen cartのカスタマイズにかなりの時間を割かれていました。

もともとのホスティングがphp 4対応だったのでインストールから各種設定
まではスムーズにいったのですが、独自にPDFを出力する部分でどうしても
でなくなってしまい・・・・

ホスティング側でサーバー環境のアップグレードが可能ということで、Apache
、php、MySQLも最新にアップしたのですが・・・・

価格が全く表示されなくなってしまったり、、、pdfについては何とか表示
ができるようになったのがよかったですが。

あとは軽微な修正でリリースに持ち込めそうです。

随所でいろいろなカスタマイズを施したので、修正内容についてはまた時間
のある時にアップしようと思います。

よろしくお願いいたします。


Zen Cart の php5.3対応


このたび、Zen Cartを御客様に納品すべく作業する中、php5.3で動作させることに成功
いたしました。Zen Cartの最新版がphp5.3で動作せず、困っていらっしゃる方が多数お
られるようですので、以下に対応内容を記しておきます。

なお、Zen Cartのインストール先はホームディレクトリの一階層したです。以下のUrl
表記において /****/という伏字で表示いたします。

1.インストールサーバー
 ・大塚商会 アルファメールダイレクト(通常のアルファメールもMySQL、phpのヴァー
  ジョンは同一なので動作すると思います)
  php 5.3.2
  MySQL 5.1.47

2.ダウンロードしたzen-cart のバージョン
  http://zen-cart.jp/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9
  zen-cart-v1.3.0.2-l10n-jp-6.zip

3.インストール時、サーバ内部エラー発生

  エラーログ内容:
   [Wed Oct 27 00:33:53 2010] [alert] [client ***.***.***.***] ~/****/.htaccess: php_flag not allowed here

  原因:****/.htaccess
 該当箇所をコメントアウト
  #
 # php_flag register_globals Off
 #

 #
 # php_flag register_globals Off
 #

4.インストール時、Deprecated: Function ereg() is deprecated in ・・・ 
  のエラー多発。
  PHP5.3への未対応が原因。
  以下の4ファイルを修正(※エラー出力を制御)

  (1)admin/includes/application_top.php(49行)
   error_reporting(E_ALL & ~E_NOTICE);
    ↓
   error_reporting(0);
  (2)includes/application_top.php(44行)
   error_reporting(E_ALL & ~E_NOTICE);
    ↓
   error_reporting(0);
  (3)zc_install/techsupp.php(42行)
   error_reporting(E_ALL & ~E_NOTICE);
    ↓
   error_reporting(E_ERROR & ~E_NOTICE & ~E_PARSE);
  (4)zc_install/includes/application_top.php(17行)
   error_reporting(E_ALL & ~E_NOTICE);
    ↓
   error_reporting(E_ERROR & ~E_NOTICE & ~E_PARSE);

5.インストール時、レイアウトが崩れる
  (1)****/include/.htaccess
    ↓
  内容すべてをコメントアウト

6.管理画面が表示されない
  ※http://www.zen-cart.com/forum/showthread.php?t=140960 を参考にしました。

  (1)/includes/application_top.php(44行)
   error_reporting(E_ALL & ~E_NOTICE);
    ↓
   error_reporting(0);

  (2)/admin/orders.php(53行)
  $zc_max_days = date_diff($check_status->fields[‘date_purchased’], date(‘Y-m-d H:i:s’, time())) + DOWNLOAD_MAX_DAYS;
    ↓
  $zc_max_days = zen_date_diff($check_status->fields[‘date_purchased’], date(‘Y-m-d H:i:s’, time())) + DOWNLOAD_MAX_DAYS;

  (3)/admin/includes/application_top.php(49行)
   error_reporting(E_ALL & ~E_NOTICE);
    ↓
   error_reporting(0);

  (4)/admin/includes/functions/general.php(2980行)
    function date_diff($date1, $date2) {
    ↓
    function zen_date_diff($date1, $date2) {

7.管理画面のcssが正常に反映しない(2011/5/7 追記)
  (1)****/admin/includes/.htaccess
    ↓
  内容すべてをコメントアウト