phpのDateTime型は例外をスローする

phpで日付を扱うときに DateTime を使ったりします

echo $date->format(‘Y-m-d’);

    $date = new DateTime('2015-04-01');
    echo $date->format('Y-m-d');

DateTimeに日付を渡して表示したりできます
日付以外を渡すとExceptionエラーが発生するので

try {
    $date = new DateTime('日付以外の文字');
} catch (Exception $e) {
     // 日付型の指定でない
     echo $e->getMessage();
}    

try catchで例外を受け取って処理しとくといいです

ECCUBEのバージョン2.13.3でのdestory()呼び出しエラー

ECCUBEのバージョン2.13.3にあげてからPHPエラーがでてました

destroy()メソッドがなくなったようで

parent::destroy()
とか呼んでた、プラグインとか拡張していたクラスとかのdestroy()をすべてコメントアウト..で暫定対応

なにが変わったかぱっとみやすくなっていればいいのですが..

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
の中身を削除して、対応完了、消されなくなりました