javascriptのメソッド呼び出しと関数呼び出しを整理

javascriptでは、関数の中でオブジェクトのプロパティに格納されているものをメソッドと呼ぶようです
this にセットされるものが変わるのをおさらい

例としてはこんなの

var obj = {
    value: 1,
    doubleup: function() {
        this.value += this.value;
    },
    tripleup : function() {
        var that = this;
        var helper = function() {
            // this -> globalオブジェクトがセットされる
            that.value = that.value * 3;
        };
        helper();
    }
};

doubleup、tripleup がメソッドです

メソッド内ではthisにそのオブジェクトがセットされます
doubleupでは、objのvalueを2倍してます

tripleupのなかでは、thisが使えますが、その中の関数内では
this が グローバルオブジェクト になってしまいます(いけてない)

そのため、いったん var that = this; としておいてあげれば、valueをセットできます

実行するとこんな感じ

obj.doubleup();
console.log(obj.value); // 2

obj.tripleup();
console.log(obj.value); // 6

thisの動きがすこしスッキリしました

CakephpのFormHelperでチェックボックスを複数用意する

Cakephp 2.6で、FormHelperでチェックボックスを複数表示したのでメモ

echo $this->Form->create('sample'); 
$option = ['サンプル', 'サンプル2'];
echo $this->Form->select('item', $option, array('multiple' => 'checkbox'));
echo $this->Form->end(); 

な感じでチェックボックスが複数出せませす

初期値をつけるのなら

$this->data[‘sample’][‘item’][0] = 0;
$this->data[‘sample’][‘item’][1] = 1;

とか$optionのインデックスの値を渡してやればチェックがつきます

$data = $this->Model->find(‘all’)

(int) 0 => array('sample' => array('item' => '1')),
(int) 1 => array('sample' => array('item' => '2')),
(int) 2 => array('sample' => array('item' => '3')),
(int) 3 => array('sample' => array('item' => '4')),

な感じでくるので、

$selected = [];
foreach ($data as $obj) {
    $selected['sample']['item'][] = $obj['sample']['item'];
}

でViewに渡してあげたらチェックセットされました

ECCUBEで決算処理中の注文が勝手に消える

ECCUBE 2.13.3を使い出してから、手で決算処理中に変えた注文が勝手に消えるようになりました

調べてみると 2.13 から自動で消すような処理が入ったっぽいです
運用手順上、これは困るので処理を止めました

パラメータの
PENDING_ORDER_CANCEL_FLAG
を false にすればいいようです

システム設定>パラメータ
を見たけど、存在しない..のでソースコードで修正

$ vim data/mtb_constants_init.php

PENDING_ORDER_CANCEL_FLAG
を false に変更しました

data/cache
の中身を削除して、対応完了、消されなくなりました