2011/04/07

IEのセンタリング

センタリングするIDを#containerだとする。
CSSでは
#container {
width: 800px;
margin-left:auto;
margin-right:auto;
}
としていたが
確実なのは左にやって50%戻して来る。

#container {
    left50%;
    margin-left-400px;
    positionabsolute;
    width: 800px;

2011/03/28

GOOGLEショッピングフィード

Googleのショッピングフィードにoscommerceのデータを入れる事が出来ないかと思案。
まずは、何たるかを調べる。
http://mincs.net/blog/2010/11/12/how-to-index-item-data-for-google-shopping/

フィード出来る項目と仕様、詳細はgoogle marchant centerにて

要するに、アカウントつくって
商品情報をGoogleのフィードデータに合わせたかたちの
タブくぎりのtxtデータをアップロードすれば良いそうだ。

データベースから商品データをcsvなどで吐き出してくれれば楽なのに、、
とか探してたらこんなのがあったが、すこし書き換えないと使えない。

ダウンロードしたフォルダをアップロードするだけって書いてるけど使えない。
ソース追ってみたらパスが通ってない記述と無いファイルを指定している箇所を発見。

まあincludeとかrequireしてるところ。

無いファイルは以下の通りに対応。
jcode.phpsを../catalog/includes/languages/japanese/以下から
../admin/includes/以下にコピー
(もしくはdb.phpの指定箇所を書き換え)

あとは吐き出してもらうデータを書き換えて、、
以下は必須項目。


必須属性 属性の説明
id [id] 商品を識別するID。半角英数字で入力。店舗で使用している品番でOK
商品名 [title] 商品名を入力。半角 70 文字まで。
商品リンク [link] 商品ページの URL を http:// から指定。
価格 [price] 商品の販売価格を半角数字で入力。
商品説明 [description] 商品の説明文を入力。半角 10,000 文字まで。
状態 [condition] 商品の状態を「新品」(new)、「中古品」(used)、「再生品」(refurbished)のいずれかを指定。

以下22項目がオプションとして登録できるが
  • GTIN [gtin]
  • ブランド [brand]
  • 製品番号 [mpn]
  • 商品画像リンク [image_link]
  • 商品カテゴリ [product_type]
  • 在庫状況 [availability]
  • 在庫数 [quantity]
  • 送料 [shipping]
  • 税金 [tax]
  • 仕様 [feature]
  • オンライン限定 [online_only]
  • 製造者 [manufacturer]
  • 有効期限 [expiration_date]
  • 搬送重量 [shipping_weight]
  • ジャンル [genre]
  • 目玉商品 [featured_product]
  • 色 [color]
  • サイズ [size]
  • 製造年 [year]
  • 著者 [author]
  • 版 [edition]

商品画像リンクは是非とも必須で入れておきたい。

以上の項目を書き換えて吐き出されるcsvデータを
ダウンロードして、タブ区切りのtxtデータで保存。
手動で更新するのが今のところ確実かな。

2010/12/11

複数機能のJQueryを実装する際の問題

アコーディオン機能と奇数偶数行を色分けしてくれる機能を追加する。
大概の呼び出しはfunction()なのでほかに追加した場合ぶつかってコンフリクトして、片方の機能しか使えない場合がある。

そんな場合はこうする。↓

$(document).ready(function(){

$function(){
は同じ意味なので

jQuery(function($){

ヘッド間に記述したJavascriptの順序を調整して両方機能するようになる。

2010/12/10

foreachで連想配列をループする際に出るエラーについて

Warning: Invalid argument supplied for foreach() in
というのが出る。

基本的にはこう書いているが
if(is_array($data)){
foreach( $data as $b=>$v){
print $v;
}
}

こんな書き方も出来る(array)を入れるだけ。
foreach((array) $data as $b=>$v){
print $v;
}


配列データが無いときにもエラーメッセージは表示されない。

2010/11/29

oscommerceのalterをPHP5 Mysql5に書き換え

そろそろサーバーの方もphp5とMysql5を推奨してきているので
コチラも対応してゆかないと面倒だ。
サーバーで利用出来るバージョンは
  • Mysql5.077
  • PHP5.1.6推奨
  • PHP5.2.14
  • PHP5.3.3
どうせなら一番最新のバージョンでトライしようと思う

DBの文字コードは特に海外向けということもないのでEUCのまま。
UTF-8化はmb_stringとかややこしいのでそっとしておく。

こうなると基本的に直す箇所は2カ所。

DBにクエリを送っている箇所で left join を使用しているところ。
これのfromからleft joinを括弧でくくってやる。
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

あとはsmartyでアサインしている箇所も修正が必要
まあフォルダ検索で共通の文字_smarty_objでリストアップして
ファイル検索で 『$this->』を『$』で全て置き換え。

$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

PHP5.3.3で使ってみると
Function session_is_registered() is deprecated
というエラーが出る。
セッション関連の関数が変わっているようなのだが
これもそっとしておいて一つバージョンを下げる方が手間が省ける。
チェックもしないといけないし。

ということでPHP5.2.14に落ち着く。

2010/11/18

macでバックスラッシュ

macで改行やエスケープ時に使うバックスラッシュを入力するとき
option/alt押しながら¥マーク。

いつも忘れる。

戻ってきたmacbook pro

先日macbook proの画面がスリープから立ち上がらない状態に、、
電源は入り、立ち上がっている様子だが画面が映らない。

考えられる操作をいろいろ試した上で反応がないのでジーニアスバーへ。

診断の結果ロジックボードがお亡くなりになられた模様、
修理の金額を聞いて、ちょっとお金を足せば最新のmacbook proが買えるので
一旦持ち帰りいろいろ調べてみると、どうやらこの症状は既知の問題で
タダで修理してくるという件を発見!

wiki=>ビデオ回路の初期不良
apple=>Macbook Pro ビデオ画像が歪む、またはビデオが表示されない問題

2008年の1月に入手したモデルで 2.2G Core2Duoの15inchなので該当している。
けど30数万出して買ったものが2年経たないうちに画面が映らなくなるなんて、
これで修理代がかかるとかになったら本当にあり得ない。

アップルが嫌いになりかけていました。

再びジーニアスに持っていって、リペアエクステンションプログラムのことを伝えて
無償で治るのであれば治してください、有償で修理をする際は連絡をくださいね。
と伝えて修理に預ける。

連絡が無いので電話してみると、『治ってますよ』
とのこと、念のため『無償で治ったんですね!?』と確認すると
『いえ、有償で修理されています』
『?、勝手に治したの??手違いだと思うからお店に行きます』
と伝えてジーニアスへ。

結局手違いだったとういうことで無償修理で戻ってきました。
嫌いになりかけてたアップルコンピューターがちょっと好きになりました。