[Svn-src-all:1360] [version-2_5-dev 20250] #963 [管理画面]メルマガ管理 配信履歴リファクタリング
fukuda
admin @ mail.ec-cube.net
2011年 2月 20日 (日) 13:53:04 JST
Subversion committed to /home/svn/open 20250
http://svn.ec-cube.net/open_trac/changeset/20250
┌────────────────────────────┐
│更新者 : fukuda │
│更新日時: 2011-02-20 13:53:04 +0900 (日, 20 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#963 [管理画面]メルマガ管理 配信履歴リファクタリング
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_History.php
変更: branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_History.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_History.php 2011-02-20 03:52:03 UTC (rev 20249)
+++ branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_History.php 2011-02-20 04:53:04 UTC (rev 20250)
@@ -75,30 +75,14 @@
switch ($this->getMode()) {
case 'delete':
// 削除時
- if (SC_Utils_Ex::sfIsInt($_GET['send_id'])) {
- $sql = "UPDATE dtb_send_history SET del_flg = 1 WHERE send_id = ?";
- $objQuery->query($sql, array($_GET['send_id']) );
- $_SERVER['QUERY_STRING'] = "";
- $this->objDisplay->reload();
- }
+ $this->lfDeleteHistory($_GET['send_id']);
+ $this->objDisplay->reload(null, true);
break;
default:
break;
}
-
- // 行数の取得
- $linemax = $objQuery->count($from, $where, $arrval);
-
- // ページ送りの取得
- $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, SEARCH_PMAX, "fnNaviSearchPage", NAVI_PMAX);
- $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列
- $startno = $objNavi->start_row;
-
- // 取得範囲の指定(開始行番号、行数のセット)
- $objQuery->setLimitOffset(SEARCH_PMAX, $startno);
-
- // 検索結果の取得
- $this->arrDataList = $this->lfGetMailHistory();
+
+ list($this->tpl_linemax, $this->arrDataList, $this->arrPagenavi) = $this->lfDoSearch($_POST['search_pageno']);
}
/**
@@ -112,47 +96,55 @@
/**
* 実行履歴の取得
- *
+ *
+ * @param integer $search_pageno 表示したいページ番号
* @return array( integer 全体件数, mixed メール配信データ一覧配列, mixed SC_PageNaviオブジェクト)
*/
- function lfGetMailHistory() {
- $objQuery =& SC_Query::getSingletonInstance();
- $objQuery->setOrder("start_date DESC, send_id DESC");
+ function lfDoSearch($search_pageno = 1) {
+ // 引数の初期化
+ if(SC_Utils_Ex::sfIsInt($search_pageno)===false) $search_pageno = 1;
+ //
+ $objSelect =& SC_Query::getSingletonInstance(); // 一覧データ取得用
+ $objQuery =& SC_Query::getSingletonInstance(); // 件数取得用
+
+ // 該当全体件数の取得
+ $linemax = $objQuery->count("dtb_send_history","del_flg = 0");
+
+ // 一覧データの取得
+ $objSelect->setOrder("start_date DESC, send_id DESC");
+
$col = "*";
$col .= ",(SELECT COUNT(*) FROM dtb_send_customer WHERE dtb_send_customer.send_id = dtb_send_history.send_id) AS count_all";
$col .= ",(SELECT COUNT(*) FROM dtb_send_customer WHERE dtb_send_customer.send_id = dtb_send_history.send_id AND send_flag = 1) AS count_sent";
$col .= ",(SELECT COUNT(*) FROM dtb_send_customer WHERE dtb_send_customer.send_id = dtb_send_history.send_id AND send_flag = 2) AS count_error";
$col .= ",(SELECT COUNT(*) FROM dtb_send_customer WHERE dtb_send_customer.send_id = dtb_send_history.send_id AND send_flag IS NULL) AS count_unsent";
-
- $arrResult = $objQuery->select($col, "dtb_send_history", " del_flg = 0");
- return $arrResult;
-
- /*
- $page_rows = $arrParam['page_rows'];
- if(SC_Utils_Ex::sfIsInt($page_rows)) {
- $page_max = $page_rows;
- }else{
- $page_max = SEARCH_PMAX;
- }
- $disp_pageno = $arrParam['search_pageno'];
- if($disp_pageno == 0) {
- $disp_pageno = 1;
- }
- $offset = $page_max * ($disp_pageno - 1);
- $objSelect->setLimitOffset($page_max, $offset);
- $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal);
-
- // 該当全体件数の取得
- $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal);
+
// ページ送りの取得
- $objNavi = new SC_PageNavi($arrParam['search_pageno'],
+ $offset = SEARCH_PMAX * ($search_pageno - 1);
+ $objSelect->setLimitOffset(SEARCH_PMAX, $offset);
+ $arrResult = $objSelect->select($col, "dtb_send_history", " del_flg = 0");
+
+ $objNavi = new SC_PageNavi($search_pageno,
$linemax,
- $page_max,
- "fnCustomerPage",
- NAVI_PMAX);
- return array($linemax, $arrData, $objNavi);
- } */
-
+ SEARCH_PMAX);
+
+ return array($linemax, $arrResult, $objNavi->arrPagenavi);
+ }
+
+ /**
+ * 送信履歴の削除
+ * @param integer $send_id 削除したい送信履歴のID
+ * @return void
+ */
+ function lfDeleteHistory($send_id){
+ if (SC_Utils_Ex::sfIsInt($send_id)) {
+ $objQuery =& SC_Query::getSingletonInstance();
+ $objQuery->update("dtb_send_history",
+ array('del_flg' =>1),
+ "send_id = ?",
+ array($send_id));
+ }
+ }
}
?>
Svn-src-all メーリングリストの案内