Index: branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_News_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_News_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_News_Ex.php	(revision 15367)
@@ -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/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php");
+
+/**
+ * 新着情報 のページクラス(拡張).
+ *
+ * LC_Page_FrontParts_Bloc_News をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_News_Ex extends LC_Page_FrontParts_Bloc_News {
+
+    // }}}
+    // {{{ 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/frontparts/bloc/LC_Page_FrontParts_Bloc_Category_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Category_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Category_Ex.php	(revision 15367)
@@ -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/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php");
+
+/**
+ * カテゴリ のページクラス(拡張).
+ *
+ * LC_Page_FrontParts_Bloc_Category をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_Category_Ex extends LC_Page_FrontParts_Bloc_Category {
+
+    // }}}
+    // {{{ 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/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5_Ex.php	(revision 15367)
@@ -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/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php");
+
+/**
+ * Best5 のページクラス(拡張).
+ *
+ * LC_Page_FrontParts_Bloc_Best5 をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_Best5_Ex extends LC_Page_FrontParts_Bloc_Best5 {
+
+    // }}}
+    // {{{ 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/frontparts/bloc/LC_Page_FrontParts_Bloc_Login_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Login_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Login_Ex.php	(revision 15367)
@@ -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/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php");
+
+/**
+ * ログイン のページクラス(拡張).
+ *
+ * LC_Page_FrontParts_Bloc_Login をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_Login_Ex extends LC_Page_FrontParts_Bloc_Login {
+
+    // }}}
+    // {{{ 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/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart_Ex.php	(revision 15367)
@@ -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/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php");
+
+/**
+ * カート のページクラス(拡張).
+ *
+ * LC_Page_カート をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_Cart_Ex extends LC_Page_FrontParts_Bloc_Cart {
+
+    // }}}
+    // {{{ 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/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts_Ex.php	(revision 15367)
@@ -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/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php");
+
+/**
+ * 検索ブロック のページクラス(拡張).
+ *
+ * LC_Page_FrontParts_Bloc_SearchProducts をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_SearchProducts_Ex extends LC_Page_FrontParts_Bloc_SearchProducts {
+
+    // }}}
+    // {{{ 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/frontparts/LC_Page_FrontParts_LoginCheck_Ex.php
===================================================================
--- branches/feature-module-update/data/class/page_extends/frontparts/LC_Page_FrontParts_LoginCheck_Ex.php	(revision 15367)
+++ branches/feature-module-update/data/class/page_extends/frontparts/LC_Page_FrontParts_LoginCheck_Ex.php	(revision 15367)
@@ -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/frontparts/LC_Page_FrontParts_LoginCheck.php");
+
+/**
+ * ログインチェック のページクラス(拡張).
+ *
+ * LC_Page_FrontParts_LoginCheck をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_LoginCheck_Ex extends LC_Page_FrontParts_LoginCheck {
+
+    // }}}
+    // {{{ 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/frontparts/LC_Page_FrontParts_LoginCheck.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	(revision 15367)
@@ -0,0 +1,140 @@
+<?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_FrontParts_LoginCheck extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        // 不正なURLがPOSTされた場合はエラー表示
+        if (isset($_POST['url']) && $this->lfIsValidURL() !== true) {
+            GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
+            SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
+        }
+
+        $objCustomer = new SC_Customer();
+        // クッキー管理クラス
+        $objCookie = new SC_Cookie(COOKIE_EXPIRE);
+        // パラメータ管理クラス
+        $objFormParam = new SC_FormParam();
+        // パラメータ情報の初期化
+        $this->lfInitParam();
+        // POST値の取得
+        $objFormParam->setParam($_POST);
+
+        if (!isset($_POST['mode'])) $_POST['mode'] = "";
+
+        switch($_POST['mode']) {
+        case 'login':
+            $objFormParam->toLower('login_email');
+            $arrErr = $objFormParam->checkError();
+            $arrForm =  $objFormParam->getHashArray();
+            // クッキー保存判定
+            if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
+                $objCookie->setCookie('login_email', $_POST['login_email']);
+            } else {
+                $objCookie->setCookie('login_email', '');
+            }
+
+            if(count($arrErr) == 0) {
+                if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
+                    header("Location: " . $_POST['url']); // FIXME
+                    exit;
+                } else {
+                    $objQuery = new SC_Query;
+                    $where = "email ILIKE ? AND status = 1 AND del_flg = 0";
+                    $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
+
+                    if($ret > 0) {
+                        sfDispSiteError(TEMP_LOGIN_ERROR);
+                    } else {
+                        sfDispSiteError(SITE_LOGIN_ERROR);
+                    }
+                }
+            } else {
+                // 入力エラーの場合、元のアドレスに戻す。
+                header("Location: " . $_POST['url']);// FIXME
+                exit;
+            }
+            break;
+        case 'logout':
+            // ログイン情報の解放
+            $objCustomer->EndSession();
+            $mypage_url_search = strpos('.'.$_POST['url'], "mypage");
+            //マイページログイン中はログイン画面へ移行
+            if ($mypage_url_search == 2){
+                header("Location: /mypage/login.php");// FIXME
+            }else{
+                header("Location: " . $_POST['url']);// FIXME
+            }
+            exit;
+            break;
+        }
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    /* パラメータ情報の初期化 */
+    function lfInitParam() {
+        global $objFormParam;
+        $objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+        $objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+        $objFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+    }
+
+    /* POSTされるURLのチェック*/
+    function lfIsValidURL() {
+        $site_url  = sfIsHTTPS() ? SSL_URL : SITE_URL;
+        $check_url = trim($_POST['url']);
+
+        // ローカルドメインチェック
+        if (!preg_match("|^$site_url|", $check_url) && !preg_match("|^/|", $check_url)) {
+            return false;
+        }
+
+        // 改行コード(CR・LF)・NULLバイトチェック
+        $pattern = '/\r|\n|\0|%0D|%0A|%00/';
+        if (preg_match_all($pattern, $check_url, $matches) > 0) {
+            return false;
+        }
+
+        return true;
+    }
+}
+?>
Index: branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php	(revision 15367)
@@ -0,0 +1,92 @@
+<?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_FrontParts_Bloc_Login extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = BLOC_PATH . 'login.tpl';
+        $this->tpl_login = false;
+        $this->tpl_disable_logout = false;
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objCustomer = new SC_Customer();
+        // クッキー管理クラス
+        $objCookie = new SC_Cookie(COOKIE_EXPIRE);
+
+        // ログイン判定
+        if($objCustomer->isLoginSuccess()) {
+            $this->tpl_login = true;
+            $this->tpl_user_point = $objCustomer->getValue('point');
+            $this->tpl_name1 = $objCustomer->getValue('name01');
+            $this->tpl_name2 = $objCustomer->getValue('name02');
+        } else {
+            // クッキー判定
+            $this->tpl_login_email = $objCookie->getCookie('login_email');
+            if($this->tpl_login_email != "") {
+                $this->tpl_login_memory = "1";
+            }
+
+            // POSTされてきたIDがある場合は優先する。
+            if($_POST['login_email'] != "") {
+                $this->tpl_login_email = $_POST['login_email'];
+            }
+        }
+
+        $this->tpl_disable_logout = $this->lfCheckDisableLogout();
+        $objSubView = new SC_SiteView();
+        $objSubView->assignobj($this);
+        $objSubView->display($this->tpl_mainpage);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    function lfCheckDisableLogout() {
+        $masterData = new SC_DB_MasterData_Ex();
+        $arrDISABLE_LOGOUT = $masterData->getMasterData("mtb_disable_logout");
+        $nowpage = $_SERVER['PHP_SELF'];
+
+        foreach($arrDISABLE_LOGOUT as $val) {
+            if($nowpage == $val) {
+                return true;
+            }
+         }
+        return false;
+    }
+}
+?>
Index: branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php	(revision 15367)
@@ -0,0 +1,99 @@
+<?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_FrontParts_Bloc_Cart extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = BLOC_PATH . 'cart.tpl';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objSubView = new SC_SiteView();
+        $objCart = new SC_CartSession();
+        $objSiteInfo = new SC_SiteInfo;
+
+        if (count($_SESSION[$objCart->key]) > 0){
+            // カート情報を取得
+            $arrCartList = $objCart->getCartList();
+
+            // カート内の商品ＩＤ一覧を取得
+            $arrAllProductID = $objCart->getAllProductID();
+            // 商品が1つ以上入っている場合には商品名称を取得
+            if (count($arrAllProductID) > 0){
+                $objQuery = new SC_Query();
+                $arrVal = array();
+                $sql = "";
+                $sql = "SELECT name FROM dtb_products WHERE product_id IN ( ?";
+                $arrVal = array($arrAllProductID[0]);
+                for($i = 1 ; $i < count($arrAllProductID) ; $i++){
+                    $sql.= " ,? ";
+                    array_push($arrVal, $arrAllProductID[$i]);
+                }
+                $sql.= " )";
+
+                $arrProduct_name = $objQuery->getAll($sql, $arrVal);
+
+                foreach($arrProduct_name as $key => $val){
+                    $arrCartList[$key]['product_name'] = $val['name'];
+                }
+            }
+            // 店舗情報の取得
+            $arrInfo = $objSiteInfo->data;
+            // 購入金額合計
+            $ProductsTotal = $objCart->getAllProductsTotal($arrInfo);
+
+            // 合計個数
+            $TotalQuantity = $objCart->getTotalQuantity();
+
+            // 送料無料までの金額
+            $arrCartList[0]['ProductsTotal'] = $ProductsTotal;
+            $arrCartList[0]['TotalQuantity'] = $TotalQuantity;
+            $deliv_free = $arrInfo['free_rule'] - $ProductsTotal;
+            $arrCartList[0]['free_rule'] = $arrInfo['free_rule'];
+            $arrCartList[0]['deliv_free'] = $deliv_free;
+
+            $this->arrCartList = $arrCartList;
+        }
+
+        $objSubView->assignobj($this);
+        $objSubView->display($this->tpl_mainpage);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php	(revision 15367)
@@ -0,0 +1,68 @@
+<?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_FrontParts_Bloc_SearchProducts extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = BLOC_PATH . 'search_products.tpl';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $arrSearch = array();	// 検索項目表示用
+        $objDb = new SC_Helper_DB_Ex();
+        // 選択中のカテゴリIDを判定する
+        $this->category_id = $objDb->sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
+        // カテゴリ検索用選択リスト
+        $arrRet = $objDb->sfGetCategoryList('', true, '　');
+
+        if(is_array($arrRet)) {
+            // 文字サイズを制限する
+            foreach($arrRet as $key => $val) {
+                $arrRet[$key] = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN);
+            }
+        }
+        $this->arrCatList = $arrRet;
+
+        $objSubView = new SC_SiteView();
+        $objSubView->assignobj($this);
+        $objSubView->display($this->tpl_mainpage);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php	(revision 15367)
@@ -0,0 +1,64 @@
+<?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_FrontParts_Bloc_News extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = BLOC_PATH . 'news.tpl';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objSubView = new SC_SiteView();
+
+        //新着情報取得
+        $this->arrNews = $this->lfGetNews();
+
+        $objSubView->assignobj($this);
+        $objSubView->display($this->tpl_mainpage);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    function lfGetNews(){
+        $conn = new SC_DBConn();
+        $sql = "SELECT *, cast(substring(news_date,1,10) as date) as news_date_disp FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC";
+        $list_data = $conn->getAll($sql);
+        return $list_data;
+    }
+}
+?>
Index: branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	(revision 15367)
@@ -0,0 +1,98 @@
+<?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_FrontParts_Bloc_Category extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = BLOC_PATH . 'category.tpl';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objSubView = new SC_SiteView();
+        $objDb = new SC_Helper_DB_Ex();
+
+        // 選択中のカテゴリIDを判定する
+        $category_id = $objDb->sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
+
+        // 選択中のカテゴリID
+        $this->tpl_category_id = $category_id;
+        $this = $this->lfGetCatTree($category_id, true, $this);
+
+        $objSubView->assignobj($this);
+        $objSubView->display($this->tpl_mainpage);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    // カテゴリツリーの取得
+    function lfGetCatTree($parent_category_id, $count_check = false, $objSubPage) {
+        $objQuery = new SC_Query();
+        $objDb = new SC_Helper_DB_Ex();
+        $col = "*";
+        $from = "dtb_category left join dtb_category_total_count using (category_id)";
+        // 登録商品数のチェック
+        if($count_check) {
+            $where = "del_flg = 0 AND product_count > 0";
+        } else {
+            $where = "del_flg = 0";
+        }
+        $objQuery->setoption("ORDER BY rank DESC");
+        $arrRet = $objQuery->select($col, $from, $where);
+
+        $arrParentID = $objDb->sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $parent_category_id);
+        $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray($arrRet, 'parent_category_id', 'category_id', $arrParentID);
+        $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $parent_category_id);
+
+        $objSubPage->root_parent_id = $arrParentID[0];
+
+        $arrDispID = array_merge($arrBrothersID, $arrChildrenID);
+
+        foreach($arrRet as $key => $array) {
+            foreach($arrDispID as $val) {
+                if($array['category_id'] == $val) {
+                    $arrRet[$key]['display'] = 1;
+                    break;
+                }
+            }
+        }
+
+        $objSubPage->arrTree = $arrRet;
+        return $objSubPage;
+    }
+}
+?>
Index: branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php
===================================================================
--- branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php	(revision 15367)
+++ branches/feature-module-update/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php	(revision 15367)
@@ -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");
+
+/**
+ * Best5 のページクラス.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
+class LC_Page_FrontParts_Bloc_Best5 extends LC_Page {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = BLOC_PATH . 'best5.tpl';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $objSubView = new SC_SiteView();
+        $objSiteInfo = $objView->objSiteInfo;
+
+        // 基本情報を渡す
+        $objSiteInfo = new SC_SiteInfo();
+        $this->arrInfo = $objSiteInfo->data;
+
+        //おすすめ商品表示
+        $this->arrBestProducts = $this->lfGetRanking();
+
+        $objSubView->assignobj($this);
+        $objSubView->display($this->tpl_mainpage);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    //おすすめ商品検索
+    function lfGetRanking(){
+        $objQuery = new SC_Query();
+
+        $col = "A.*, name, price02_min, price01_min, main_list_image ";
+        $from = "dtb_best_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)";
+        $where = "status = 1";
+        $order = "rank";
+        $objQuery->setorder($order);
+
+        $arrBestProducts = $objQuery->select($col, $from, $where);
+
+        return $arrBestProducts;
+    }
+}
+?>
Index: branches/feature-module-update/html/frontparts/login_check.php
===================================================================
--- branches/feature-module-update/html/frontparts/login_check.php	(revision 15153)
+++ branches/feature-module-update/html/frontparts/login_check.php	(revision 15367)
@@ -5,96 +5,15 @@
  * http://www.lockon.co.jp/
  */
