Webの便利屋さん Reis レイズ

あさーく ひろーく Webで便利屋やってます

oscommerce alter2 R8 配布してます

2010年3月 19日 Posted by saga

今までお問い合わせのあった方にのみ無料で配布していたalterのR8バージョンですが、本日より常時ダウンロードできるようになっています。

しかしこのバージョンは php4 MySQL4系でのみ利用できます。

php5,MySQL5での環境で利用されたい方はこのサイトの記事にもありますが、それぞれ対応策をとってください。

どうしてもご自分で出来ない方はこちらのその作業を行うことも可能ですが、525円手数料としていただいております。
実際にサーバーでの設置、稼動チェック等も行っておりますが そちらもわずかですが有料となっております。

osCommerceのalterバージョンは既に過去のソフトです。
ご自分で改良するスキルをお持ちで無い方は、当方レイズのように格安で代行してくれる業者・または団体、及びスキルのある方に必ずオープン前のチェックをしてもらうことを強くお勧めします。

今現在レイズでは

PHP5 MySQL5対応のosCommerce alterにSEO効果を期待すべく 静的URL表現を取り込んだバージョンを使用しています。

実際の稼動例

http://www.big-one.jp/parts/

↑本当のショップですのでご購入すると支払い義務が生じます。

こちらのバージョンはレイズで有料には配布する予定ですが、ダウンロード形式では配布する予定はありません。
あくまでも「スキルは無いけれどもosCommerceを使ってショップを運営してきたのでphp5になってからも利用したい方」向けにショップの初期設定までを代行して行う形で納品させていただいております。

今現在完璧に全てをチェックできておりませんので、価格は定めておりません。
カスタマイズを何も行わず、インストール・稼動チェックのみの場合は2000円で行っております。

ご興味のある方は

http://www.reis-corp.com/osca2/contact_us.php

よりお問い合わせください。

先日行ったalterのphp5化作業。
管理画面より注文情報と商品一括登録などができますが、そのままでは文字化けしてしまいました。

mysql5でoscommerce alterの文字コードをujisに設定。
apacheも確かeuc-jpに設定して、各ディレクトリごとに文字コードを指定していました。

それでも文字化けしてたんでとりあえず、

admin/orders_csv_exe.php

の一番最初の行に

ini_set(‘mbstring.http_output’, ’pass’);

を追加することで文字化けを回避しました。

osCommerce alter PHP5化 MySQL5化

2009年8月 29日 Posted by saga

この前の記事に対して問い合わせが結構あったので、osCommerce alter をとりあえずphp5・MySQL5で動かす手順をご紹介します。

まずは php5に対応する作業です。
もう既にネット上に情報がたくさんあるのですが、要は

①$this でアサインされているものの this を取り除く作業
②.htaccessの修正
③PHPのsafe_modeをOffにする

①は以下の内容を修正します。
(左修正前、右修正後)

$this->h_smarty_obj  → $h_smarty_obj
$this->smarty_obj   → $smarty_obj
$this->box_smarty_obj → $box_smarty_obj
$this->np_smarty_obj  → $np_smarty_obj
$this->fe_smarty_obj  → $fe_smarty_obj
$this->f_smarty_obj  → $f_smarty_obj

$this->h_smarty_obj は includes/header.php に、 f_smarty_obj… は includes/footer.phpに、、、といった具合に修正していくわけですが、できれば phpエディター などの全文検索ができるPHPエディタなどで全文検索し、漏れが無いようにします。

漏れがあると htaccess の display_errors を On にしていると教えてくれますので、その都度修正しましょう。
②の.htaccessはphp4用にコーディングされたものでもphp5で動くようにしたり、文字コードUTF-8が主流の中でEUCで動かしたりしたいという内容を記述します。

AddDefaultCharset EUC-JP
php_flag output_buffering Off
php_flag register_globals On
php_flag register_long_arrays On
php_flag display_errors Off

php_value default_charset EUC-JP
php_value mbstring.detect_order auto
php_flag  mbstring.encoding_translation Off
php_flag  mbstring.func_overload Off
php_value mbstring.http_input auto
php_value mbstring.http_output EUC-JP
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.language Japanese
php_flag  mbstring.strict_detection Off
php_value mbstring.substitute_character none
php_value session.referer_check www.ショップURL.com

③が一番の問題です。
safe_mode は共有サーバーなどでは変更ができないからです。
自分でサーバーを立てていたり、専用サーバーなら safe_mode をOffにすればいいのですがそういう人が全てではありません。

こういう時は phpをCGIモードで動かすという手があります。
htaccessファイルに記述を増やすのですが、これは検証していません。

AddHandler application/x-httpd-phpcgi .php

