Index: /branches/feature-module-update/html/regist/index.php
===================================================================
--- /branches/feature-module-update/html/regist/index.php	(revision 15080)
+++ /branches/feature-module-update/html/regist/index.php	(revision 15215)
@@ -6,197 +6,14 @@
  */
 
+// {{{ requires
 require_once("../require.php");
+require_once(CLASS_PATH . "page_extends/regist/LC_Page_Regist_Ex.php");
 
-//---- ページ表示クラス
-class LC_Page {
-	
-	var $arrSession;
-	var $tpl_mainpage;
-	var $arrPref;
+// }}}
+// {{{ generate page
 
-	function LC_Page() {
-		$this->tpl_css = URL_DIR.'css/layout/regist/index.css';	// メインCSSパス
-	}
-}
-
-$objConn = new SC_DBConn();
-$objQuery = new SC_Query();
-$objPage = new LC_Page();
-$objView = new SC_SiteView();
-$objSiteInfo = $objView->objSiteInfo;
-$objCustomer = new SC_Customer();
-$CONF = sf_getBasisData();
-$arrInfo = $objSiteInfo->data;
-
-// キャンペーンからの登録の場合の処理
-if($_GET["cp"] != "") {
-	$etc_val = "?cp=" . $_GET['cp'];
-}
-
-//--　本登録完了のためにメールから接続した場合
-if ($_GET["mode"] == "regist") {
-	
-	//-- 入力チェック
-	$objPage->arrErr = lfErrorCheck($_GET);
-	if ($objPage->arrErr) {
-		$objPage->tpl_mainpage = 'regist/error.tpl';
-		$objPage->tpl_css = "/css/layout/regist/error.css";
-		$objPage->tpl_title = 'エラー';
-
-	} else {
-		//$objPage->tpl_mainpage = 'regist/complete.tpl';
-		//$objPage->tpl_title = ' 会員登録(完了ページ)';
-		$registSecretKey = lfRegistData($_GET);			//本会員登録（フラグ変更）
-		lfSendRegistMail($registSecretKey);				//本会員登録完了メール送信
-
-		// ログイン済みの状態にする。
-		$email = $objQuery->get("dtb_customer", "email", "secret_key = ?", array($registSecretKey));
-		$objCustomer->setLogin($email);
-		header("Location: ./complete.php$etc_val");
-		exit;
-	}
-
-//--　それ以外のアクセスは無効とする
-} else {
-	$objPage->arrErr["id"] = "無効なアクセスです。";
-	$objPage->tpl_mainpage = 'regist/error.tpl';
-	$objPage->tpl_css = "/css/layout/regist/error.css";
-	$objPage->tpl_title = 'エラー';
-
-}
-
-//----　ページ表示
-$objView->assignobj($objPage);
-$objView->display(SITE_FRAME);
-
-//---- 登録
-function lfRegistData($array) {
-	global $objQuery;
-	global $objConn;
-	global $arrInfo;
-	
-	do {
-		$secret = sfGetUniqRandomId("r");
-	} while( ($result = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($secret)) ) != 0);
-
-	$sql = "SELECT email FROM dtb_customer WHERE secret_key = ? AND status = 1";
-	$email = $objConn->getOne($sql, array($array["id"]));
-
-	$objConn->query("BEGIN");
-	$arrRegist["secret_key"] = $secret;	//　本登録ID発行
-	$arrRegist["status"] = 2;
-	$arrRegist["update_date"] = "NOW()";
-	
-	$objQuery = new SC_Query();
-	$where = "secret_key = ? AND status = 1";
-	
-	$arrRet = $objQuery->select("point", "dtb_customer", $where, array($array["id"]));
-	// 会員登録時の加算ポイント(購入時会員登録の場合は、ポイント加算）
-	$arrRegist['point'] = $arrRet[0]['point'] + addslashes($arrInfo['welcome_point']);
-	
-	$objQuery->update("dtb_customer", $arrRegist, $where, array($array["id"]));
-
-	/* 購入時の自動会員登録は行わないためDEL
-	// 購入時登録の場合、その回の購入を会員購入とみなす。
-	// 会員情報の読み込み
-	$where1 = "secret_key = ? AND status = 2";
-	$customer = $objQuery->select("*", "dtb_customer", $where1, array($secret));
-	// 初回購入情報の読み込み
-	$order_temp_id = $objQuery->get("dtb_order_temp", "order_temp_id");
-	// 購入情報の更新
-	if ($order_temp_id != null) {
-		$arrCustomer['customer_id'] = $customer[0]['customer_id'];
-		$where3 = "order_temp_id = ?";
-		$objQuery->update("dtb_order_temp", $arrCustomer, $where3, array($order_temp_id));
-		$objQuery->update("dtb_order", $arrCustomer, $where3, array($order_temp_id));
-	}
-	*/
-
-	$sql = "SELECT mailmaga_flg FROM dtb_customer WHERE email = ?";
-	$result = $objConn->getOne($sql, array($email));
-	
-	switch($result) {
-	// 仮HTML
-	case '4':
-		$arrRegistMail["mailmaga_flg"] = 1;
-		break;
-	// 仮TEXT
-	case '5':
-		$arrRegistMail["mailmaga_flg"] = 2;
-		break;
-	// 仮なし
-	case '6':
-		$arrRegistMail["mailmaga_flg"] = 3;
-		break;
-	default:
-		$arrRegistMail["mailmaga_flg"] = $result;
-		break;
-	}
-
-	$objQuery->update("dtb_customer", $arrRegistMail, "email = '" .addslashes($email). "' AND del_flg = 0");
-	$objConn->query("COMMIT");
-		
-	return $secret;		// 本登録IDを返す
-}
-
-//---- 入力エラーチェック
-function lfErrorCheck($array) {
-
-	global $objConn;
-	$objErr = new SC_CheckError($array);
-
-	$objErr->doFunc(array("仮登録ID", 'id'), array("EXIST_CHECK"));
-	if (! EregI("^[[:alnum:]]+$",$array["id"] )) {
-		$objErr->arrErr["id"] = "無効なURLです。メールに記載されている本会員登録用URLを再度ご確認ください。";
-	}
-	if (! $objErr->arrErr["id"]) {
-
-		$sql = "SELECT customer_id FROM dtb_customer WHERE secret_key = ? AND status = 1 AND del_flg = 0";
-		$result = $objConn->getOne($sql, array($array["id"]));
-
-		if (! is_numeric($result)) {
-			$objErr->arrErr["id"] .= "※ 既に会員登録が完了しているか、無効なURLです。<br>";
-			return $objErr->arrErr;
-
-		}
-	}
-
-	return $objErr->arrErr;
-}
-
-//---- 正会員登録完了メール送信
-function lfSendRegistMail($registSecretKey) {
-	global $objConn;
-	global $CONF;
-
-	//-- 姓名を取得
-	$sql = "SELECT email, name01, name02 FROM dtb_customer WHERE secret_key = ?";
-	$result = $objConn->getAll($sql, array($registSecretKey));
-	$data = $result[0];
-	
-	//--　メール送信
-	$objMailText = new SC_SiteView();
-	$objMailText->assign("CONF", $CONF);
-	$objMailText->assign("name01", $data["name01"]);
-	$objMailText->assign("name02", $data["name02"]);
-	$toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl");
-	$subject = sfMakeSubject('会員登録が完了しました。');
-	$objMail = new GC_SendMail();
-
-	$objMail->setItem(
-						  ''								//　宛先
-						, $subject//"【" .$CONF["shop_name"]. "】".ENTRY_CUSTOMER_REGIST_SUBJECT 		//　サブジェクト
-						, $toCustomerMail					//　本文
-						, $CONF["email03"]					//　配送元アドレス
-						, $CONF["shop_name"]				//　配送元　名前
-						, $CONF["email03"]					//　reply_to
-						, $CONF["email04"]					//　return_path
-						, $CONF["email04"]					//  Errors_to
-					);
-	// 宛先の設定
-	$name = $data["name01"] . $data["name02"] ." 様";
-	$objMail->setTo($data["email"], $name);
-	$objMail->sendMail();
-}
-
+$objPage = new LC_Page_Regist_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: /branches/feature-module-update/html/regist/complete.php
===================================================================
--- /branches/feature-module-update/html/regist/complete.php	(revision 15080)
+++ /branches/feature-module-update/html/regist/complete.php	(revision 15215)
@@ -6,38 +6,14 @@
  */
 
