--.--.--
2010.09.05
cakePHP1.3へ移行
今までcakePHP1.1を使っていたのですが、新しく開発しているシステムは、1.3で開発しています。
1.1の頃とはだいぶ仕様が変わっていますね。
viewのファイル名は.thtmlから.ctpになっているし、大きく変わったのは、フォームヘルパーかな。
ちょっと戸惑いますね^^;
1.1の頃とはだいぶ仕様が変わっていますね。
viewのファイル名は.thtmlから.ctpになっているし、大きく変わったのは、フォームヘルパーかな。
ちょっと戸惑いますね^^;
2010.06.04
【EC-CUBE】開発環境と本番環境のDBのデータ移管
開発環境でお客様に商品を登録してもらって、まとめて本番環境に移行しようと思っていたら、
その間に本番環境のほうでどんどん注文が入ってしまって・・・。
要するに、開発環境には商品情報がどんどん追加され、本番環境には、顧客データ・注文データがどんどん追加されている状態。
注文が入るのは嬉しいのですが、開発環境とのDBのマージが大変。
顧客データ、注文データ関連のみを、開発環境のDBに入れたい。
顧客データ・注文データ関連のテーブルは、
・dtb_bat_order_daily〜
・dtb_customer〜
・dtb_order〜
その間に本番環境のほうでどんどん注文が入ってしまって・・・。
要するに、開発環境には商品情報がどんどん追加され、本番環境には、顧客データ・注文データがどんどん追加されている状態。
注文が入るのは嬉しいのですが、開発環境とのDBのマージが大変。
顧客データ、注文データ関連のみを、開発環境のDBに入れたい。
顧客データ・注文データ関連のテーブルは、
・dtb_bat_order_daily〜
・dtb_customer〜
・dtb_order〜
2010.03.18
【EC-CUBE】ご注文の流れの中に入力項目を追加
商品に名前を入れるような、オーダー毎に対応する項目を追加するカスタマイズです。
商品詳細ページで入力していただく方法もありますが、今回は、ご注文の流れの中でご記入いただく仕様にしました。
<変更テーブル>
・dtb_order
・dtb_order_temp
上記テーブルに、追加項目のカラムを追加します。
<変更ファイル>
・/data/class/pages/shopping/LC_Page_Shopping_Payment.php
<変更箇所>
557行目:
$col = "payment_id, use_point, deliv_time_id, message, point_check, deliv_date";
<変更内容>
追加項目のカラムを追加
例)$col = "payment_id, use_point, deliv_time_id, message, name, point_check, deliv_date";
※入力チェックをする場合
<変更箇所>
329行目に追加
例)$this->objFormParam->addParam("名前", "name", LTEXT_LEN, "KVa",array("EXIST_CHECK"));
受注完了メールに追加項目を記載します。
<変更ファイル>
・/data/Smarty/templates/default/mail_templates/order_mail.tpl
<変更内容>
35行目に追記
例)名入れ:<!--{$name}-->
<変更ファイル>
・/data/class/helper/SC_Helper_Mail.php
<変更内容>
105行目に追記
例)$objPage->name = $arrOrder['name'];
商品詳細ページで入力していただく方法もありますが、今回は、ご注文の流れの中でご記入いただく仕様にしました。
<変更テーブル>
・dtb_order
・dtb_order_temp
上記テーブルに、追加項目のカラムを追加します。
<変更ファイル>
・/data/class/pages/shopping/LC_Page_Shopping_Payment.php
<変更箇所>
557行目:
$col = "payment_id, use_point, deliv_time_id, message, point_check, deliv_date";
<変更内容>
追加項目のカラムを追加
例)$col = "payment_id, use_point, deliv_time_id, message, name, point_check, deliv_date";
※入力チェックをする場合
<変更箇所>
329行目に追加
例)$this->objFormParam->addParam("名前", "name", LTEXT_LEN, "KVa",array("EXIST_CHECK"));
受注完了メールに追加項目を記載します。
<変更ファイル>
・/data/Smarty/templates/default/mail_templates/order_mail.tpl
<変更内容>
35行目に追記
例)名入れ:<!--{$name}-->
<変更ファイル>
・/data/class/helper/SC_Helper_Mail.php
<変更内容>
105行目に追記
例)$objPage->name = $arrOrder['name'];
2010.02.19
【EC-CUBE】商品一覧ページのサムネイルを自動的に正方形にトリミング
WordPressではサムネイルは正方形ですが、EC-CUBEでは正方形ではありません。
正方形にしたい!!
<修正ファイル>
/data/module/gdthumb.php
(1)一覧画像の場合、短いほうの片が130pxになるようにする(デフォルトは長いほうが130pxになる)
デフォルトの行数:107行目〜
修正前
if($tmp_w > $tmp_h) {
$re_size[0] = $this->imgMaxWidth;
$re_size[1] = $size[1] * $this->imgMaxWidth / $size[0];
} else {
$re_size[1] = $this->imgMaxHeight;
$re_size[0] = $size[0] * $this->imgMaxHeight / $size[1];
}
修正後
if($this->imgMaxWidth==130){
if($tmp_w > $tmp_h) {
$re_size[1] = $this->imgMaxHeight;
$re_size[0] = $size[0] * $this->imgMaxHeight / $size[1];
} else {
$re_size[0] = $this->imgMaxWidth;
$re_size[1] = $size[1] * $this->imgMaxWidth / $size[0];
}
}else{
if($tmp_w > $tmp_h) {
$re_size[0] = $this->imgMaxWidth;
$re_size[1] = $size[1] * $this->imgMaxWidth / $size[0];
} else {
$re_size[1] = $this->imgMaxHeight;
$re_size[0] = $size[0] * $this->imgMaxHeight / $size[1];
}
}
(2)ファイル名保持(デフォルトでは上書きされてしまう)
デフォルトの行数:214行目
<修正前>
$dst_file = $dst_file . ".jpg";
<修正後>
$dst_file_new = $dst_file . ".jpg";
※この修正に伴い、この後の変数も変更して下さい。
(3)サムネイル生成
$squaresize=130;
$image = $dst_file_new;
$width = $re_size[0];
$height = $re_size[1];
$width = $width-$squaresize;
$height = $height-$squaresize;
$x = $width/2;
$y = $height/2;
$src = ImageCreateFromJpeg($image);
$tmb = ImageCreateTrueColor($squaresize,$squaresize);
ImageCopy($tmb, $src, 0, 0, $x, $y, $squaresize, $squaresize);
//header('Content-type: image/jpeg');
$dst_file_new=$dst_file.'_thumb.jpg';
ImageJpeg($tmb, $dst_file_new);
ImageDestroy($src);
ImageDestroy($tmb);
正方形にしたい!!
<修正ファイル>
/data/module/gdthumb.php
(1)一覧画像の場合、短いほうの片が130pxになるようにする(デフォルトは長いほうが130pxになる)
デフォルトの行数:107行目〜
修正前
if($tmp_w > $tmp_h) {
$re_size[0] = $this->imgMaxWidth;
$re_size[1] = $size[1] * $this->imgMaxWidth / $size[0];
} else {
$re_size[1] = $this->imgMaxHeight;
$re_size[0] = $size[0] * $this->imgMaxHeight / $size[1];
}
修正後
if($this->imgMaxWidth==130){
if($tmp_w > $tmp_h) {
$re_size[1] = $this->imgMaxHeight;
$re_size[0] = $size[0] * $this->imgMaxHeight / $size[1];
} else {
$re_size[0] = $this->imgMaxWidth;
$re_size[1] = $size[1] * $this->imgMaxWidth / $size[0];
}
}else{
if($tmp_w > $tmp_h) {
$re_size[0] = $this->imgMaxWidth;
$re_size[1] = $size[1] * $this->imgMaxWidth / $size[0];
} else {
$re_size[1] = $this->imgMaxHeight;
$re_size[0] = $size[0] * $this->imgMaxHeight / $size[1];
}
}
(2)ファイル名保持(デフォルトでは上書きされてしまう)
デフォルトの行数:214行目
<修正前>
$dst_file = $dst_file . ".jpg";
<修正後>
$dst_file_new = $dst_file . ".jpg";
※この修正に伴い、この後の変数も変更して下さい。
(3)サムネイル生成
$squaresize=130;
$image = $dst_file_new;
$width = $re_size[0];
$height = $re_size[1];
$width = $width-$squaresize;
$height = $height-$squaresize;
$x = $width/2;
$y = $height/2;
$src = ImageCreateFromJpeg($image);
$tmb = ImageCreateTrueColor($squaresize,$squaresize);
ImageCopy($tmb, $src, 0, 0, $x, $y, $squaresize, $squaresize);
//header('Content-type: image/jpeg');
$dst_file_new=$dst_file.'_thumb.jpg';
ImageJpeg($tmb, $dst_file_new);
ImageDestroy($src);
ImageDestroy($tmb);
2010.02.19
【WordPress】カテゴリアーカイブページで子カテゴリ別記事一覧
EC-Cubeでもそうなんですが、カテゴリ一覧ページで「子カテゴリ別記事(商品)一覧」を表示させたいというご要望が多いです。
たとえば、カテゴリが
■Web
○プログラミング
└WordPress
└EC-Cube
└cakePHP
○デザイン
○コーディング
■データベース
■DTP
という構成になっている場合に、「Web」の一覧ページでは、デフォルトでは全記事が投稿日順に出てきます。
それを、子カテゴリ別・孫カテゴリ別に表示したい。
こんなかんじ↓
■Web記事一覧
○プログラミング
◆WordPress
・カテゴリ一覧ページで現在のカテゴリIDを取得
・テーマの作者名
・WordPressテーマのカスタマイズ【カテゴリ表示】
・WordPressで権限管理
◆EC-Cube
・カテゴリの説明文を登録する
・管理画面のロゴ等変更
・顧客編集画面に項目追加【会員の権限管理】
・PHPMyAdmin上の文字化けを回避
◆cakePHP
・RewriteRuleでURL短縮
・CakePHPでキャッシュをオンにする
・cakePHPのPagination
・追加したフィールドが取得できない
○デザイン
◆Photoshop
◆Illustrator
○コーディング
・
・
・
カテゴリ別にソートするくらいなら可能だとは思いますが、その場合、カテゴリ名をタイトル表示ができません。
まず、get_categories('parent=現在表示しているカテゴリ');で、子カテゴリ配列(WordPress,EC-Cube,CakePHP...)を取得します。
※現在表示しているカテゴリIDの取得はこちら
取得結果の子カテゴリ配列をぐるぐるまわして、get_categories('parent=子カテゴリID');で、孫カテゴリ配列を取得。
孫カテゴリ配列をぐるぐるまわして、孫カテゴリの記事を取得します。
サンプルコード
<?php
$chihirdren=get_categories( 'parent=3&hide_empty=0&orderby=order');
foreach($chihirdren as $child){
?>
<h2><?php echo $child->cat_name ?></h2>
<?php
$grandchildren=get_categories( 'parent='.$child->cat_ID.'&hide_empty=1&orderby=order');
foreach($grandchildren as $grandchild){
?>
<?php if (have_posts()) : query_posts('cat='.$grandchild->cat_ID'); ?>
<?php $post = $posts[0]; ?>
<?php while (have_posts()) : the_post(); $count++; ?>
<h2><a href="/?cat=<?php echo $grandchild->cat_ID ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile;?>
<?php endif; ?>
<?php
}
}
?>
※この場合は孫カテゴリまで取得していますが、カテゴリの階層の深さによって適宜調節して下さい。
たとえば、カテゴリが
■Web
○プログラミング
└WordPress
└EC-Cube
└cakePHP
○デザイン
○コーディング
■データベース
■DTP
という構成になっている場合に、「Web」の一覧ページでは、デフォルトでは全記事が投稿日順に出てきます。
それを、子カテゴリ別・孫カテゴリ別に表示したい。
こんなかんじ↓
■Web記事一覧
○プログラミング
◆WordPress
・カテゴリ一覧ページで現在のカテゴリIDを取得
・テーマの作者名
・WordPressテーマのカスタマイズ【カテゴリ表示】
・WordPressで権限管理
◆EC-Cube
・カテゴリの説明文を登録する
・管理画面のロゴ等変更
・顧客編集画面に項目追加【会員の権限管理】
・PHPMyAdmin上の文字化けを回避
◆cakePHP
・RewriteRuleでURL短縮
・CakePHPでキャッシュをオンにする
・cakePHPのPagination
・追加したフィールドが取得できない
○デザイン
◆Photoshop
◆Illustrator
○コーディング
・
・
・
カテゴリ別にソートするくらいなら可能だとは思いますが、その場合、カテゴリ名をタイトル表示ができません。
まず、get_categories('parent=現在表示しているカテゴリ');で、子カテゴリ配列(WordPress,EC-Cube,CakePHP...)を取得します。
※現在表示しているカテゴリIDの取得はこちら
取得結果の子カテゴリ配列をぐるぐるまわして、get_categories('parent=子カテゴリID');で、孫カテゴリ配列を取得。
孫カテゴリ配列をぐるぐるまわして、孫カテゴリの記事を取得します。
サンプルコード
<?php
$chihirdren=get_categories( 'parent=3&hide_empty=0&orderby=order');
foreach($chihirdren as $child){
?>
<h2><?php echo $child->cat_name ?></h2>
<?php
$grandchildren=get_categories( 'parent='.$child->cat_ID.'&hide_empty=1&orderby=order');
foreach($grandchildren as $grandchild){
?>
<?php if (have_posts()) : query_posts('cat='.$grandchild->cat_ID'); ?>
<?php $post = $posts[0]; ?>
<?php while (have_posts()) : the_post(); $count++; ?>
<h2><a href="/?cat=<?php echo $grandchild->cat_ID ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile;?>
<?php endif; ?>
<?php
}
}
?>
※この場合は孫カテゴリまで取得していますが、カテゴリの階層の深さによって適宜調節して下さい。