↑これはPHPをWEBサーバーのモジュールとして動かすのではなくてCGIとして読み込んで使用するという設定になります。
どなたかosCommerce alterをこれでやった人いませんかね?
てか今度試してみます。

次はMySQL5でも動くようにします。
実は問い合わせはこれが一番多いものでした。
これは以前にosCommerce alterのMLで掲載されたものを参考にしています。
(簡単に言うとコピペです。入力が面倒だった。。。)

以下のファイルの from ~ left join 間を () で括る。例 from ( ~ ) left join

account_history.php
advanced_search_result.php
checkout_process.php
default.php
products_new.php
product_reviews_info.php
product_reviews.php
popup_image.php

includes/classes/order.php
includes/modules/featured.php
includes/functions/general.php
includes/boxes/manufacturer_info.php

admin/languages.php
admin/orders.php
admin/products_attributes.php
admin/orders_csv.php
admin/customers.php
admin/includes/functions/general.php
admin/geo_zones.php
admin/edit_orders.php
admin/popup_image.php
admin/tax_rates.php

ありがとう、白石さん^^;

さて、実は問い合わせというのは

「left join 間をどうやって()でくくるのか?」

ということでした。
left join はMySQLに投げるクエリーの中で使われています。
たとえばdefault.php内の具体的なものではこんな感じです。

// We show them all
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, p.products_qda, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (( ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_PRODUCTS . ” p ) left join ” . TABLE_MANUFACTURERS . ” m on p.manufacturers_id = m.manufacturers_id, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c ) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . $languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;// alter200712
}

from ( ******** ) left join  という風に区切るんですが、複数になった場合は↑の例のように

from (( *********) left join ********* ) left join

↑このようにくくります。
てか長々とMLからコピペして書かなくても最後の数行だけでよかったような。。。

結局alter。。。

2009年8月 24日 Posted by saga

ショッピングサイトをサーバーから構築する依頼がありました。

トップページ
ショッピング
ショッピング2
商品紹介
FAQ
コミュニティ

↑こんな感じです。
用意されていたのはDellのサーバーでした。
サポートされているOSは有料のLinuxばかり。。。

とりあえずVine Linuxを入れてみました。
動くのは動いたのですが、GUIの表示ができたりできなかったり。
とりあえずCUIで起動させてGUIを使いたいときは切り替えるようにしました。

クライアントの話を聞いているとosCommerceあたりが一番適しているように思えたので、MySQLをリビルドし4.0をインストール。
PHPも4系にしました。

しばらく動かしていると、、、やっぱPHP5、MySQL5にしたい^^;
だってコミュニティにXOOPS、FAQにPHPMyFAQ入れようとしたらそうだもんなぁ。

なのでalterをとりあえずPHP5、MySQL5で動くように設定。
サーバーから構築しているのでSafeModeの設定なども楽にクリアできます。

あとはモバイル。
無料で配布されている osCommerce プラスモバイル をダウンロード。
モバイル版もphp5対応がリリースされています。

それをalter用にカスタマイズ。
結局またosCommerce^^;

1個くらいはMagentoとかで組みたいなぁ。

今回作ったphp5,MySQL5版のosCommerce alterはクライアント用に作成したものではなく、こちらで準備したものなので配布でもしようかなと考えてみたんですが。。。

共有サーバーなんかに入っている人は register_globals がonにできなかったりするだろうからどうしても限定的になってしまいます。
alterが入っているディレクトリだけonにしてますが、これもコーディングやり直したいですねぇ。

サーバーから作る場合、よく言われるのが
「セキュリティは大丈夫なの?」
ということです。

100%安心なサーバーなんてありませんが、少なくとも今回のクライアントが以前使用していた共有サーバーよりかはマシかと^^;
ポートも最小限(というかメールとWEBだけ)しか解放してないし、ウィルスソフトも入れてます。
セキュリティの心配する前にパスワードをしっかり作ってくれと思いましたw

ふと思ったこと

2009年8月 5日 Posted by saga

ひさしぶりのブログです。

最近はsyoujiさんがうるさくて新サーバーへのアップするファイルを作らされてます。

思ったのですが、osCommerce alterを今現在使用している人は何人くらいいるんだろう。
ていうのもMLも新規にメンバー登録できないし、もうML自体もメール来ないし。
やっぱphp4 mysql4が原因でしょうねぇ。

php5 MySQL5バージョン作ってみましたが、いまいちって感じです。
とりあえず動いてるみたいな。

なんでもsyoujiさんは新いカートシステムを構築中だとか。
配布とかじゃなくてクライアントの要望らしいですが、いちから作るのって手間ですよねー。