EC-CUBE ログイン時に前回ログイン時のカート情報を読み込む

※参考にしないで!

とりあえずデバッグは下記コード。
data/logs/site.logに出力される。

GC_Utils_Ex::gfDebugLog('xxx');

1)ユーザー情報(dtb_customer)にフィールド追加

dtb_customerカートセッション情報を追加できるフィールドを追加
session_cart (longtext )

2)カート追加時にsession_cartにカート情報を追加

SC_CartSession_Ex.php

private function addUserSession() {
    if (isset($_SESSION['customer']['customer_id'])) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $sqlval = array('session_cart' => serialize($this->cartSession));
        $where = 'customer_id = ? AND del_flg = 0';
        $objQuery->update('dtb_customer', $sqlval, $where, array($_SESSION['customer']['customer_id']));

        $objCustomer = new SC_Customer();
        $objCustomer->setValue('session_cart', $this->cartSession);
    }
}

3)会員ログイン時にカート情報をセッションに追加

LC_Page_FrontParts_LoginCheck_Ex.php

$_SESSION['cart'] = unserialize($_SESSION['customer']['session_cart']);

findでassociationを動的に。containable behaviorが便利だった CakePHP2.x

Findする際に取得するassociationを変更したい。

Model->recurcive = 2 とかしちゃうとものすごい量のデータを取得してしまうので。
わちゃわちゃコード書かないといけないと思ってたら便利なbehaviorがあった。

containable behavior

$this->Post->Behaviors->attach('Containable');
$this->paginate = array('contain'=>array('Comment'=>array('User')));
$this->set('posts', $this->Paginator->paginate());

これでポスト一覧->コメント一覧->コメント書いたユーザー
といったrecurcive = 2 までのデータ取得が可能。

マニュアルを見ると特定のフィールドのみ取得とかも簡単に出来そう。

【メモ】スマフォサイト作成TIPS

androidではtext-shadow

効かないものがある。未検証

ボールド

Androidの標準フォントであるDroid Sans Japaneseにはボールド体が存在しない
効くブラウザはオリジナルフォントがインストールされている場合。
対応策はtext-shadowで。

ベンダープリフィックス

OSのバージョンブラウザによりことなるので box-shadowなどではベンダープリフィックスをつけること

aタグのブロック

androidの標準ブラウザでオレンジの枠がでるがそれがずれるらしい。 持ってる機種では再現できなかった。

positioin fixed

fixedが使えないらしい。
使いたい場合はiScrollなどを使って再現する

フリックスライダー

こちらを参照 http://blog.bluearrowslab.com/smartphone/topicks/615/

font-family

iOS6以降日本語フォントは明朝(serif)になってる
Hiragino Kaku Gothic PronN
Hiragino Mincho ProN

Android 2.x Droid Sans Japanese
Android 4.x Roboto モトヤLシーダ3等幅

これでいいんかな
font-family: sans-serif;

text-shadow

galaxy nexusでは日本語文字が飛んだりするらしい

gradient

ややこしすぎるんでsassのmixinだのみです。 @include background(linear-gradient(#fff, #ccc));

その他

とりあえずandroid2.3はやっかいだ!

【メモ】cakephp 必要なモデルだけbind associationしたい

cakephp 必要なモデルだけbind associationしたい

コンテイナブルが便利

cakephp1.x
http://book.cakephp.org/1.3/ja/The-Manual/Core-Behaviors/Containable.html

cakephp2.x
http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html