+
+// {{{ requires
 require_once("../require.php");
+require_once(CLASS_PATH . "page_extends/frontparts/LC_Page_FrontParts_LoginCheck_Ex.php");
 
-// 不正なURLがPOSTされた場合はエラー表示
-if (isset($_POST['url']) && lfIsValidURL() !== true) {
-    gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
-    sfDispSiteError(PAGE_ERROR);
-}
+// }}}
+// {{{ generate page
 
-$objCustomer = new SC_Customer();
-// クッキー管理クラス
-$objCookie = new SC_Cookie(COOKIE_EXPIRE);
-// パラメータ管理クラス
-$objFormParam = new SC_FormParam();
-// パラメータ情報の初期化
-lfInitParam();
-// POST値の取得
-$objFormParam->setParam($_POST);
-
-switch($_POST['mode']) {
-case 'login':
-	$objFormParam->toLower('login_email');
-	$arrErr = $objFormParam->checkError();
-	$arrForm =  $objFormParam->getHashArray();
-	// クッキー保存判定
-	if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
-		$objCookie->setCookie('login_email', $_POST['login_email']);
-	} else {
-		$objCookie->setCookie('login_email', '');
-	}
-	
-	if(count($arrErr) == 0) {
-		if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
-			header("Location: " . $_POST['url']);
-			exit;
-		} else {
-			$objQuery = new SC_Query;
-			$where = "email ILIKE ? AND status = 1 AND del_flg = 0";
-			$ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
-			
-			if($ret > 0) {
-				sfDispSiteError(TEMP_LOGIN_ERROR);
-			} else {
-				sfDispSiteError(SITE_LOGIN_ERROR);
-			}
-		}
-	} else {
-		// 入力エラーの場合、元のアドレスに戻す。
-		header("Location: " . $_POST['url']);
-		exit;
-	}
-	break;
-case 'logout':
-	// ログイン情報の解放
-	$objCustomer->EndSession();
-	$mypage_url_search = strpos('.'.$_POST['url'], "mypage");
-	//マイページログイン中はログイン画面へ移行
-	if ($mypage_url_search == 2){
-        header("Location: /mypage/login.php");
-	}else{
-        header("Location: " . $_POST['url']);	
-	}
-	exit;
-	break;
-}
-
-//-----------------------------------------------------------------------------------------------------------------------------------
-/* パラメータ情報の初期化 */
-function lfInitParam() {
-	global $objFormParam;
-	$objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
-	$objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
-	$objFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
-}
-
-/* POSTされるURLのチェック*/
-function lfIsValidURL() {
-    $site_url  = sfIsHTTPS() ? SSL_URL : SITE_URL;
-    $check_url = trim($_POST['url']);
-
-    // ローカルドメインチェック
-    if (!preg_match("|^$site_url|", $check_url) && !preg_match("|^/|", $check_url)) {
-        return false;
-    }
-    
-    // 改行コード(CR・LF)・NULLバイトチェック
-    $pattern = '/\r|\n|\0|%0D|%0A|%00/';
-    if (preg_match_all($pattern, $check_url, $matches) > 0) {
-        return false;
-    }
-    
-    return true;
-}
-
+$objPage = new LC_Page_FrontParts_LoginCheck_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: branches/feature-module-update/html/frontparts/bloc/cart.php
===================================================================
--- branches/feature-module-update/html/frontparts/bloc/cart.php	(revision 15080)
+++ branches/feature-module-update/html/frontparts/bloc/cart.php	(revision 15367)
@@ -5,62 +5,14 @@
  * http://www.lockon.co.jp/
  */
