[Svn-src-all:1322] [version-2_5-dev 20211] ・/admin/mail/template_input.php をリファクタリング
fukuda
admin @ mail.ec-cube.net
2011年 2月 19日 (土) 22:11:56 JST
Subversion committed to /home/svn/open 20211
http://svn.ec-cube.net/open_trac/changeset/20211
┌────────────────────────────┐
│更新者 : fukuda │
│更新日時: 2011-02-19 22:11:56 +0900 (土, 19 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
・/admin/mail/template_input.php をリファクタリング
・インストール時に追加される不要な mtb_magazine_type の値を削除
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/Smarty/templates/admin/mail/template_input.tpl
U branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_TemplateInput.php
U branches/version-2_5-dev/html/install/sql/column_comment.sql
U branches/version-2_5-dev/html/install/sql/insert_data.sql
変更: branches/version-2_5-dev/data/Smarty/templates/admin/mail/template_input.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/mail/template_input.tpl 2011-02-19 12:48:28 UTC (rev 20210)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/mail/template_input.tpl 2011-02-19 13:11:56 UTC (rev 20211)
@@ -53,7 +53,7 @@
<form name="form1" id="form1" method="post" action="?" onSubmit="return lfnCheckSubmit();">
<input type="hidden" name="mode" value="<!--{$mode}-->" />
-<input type="hidden" name="template_id" value="<!--{$arrForm.template_id}-->" />
+<input type="hidden" name="template_id" value="<!--{$arrForm.template_id|h}-->" />
<div id="mail" class="contents-main">
<table class="form">
<tr>
変更: branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_TemplateInput.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_TemplateInput.php 2011-02-19 12:48:28 UTC (rev 20210)
+++ branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_TemplateInput.php 2011-02-19 13:11:56 UTC (rev 20211)
@@ -48,10 +48,9 @@
$this->tpl_subnavi = 'mail/subnavi.tpl';
$this->tpl_subtitle = 'テンプレート設定';
$this->tpl_subno = "template";
+ $this->mode = "regist";
$masterData = new SC_DB_MasterData_Ex();
$this->arrMagazineType = $masterData->getMasterData("mtb_magazine_type");
- // arrMagazineTypAll ではないため, unset する.
- unset($this->arrMagazineType['3']);
}
/**
@@ -70,43 +69,36 @@
* @return void
*/
function action() {
- $objQuery = new SC_Query();
+ $objMailHelper = new SC_Helper_Mail_Ex();
$objSess = new SC_Session();
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
-
- $this->mode = "regist";
-
- // idが指定されているときは「編集」表示
- if (!isset($_REQUEST['template_id'])) $_REQUEST['template_id'] = "";
- if ( $_REQUEST['template_id'] ){
- $this->title = "編集";
- } else {
- $this->title = "新規登録";
- }
-
switch ($this->getMode()) {
case 'edit':
- // モードによる処理分岐
+ // 編集
if ( SC_Utils_Ex::sfIsInt($_GET['template_id'])===true ){
- // 編集
- $sql = "SELECT * FROM dtb_mailmaga_template WHERE template_id = ? AND del_flg = 0";
- $result = $objQuery->getAll($sql, array($_GET['template_id']));
- $this->arrForm = $result[0];
+ $arrMail = $objMailHelper->sfGetMailTemplate($_GET['template_id']);
+ $this->arrForm = $arrMail[0];
}
break;
case 'regist':
// 新規登録
- $this->arrForm = $this->lfConvData( $_POST );
- $this->arrErr = $this->lfErrorCheck($this->arrForm);
-
- if ( ! $this->arrErr ){
+ $objFormParam = new SC_FormParam();
+
+ $this->lfInitParam($objFormParam);
+ $objFormParam->setParam($_POST);
+ $this->arrErr = $objFormParam->checkError();
+ $this->arrForm = $objFormParam->getHashArray();
+
+ if (SC_Utils_Ex::isBlank($this->arrErr)) {
// エラーが無いときは登録・編集
- $this->lfRegistData( $this->arrForm, $_POST['template_id']);
+ $this->lfRegistData( $objFormParam, $_POST['template_id']);
// 自分を再読込して、完了画面へ遷移
$this->objDisplay->reload(array("mode" => "complete"));
+ } else {
+ $this->arrForm['template_id'] = $_POST['template_id'];
}
break;
case 'complete':
@@ -127,51 +119,43 @@
parent::destroy();
}
- function lfRegistData( $arrVal, $id = null ){
+ /**
+ * メルマガテンプレートデータの登録・更新を行う
+ *
+ * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+ * @param integer template_id 更新時は指定
+ * @return void
+ */
+ function lfRegistData( &$objFormParam, $template_id = null ){
+
+ $objQuery =& SC_Query::getSingletonInstance();
+ $sqlval = $objFormParam->getDbArray();
- $objQuery = new SC_Query();
-
- $sqlval['subject'] = $arrVal['subject'];
- $sqlval['mail_method'] = $arrVal['mail_method'];
$sqlval['creator_id'] = $_SESSION['member_id'];
- $sqlval['body'] = $arrVal['body'];
$sqlval['update_date'] = "now()";
- if ( $id ){
- $objQuery->update("dtb_mailmaga_template", $sqlval, "template_id=".$id );
+ if ( SC_Utils_Ex::sfIsInt($template_id) ){
+ // 更新時
+ $objQuery->update("dtb_mailmaga_template", $sqlval, "template_id=".$template_id );
} else {
+ // 新規登録時
$sqlval['create_date'] = "now()";
$sqlval['template_id'] = $objQuery->nextVal('dtb_mailmaga_template_template_id');
$objQuery->insert("dtb_mailmaga_template", $sqlval);
}
}
- function lfConvData( $data ){
-
- // 文字列の変換(mb_convert_kanaの変換オプション)
- $arrFlag = array(
- "subject" => "KV"
- ,"body" => "KV"
- );
-
- if ( is_array($data) ){
- foreach ($arrFlag as $key=>$line) {
- $data[$key] = mb_convert_kana($data[$key], $line);
- }
- }
-
- return $data;
+ /**
+ * お問い合わせ入力時のパラメータ情報の初期化を行う.
+ *
+ * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+ * @return void
+ */
+ function lfInitParam(&$objFormParam) {
+ $objFormParam->addParam("メール形式", 'mail_method', INT_LEN, "n", array("EXIST_CHECK","ALNUM_CHECK"));
+ $objFormParam->addParam("Subject", 'subject', STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+ $objFormParam->addParam("本文", 'body', LLTEXT_LEN, "KVCa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
}
- // 入力エラーチェック
- function lfErrorCheck() {
- $objErr = new SC_CheckError();
-
- $objErr->doFunc(array("メール形式", "mail_method"), array("EXIST_CHECK", "ALNUM_CHECK"));
- $objErr->doFunc(array("Subject", "subject", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK"));
- $objErr->doFunc(array("本文", 'body', LLTEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK"));
-
- return $objErr->arrErr;
- }
}
?>
変更: branches/version-2_5-dev/html/install/sql/column_comment.sql
===================================================================
--- branches/version-2_5-dev/html/install/sql/column_comment.sql 2011-02-19 12:48:28 UTC (rev 20210)
+++ branches/version-2_5-dev/html/install/sql/column_comment.sql 2011-02-19 13:11:56 UTC (rev 20211)
@@ -99,7 +99,7 @@
INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (99, 'dtb_mailmaga_template', 'template_id', 'テンプレートID');
INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (414, 'dtb_order', 'deliv_pref', '都道府県');
INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (100, 'dtb_mailmaga_template', 'subject', '件名');
-INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (102, 'dtb_mailmaga_template', 'mail_method', '1:テキストメール 2:HTMLメール 3:HTMLTEMPLATE');
+INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (102, 'dtb_mailmaga_template', 'mail_method', '1:テキストメール 2:HTMLメール');
INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (103, 'dtb_mailmaga_template', 'header', 'ヘッダーテキスト');
INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (104, 'dtb_mailmaga_template', 'body', '本文(テキスト登録用)');
INSERT INTO dtb_table_comment (id, table_name, column_name, description) VALUES (105, 'dtb_mailmaga_template', 'main_title', 'メインのタイトル(HTMLメール専用)');
変更: branches/version-2_5-dev/html/install/sql/insert_data.sql
===================================================================
--- branches/version-2_5-dev/html/install/sql/insert_data.sql 2011-02-19 12:48:28 UTC (rev 20210)
+++ branches/version-2_5-dev/html/install/sql/insert_data.sql 2011-02-19 13:11:56 UTC (rev 20211)
@@ -744,7 +744,6 @@
INSERT INTO mtb_magazine_type (id, name, rank) VALUES (1, 'HTML', 0);
INSERT INTO mtb_magazine_type (id, name, rank) VALUES (2, 'テキスト', 1);
-INSERT INTO mtb_magazine_type (id, name, rank) VALUES (3, 'HTMLテンプレート', 2);
INSERT INTO mtb_mail_magazine_type (id, name, rank) VALUES (1, 'HTMLメール', 0);
INSERT INTO mtb_mail_magazine_type (id, name, rank) VALUES (2, 'テキストメール', 1);
Svn-src-all メーリングリストの案内