[Svn-src-all:1383] [version-2_5-dev 20273] #963 [管理画面]メルマガ管理リファクタリング #965[管理画面]顧客管理と被りそうなので一部先行コミット
fukuda
admin @ mail.ec-cube.net
2011年 2月 20日 (日) 22:43:01 JST
Subversion committed to /home/svn/open 20273
http://svn.ec-cube.net/open_trac/changeset/20273
┌────────────────────────────┐
│更新者 : fukuda │
│更新日時: 2011-02-20 22:43:01 +0900 (日, 20 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#963 [管理画面]メルマガ管理リファクタリング #965[管理画面]顧客管理と被りそうなので一部先行コミット
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/class/SC_CustomerList.php
変更: branches/version-2_5-dev/data/class/SC_CustomerList.php
===================================================================
--- branches/version-2_5-dev/data/class/SC_CustomerList.php 2011-02-20 13:23:52 UTC (rev 20272)
+++ branches/version-2_5-dev/data/class/SC_CustomerList.php 2011-02-20 13:43:01 UTC (rev 20273)
@@ -49,14 +49,6 @@
$regdate_col = 'dtb_customer.update_date';
}
- // メールマガジンの場合
- if($mode == "magazine") {
- $this->setWhere("(del_flg = 0 OR del_flg IS NULL)");
- $this->setWhere("status = 2");
- // 登録日を示すカラム
- $regdate_col = 'dtb_customer.create_date';
- }
-
// 顧客ID
if (!isset($this->arrSql['customer_id'])) $this->arrSql['customer_id'] = "";
if ( strlen($this->arrSql['customer_id']) > 0 ) {
@@ -176,38 +168,42 @@
$this->setWhere($sql_where);
}
- // 配信メールアドレス種別
- if ( $mode == 'magazine' ){
- $sqlEmailMobileIsEmpty = "(dtb_customer.email_mobile IS NULL OR dtb_customer.email_mobile = '')";
- if (!isset($this->arrSql['mail_type'])) $this->arrSql['mail_type'] = "";
- switch ($this->arrSql['mail_type']) {
- // PCメールアドレス
- case 1:
- $this->setWhere("(dtb_customer.email <> dtb_customer.email_mobile OR $sqlEmailMobileIsEmpty)");
- break;
- // 携帯メールアドレス
- case 2:
- $this->setWhere("NOT $sqlEmailMobileIsEmpty");
- break;
- // PCメールアドレス (携帯メールアドレスを登録している顧客は除外)
- case 3:
- $this->setWhere($sqlEmailMobileIsEmpty);
- break;
- // 携帯メールアドレス (PCメールアドレスを登録している顧客は除外)
- case 4:
- $this->setWhere('dtb_customer.email = dtb_customer.email_mobile');
- break;
+ // メールマガジンの場合
+ if($mode == "customer") {
+ // メルマガ受け取りの選択項目がフォームに存在する場合
+ if ( isset($this->arrSql['htmlmail'])){
+ if (SC_Utils_Ex::sfIsInt($this->arrSql['htmlmail'])){
+ $this->setWhere("mailmaga_flg = ?");
+ $this->arrVal[] = $this->arrSql['htmlmail'];
+ } else {
+ // メルマガ購読拒否は省く
+ $this->setWhere("mailmaga_flg <> 3");
+ }
}
}
- // HTML-mail
- if ( $mode == 'magazine' ){
- if (!isset($this->arrSql['htmlmail'])) $this->arrSql['htmlmail'] = "";
- if ( strlen($this->arrSql['htmlmail']) > 0 ) {
- $this->setWhere( " mailmaga_flg = ? ");
- $this->arrVal[] = $this->arrSql['htmlmail'];
- } else {
- $this->setWhere( " (mailmaga_flg = 1 or mailmaga_flg = 2) ");
+ // 配信メールアドレス種別
+ if ( $mode == 'customer' ){
+ if (isset($this->arrSql['mail_type'])){
+ $sqlEmailMobileIsEmpty = "(dtb_customer.email_mobile IS NULL OR dtb_customer.email_mobile = '')";
+ switch ($this->arrSql['mail_type']) {
+ // PCメールアドレス
+ case 1:
+ $this->setWhere("(dtb_customer.email <> dtb_customer.email_mobile OR $sqlEmailMobileIsEmpty)");
+ break;
+ // 携帯メールアドレス
+ case 2:
+ $this->setWhere("NOT $sqlEmailMobileIsEmpty");
+ break;
+ // PCメールアドレス (携帯メールアドレスを登録している顧客は除外)
+ case 3:
+ $this->setWhere($sqlEmailMobileIsEmpty);
+ break;
+ // 携帯メールアドレス (PCメールアドレスを登録している顧客は除外)
+ case 4:
+ $this->setWhere('dtb_customer.email = dtb_customer.email_mobile');
+ break;
+ }
}
}
@@ -345,7 +341,7 @@
// 検索用SQL
function getList() {
- $this->select = "SELECT customer_id,name01,name02,kana01,kana02,sex,email,tel01,tel02,tel03,pref,status FROM dtb_customer ";
+ $this->select = "SELECT customer_id,name01,name02,kana01,kana02,sex,email,tel01,tel02,tel03,pref,status,update_date,mailmaga_flg FROM dtb_customer ";
return $this->getSql(0);
}
@@ -360,30 +356,6 @@
return $this->getSql(0);
}
- function getMailMagazineColumn($is_mobile= false) {
- if($is_mobile == true) {
- $email_column = "dtb_customer.email_mobile as email";
- } else {
- $email_column = "dtb_customer.email";
- }
-
- $column ="dtb_customer.customer_id,
- dtb_customer.name01,
- dtb_customer.name02,
- dtb_customer.kana01,
- dtb_customer.kana02,
- dtb_customer.sex,
- $email_column,
- dtb_customer.tel01,
- dtb_customer.tel02,
- dtb_customer.tel03,
- dtb_customer.pref,
- dtb_customer.create_date,
- dtb_customer.mailmaga_flg";
-
- return $column;
- }
-
// 検索総数カウント用SQL
function getListCount() {
$this->select = "SELECT COUNT(customer_id) FROM dtb_customer ";
Svn-src-all メーリングリストの案内