-class LC_CartPage {
-	function LC_CartPage() {
-		/** 必ず変更する **/
-		$this->tpl_mainpage = BLOC_PATH . 'cart.tpl';	// メイン
-	}
-}
 
-$objSubPage = new LC_CartPage();
-$objSubView = new SC_SiteView();
-$objCart = new SC_CartSession();
-$objSiteInfo = new SC_SiteInfo;
+// {{{ requires
+require_once(CLASS_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart_Ex.php");
 
-if (count($_SESSION[$objCart->key]) > 0){
-	// カート情報を取得
-	$arrCartList = $objCart->getCartList();
-	
-	// カート内の商品ＩＤ一覧を取得
-	$arrAllProductID = $objCart->getAllProductID();
-	// 商品が1つ以上入っている場合には商品名称を取得
-	if (count($arrAllProductID) > 0){
-		$objQuery = new SC_Query();
-		$arrVal = array();
-		$sql = "";
-		$sql = "SELECT name FROM dtb_products WHERE product_id IN ( ?";
-		$arrVal = array($arrAllProductID[0]);
-		for($i = 1 ; $i < count($arrAllProductID) ; $i++){
-			$sql.= " ,? ";
-			array_push($arrVal, $arrAllProductID[$i]);
-		}
-		$sql.= " )";
-		
-		$arrProduct_name = $objQuery->getAll($sql, $arrVal);
-		
-		foreach($arrProduct_name as $key => $val){
-			$arrCartList[$key]['product_name'] = $val['name'];
-		}
-	}
-	// 店舗情報の取得
-	$arrInfo = $objSiteInfo->data;
-	// 購入金額合計
-	$ProductsTotal = $objCart->getAllProductsTotal($arrInfo);
-	
-	// 合計個数
-	$TotalQuantity = $objCart->getTotalQuantity();
-	
-	// 送料無料までの金額
-	$arrCartList[0]['ProductsTotal'] = $ProductsTotal;
-	$arrCartList[0]['TotalQuantity'] = $TotalQuantity;
-	$deliv_free = $arrInfo['free_rule'] - $ProductsTotal;
-	$arrCartList[0]['free_rule'] = $arrInfo['free_rule'];
-	$arrCartList[0]['deliv_free'] = $deliv_free;
-	
-	$objSubPage->arrCartList = $arrCartList;
-}
+// }}}
+// {{{ generate page
 
-$objSubView->assignobj($objSubPage);
-$objSubView->display($objSubPage->tpl_mainpage);
-//-----------------------------------------------------------------------------------------------------------------------------------
-
+$objPage = new LC_Page_FrontParts_BLoc_Cart_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: branches/feature-module-update/html/frontparts/bloc/news.php
===================================================================
--- branches/feature-module-update/html/frontparts/bloc/news.php	(revision 15080)
+++ branches/feature-module-update/html/frontparts/bloc/news.php	(revision 15367)
@@ -5,25 +5,13 @@
  * http://www.lockon.co.jp/
  */
-class LC_NewsPage {
-	function LC_NewsPage() {
-		/** 必ず変更する **/
-		$this->tpl_mainpage = BLOC_PATH . 'news.tpl';	// メイン
-	}
-}
+// {{{ requires
+require_once(CLASS_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_News_Ex.php");
 
-$objSubPage = new LC_NewsPage();
-$objSubView = new SC_SiteView();
+// }}}
+// {{{ generate page
 
-//新着情報取得
-$objSubPage->arrNews = lfGetNews();
-
-$objSubView->assignobj($objSubPage);
-$objSubView->display($objSubPage->tpl_mainpage);
-//-----------------------------------------------------------------------------------------------------------------------------------
-function lfGetNews(){
-	$conn = new SC_DBConn();
-	$sql = "SELECT *, cast(substring(news_date,1,10) as date) as news_date_disp FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC";
-	$list_data = $conn->getAll($sql);
-	return $list_data;	
-}
+$objPage = new LC_Page_FrontParts_BLoc_News_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: branches/feature-module-update/html/frontparts/bloc/category.php
===================================================================
--- branches/feature-module-update/html/frontparts/bloc/category.php	(revision 15152)
+++ branches/feature-module-update/html/frontparts/bloc/category.php	(revision 15367)
@@ -5,57 +5,14 @@
  * http://www.lockon.co.jp/
  */
-class LC_CatPage {
-    function LC_CatPage() {
-        /** 必ず変更する **/
-        $this->tpl_mainpage = BLOC_PATH . 'category.tpl';	// メイン
-    }
-}
 
-$objSubPage = new LC_CatPage();
-$objSubView = new SC_SiteView();
+// {{{ requires
+require_once(CLASS_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Category_Ex.php");
 
-// 選択中のカテゴリIDを判定する
-$category_id = SC_Utils::sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
+// }}}
+// {{{ generate page
 
-// 選択中のカテゴリID
-$objSubPage->tpl_category_id = $category_id;
-$objSubPage = lfGetCatTree($category_id, true, $objSubPage);
-
-$objSubView->assignobj($objSubPage);
-$objSubView->display($objSubPage->tpl_mainpage);
-//-----------------------------------------------------------------------------------------------------------------------------------
-// カテゴリツリーの取得
-function lfGetCatTree($parent_category_id, $count_check = false, $objSubPage) {
-    $objQuery = new SC_Query();
-    $col = "*";
-    $from = "dtb_category left join dtb_category_total_count using (category_id)";
-    // 登録商品数のチェック
-    if($count_check) {
-        $where = "del_flg = 0 AND product_count > 0";
-    } else {
-        $where = "del_flg = 0";
-    }
-    $objQuery->setoption("ORDER BY rank DESC");
-    $arrRet = $objQuery->select($col, $from, $where);
-
-    $arrParentID = SC_Utils_Ex::sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $parent_category_id);
-    $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray($arrRet, 'parent_category_id', 'category_id', $arrParentID);
-    $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $parent_category_id);
-
-    $objSubPage->root_parent_id = $arrParentID[0];
-
-    $arrDispID = array_merge($arrBrothersID, $arrChildrenID);
-
-    foreach($arrRet as $key => $array) {
-        foreach($arrDispID as $val) {
-            if($array['category_id'] == $val) {
-                $arrRet[$key]['display'] = 1;
-                break;
-            }
-        }
-    }
-
-    $objSubPage->arrTree = $arrRet;
-    return $objSubPage;
-}
+$objPage = new LC_Page_FrontParts_BLoc_Category_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: branches/feature-module-update/html/frontparts/bloc/best5.php
===================================================================
--- branches/feature-module-update/html/frontparts/bloc/best5.php	(revision 15080)
+++ branches/feature-module-update/html/frontparts/bloc/best5.php	(revision 15367)
@@ -5,39 +5,14 @@
  * http://www.lockon.co.jp/
  */
-class LC_Best5Page {
-	function LC_Best5Page() {
-		/** 必ず変更する **/
-		$this->tpl_mainpage = BLOC_PATH . 'best5.tpl';	// メイン
-	}
-}
 
-$objSubPage = new LC_Best5Page();
-$objSubView = new SC_SiteView();
-$objSiteInfo = $objView->objSiteInfo;
+// {{{ requires
+require_once(CLASS_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5_Ex.php");
 
-// 基本情報を渡す
-$objSiteInfo = new SC_SiteInfo();
-$objSubPage->arrInfo = $objSiteInfo->data;
+// }}}
+// {{{ generate page
 
-//おすすめ商品表示
-$objSubPage->arrBestProducts = lfGetRanking();
-
-$objSubView->assignobj($objSubPage);
-$objSubView->display($objSubPage->tpl_mainpage);
-//-----------------------------------------------------------------------------------------------------------------------------------
-//おすすめ商品検索
-function lfGetRanking(){
-	$objQuery = new SC_Query();
-	
-	$col = "A.*, name, price02_min, price01_min, main_list_image ";
-	$from = "dtb_best_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)";
-	$where = "status = 1";
-	$order = "rank";
-	$objQuery->setorder($order);
-	
-	$arrBestProducts = $objQuery->select($col, $from, $where);
-		
-	return $arrBestProducts;
-}
-
+$objPage = new LC_Page_FrontParts_BLoc_Best5_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: branches/feature-module-update/html/frontparts/bloc/login.php
===================================================================
--- branches/feature-module-update/html/frontparts/bloc/login.php	(revision 15080)
+++ branches/feature-module-update/html/frontparts/bloc/login.php	(revision 15367)
@@ -5,54 +5,14 @@
  * http://www.lockon.co.jp/
  */
-class LC_LoginPage {
-	var $tpl_login_email;
-	function LC_LoginPage() {
-		/** 必ず変更する **/
-		$this->tpl_mainpage = BLOC_PATH . 'login.tpl';	// メイン
-		$this->tpl_login = false;
-		$this->tpl_disable_logout = false;
-	}
-}
 
-$objSubPage = new LC_LoginPage();
-$objCustomer = new SC_Customer();
-// クッキー管理クラス
-$objCookie = new SC_Cookie(COOKIE_EXPIRE);
+// {{{ requires
+require_once(CLASS_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Login_Ex.php");
 
-// ログイン判定
-if($objCustomer->isLoginSuccess()) {
-	$objSubPage->tpl_login = true;
-	$objSubPage->tpl_user_point = $objCustomer->getValue('point');
-	$objSubPage->tpl_name1 = $objCustomer->getValue('name01');
-	$objSubPage->tpl_name2 = $objCustomer->getValue('name02');
-} else {
-	// クッキー判定
-	$objSubPage->tpl_login_email = $objCookie->getCookie('login_email');
-	if($objSubPage->tpl_login_email != "") {
-		$objSubPage->tpl_login_memory = "1";
-	}
-	
-	// POSTされてきたIDがある場合は優先する。
-	if($_POST['login_email'] != "") {
-		$objSubPage->tpl_login_email = $_POST['login_email'];
-	}
-}
+// }}}
+// {{{ generate page
 
-$objSubPage->tpl_disable_logout = lfCheckDisableLogout();
-$objSubView = new SC_SiteView();
-$objSubView->assignobj($objSubPage);
-$objSubView->display($objSubPage->tpl_mainpage);
-//-----------------------------------------------------------------------------------------------------------------------------------
-function lfCheckDisableLogout() {
-	global $arrDISABLE_LOGOUT;
-	
-	$nowpage = $_SERVER['PHP_SELF'];
-	
-	foreach($arrDISABLE_LOGOUT as $val) {
-		if($nowpage == $val) {
-			return true;
-		}
- 	}
-	return false;
-}
+$objPage = new LC_Page_FrontParts_BLoc_Login_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
Index: branches/feature-module-update/html/frontparts/bloc/search_products.php
===================================================================
--- branches/feature-module-update/html/frontparts/bloc/search_products.php	(revision 15152)
+++ branches/feature-module-update/html/frontparts/bloc/search_products.php	(revision 15367)
@@ -5,30 +5,13 @@
  * http://www.lockon.co.jp/
  */
-class LC_SearchProductsPage {
-    function LC_SearchProductsPage() {
-        /** 必ず変更する **/
-        $this->tpl_mainpage = BLOC_PATH . 'search_products.tpl';	// メイン
-    }
-}
+// {{{ requires
+require_once(CLASS_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts_Ex.php");
 
-$objSubPage = new LC_SearchProductsPage();
-$arrSearch = array();	// 検索項目表示用
+// }}}
+// {{{ generate page
 
-// 選択中のカテゴリIDを判定する
-$objSubPage->category_id = SC_Utils_Ex::sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
-// カテゴリ検索用選択リスト
-$arrRet = SC_Utils_Ex::sfGetCategoryList('', true, '　');
-
-if(is_array($arrRet)) {
-    // 文字サイズを制限する
-    foreach($arrRet as $key => $val) {
-        $arrRet[$key] = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN);
-    }
-}
-$objSubPage->arrCatList = $arrRet;
-
-$objSubView = new SC_SiteView();
-$objSubView->assignobj($objSubPage);
-$objSubView->display($objSubPage->tpl_mainpage);
-//-----------------------------------------------------------------------------------------------------------------------------------
+$objPage = new LC_Page_FrontParts_BLoc_SearchProducts_Ex();
+$objPage->init();
+$objPage->process();
+register_shutdown_function(array($objPage, "destroy"));
 ?>