+// {{{ requires
 require_once("../require.php");
+require_once(CLASS_PATH . "page_extends/regist/LC_Page_Regist_Complate_Ex.php");
 
-class LC_Page{
-	function LC_Page(){
-		$this->tpl_mainpage = 'regist/complete.tpl';
-		$this->tpl_css = URL_DIR.'css/layout/regist/complete.css';
-		$this->tpl_title = '会員登録(完了ページ)';
-	}
-}
+// }}}
+// {{{ generate page
 
-$objPage = new LC_Page();
-$objView = new SC_SiteView();
-$objQuery = new SC_Query();
-$objCampaignSess = new SC_CampaignSession();
-
-// キャンペーンからの登録の場合の処理
-if($_GET["cp"] != "") {
-	$arrCampaign= $objQuery->select("directory_name", "dtb_campaign", "campaign_id = ?", array($_GET["cp"]));
-	// キャンペーンディレクトリ名を保持
-	$dir_name = $arrCampaign[0]['directory_name'];
-} else {
-	$dir_name = "";
-}
-
-// レイアウトデザインを取得
-$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
-
-$objView->assignobj($objPage);
-// フレームを選択(キャンペーンページから遷移なら変更)
-if($objPage->dir_name != "") {
-	$objView->display(CAMPAIGN_TEMPLATE_PATH . $dir_name  . "/active/site_frame.tpl");
-	$objCampaignSess->delCampaign();
-} else {
-	$objView->display(SITE_FRAME);	
-}
+$objPage = new LC_Page_Regist_Complate_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: /branches/feature-module-update/data/class/page_extends/regist/LC_Page_Regist_Complete.php
===================================================================
--- /branches/feature-module-update/data/class/page_extends/regist/LC_Page_Regist_Complete.php	(revision 15215)
+++ /branches/feature-module-update/data/class/page_extends/regist/LC_Page_Regist_Complete.php	(revision 15215)
@@ -0,0 +1,52 @@
+<?php
+/*
+ * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/regist/LC_Page_Regist_Complate.php");
+
+/**
+ * 会員登録完了のページクラス(拡張).
+ *
+ * LC_Page_Regist_Complate をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_Regist_Complate_Ex extends LC_Page_Regist_Complate {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        parent::process();
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: /branches/feature-module-update/data/class/page_extends/regist/LC_Page_Regist_Ex.php
===================================================================
--- /branches/feature-module-update/data/class/page_extends/regist/LC_Page_Regist_Ex.php	(revision 15215)
+++ /branches/feature-module-update/data/class/page_extends/regist/LC_Page_Regist_Ex.php	(revision 15215)
@@ -0,0 +1,52 @@
+<?php
+/*
+ * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/regist/LC_Page_Regist.php");
+
+/**
+ * 会員登録のページクラス(拡張).
+ *
+ * LC_Page_Regist をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_Regist_Ex extends LC_Page_Regist {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        parent::process();
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: /branches/feature-module-update/data/class/pages/regist/LC_Page_Regist.php
===================================================================
--- /branches/feature-module-update/data/class/pages/regist/LC_Page_Regist.php	(revision 15215)
+++ /branches/feature-module-update/data/class/pages/regist/LC_Page_Regist.php	(revision 15215)
@@ -0,0 +1,236 @@
+<?php
+/*
+ * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/LC_Page.php");
+
+/**
+ * 会員登録のページクラス.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_Regist extends LC_Page {
+
+    // {{{ properties
+
+    /** ページ情報の配列 */
+    var $arrInfo;
+
+    /** 設定情報 */
+    var $CONF;
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_css = URL_DIR.'css/layout/regist/index.css';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objConn = new SC_DBConn();
+        $objQuery = new SC_Query();
+        $objView = new SC_SiteView();
+        $objSiteInfo = $objView->objSiteInfo;
+        $objCustomer = new SC_Customer();
+        $this->CONF = SC_Utils_Ex::sf_getBasisData();
+        $this->arrInfo = $objSiteInfo->data;
+
+        // キャンペーンからの登録の場合の処理
+        if($_GET["cp"] != "") {
+            $etc_val = array("cp" => $_GET['cp']);
+        }
+
+        //--　本登録完了のためにメールから接続した場合
+        if ($_GET["mode"] == "regist") {
+
+            //-- 入力チェック
+            $this->arrErr = lfErrorCheck($_GET);
+            if ($this->arrErr) {
+                $this->tpl_mainpage = 'regist/error.tpl';
+                $this->tpl_css = "/css/layout/regist/error.css";
+                $this->tpl_title = 'エラー';
+
+            } else {
+                //$this->tpl_mainpage = 'regist/complete.tpl';
+                //$this->tpl_title = ' 会員登録(完了ページ)';
+                $registSecretKey = $this->lfRegistData($_GET);			//本会員登録（フラグ変更）
+                $this->lfSendRegistMail($registSecretKey);				//本会員登録完了メール送信
+
+                // ログイン済みの状態にする。
+                $email = $objQuery->get("dtb_customer", "email", "secret_key = ?", array($registSecretKey));
+                $objCustomer->setLogin($email);
+                $this->sendRedirect($this->getLocation("./complate.php", $etc_val));
+                exit;
+            }
+
+        //--　それ以外のアクセスは無効とする
+        } else {
+            $this->arrErr["id"] = "無効なアクセスです。";
+            $this->tpl_mainpage = 'regist/error.tpl';
+            $this->tpl_css = "/css/layout/regist/error.css";
+            $this->tpl_title = 'エラー';
+
+        }
+
+        //----　ページ表示
+        $objView->assignobj($this);
+        $objView->display(SITE_FRAME);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    //---- 登録
+    function lfRegistData($array) {
+        $objQuery = new SC_Query();
+        $objConn = new SC_DBConn();
+        $this->arrInfo;
+
+        do {
+            $secret = SC_Utils_Ex::sfGetUniqRandomId("r");
+        } while( ($result = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($secret)) ) != 0);
+
+        $sql = "SELECT email FROM dtb_customer WHERE secret_key = ? AND status = 1";
+        $email = $objConn->getOne($sql, array($array["id"]));
+
+        $objConn->query("BEGIN");
+        $arrRegist["secret_key"] = $secret;	//　本登録ID発行
+        $arrRegist["status"] = 2;
+        $arrRegist["update_date"] = "NOW()";
+
+        $objQuery = new SC_Query();
+        $where = "secret_key = ? AND status = 1";
+
+        $arrRet = $objQuery->select("point", "dtb_customer", $where, array($array["id"]));
+        // 会員登録時の加算ポイント(購入時会員登録の場合は、ポイント加算）
+        $arrRegist['point'] = $arrRet[0]['point'] + addslashes($arrInfo['welcome_point']);
+
+        $objQuery->update("dtb_customer", $arrRegist, $where, array($array["id"]));
+
+        /* 購入時の自動会員登録は行わないためDEL
+        // 購入時登録の場合、その回の購入を会員購入とみなす。
+        // 会員情報の読み込み
+        $where1 = "secret_key = ? AND status = 2";
+        $customer = $objQuery->select("*", "dtb_customer", $where1, array($secret));
+        // 初回購入情報の読み込み
+        $order_temp_id = $objQuery->get("dtb_order_temp", "order_temp_id");
+        // 購入情報の更新
+        if ($order_temp_id != null) {
+            $arrCustomer['customer_id'] = $customer[0]['customer_id'];
+            $where3 = "order_temp_id = ?";
+            $objQuery->update("dtb_order_temp", $arrCustomer, $where3, array($order_temp_id));
+            $objQuery->update("dtb_order", $arrCustomer, $where3, array($order_temp_id));
+        }
+        */
+
+        $sql = "SELECT mailmaga_flg FROM dtb_customer WHERE email = ?";
+        $result = $objConn->getOne($sql, array($email));
+
+        switch($result) {
+        // 仮HTML
+        case '4':
+            $arrRegistMail["mailmaga_flg"] = 1;
+            break;
+        // 仮TEXT
+        case '5':
+            $arrRegistMail["mailmaga_flg"] = 2;
+            break;
+        // 仮なし
+        case '6':
+            $arrRegistMail["mailmaga_flg"] = 3;
+            break;
+        default:
+            $arrRegistMail["mailmaga_flg"] = $result;
+            break;
+        }
+
+        $objQuery->update("dtb_customer", $arrRegistMail, "email = '" .addslashes($email). "' AND del_flg = 0");
+        $objConn->query("COMMIT");
+
+        return $secret;		// 本登録IDを返す
+    }
+
+    //---- 入力エラーチェック
+    function lfErrorCheck($array) {
+
+        $objConn = new SC_DbConn();
+        $objErr = new SC_CheckError($array);
+
+        $objErr->doFunc(array("仮登録ID", 'id'), array("EXIST_CHECK"));
+        if (! EregI("^[[:alnum:]]+$",$array["id"] )) {
+            $objErr->arrErr["id"] = "無効なURLです。メールに記載されている本会員登録用URLを再度ご確認ください。";
+        }
+        if (! $objErr->arrErr["id"]) {
+
+            $sql = "SELECT customer_id FROM dtb_customer WHERE secret_key = ? AND status = 1 AND del_flg = 0";
+            $result = $objConn->getOne($sql, array($array["id"]));
+
+            if (! is_numeric($result)) {
+                $objErr->arrErr["id"] .= "※ 既に会員登録が完了しているか、無効なURLです。<br>";
+                return $objErr->arrErr;
+
+            }
+        }
+
+        return $objErr->arrErr;
+    }
+
+    //---- 正会員登録完了メール送信
+    function lfSendRegistMail($registSecretKey) {
+        $objConn = new SC_DbConn();
+        global $CONF;
+
+        //-- 姓名を取得
+        $sql = "SELECT email, name01, name02 FROM dtb_customer WHERE secret_key = ?";
+        $result = $objConn->getAll($sql, array($registSecretKey));
+        $data = $result[0];
+
+        //--　メール送信
+        $objMailText = new SC_SiteView();
+        $objMailText->assign("CONF", $CONF);
+        $objMailText->assign("name01", $data["name01"]);
+        $objMailText->assign("name02", $data["name02"]);
+        $toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl");
+        $subject = sfMakeSubject('会員登録が完了しました。');
+        $objMail = new GC_SendMail();
+
+        $objMail->setItem(
+                              ''								//　宛先
+                            , $subject//"【" .$CONF["shop_name"]. "】".ENTRY_CUSTOMER_REGIST_SUBJECT 		//　サブジェクト
+                            , $toCustomerMail					//　本文
+                            , $CONF["email03"]					//　配送元アドレス
+                            , $CONF["shop_name"]				//　配送元　名前
+                            , $CONF["email03"]					//　reply_to
+                            , $CONF["email04"]					//　return_path
+                            , $CONF["email04"]					//  Errors_to
+                        );
+        // 宛先の設定
+        $name = $data["name01"] . $data["name02"] ." 様";
+        $objMail->setTo($data["email"], $name);
+        $objMail->sendMail();
+    }
+}
+?>
Index: /branches/feature-module-update/data/class/pages/regist/LC_Page_Regist_Complete.php
===================================================================
--- /branches/feature-module-update/data/class/pages/regist/LC_Page_Regist_Complete.php	(revision 15215)
+++ /branches/feature-module-update/data/class/pages/regist/LC_Page_Regist_Complete.php	(revision 15215)
@@ -0,0 +1,77 @@
+<?php
+/*
+ * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/LC_Page.php");
+
+/**
+ * 会員登録完了のページクラス.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_Regist_Complete extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = 'regist/complete.tpl';
+        $this->tpl_css = URL_DIR . 'css/layout/regist/complete.css';
+        $this->tpl_title = '会員登録(完了ページ)';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objView = new SC_SiteView();
+        $objQuery = new SC_Query();
+        $objCampaignSess = new SC_CampaignSession();
+
+        // キャンペーンからの登録の場合の処理
+        if($_GET["cp"] != "") {
+            $arrCampaign= $objQuery->select("directory_name", "dtb_campaign", "campaign_id = ?", array($_GET["cp"]));
+            // キャンペーンディレクトリ名を保持
+            $dir_name = $arrCampaign[0]['directory_name'];
+        } else {
+            $dir_name = "";
+        }
+
+        // レイアウトデザインを取得
+        $helper = new SC_Helper_PageLayout_Ex();
+        $this = $helper->sfGetPageLayout($this, false, DEF_LAYOUT);
+
+        $objView->assignobj($objPage);
+        // フレームを選択(キャンペーンページから遷移なら変更)
+        if($objPage->dir_name != "") {
+            $objView->display(CAMPAIGN_TEMPLATE_PATH . $dir_name  . "/active/site_frame.tpl");
+            $objCampaignSess->delCampaign();
+        } else {
+            $objView->display(SITE_FRAME);
+        }
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
