Index: /branches/version-2_5-dev/html/user_data/plugins/plugins.xml
===================================================================
--- /branches/version-2_5-dev/html/user_data/plugins/plugins.xml	(revision 18370)
+++ /branches/version-2_5-dev/html/user_data/plugins/plugins.xml	(revision 19661)
@@ -1,3 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <plugins>
+  <plugin>
+    <name>レコメンド</name>
+    <path>recommend</path>
+  </plugin>
 </plugins>
Index: /branches/version-2_5-dev/html/admin/system/plugin.php
===================================================================
--- /branches/version-2_5-dev/html/admin/system/plugin.php	(revision 19661)
+++ /branches/version-2_5-dev/html/admin/system/plugin.php	(revision 19661)
@@ -0,0 +1,35 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once '../require.php';
+require_once CLASS_EX_PATH . 'page_extends/admin/system/LC_Page_Admin_System_Plugin_Ex.php';
+
+// }}}
+// {{{ generate page
+
+$objPage = new LC_Page_Admin_System_Plugin_Ex();
+register_shutdown_function(array($objPage, 'destroy'));
+$objPage->init();
+$objPage->process();
+?>
Index: /branches/version-2_5-dev/html/admin/index.php
===================================================================
--- /branches/version-2_5-dev/html/admin/index.php	(revision 18701)
+++ /branches/version-2_5-dev/html/admin/index.php	(revision 19661)
@@ -23,10 +23,10 @@
 // {{{ requires
 require_once './require.php';
-require_once CLASS_EX_PATH . 'page_extends/admin/LC_Page_Admin_Ex.php';
+require_once CLASS_EX_PATH . 'page_extends/admin/LC_Page_Admin_Index_Ex.php';
 
 // }}}
 // {{{ generate page
 
-$objPage = new LC_Page_Admin_Ex();
+$objPage = new LC_Page_Admin_Index_Ex();
 register_shutdown_function(array($objPage, 'destroy'));
 $objPage->init();
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/table.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/table.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/table.css	(revision 19661)
@@ -0,0 +1,470 @@
+@charset "utf-8";
+
+/* テーブル(リスト)
+----------------------------------------------- */
+ul {
+background: #fff;
+border: 1px solid #B4B4B4;
+font: bold 17px 'Helvetica-Bold';
+padding: 0;   
+margin: 10px 0;
+text-align: left;
+-webkit-border-radius: 8px;
+}
+ul li {
+color: #999999;
+border-top: 1px solid #B4B4B4;
+list-style-type: none;
+padding: 7px 10px 7px 10px;
+}
+li:first-child {
+border-top: 0;
+-webkit-border-top-left-radius: 8px;
+-webkit-border-top-right-radius: 8px;
+}
+li:last-child {
+-webkit-border-bottom-left-radius: 8px;
+-webkit-border-bottom-right-radius: 8px;
+}
+
+/* テーブル（リスト）上のリンク
+----------------------------------------------- */
+ul li a, li.img a + a {
+color: #000;
+text-decoration: none;
+text-overflow: ellipsis;
+white-space: nowrap;
+overflow: hidden;
+display: block;
+padding: 12px 10px 12px 10px;
+margin: -10px;
+}
+ul li.img a + a {
+margin: -10px 10px -20px -5px;
+font-size: 17px;
+font-weight: bold;
+}
+ul li.img a + a + a {
+font-size: 14px;
+font-weight: normal;
+margin-left: -10px;
+margin-bottom: -10px;
+margin-top: 0;
+}
+ul li.img a + small + a {
+margin-left: -5px;
+}
+ul li.img a + small + a + a {
+margin-left: -10px;
+margin-top: -20px;
+margin-bottom: -10px;
+font-size: 14px;
+font-weight: normal;
+}
+ul li.img a + small + a + a + a {
+margin-left: 0px !important;
+margin-bottom: 0;
+}
+ul li a + a {
+color: #000;
+font: 14px 'Helvetica';
+text-overflow: ellipsis;
+white-space: nowrap;
+overflow: hidden;
+display: block;
+margin: 0;
+padding: 0;
+}
+ul li a + a + a, ul li.img a + a + a + a, ul li.img a + small + a + a + a {
+color: #666;
+font: 13px 'Helvetica';
+margin: 0;
+text-overflow: ellipsis;
+white-space: nowrap;
+overflow: hidden;
+display: block;
+padding: 0;
+}
+
+/* table角丸(共通)
+----------------------------------------------- */
+table {
+width: 100%;
+max-width: 280px;
+margin: 10px 0;
+text-align: center;
+vertical-align: middle;
+border-collapse: collapse;
+border-spacing: 0;
+-webkit-border-radius: 8px;
+-webkit-box-shadow: 0 0 4px #000000;
+}
+table tr {
+border-bottom: solid 1px #cccccc;
+-webkit-border-radius: 8px;
+}
+table > tr:last-child,
+table > tbody > tr:last-child {
+border-bottom: none;
+}
+table th, 
+table td {
+margin: 0;
+max-width: 200px;
+height: 2em;
+background-color: #ffffff;
+border: none;
+-webkit-border-radius: 0;
+}
+table th {
+background-color: #f0f0f0;
+}
+table td {
+background-color: #ffffff;
+}
+table tr:first-of-type th:first-child,
+table tr:first-of-type td:first-child {
+-webkit-border-top-left-radius: inherit;
+}
+table tr:first-of-type th:last-child,
+table tr:first-of-type td:last-child {
+-webkit-border-top-right-radius: inherit;
+}
+table tr:last-of-type th:first-child,
+table tr:last-of-type td:first-child {
+-webkit-border-bottom-left-radius: inherit;
+}
+table tr:last-of-type th:last-child,
+table tr:last-of-type td:last-child {
+-webkit-border-bottom-right-radius: inherit;
+}
+table > thead tr:last-of-type th:first-child,
+table > thead tr:last-of-type td:first-child,
+table > thead tr:last-of-type th:last-child,
+table > thead tr:last-of-type td:last-child {
+-webkit-border-bottom-left-radius: 0;
+-webkit-border-bottom-right-radius: 0;
+}
+table > thead + tbody > tr:first-of-type th:first-child,
+table > thead + tbody > tr:first-of-type td:first-child,
+table > thead + tbody > tr:first-of-type th:last-child,
+table > thead + tbody > tr:first-of-type td:last-child {
+-webkit-border-top-left-radius: 0;
+-webkit-border-top-right-radius: 0;
+}
+
+/* テーブル（div）共通？
+----------------------------------------------- */
+#block {
+width: 100%;
+background-color: #ffffff;
+-webkit-border-radius: 8px;
+-webkit-box-shadow: 0px 0px 4px #000000;
+margin: 10px 0;
+}
+.box-wrap {
+display:inline-block;
+width: 100%;
+border-top: 1px solid #cccccc;
+}
+.box-wrap:first-child {
+border-top: none;
+-webkit-border-top-left-radius: 8px;
+-webkit-border-top-right-radius: 8px;
+}
+.box-wrap:last-child {
+-webkit-border-bottom-left-radius: 8px;
+-webkit-border-bottom-right-radius: 8px;
+}
+.box-photo {
+float:left;
+display:block;
+margin-left: 10px;
+margin-right: 10px;
+position: relative;
+}
+.box-data {
+display:block;
+margin: 0px 8px;
+text-align: left;
+}
+.box-data h3 {
+margin: 0px;
+white-space: nowrap;
+overflow: hidden;
+text-overflow: ellipsis;
+-webkit-text-overflow: ellipsis;
+}
+.box-data h3 a {
+font-size: 18px;
+text-decoration: none;
+}
+.description, .box-comment {
+font: bold 14px Osaka;
+line-height: 1.5em;
+white-space: nowrap;
+overflow: hidden;
+text-overflow: ellipsis;
+-webkit-text-overflow: ellipsis;
+}
+.price, .box-price {
+color: #993333;
+font: bold 14px Osaka;
+line-height: 1.5em;
+}
+
+/* テーブル（div）(recomend、関連商品)
+----------------------------------------------- */
+.recomendblock,
+.whoboughtblock{
+margin-top: 0;
+margin-bottom: 0;
+}
+.recomendblock > div ,
+.whoboughtblock > div {
+margin-top: 0;
+margin-bottom: 0;
+-webkit-border-radius: 0;
+}
+.recomendblock > div,
+.whoboughtblock > div {
+width: 100%;
+display:inline-block;
+background-color: #ffffff;
+border-bottom: 1px solid #cccccc;
+padding: 0.1em 0;
+}
+.recomendblock > div > a,
+.recomendblock > div > div ,
+.whoboughtblock > div > a,
+.whoboughtblock > div > div{
+float: left;
+}
+.recomendblock:first-of-type > div:first-of-type ,
+.whoboughtblock:first-of-type > div:first-of-type {
+-webkit-border-top-left-radius: 8px;
+-webkit-border-top-right-radius: 8px;
+}
+.recomendblock:last-of-type > div:last-of-type ,
+.whoboughtblock:last-of-type > div:last-of-type {
+border-bottom: none;
+-webkit-border-bottom-left-radius: 8px;
+-webkit-border-bottom-right-radius: 8px;
+}
+.recomendrightblock, 
+.whoboughtrightblock{
+width: 63%;
+}
+.recomendrightblock > h3,
+.recomendrightblock > p,
+.whoboughtrightblock > h3,
+.whoboughtrightblock > p{
+    margin-top: 0;
+    margin-bottom: 0;
+}
+.recomendblock img,
+.whoboughtblock img,
+.listphoto {
+float:left;
+display:block;
+margin: 3px 10px;
+position: relative;
+}
+.recommend-photo img,
+.listphoto img {
+width: 80px;
+}
+.recommend-box h3 {
+font-weight: bold;
+font-size: 15px;
+font-family: helvetica;
+margin: 0.4em 0 0;
+white-space: nowrap;
+overflow: hidden;
+text-overflow: ellipsis;
+-webkit-text-overflow: ellipsis;
+}
+.recommend-box h3 a {
+font-size: 18px;
+text-decoration: none;
+}
+.description,
+.recommend-comment {
+font-weight: normal;
+font-size: 14px;
+font-family: Osaka;
+line-height: 1.5em;
+white-space: nowrap;
+overflow: hidden;
+text-overflow: ellipsis;
+-webkit-text-overflow: ellipsis;
+margin: 0;
+}
+.price,
+.recommend-price {
+color: #993333;
+font-weight: bold;
+font-size: 17px;
+font-family: Osaka;
+line-height: 1.5em;
+margin-bottom: 0.3em;
+}
+
+/* アイテムリスト(div)の処理
+----------------------------------------------- */
+.listarea {
+width: 100%;
+background-color: #ffffff;
+border-bottom: solid 1px #CCC;
+margin: 0;
+margin-top: 0;
+margin-bottom: 0;
+-webkit-border-radius: 0;
+-webkit-box-shadow: none;
+}
+#page_navi_top + .listarea{
+margin-bottom: 0;
+-webkit-border-top-left-radius: 8px;
+-webkit-border-top-right-radius: 8px;
+}
+.listarea:last-of-type{
+border: none;
+-webkit-border-bottom-left-radius: 8px;
+-webkit-border-bottom-right-radius: 8px;
+}
+.listrightblock > ul {
+    border: none;
+    background-color: transparent;
+}
+.listrightblock > h3,
+.listrightblock > p,
+.listrightblock > ul {
+    margin-top: 0;
+    margin-bottom: 0.1em;
+}
+.listrightblock > h3:first-child,
+.listrightblock > p:first-child,
+.listrightblock > ul:first-child,
+margin-top: 0;
+}
+.listrightblock > ul > li {
+margin: 0;
+padding: 0 3px 0 0;
+}
+.listrightblock > h3:last-child,
+.listrightblock > p:last-child {
+margin-bottom: 0;
+}
+
+.newitem-line-list .newitem-box-wrap-end {
+border-bottom: 1px solid #cccccc;
+}
+
+/* 商品検索結果
+----------------------------------------------- */
+#page_navi_top,
+#page_navi_bottom {
+border: none;
+-webkit-box-shadow: none;
+clear: both;
+width: 100%;
+border-spacing: 0 0;
+border-collapse: collapse;
+}
+#page_navi_top tr,
+#page_navi_bottom tr {
+width: 100%;
+}
+#page_navi_top td,
+#page_navi_bottom td {
+text-align: left;
+background-color: transparent;
+}
+
+.change a,
+.change strong {
+display: block;
+float: left;
+margin: 5px 0px;
+padding: 0.3em 0;
+color: #ffffff;
+width: 49.6%;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+background-color: #666666;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+text-align:center;
+vertical-align: middle;
+text-decoration: none;
+border-left: solid 1px #666666;
+}
+.change > a:first-child,
+.change > strong:first-child {
+border-left: none;
+-webkit-border-top-left-radius: 4px;
+-webkit-border-bottom-left-radius: 4px;
+}
+.change > a:last-child,
+.change > strong:last-child{
+margin-left: 1px;
+-webkit-border-top-right-radius: 4px;
+-webkit-border-bottom-right-radius: 4px;
+}
+.change select {
+margin-right: 0;
+}
+
+/* テーブル・カゴ
+----------------------------------------------- */
+table[summary="商品情報"] tr:nth-child(even) td{
+background-color: #ffffff;
+}
+table[summary="商品情報"] tr:nth-child(odd) td{
+background-color: #f0f0f0;
+text-align: left;
+}
+
+table[summary="商品情報"] td{
+
+text-align: center;
+vertical-align: middle;
+max-width: 200px;
+}
+table[summary="商品情報"] tr:nth-child(even) td:first-child{
+width: 38%;
+font-size: 13px;
+}
+table[summary="商品情報"] tr:nth-child(even) td:last-child{
+width: 38%;
+overflow: visible;
+}
+table[summary="商品情報"] ul,
+table[summary="商品情報"] ul li,
+table[summary="商品情報"] ul li a {
+display: inline;
+margin: 0;
+padding: 0;
+border: none;
+}
+table[summary="商品情報"] ul li a{
+display: inline-block;
+margin: 7px;
+}
+table[summary="商品情報"] tr:nth-last-of-type(1) td,
+table[summary="商品情報"] tr:nth-last-of-type(2) td,
+table[summary="商品情報"] tr:nth-last-of-type(3) td {
+background-color: #ffffff;
+text-align: center;
+}
+
+/* テーブル・商品詳細
+----------------------------------------------- */
+#detailrightblock table th {
+font-size: 15px;
+font-weight: normal;
+}
+
+/* お問い合わせ
+----------------------------------------------- */
+#undercolumn_contact table td {
+text-align: left;
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/common.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/common.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/common.css	(revision 19661)
@@ -0,0 +1,394 @@
+@charset "utf-8";
+
+/* body
+----------------------------------------------- */
+body {
+background: rgb(197,204,211) url(../img/common/stripes.png);
+background-position: 50% 0% fixed;
+font-family: helvetica, Osaka;
+font-size: large;
+margin: 0px 3.13% 10px;
+padding: 0px;
+-webkit-user-select: none;
+-webkit-text-size-adjust: none;
+-webkit-tap-highlight-color: rgba(51,102,204,0.70);
+max-width: 100%;
+}
+
+/* HTML default
+----------------------------------------------- */
+a {
+	color: #5B87A4;
+	text-decoration: none;
+}
+form {
+	margin: 0;
+	padding: 0;
+}
+table,img,p {
+	border: 0;
+}
+em {
+	font-weight: bold;
+	font-style: normal;
+	color: #C00;
+}
+hr {
+	display: none;
+}
+p {
+	margin: 0 0 1em;
+	padding: 0;
+}
+li {
+list-style-type: none;
+}
+img {
+vertical-align: bottom;
+}
+.hidden {
+	display: none;
+}
+br.clear {
+clear: both;
+display: none;
+font-size: 0px;
+line-height: 0%;
+height: 0px
+}
+
+/* クリアフィックス
+----------------------------------------------- */
+#block-login:after,
+.block-center:after,
+.listarea:after,
+.recomendblock > div 
+.whoboughtblock > div {
+content: "";
+display: block;
+height: 0;
+clear: both;
+visibility: hidden;
+}
+
+/* font
+----------------------------------------------- */
+h1,h2,h3,h4,h5 {
+font-size: 100%;
+line-height: 150%;
+}
+.price { color: #ff0000; font-weight: bold; }
+.attention { color: #ff0000; }
+.mini { font-size: 80%; }
+
+/* wrapper
+----------------------------------------------- */
+div#wrapper {
+margin: 0 auto;
+padding: 0;
+text-align: left;
+background: #FFFFFF;
+overflow: hidden;
+}
+
+/* 見出し (h2)
+----------------------------------------------- */
+h2 {
+color:#4D576B;
+font: bold 22px helvetica;
+background-color: transparent;
+text-shadow: 0px 1px 1px #ffffff;
+margin: 10px 0px;
+}
+
+/* 見出し (h3)
+----------------------------------------------- */
+#mycontentsarea h3 {
+color:#4D576B;
+font: bold 19px helvetica;
+text-shadow: 0px 1px 1px #ffffff;
+}
+
+/* ナビゲーションバー・ページタイトル
+----------------------------------------------- */
+#navigation_bar,
+h2.title,
+.title-undercolumn,
+.title-under02column,
+#title-list,
+.title-mypagecolumn,
+#windowarea h2,
+#pan + h2 {
+display: inline-block;
+width: 106.8%;
+margin: 0 0 1em -3.4%;
+color: #ffffff;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+font: bold 17px helvetica;
+padding: 0.45em 0;
+background-color: #333332;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+border-top: 1px solid rgba(255,255,255,0.3);
+border-bottom: 1px solid rgba(0,0,0,1);
+text-align:center;
+vertical-align: middle;
+white-space: nowrap;
+overflow: hidden;
+text-overflow: ellipsis;
+}
+
+/* ページタイトル
+----------------------------------------------- */
+#navigation_bar > h2{
+font: bold 17px helvetica;
+color: #ffffff;
+vertical-align: middle;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+margin: 0;
+display: inline-block;
+max-width: 65%;
+white-space: nowrap;
+overflow: hidden;
+text-overflow: ellipsis;
+-webkit-text-overflow: ellipsis;
+}
+
+/* header
+----------------------------------------------- */
+/* information
+----------------------------------------------- */
+/* navigation
+----------------------------------------------- */
+/* フレーム
+----------------------------------------------- */
+/* contents
+----------------------------------------------- */
+
+/* footer
+----------------------------------------------- */
+#pagetop {
+width: 100%;
+margin: 25px 0 0;
+text-align: right;
+}
+#pagetop a{
+color:#4D576B;
+font: bold 13px helvetica;
+text-shadow: 0px 1px 1px #ffffff;
+text-decoration: underline;
+}
+div#footer {
+margin: 0;
+padding: 0;
+text-align: center;
+}
+
+/* footer information
+----------------------------------------------- */
+#footer-menu {
+text-align: left;
+font: bold 15px helvetica;
+}
+#footer-menu li{
+background: #ffffff url(../img/common/chevron.png) no-repeat right center;
+}
+#footer-navi {
+float:left;
+list-style:none outside none;
+margin: 0 auto 4px;
+padding: 0 0 0 5px;
+text-align:center;
+width: 100%;
+border: none;
+background-color: transparent;
+}
+#footer-navi > li{
+display: inline;
+color:#4D576B;
+font: bold 12px helvetica;
+background-color: transparent;
+text-shadow: 0px 1px 1px #ffffff;
+border: none;
+border-right: 1px dotted #999999;
+-webkit-border-radius: 0;
+line-height: 1em;
+margin: 0;
+padding: 0;
+}
+#footer-navi > li:last-child{
+border-right: none;
+}
+#footer-navi > li > a {
+margin: 0;
+padding: 0;
+display: inline;
+color:#4D576B;
+}
+#copyright {
+margin: 7px 0px;
+color: #4D576B;
+font: bold 17px helvetica;
+text-shadow: 0px 1px 1px #ffffff;
+text-align: center;
+}
+#copyright a{
+color: #4D576B;
+text-decoration: under-line;
+}
+
+/* ニュース
+----------------------------------------------- */
+/* おすすめ
+----------------------------------------------- */
+
+/* panlist
+----------------------------------------------- */
+div#pan {
+display: none;
+}
+
+/* error
+----------------------------------------*/
+
+/* フォーム
+----------------------------------------------- */
+input[size="40"] {
+width: 60%;
+}
+input[type="password"] {
+width: 60%;
+}
+input[type="tel"] {
+width: 3.6em;
+}
+input, tr, th, td {
+max-width: 93.8%;
+}
+input {
+font-size: large;
+}
+textarea{
+font-size: 14px;
+width: 95%;
+}
+form dl{
+font: bold 17px helvetica;
+margin: 10px 0;
+}
+form dt{
+margin: 5px 0;
+color:#4D576B;
+font: bold 17px helvetica;
+background-color: transparent;
+text-shadow: 0px 1px 1px #ffffff;
+border: none;
+}
+form dd{
+margin:0;
+background-color: rgba(255,255,255,0.3);
+color: #999999;
+border: 2px dotted #B4B4B4;
+list-style-type: none;
+padding: 10px 7px;
+-webkit-border-radius: 8px;
+}
+
+body, p,
+table, thead, tbody, th, td {
+word-break: break-all;
+}
+table, thead, tbody {
+white-space: normal;
+overflow: hidden;
+}
+
+/* プライバシーポリシー
+----------------------------------------------- */
+ol {
+padding-start:0;
+-o-padding-start:0; 
+-moz-padding-start:0;
+-webkit-padding-start:0;
+margin: 1em 3.13%;
+}
+ol > li.privacy_ol{
+margin: 1em;
+}
+ol > li.privacy_ol > strong{
+color:#4D576B;
+font: bold 17px helvetica;
+text-shadow: 0px 1px 1px #ffffff;
+line-height: 2em;
+}
+
+/* 特定商取引に基づく表記
+----------------------------------------------- */
+#undercolumn_order dl{
+margin: 0;
+}
+#undercolumn_order dt{
+color:#4D576B;
+font: bold 17px helvetica;
+text-shadow: 0px 1px 1px #ffffff;
+line-height: 2em;
+}
+#undercolumn_order dd,
+#undercolumn_order ul {
+padding-start:0;
+-o-padding-start:0; 
+-moz-padding-start:0;
+-webkit-padding-start:0;
+margin: 0 3.13%;
+}
+
+/* マイページ
+----------------------------------------------- */
+#welcome-message {
+color: #4D576B;
+text-shadow: 0px 1px 1px #ffffff;
+}
+.your-point {
+display: inline-block;
+padding: 0.1em;
+text-align: right;
+color: #ffffff;
+width: 100%;
+background-color: rgba(0,0,0,0.3);
+margin-bottom: 5px;
+}
+.your-point em {
+text-shadow: 0 0 2px #ffffff;
+}
+#btn-mypagetop {
+width: 100%;
+text-align: left;
+-webkit-border-radius: 8px;
+background: #ffffff url(../img/common/chevron.png) no-repeat right center;
+border: solid 1px #cccccc;
+margin: 10px 0;
+}
+#btn-mypagetop a {
+display: inline-block;
+margin: 7px 3.3%;
+width: 93%;
+color: black;
+text-decoration: none;
+font: bold 15px helvetica;
+}
+
+/* マイページ・購入履歴
+----------------------------------------------- */
+table[summary="購入履歴"] td:first-child {
+width: 20%;
+text-align: center;
+}
+table[summary="購入履歴"] tr[onclick] td:last-child {
+background: #ffffff url(../img/common/chevron.png) no-repeat right center;
+}
+table[summary="お届け先の指定"] td:nth-child(2),
+table[summary="購入履歴"] tr[onclick] td:last-child {
+text-align: left;
+}
+
+/* 商品詳細
+----------------------------------------------- */
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/wreckage.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/wreckage.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/wreckage.css	(revision 19661)
@@ -0,0 +1,44 @@
+@charset "utf-8";
+
+/*PHOTO*/
+.picture {
+    border: 1px solid #ccc;
+}
+.center {
+	text-align: center;
+}
+
+/* テーブル共通指定
+----------------------------------------------- */
+div.tblareabtn {
+    clear: both;
+    margin: 15px 0 0 0;
+    text-align: center;
+}
+div.tblareabtn img {
+    vertical-align: baseline;
+}
+.phototd {
+    width: 75px;
+    text-align: center;
+}
+.centertd {
+    text-align: center;
+}
+.pricetd {
+    text-align: right;
+}
+.pricetd em {
+    font-weight: bold;
+}
+div#completetext {
+    margin: 15px auto 0 auto;
+    padding: 15px;
+}
+div#completetext em {
+    font-weight: bold;
+}
+div#completetext p{
+    padding: 20px 0 0 0;
+    text-align: left;
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/import.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/import.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/import.css	(revision 19661)
@@ -0,0 +1,14 @@
+@charset "utf-8";
+
+@import url("./width.css");
+
+@import url("./common.css");
+@import url("./iphone.css");
+
+@import url("./button.css");
+@import url("./table.css");
+
+@import url("./wreckage.css");
+
+@import url("./top.css");
+@import url("./detail.css");
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/button.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/button.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/button.css	(revision 19661)
@@ -0,0 +1,194 @@
+@charset "utf-8";
+
+/* スマートフォン用グラデーションボタン
+----------------------------------------------- */
+.spbtn {
+display: block;
+margin: 0.5em auto 0.3em;
+padding: 0.4em 0;
+font: bold large helvetica;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+vertical-align: middle;
+text-align:center;
+text-decoration: none;
+color: #ffffff;
+background-color: #666666;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+border: solid 2px #666666;
+-webkit-border-radius: 8px;
+-webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.7);
+}
+.spbtn:before {
+content: "";
+display: block;
+height: 0;
+clear: both;
+visibility: hidden;
+}
+a.spbtn {
+width: 79%;
+max-width: 236px;
+}
+input.spbtn {
+width: 80%;
+max-width: 240px;
+}
+
+/* ボタン大（汎用）
+----------------------------------------------- */
+.spbtn-normal {
+color: #ffffff;
+border: solid 2px #666666;
+background-color: #666666;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+}
+
+/* ボタン大（承諾、送信）
+----------------------------------------------- */
+.spbtn-agree {
+color: #ffffff;
+border: solid 2px #666666;
+background-color: #8DCB66;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+}
+
+/* ボタン大（キャンセル、退会）
+----------------------------------------------- */
+.spbtn-cancel {
+color: #ffffff;
+border: solid 2px #666666;
+background-color: #fc4743;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+}
+
+/* ボタン中（お問い合わせ、友達に教える）
+----------------------------------------------- */
+.spbtn-medeum {
+display: block;
+margin: 0.5em auto 0.3em;
+font: bold 15px helvetica;
+border: solid 1px #666666;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+-webkit-border-radius: 6px;
+-webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.7);
+}
+a.spbtn-medeum {
+width: 59%;
+max-width: 178px;
+}
+input.spbtn-medeum {
+width: 60%;
+max-width: 180px;
+}
+
+/* ボタン小（お気に入りに登録、住所自動入力）
+----------------------------------------------- */
+.spbtn-small {
+display: inline-block;
+margin: 0;
+padding: 0.2em 0.4em;
+color: #ffffff;
+text-shadow: 0px -1px 1px rgba(0,0,0,1);
+font: bold 13px helvetica;
+font-weight: bold;
+background-color: #666666;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+text-align:center;
+vertical-align: middle;
+text-decoration: none;
+border: solid 1px #333333;
+-webkit-box-shadow: 1px 1px 2px rgba(0,0,0,0.7);
+}
+
+
+/* ×ボタン (お気に入りから削除)
+----------------------------------------------- */
+.spbtn-delete {
+display: inline-block;
+line-height: 1em;
+width: 1em;
+height: 1em;
+margin: 0;
+margin-left: 5px;
+padding: 0;
+color: #ffffff;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+font-family: verdana;
+font-weight: bold;
+background-color: #333333;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.25)), to(rgba(0,0,0,0.2)), color-stop(0.5, rgba(255,255,255,0.05)), color-stop(0.51, rgba(0,0,0,0.05)));
+text-align:center;
+vertical-align: middle;
+text-decoration: none;
+-webkit-border-radius: 4px;
+border: solid 1px #666666;
+}
+
+/* ログイン・会員登録・マイページボタン
+----------------------------------------------- */
+#block-login .spbtn{
+color:#292929;
+text-shadow: 1px 1px 1px #cccccc;
+float: left;
+font-size: medium;
+background-color: #c9c9c9;
+background-image: -webkit-gradient(linear, left top, left bottom, from(#c9c9c9), to(#848484), color-stop(0.6, #a1a1a1));
+margin: 0;
+margin-left: -1px;
+border: none;
+border-left: 1px solid #818181;
+-webkit-border-radius: 0px;
+-webkit-box-shadow: none;
+}
+#block-login .spbtn:first-child{
+width: 50%;
+border-left: none;
+margin-left: 0px;
+-webkit-border-top-left-radius: 4px;
+-webkit-border-bottom-left-radius: 4px;
+}
+#block-login .spbtn:last-child{
+width: 50%;
+-webkit-border-top-right-radius: 4px;
+-webkit-border-bottom-right-radius: 4px;
+}
+#block-login .spbtn:only-child{
+width: 100%;
+max-width: 100%;
+-webkit-border-radius: 4px;
+}
+#block-login .spbtn > a{
+
+}
+
+
+/* 「TOPへ」ボタン
+----------------------------------------------- */
+#btn-top {
+display:block;
+position: absolute;
+top: 4px;
+right: 0.4em;
+font: bold 12px helvetica;
+width: 4.3em;
+border: 1px solid rgba(0,0,0,0.5);
+border-top: 1px solid rgba(0,0,0,0.7);
+background-color: rgba(51,51,51,0.2);
+background-color: #333332;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 95%, from(rgba(0,0,0,0.1)), to(rgba(0,0,0,0.01)), color-stop(.02,rgba(255,255,255,0.4)),color-stop(.5,rgba(255,255,255,0.3)));
+-webkit-box-shadow: 0px 1px 1px rgba(255,255,255,0.3);
+vertical-align: middle;
+text-align: center;
+text-decoration: none;
+-webkit-border-radius: 5px;
+}
+#btn-top > a {
+display: block;
+margin-top: 0.5em;
+margin-bottom: 0.5em;
+color: #ffffff;
+font: bold 12px helvetica;
+text-shadow: 0px -1px 1px rgba(0,0,0,0.5);
+vertical-align: middle;
+text-decoration: none;
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/width.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/width.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/width.css	(revision 19661)
@@ -0,0 +1,19 @@
+@charset "utf-8";
+
+.box60 {
+width: 3em;
+}
+.box120 {
+width: 4.5em;
+}
+.box300 {
+width: 262px;
+}
+.box380 {
+width: 260px;
+}
+/*
+.area380 {
+width: 94%;
+}
+*/
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/detail.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/detail.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/detail.css	(revision 19661)
@@ -0,0 +1,134 @@
+/*商品情報（テキストなど）*/
+div#detailrightblock table td {
+text-align: left;
+vertical-align: middle;
+}
+
+/* 商品写真
+----------------------------------------------- */
+#detailphotoblock {
+margin-top: -1em;
+margin-left: -3.4%;
+width: 106.8%;
+overflow: hidden;
+background-color: #ffffff;
+text-align:center;
+border-bottom: 1px solid #ffffff;
+}
+#detailphotoblock img:first-of-type {
+    margin: 10px auto;
+}
+
+/*商品情報（ブロック）*/
+div#detailarea {
+    margin-bottom: 1em;
+}
+
+/*商品情報（テキストなど）*/
+div#status-icon {
+    margin: 0;
+    padding: 0;
+}
+div#detail-comment {
+    margin: 0;
+    padding: 5px 0 0;
+    font-size: 95%;
+}
+div#detail-size {
+    margin: 0;
+    padding: 5px 0 0;
+}
+
+/*商品情報（テーブル部分）*/
+div#detailrightblock table span.nomal-price {
+	font-size: 80%;
+}
+div#detailrightblock table span.sale-price {
+	font-weight: bold;
+	color: #CC0000;
+}
+div#detailrightblock table span.member-point {
+	font-weight: bold;
+	color: #CC0000;
+}
+
+/*商品情報（規格部分）*/
+div#detailrightblock dl {
+    margin: 0;
+    padding: 5px 0 0;
+}
+div#detailrightblock dt {
+    font-weight: bold;
+    margin: 0;
+    padding: 5px 0 3px 12px;
+    background: url("../img/common/arrow_gray.gif") no-repeat left center;
+    line-height: 1.1;
+}
+div#detailrightblock dd {
+    margin: 0;
+    padding: 0 0 5px;
+}
+div#detailrightblock .fm-detail-quantity {
+    width: 70px;
+    height: 16px;
+    padding: 2px;
+    border: solid 1px #CCCCCC;
+}
+
+/* ボタン周辺
+----------------------------------------------- */
+#btn_form {
+width: 70%;
+margin-left: auto;
+margin-right: auto;
+}
+
+/* 購入ボタン
+----------------------------------------------- */
+input[type="submit"]#cart {
+display:block;
+width: 100%;
+height: 1.8em;
+margin-top: 20px;
+margin-bottom: 10px;
+font: bold large Helvetica, "Lucida Grande", sans-serif;
+//font-size: large bold;
+//font-family: Helvetica, "Lucida Grande", sans-serif;
+color:#4D576B;
+background-color: #c9c9c9;
+background-image: -webkit-gradient(linear, left top, left bottom, from(#c9c9c9), to(#848484), color-stop(0.6, #a1a1a1));
+vertical-align: middle;
+text-align: center;
+text-decoration: none;
+text-shadow: 1px 1px 0px #cccccc;
+-webkit-border-radius: 4px;
+-webkit-box-shadow: 0 0 3px #000000;
+}
+
+/* お問い合わせ／友達に教える
+----------------------------------------------- */
+#detailrightblock table{
+margin: 15px 0px;
+width: 100%;
+background-color: #ffffff;
+-webkit-border-radius: 8px;
+-webkit-box-shadow: 0 0 4px #000000;
+}
+#detailrightblock table tr td, #detailrightblock table tr th {
+border-bottom: solid 1px #cccccc;
+padding: 3px 7px;
+}
+#detailrightblock table tr:last-child td, #detailrightblock table tr:last-child th {
+border-bottom: none;
+}
+
+#btn-cago > a {
+background-color: #E19200;
+}
+
+/* お気に入り
+----------------------------------------------- */
+#btn-recommend {
+text-align: right;
+margin-top:7px;
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/iphone.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/iphone.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/iphone.css	(revision 19661)
@@ -0,0 +1,115 @@
+@charset "utf-8";
+
+/* カテゴリリスト（アコーディオン）
+----------------------------------------------- */
+#block-category li{
+/*-webkit-transition: margin-top, opacity, height, line-height 0.3s ease-in;*/
+-webkit-transition: opacity 0.3s ease-in;
+-webkit-transition-delay: 0.2s;
+clear: both;
+}
+#block-category ul li a , #block-category > ul > li > ul > li a{
+margin: 0;
+padding: 0;
+}
+#block-category ul li li{
+border: none;
+padding: 0.25em 0;
+}
+.category_number_tag {
+width: 2em;
+float: right;
+text-align: center;
+color: #ffffff;
+background-color: rgba(0,0,0,0.5);
+-webkit-border-radius: 8px;
+}
+
+.category_body {
+display: inline-block;
+margin-left: 10px;
+width: 70%;
+}
+.category_body > a {
+display: inline-block;
+width: 100%;
+}
+
+.category_header {
+display: inline-block;
+width: 1.5em;
+background: transparent;
+-webkit-border-radius: 8px;
+}
+.category_header.plus, .category_header.minus{
+display: inline-block;
+vertical-align: middle;
+text-align: center;
+line-height: 1em;
+width: 1em;
+background-color: #c9c9c9;
+-webkit-box-shadow: 0px 1px 0px rgba(0,0,0,0.7);
+-webkit-border-radius: 4px;
+}
+.category_header + a{
+margin-left: 0;
+margin-right: 0;
+width: auto;
+font-weight: bold;
+font-family: verdana;
+}
+.category_header.plus > a, .category_header.minus > a{
+display: inline-block;
+margin: 0;
+padding: 0;
+color:#ffffff;
+text-shadow: 0px -1px 0px #888888;
+text-decoration: none;
+}
+
+/* 検索ボックス
+----------------------------------------------- */
+#searchbox, #searchbar {
+text-align: center;
+}
+#searchbox form[action*="products/list.php"] > input[type="text"], #searchbar form[action*="products/list.php"] > input[type="text"] {
+width: auto;
+margin-left: 0;
+margin-right: 0;
+font-size:medium;
+}
+#searchbox {
+margin: 10px 0px;
+padding-top: 8px;
+padding-bottom: 8px;
+width:100%;
+background-color: rgba(51,51,51,0.6);
+border: #000000;
+-webkit-border-radius: 8px;
+}
+input, select {
+font-size:medium;
+}
+
+/* ログイン
+----------------------------------------------- */
+.loginarea > p:first-child {
+margin: 5px 0;
+color:#4D576B;
+font: bold 17px helvetica;
+text-shadow: 0px 1px 1px #ffffff;
+}
+.loginbox {
+padding: 10px;
+background-color: #ffffff;
+-webkit-border-radius: 8px;
+-webkit-box-shadow: 0px 0px 4px #000000;
+}
+.loginarea .inputbox {
+background-color: #f0f0f0;
+padding: 5px;
+-webkit-border-radius: 8px;
+}
+.inputtext02 {
+font-size: small;
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/top.css
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/top.css	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/css/top.css	(revision 19661)
@@ -0,0 +1,89 @@
+@charset "utf-8";
+
+/* ヘッダー
+----------------------------------------------- */
+#topbox {
+position: relative;
+width: 106.8%;
+margin-left: -3.4%;
+background-color: #333333;
+}
+
+/* ヘッダーロゴ
+------------------------------------------------ */
+#header {
+    background-color: #ffffff;
+    height: 95px;
+    margin: 0 auto;
+}
+#header h1 {
+margin: 0;
+}
+#header h1 a {
+    text-align: center;
+    display: block;
+    margin: 0 auto;
+    width: 292px;
+    height: 81px;
+    background: url("../img/header/logo.gif") no-repeat;
+}
+#header em {
+    display: none;
+}
+
+/* 検索バー
+----------------------------------------------- */
+#searchbar {
+border-top: 1px solid #5c5c5c;
+border-bottom: 1px solid #000000;
+background-color: #333333;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#333333), to(#5C5C5C), color-stop(0.6,#2E2E2E));
+width: 100%;
+}
+
+/* メンバーメニュー
+----------------------------------------------- */
+#block-login {
+display: block;
+font-size: medium;
+width: 66%;
+margin-top:13px;
+margin-left: auto;
+margin-right: auto;
+margin-bottom:10px;
+-webkit-border-radius: 4px;
+-webkit-box-shadow: 0px 0px 3px #000000;
+}
+
+/* ニュース
+----------------------------------------------- */
+#block-news{
+position: relative;
+width: 106.8%;
+margin-left: -3.4%;
+//padding: 10px 0px;
+height: 1.8em;
+background-image: -webkit-gradient(linear, 0% 0%, 0% 95%, from(#7A7A7A), to(#CCCCCC), color-stop(.07,#FFFFFF),color-stop(.9,#FFFFFF));
+overflow: hidden;
+}
+.anews{
+color: #666666;
+font: bold 13px Helvetica;
+text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
+margin: 0.3em 10px;
+opacity: 0;
+-webkit-transition: all 1.0s ease-in-out;
+position: absolute;
+}
+.anews.view{
+opacity: 1.0;
+left: 0;
+width: 100%;
+overflow: hidden;
+white-space: nowrap; 
+text-overflow: ellipsis;
+}
+.anews.right{
+opacity: 0;
+left: 2em;
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/news.js
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/news.js	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/news.js	(revision 19661)
@@ -0,0 +1,27 @@
+var newsText = new Array();
+var newsCnt = 0;
+/*------------------------------------------
+@î{Ö(zñÌÌJEgð¾éj
+------------------------------------------*/
+function getNext(ary, cnt) {
+    if(++cnt >= ary.length)
+        return 0;
+    else
+        return cnt;
+}
+/*------------------------------------------
+@î{Ö(zñÌÌJEgð¾éj
+------------------------------------------*/
+function nextNews(){
+    newsText[newsCnt].className = "anews";
+    newsCnt = getNext(newsText, newsCnt);
+    newsText[getNext(newsText, newsCnt)].className = "anews right";
+    newsText[newsCnt].className = "anews view";
+}
+
+function initNews(){
+    newsText = document.getElementsByClassName('anews');
+    newsid = setInterval("nextNews()", 10000);
+    newsText[getNext(newsText, newsCnt)].className = "anews right";
+    newsText[newsCnt].className = "anews view";
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/category.js
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/category.js	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/category.js	(revision 19661)
@@ -0,0 +1,126 @@
+/*------------------------------------------
+指定されたノードを、オープンまたはクローズする
+------------------------------------------*/
+function openOrClose(tgt){
+    //指定ノードが「hidden」のとき、リストを可視化
+    if(tgt.style.visibility == "hidden"){
+        tgt.style.display = "block";
+        tgt.style.visibility = "visible";
+        tgt.style.height = "auto";
+        tgt.style.paddingTop = "0.25em";
+        tgt.style.lineHeight = "1em"
+        tgt.style.opacity = 1.0;
+    }
+    //指定ノードが「hidden」でないとき、リストを隠す
+    else{
+        tgt.style.display = "none";
+        tgt.style.visibility = "hidden";
+        tgt.style.height = "0px";
+        tgt.style.paddingTop = "0";
+        tgt.style.lineHeight = 0;
+        tgt.style.opacity = 0;
+    }
+}
+
+/*------------------------------------------
+リストープン処理
+------------------------------------------*/
+function listopen(lv, num){
+    var tgt = document.getElementsByClassName("level" + lv)[num];
+    var cnt = 0;
+    //次のレベルをサーチ → 次のレベルのリストをオープンする
+    for(var i=0; i < document.getElementsByClassName("level" + (lv+1)).length; i++){
+        var next_tgt = document.getElementsByClassName("level" + (lv+1))[i];
+        //li
+        if (next_tgt.parentNode == tgt || next_tgt.parentNode.parentNode == tgt){
+            openOrClose(next_tgt);
+            cnt++;
+        }
+    }
+    //次のレベルをサーチ → 表示ボタンの状態を変更
+    for(var i=0; i < tgt.childNodes.length; i++){
+        var next_tgt = tgt.childNodes[i];
+        //ul
+        if(next_tgt.tagName == "UL"){
+        if(next_tgt.style.height == "0px"){
+            //for(var i=0; i<next_tgt.parentNode.childNodes.length; i++){
+                if(event.srcElement.parentNode.className == "category_header plus"){
+                    event.srcElement.innerText = '−';
+                    event.srcElement.parentNode.className = "category_header minus";
+                }
+            //}
+            next_tgt.style.height = "auto"; //1.5*cnt + "em";
+            next_tgt.style.marginTop = 0;
+            next_tgt.style.marginBottom = 0;
+        }
+        else{
+            for(var i=0; i<next_tgt.parentNode.childNodes.length; i++){
+                if(event.srcElement.parentNode.className == "category_header minus"){
+                    event.srcElement.innerText = '＋';
+                    event.srcElement.parentNode.className = "category_header plus";
+                }
+            }
+            next_tgt.style.height = "0px";
+            next_tgt.style.marginTop = 0;
+            next_tgt.style.marginBottom = 0;
+        }
+        }
+    }
+}
+
+/*------------------------------------------
+クリックイベントを設定する
+------------------------------------------*/
+function setclickevent(tgt, lv, num){
+    //レベル１以外の時は非表示に
+    if(lv!=1){
+        tgt.style.visibility = "hidden";
+        tgt.style.display = "none";
+        tgt.style.height = "0px";
+        tgt.style.lineHeight = 0;
+        tgt.style.paddingTop = 0;
+        tgt.style.paddingBottom = 0;
+        if(tgt.parentNode.tagName == "UL"){
+            tgt.parentNode.style.height = "0px";
+            tgt.parentNode.style.margin = "0";
+            tgt.parentNode.style.padding = "0";
+            tgt.parentNode.style.border = "none";
+        }
+    }
+    var hasLink_flg;
+    if(tgt.childNodes.length){
+        for (var j = 0; j < tgt.childNodes.length; j++) {
+            //クリック範囲の拡大
+            if(tgt.childNodes[j].tagName == 'A'){
+                tgt.setAttribute('onclick', 'location.href="' + tgt.childNodes[j].getAttribute('href') + '"');
+            }
+            //アコーディオンリストの操作イベント関数を追加
+            else if(tgt.childNodes[j].tagName == 'UL'){
+                //▶を表示し、リストオープン関数を追加
+                var linkObj = document.createElement("a");
+                linkObj.innerText = '＋';
+                tgt.childNodes[0].className="category_header plus";
+                tgt.childNodes[0].appendChild(linkObj);
+                j++;
+                linkObj.parentNode.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');
+
+                //tgt.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');
+                break;
+            }
+        }
+    }
+}
+
+/*------------------------------------------
+初期化
+------------------------------------------*/
+//level?クラスを持つノード全てを走査し初期化
+function initCategoryList(){
+    var lv = 0;
+    //level?クラスを持つノード全てに、クリックイベントを追加
+    while(document.getElementsByClassName("level" + (++lv)).length){
+        for (var i = 0; i < document.getElementsByClassName("level" + lv).length; i++) {
+            setclickevent(document.getElementsByClassName("level" + lv)[i], lv, i);
+        }
+    }
+}
Index: /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/barbutton.js
===================================================================
--- /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/barbutton.js	(revision 19661)
+++ /branches/version-2_5-dev/html/sphone/user_data/packages/default/js/barbutton.js	(revision 19661)
@@ -0,0 +1,35 @@
+function setTopButton(topURL) {
+    if(!topURL){
+        topURL = "/";
+    }
+    var buttonText = "TOPへ";
+    var buttonId = "btn-top";
+
+    //ボタンの生成・設定
+    var btn = document.createElement('div');
+    var a = document.createElement('a');
+    btn.id = buttonId;
+    btn.onclick = function(){location=topURL;};
+    a.href = topURL;
+    a.innerText = buttonText;
+    
+    /* 背景色の設定 ---------------------*/
+    //最初の見出しの背景色を取得、設定
+    var obj = document.getElementsByTagName('h2')[0];
+    var col = document.defaultView.getComputedStyle(obj,null).getPropertyValue('background-color');
+    btn.style.backgroundColor = col;
+    
+    //省略表示用テキストの生成
+    var spn = document.createElement('span');
+    spn.innerText = obj.innerText;
+    obj.innerText = "";
+    spn.style.display = "inline-block";
+    spn.style.maxWidth = "67%";
+    spn.style.overflow = "hidden";
+    spn.style.textOverflow = "ellipsis";
+    obj.appendChild(spn);
+    
+    //ボタンを追加
+    btn.appendChild(a);
+    document.getElementsByTagName('body')[0].appendChild(btn);;
+}
Index: /branches/version-2_5-dev/html/require.php
===================================================================
--- /branches/version-2_5-dev/html/require.php	(revision 18815)
+++ /branches/version-2_5-dev/html/require.php	(revision 19661)
@@ -33,4 +33,7 @@
 SC_MobileUserAgent::sfAutoRedirectMobileSite();
 
+// スマートフォンの場合、リダイレクト
+#SC_SmartphoneUserAgent::sfAutoRedirectSmartphoneSite();
+
 // 絵文字変換 (除去) フィルターを組み込む。
 ob_start(array('SC_MobileEmoji', 'handler'));
Index: /branches/version-2_5-dev/html/install/sql/create_table_mysql.sql
===================================================================
--- /branches/version-2_5-dev/html/install/sql/create_table_mysql.sql	(revision 18916)
+++ /branches/version-2_5-dev/html/install/sql/create_table_mysql.sql	(revision 19661)
@@ -1249,4 +1249,17 @@
 ) TYPE=InnoDB;
 
+
+CREATE TABLE dtb_plugin (
+  plugin_id INT NOT NULL,
+  plugin_name VARCHAR(255) NOT NULL DEFAULT "",
+  enable INT NOT NULL DEFAULT 0,
+  del_flg INT NOT NULL DEFAULT 0,
+  class_name VARCHAR(255) NOT NULL DEFAULT NULL,
+  create_date DATETIME NOT NULL,
+  update_date DATETIME NOT NULL,
+  PRIMARY KEY (plugin_id)
+) TYPE=InnoDB;
+
+
 CREATE INDEX dtb_customer_mobile_phone_id_key ON dtb_customer (mobile_phone_id(64));
 CREATE INDEX dtb_products_class_product_id_key ON dtb_products_class(product_id);
Index: /branches/version-2_5-dev/html/install/sql/create_table_pgsql.sql
===================================================================
--- /branches/version-2_5-dev/html/install/sql/create_table_pgsql.sql	(revision 18916)
+++ /branches/version-2_5-dev/html/install/sql/create_table_pgsql.sql	(revision 19661)
@@ -1261,2 +1261,12 @@
 CREATE INDEX dtb_mobile_kara_mail_create_date_key ON dtb_mobile_kara_mail (create_date);
 CREATE INDEX dtb_mobile_kara_mail_receive_date_key ON dtb_mobile_kara_mail (receive_date);
+
+CREATE TABLE "dtb_plugin" (
+	"plugin_id" int4 primary key NOT NULL,
+	"plugin_name" varchar(255) DEFAULT NULL,
+	"enable" int2 NOT NULL DEFAULT 0,
+	"del_flg" int2 NOT NULL DEFAULT 0,
+	"class_name" varchar(255) DEFAULT NULL,
+	"create_date" timestamp(6) NOT NULL DEFAULT now(),
+	"update_date" timestamp(6) NOT NULL DEFAULT now()
+);
Index: /branches/version-2_5-dev/data/require_classes.php
===================================================================
--- /branches/version-2_5-dev/data/require_classes.php	(revision 18860)
+++ /branches/version-2_5-dev/data/require_classes.php	(revision 19661)
@@ -45,7 +45,9 @@
 require_once(CLASS_PATH . "SC_Cookie.php");
 require_once(CLASS_PATH . "SC_MobileUserAgent.php");
+require_once(CLASS_PATH . "SC_SmartphoneUserAgent.php");
 require_once(CLASS_PATH . "SC_MobileEmoji.php");
 require_once(CLASS_PATH . "SC_MobileImage.php");
 require_once(CLASS_PATH . "SC_Product.php");
+require_once(CLASS_PATH . "SC_Display.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_PageLayout_Ex.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_DB_Ex.php");
@@ -53,3 +55,5 @@
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_Mobile_Ex.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_Purchase_Ex.php");
+// require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_Plugin_Ex.php");
+
 ?>
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/site_main.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/site_main.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/site_main.tpl	(revision 19661)
@@ -0,0 +1,50 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<body>
+
+<!--{$GLOBAL_ERR}-->
+<noscript>
+  <p>JavaScript を有効にしてご利用下さい.</p>
+</noscript>
+
+<a name="top" id="top"></a>
+
+<!--▼MAIN-->
+<!--{include file=$tpl_mainpage}-->
+<!--▲MAIN-->
+
+<!--{* ▼FOOTER *}-->
+<!--{if $arrPageLayout.footer_chk != 2}-->
+<!--{include file= './footer.tpl'}-->
+<!--{/if}-->
+<!--{* ▲FOOTER *}-->
+
+</body>
+
+<!--{if "/\/top.tpl$/"|preg_match:$tpl_mainpage}-->
+<!--{else}-->
+<script type="text/javascript" language="JavaScript">
+//<![CDATA[
+setTopButton("<!--{$smarty.const.SPHONE_SSL_URL}-->");
+//]]>
+<!--{/if}-->
+</script>
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/list.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/list.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/list.tpl	(revision 19661)
@@ -0,0 +1,286 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<script type="text/javascript">//<![CDATA[
+// 規格2に選択肢を割り当てる。
+function fnSetClassCategories(form, classcat_id2_selected) {
+    sele1 = form.classcategory_id1;
+    sele2 = form.classcategory_id2;
+    product_id = form.product_id.value;
+
+    if (sele1) {
+        if (sele2) {
+            // 規格2の選択肢をクリア
+            count = sele2.options.length;
+            for(i = count; i >= 0; i--) {
+                sele2.options[i] = null;
+            }
+            
+            // 規格2に選択肢を割り当てる
+            classcats = productsClassCategories[product_id][sele1.value];
+            i = 0;
+            for (var classcat_id2_key in classcats) {
+                sele2.options[i] = new Option(classcats[classcat_id2_key].name, classcat_id2_key);
+                if (classcat_id2_key == classcat_id2_selected) {
+                    sele2.options[i].selected = true;
+                }
+                i++;
+            }
+        }
+        fnCheckStock(form);
+    }
+}
+// 並び順を変更
+function fnChangeOrderby(orderby) {
+    fnSetVal('orderby', orderby);
+    fnSetVal('pageno', 1);
+    fnSubmit();
+}
+// 表示件数を変更
+function fnChangeDispNumber(dispNumber) {
+    fnSetVal('disp_number', dispNumber);
+    fnSetVal('pageno', 1);
+    fnSubmit();
+}
+// カゴに入れる
+function fnInCart(productForm) {
+    var product_id = productForm["product_id"].value;
+    fnChangeAction("?#product" + product_id);
+    if (productForm["classcategory_id1"]) {
+        fnSetVal("classcategory_id1", productForm["classcategory_id1"].value);
+    }
+    if (productForm["classcategory_id2"]) {
+        fnSetVal("classcategory_id2", productForm["classcategory_id2"].value);
+    }
+    fnSetVal("quantity", productForm["quantity"].value);
+    fnSetVal("product_id", productForm["product_id"].value);
+    fnSetVal("product_class_id", productForm["product_class_id"].value);
+    fnSetVal("product_type", productForm["product_type"].value);
+    fnSubmit();
+}
+function fnCheckStock(form) {
+    product_id = form.product_id.value;
+    classcat_id1 = form.classcategory_id1.value;
+    classcat_id2 = form.classcategory_id2 ? form.classcategory_id2.value : 0;
+    classcat2 = productsClassCategories[product_id][classcat_id1][classcat_id2];
+    
+    // 在庫(品切れ)
+    eleDefault = document.getElementById('cartbtn_default_' + product_id);
+    eleDynamic = document.getElementById('cartbtn_dynamic_' + product_id);
+    if (
+           classcat2
+        && classcat2.stock_find === false
+    ) {
+        eleDefault.style.display = 'none';
+        eleDynamic.innerHTML = '申し訳ございませんが、只今品切れ中です。';
+    } else {
+        eleDefault.style.display = '';
+        eleDynamic.innerHTML = '';
+    }
+    
+    // 販売価格
+    eleDefault = document.getElementById('price02_default_' + product_id);
+    eleDynamic = document.getElementById('price02_dynamic_' + product_id);
+    if (
+           classcat2
+        && typeof classcat2.price02 != 'undefined'
+        && String(classcat2.price02).length >= 1
+    ) {
+        eleDefault.style.display = 'none';
+        eleDynamic.innerHTML = classcat2.price02;
+    } else {
+        eleDefault.style.display = '';
+        eleDynamic.innerHTML = '';
+    }
+    // 商品規格
+    eleDynamic = document.getElementById('product_class_id' + product_id);
+    if (
+           classcat2
+        && typeof classcat2.product_class_id != 'undefined'
+        && String(classcat2.product_class_id).length >= 1
+    ) {
+        eleDynamic.value = classcat2.product_class_id;
+    } else {
+        eleDynamic.value = ''
+    }
+    // 商品種別
+    eleDynamic = document.getElementById('product_type' + product_id);
+    if (
+           classcat2
+        && typeof classcat2.product_type != 'undefined'
+        && String(classcat2.product_type).length >= 1
+    ) {
+        eleDynamic.value = classcat2.product_type;
+    } else {
+        eleDynamic.value = ''
+    }
+}
+//]]>
+</script>
+
+<!--▼CONTENTS-->
+<div id="undercolumn" class="product product_list">
+    <form name="form1" id="form1" method="get" action="?">
+        <input type="hidden" name="mode" value="<!--{$mode|escape}-->" />
+        <!--{* ▼検索条件 *}-->
+        <input type="hidden" name="category_id" value="<!--{$arrSearchData.category_id|escape}-->" />
+        <input type="hidden" name="maker_id" value="<!--{$arrSearchData.maker_id|escape}-->" />
+        <input type="hidden" name="name" value="<!--{$arrSearchData.name|escape}-->" />
+        <!--{* ▲検索条件 *}-->
+        <!--{* ▼ページナビ関連 *}-->
+        <input type="hidden" name="orderby" value="<!--{$orderby|escape}-->" />
+        <input type="hidden" name="disp_number" value="<!--{$disp_number|escape}-->" />
+        <input type="hidden" name="pageno" value="<!--{$tpl_pageno|escape}-->" />
+        <!--{* ▲ページナビ関連 *}-->
+        <!--{* ▼注文関連 *}-->
+        <input type="hidden" name="product_id" value="" />
+        <input type="hidden" name="classcategory_id1" value="" />
+        <input type="hidden" name="classcategory_id2" value="" />
+        <input type="hidden" name="product_class_id" value="" />
+        <input type="hidden" name="product_type" value="" />
+        <input type="hidden" name="quantity" value="" />
+        <!--{* ▲注文関連 *}-->
+        <input type="hidden" name="rnd" value="<!--{$tpl_rnd|escape}-->" />
+    </form>
+    
+    <!--★タイトル★-->
+    <h2 class="title"><!--{$tpl_subtitle|escape}--></h2>
+    
+    <!--▼検索条件-->
+    <!--{if $tpl_subtitle == "検索結果"}-->
+        <ul class="pagecondarea">
+            <li><strong>商品カテゴリ：</strong><!--{$arrSearch.category|escape}--></li>
+        <!--{if $arrSearch.maker|strlen >= 1}--><li><strong>メーカー：</strong><!--{$arrSearch.maker|escape}--></li><!--{/if}-->
+            <li><strong>商品名：</strong><!--{$arrSearch.name|escape}--></li>
+        </ul>
+    <!--{/if}-->
+    <!--▲検索条件-->
+
+    <!--▼ページナビ(本文)-->
+    <!--{capture name=page_navi_body}-->
+        <div class="pagenumberarea">
+            <div class="change">
+                <!--{if $orderby != 'price'}-->
+                    <a href="javascript:fnChangeOrderby('price');">価格順</a>
+                <!--{else}-->
+                    <strong>価格順</strong>
+                <!--{/if}-->
+                <!--{if $orderby != "date"}-->
+                        <a href="javascript:fnChangeOrderby('date');">新着順</a>
+                <!--{else}-->
+                    <strong>新着順</strong>
+                <!--{/if}-->
+            </div>
+            <div class="navi"><!--{$tpl_strnavi}--></div>
+        </div>
+    <!--{/capture}-->
+    <!--▲ページナビ(本文)-->
+
+    <!--{foreach from=$arrProducts item=arrProduct name=arrProducts}-->
+
+        <!--{if $smarty.foreach.arrProducts.first}-->
+            <!--▼件数-->
+            <div>
+                <span class="pagenumber"><!--{$tpl_linemax}--></span>件の商品
+                
+                <select name="disp_number" onchange="javascript:fnChangeDispNumber(this.value);">
+                    <!--{foreach from=$arrPRODUCTLISTMAX item="dispnum" key="num"}-->
+                        <!--{if $num == $disp_number}-->
+                        <option value="<!--{$num}-->" selected="selected" ><!--{$dispnum}--></option>
+                        <!--{else}-->
+                        <option value="<!--{$num}-->" ><!--{$dispnum}--></option>
+                        <!--{/if}-->
+                    <!--{/foreach}-->
+                </select>
+            </div>
+            <!--▲件数-->
+            
+            <!--▼ページナビ(上部)-->
+            <form name="page_navi_top" id="page_navi_top" action="?">
+                <!--{if $tpl_linemax > 0}--><!--{$smarty.capture.page_navi_body|smarty:nodefaults}--><!--{/if}-->
+            </form>
+            <!--▲ページナビ(上部)-->
+        <!--{/if}-->
+
+        <!--{assign var=id value=$arrProduct.product_id}-->
+        <!--{assign var=arrErr value=$arrProduct.arrErr}-->
+        <!--▼商品-->
+        <div class="listarea">
+        <a name="product<!--{$id|escape}-->" />
+            <div class="listphoto">
+                <!--★画像★-->
+                <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProduct.product_id|escape:url}-->" class="over"><!--商品写真--><img src="<!--{$smarty.const.IMAGE_SAVE_URL|sfTrimURL}-->/<!--{$arrProduct.main_list_image|sfNoImageMainList|escape}-->" alt="<!--{$arrProduct.name|escape}-->" class="picture" /></a>
+            </div>
+            
+            <div class="listrightblock">
+                <!--▼商品ステータス-->
+                <!--{if count($productStatus[$id]) > 0}-->
+                    <ul class="status_icon">
+                        <!--{foreach from=$productStatus[$id] item=status}--> 
+                            <li>
+                                <img src="<!--{$TPL_DIR}--><!--{$arrSTATUS_IMAGE[$status]}-->" width="65" height="17" alt="<!--{$arrSTATUS[$status]}-->"/>
+                            </li>
+                        <!--{/foreach}-->
+                    </ul>
+                <!--{/if}-->
+                <!--▲商品ステータス-->
+                
+                <!--★商品名★-->
+                <h3>
+                    <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProduct.product_id|escape:url}-->" name="product<!--{$arrProduct.product_id}-->"><!--{$arrProduct.name|escape}--></a>
+                </h3>
+                
+                <!--★コメント★-->
+                <p class="listcomment"><!--{$arrProduct.main_list_comment|escape|nl2br}--></p>
+                
+                <p>
+                    <span class="pricebox sale_price">
+                        <span class="mini">税込</span>：
+                        <span class="price">
+                            <span id="price02_default_<!--{$id}-->">
+                                <!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
+                                    <!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                                <!--{else}-->
+                                    <!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->～<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                                <!--{/if}-->
+                            </span><span id="price02_dynamic_<!--{$id}-->"></span>
+                            円</span>
+                    </span>
+                </p>
+
+            </div>
+        </div>
+        <!--▲商品-->
+
+        <!--{if $smarty.foreach.arrProducts.last}-->
+            <!--▼ページナビ(下部)-->
+            <form name="page_navi_bottom" id="page_navi_bottom" action="?">
+                <!--{if $tpl_linemax > 0}--><!--{$smarty.capture.page_navi_body|smarty:nodefaults}--><!--{/if}-->
+            </form>
+            <!--▲ページナビ(下部)-->
+        <!--{/if}-->
+
+    <!--{foreachelse}-->
+        <!--{include file="frontparts/search_zero.tpl"}-->
+    <!--{/foreach}-->
+
+</div>
+<!--▲CONTENTS-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/footer.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/footer.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/footer.tpl	(revision 19661)
@@ -0,0 +1,66 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+
+<!--▼ BEGIN PAGETOP-->
+<div id="pagetop">
+<a href="#top">↑このページのトップへ</a>
+</div>
+<!--▲ END PAGETOP-->
+
+<!--▼ BEGIN FOOTER-->
+<div id="footer">
+<div id="footer-info">
+<ul id="footer-menu">
+<li>
+<a href="<!--{$smarty.const.SPHONE_SSL_URL|sfTrimURL}-->/cart/index.php">かごを見る</a>
+</li>
+<li>
+<a href="<!--{$smarty.const.SPHONE_SSL_URL|sfTrimURL}-->/mypage/login.php">マイページ</a>
+</li>
+<li>
+<a href="<!--{$smarty.const.SPHONE_SSL_URL|sfTrimURL}-->/entry/kiyaku.php">会員登録</a>
+</li>
+
+<!--{php}-->
+$tmp = $this->get_template_vars('tpl_mainpage');
+if(preg_match("/top\.tpl$/", $tmp))
+$this->assign('isTop', 1);
+<!--{/php}-->
+<!--{if $isTop ne 1}-->
+<li>
+<a href="<!--{$smarty.const.SPHONE_SITE_URL|sfTrimURL}-->">TOPページへ</a>
+</li>
+<!--{/if}-->
+
+</ul>
+<ul id="footer-navi">
+<li><a href="<!--{$smarty.const.SPHONE_SITE_URL}-->contact/index.php">お問合せ</a></li>
+<li><a href="<!--{$smarty.const.SPHONE_SITE_URL}-->guide/privacy.php">プライバシーポリシー</a></li>
+<li class="end"><a href="<!--{$smarty.const.SPHONE_SITE_URL}-->abouts/index.php">店舗情報</a></li>
+<li class="end"><a href="<!--{$smarty.const.SPHONE_SITE_URL}-->order/index.php">特定商取引法に基づく表記</a></li>
+</ul>
+
+<div id="copyright">(C) <!--{$arrSiteInfo.shop_name|escape}-->.</div>
+
+</div>
+</div>
+<!--▲ END FOOTER-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/site_frame.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/site_frame.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/site_frame.tpl	(revision 19661)
@@ -0,0 +1,60 @@
+<!--{printXMLDeclaration}--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=<!--{$smarty.const.CHAR_CODE}-->" />
+
+<meta name="viewport" content="width=320,maximum-scale=1.0,user-scalable=no">
+<meta name="format-detection" content="telephone=no">
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<!--{* 共通CSS *}-->
+<link rel="stylesheet" media="only screen" href="<!--{$smarty.const.SPHONE_URL_DIR}-->sphone/user_data/packages/default/css/import.css" type="text/css" /> 
+
+<script type="text/javascript" src="<!--{$smarty.const.SPHONE_URL_DIR}-->sphone/user_data/packages/default/js/barbutton.js"></script>
+<script type="text/javascript" src="<!--{$smarty.const.SPHONE_URL_DIR}-->sphone/user_data/packages/default/js/category.js"></script>
+<script type="text/javascript" src="<!--{$smarty.const.SPHONE_URL_DIR}-->sphone/user_data/packages/default/js/news.js"></script>
+<script type="text/javascript" src="<!--{$TPL_DIR}-->js/navi.js"></script>
+<script type="text/javascript" src="<!--{$TPL_DIR}-->js/win_op.js"></script>
+<script type="text/javascript" src="<!--{$TPL_DIR}-->js/site.js"></script>
+<title><!--{$arrSiteInfo.shop_name|escape}--><!--{if $tpl_subtitle|strlen >= 1}--> / <!--{$tpl_subtitle|escape}--><!--{elseif $tpl_title|strlen >= 1}--> / <!--{$tpl_title|escape}--><!--{/if}--></title>
+<!--{if $arrPageLayout.author|strlen >= 1}-->
+    <meta name="author" content="<!--{$arrPageLayout.author|escape}-->" />
+<!--{/if}-->
+<!--{if $arrPageLayout.description|strlen >= 1}-->
+    <meta name="description" content="<!--{$arrPageLayout.description|escape}-->" />
+<!--{/if}-->
+<!--{if $arrPageLayout.keyword|strlen >= 1}-->
+    <meta name="keywords" content="<!--{$arrPageLayout.keyword|escape}-->" />
+<!--{/if}-->
+<!--{* iPhone用アイコン画像 *}-->
+<link rel="apple-touch-icon" href="<!--{$smarty.const.SPHONE_URL_DIR}-->sphone/apple-touch-icon.png" />
+
+</head>
+
+<!-- ▼BODY部 スタート -->
+<!--{include file='./site_main.tpl'}-->
+<!-- ▲BODY部 エンド -->
+
+</html>
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/best5.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/best5.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/best5.tpl	(revision 19661)
@@ -0,0 +1,74 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<!--{if count($arrBestProducts) > 0}-->
+<div id="recomendarea" class="bloc_outer">
+    <h2><img src="<!--{$TPL_DIR}-->img/bloc/best5/title_icon.gif" width="20" height="20" alt="*" class="title_icon" />
+        おすすめ商品</h2>
+    <!--{section name=cnt loop=$arrBestProducts step=2}-->
+    <div class="recomendblock">
+        <div class="recomendleft">
+
+            <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrBestProducts[cnt].product_id|escape:url}-->">
+                <img src="<!--{$smarty.const.SPHONE_URL_DIR}-->resize_image.php?image=<!--{$arrBestProducts[cnt].main_list_image|sfNoImageMainList|escape}-->&amp;width=80&amp;height=80" alt="<!--{$arrBestProducts[cnt].name|escape}-->" /></a>
+            
+            <div class="recomendrightblock">
+                <h3>
+                    <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrBestProducts[cnt].product_id|escape:url}-->"><!--{$arrBestProducts[cnt].name|escape}--></a>
+                </h3>
+
+                <!--{assign var=price01 value=`$arrBestProducts[cnt].price01_min`}-->
+                <!--{assign var=price02 value=`$arrBestProducts[cnt].price02_min`}-->
+
+                <p class="sale_price"><span class="mini">(税込)</span>：
+                    <span class="price"><!--{$price02|sfPreTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円</span>
+                </p>
+
+                <p class="mini comment"><!--{$arrBestProducts[cnt].comment|escape|nl2br}--></p>
+            </div>
+        </div>
+        
+        <!--{assign var=cnt2 value=`$smarty.section.cnt.iteration*$smarty.section.cnt.step-1`}-->
+        <!--{if $arrBestProducts[$cnt2]|count > 0}-->
+        <div class="recomendright">
+            <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrBestProducts[$cnt2].product_id|escape:url}-->">
+                <img src="<!--{$smarty.const.SPHONE_URL_DIR}-->resize_image.php?image=<!--{$arrBestProducts[$cnt2].main_list_image|sfNoImageMainList|escape}-->&amp;width=80&amp;height=80" alt="<!--{$arrBestProducts[$cnt2].name|escape}-->" /></a>
+
+            <div class="recomendrightblock">
+                <h3>
+                <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrBestProducts[$cnt2].product_id|escape:url}-->"><!--{$arrBestProducts[$cnt2].name|escape}--></a>
+                </h3>
+
+                <!--{assign var=price01 value=`$arrBestProducts[$cnt2].price01_min`}-->
+                <!--{assign var=price02 value=`$arrBestProducts[$cnt2].price02_min`}-->
+
+                <p class="sale_price"><span class="mini">(税込)</span>：
+                    <span class="price"><!--{$price02|sfPreTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円</span>
+                </p>
+
+                <p class="mini comment"><!--{$arrBestProducts[$cnt2].comment|escape|nl2br}--></p>
+            </div>
+        </div>
+        <!--{/if}-->
+    </div>
+    <!--{/section}-->
+</div>
+<!--{/if}-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/login.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/login.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/login.tpl	(revision 19661)
@@ -0,0 +1,34 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<!--▼ログインここから-->
+<div id="block-login" class="block-side">
+  <div class="create-box">
+    <!--{if $tpl_login}-->
+      <a href="<!--{$smarty.const.SPHONE_SSL_URL|sfTrimURL}-->/mypage/login.php" class="spbtn">マイページ</a>
+    <!--{else}-->
+      <a href="<!--{$smarty.const.SPHONE_SSL_URL|sfTrimURL}-->/entry/kiyaku.php" class="spbtn">会員登録</a>
+      <a href="<!--{$smarty.const.SPHONE_SSL_URL|sfTrimURL}-->/mypage/login.php" class="spbtn">ログイン</a>
+    <!--{/if}-->
+    <!--ログインフォーム-->
+  </div>
+</div>
+<!--▲ログインここまで-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/news.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/news.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/news.tpl	(revision 19661)
@@ -0,0 +1,67 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<!--{assign var=mypage value="`$smarty.const.SPHONE_URL_DIR`mypage/index.php"}-->
+<!--{if $smarty.server.PHP_SELF != $mypage}-->
+
+<!--{if $arrNews}-->
+<div id="block-news" class="block-center">
+<div class="create-box">
+
+<!--{section name=data loop=$arrNews max=3}-->
+<div class="anews">
+<span><!--{$arrNews[data].news_date_disp|date_format:"%m.%d"}--></span>&nbsp;
+<!--{if $arrNews[data].news_url}--><a href="<!--{$arrNews[data].news_url|escape}-->"><!--{/if}-->
+<!--{$arrNews[data].news_title|escape}-->
+<!--{if $arrNews[data].news_url}--></a><!--{/if}-->
+</div>
+<!--{/section}-->
+
+</div>
+</div>
+
+<script type="text/javascript" language="JavaScript">
+//<![CDATA[
+initNews(); //カテゴリーリストの初期化
+//]]>
+</script>
+<!--{/if}-->
+
+
+<!--{elseif $smarty.server.PHP_SELF == $mypage}-->
+
+<!--{if $arrMemberNews}-->
+<h3>お知らせ</h3>
+<div id="block-news-mypage">
+
+<!--{section name=data loop=$arrMemberNews max=3}-->
+<div class=" ">
+<span><!--{$arrMemberNews[data].news_date_disp|date_format:"%m.%d"}--></span>&nbsp;
+<!--{if $arrMemberNews[data].news_url}--><a href="<!--{$arrMemberNews[data].news_url|escape}-->"><!--{/if}-->
+<!--{$arrMemberNews[data].news_title|escape}-->
+<!--{if $arrMemberNews[data].news_url}--></a><!--{/if}-->
+</div>
+<!--{/section}-->
+
+</div>
+<!--{/if}-->
+
+<!--{/if}-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/category.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/category.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/bloc/category.tpl	(revision 19661)
@@ -0,0 +1,82 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<!--商品カテゴリーここから-->
+<h2 id="title-category" class="title-side">商品カテゴリ</h2>
+<div id="block-category" class="block-side">
+  <div class="create-box">
+
+    <ul id="categorytree">
+    <!--{assign var=preLev value=1}-->
+    <!--{assign var=firstdone value=0}-->
+    <!--{section name=cnt loop=$arrTree}-->
+      <!--{* カテゴリ表示・非表示切り替え *}-->
+      <!--{if $arrTree[cnt].view_flg != "2"}-->
+        <!--{* 表示フラグがTRUEなら表示 *}-->
+        <!--{* <!--{if $arrTree[cnt].display == 1}--> *}-->
+        <!--{assign var=level value=`$arrTree[cnt].level`}-->
+        <!--{* level2以下なら表示（level指定可能） *}-->
+        <!--{if $level <= 2 || $arrTree[cnt].display == 1}-->
+        <!--{assign var=levdiff value=`$level-$preLev`}-->
+          <!--{if $levdiff > 0}-->
+              <ul>
+          <!--{elseif $levdiff == 0 && $firstdone == 1}-->
+              </li>
+          <!--{elseif $levdiff < 0}-->
+            <!--{section name=d loop=`$levdiff*-1`}-->
+                </li>
+              </ul>
+            <!--{/section}-->
+            </li>
+          <!--{/if}-->
+          
+          <li class="level<!--{$level}--><!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> onmark<!--{/if}-->"><span class="category_header"></span><span class="category_body"><a href="<!--{$smarty.const.SPHONE_URL_DIR}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->"<!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> class="onlink"<!--{/if}-->><!--{$arrTree[cnt].category_name|escape}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a></span>
+            <!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
+            <!--{assign var=preLev value=`$level`}-->
+            <!--{/if}-->
+            <!--{* セクションの最後に閉じタグを追加 *}-->
+            <!--{if $smarty.section.cnt.last}-->
+                <!--{if $preLev-1 > 0 }-->
+                    <!--{section name=d loop=`$preLev-1`}-->
+                        </li>
+                    </ul>
+            <!--{/section}-->
+            </li>
+          <!--{else}-->
+            </li>
+          <!--{/if}-->
+        <!--{/if}-->
+      <!--{/if}-->
+    <!--{/section}-->
+    </ul>
+
+  </div>
+</div>
+
+<!--{if $arrTree|@count > 0}-->
+<script type="text/javascript" language="JavaScript">
+//<![CDATA[
+initCategoryList(); //カテゴリーリストの初期化
+//]]>
+</script>
+<!--{/if}-->
+
+<!--商品カテゴリーここまで-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/detail.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/detail.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/detail.tpl	(revision 19661)
@@ -0,0 +1,526 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<script type="text/javascript" src="<!--{$TPL_DIR}-->jquery.fancybox/jquery.mousewheel-3.0.2.pack.js"></script>
+<script type="text/javascript" src="<!--{$TPL_DIR}-->jquery.fancybox/jquery.fancybox-1.3.1.pack.js"></script>
+<link rel="stylesheet" href="<!--{$TPL_DIR}-->jquery.fancybox/jquery.fancybox-1.3.1.css" type="text/css" media="screen" />
+<script type="text/javascript">//<![CDATA[
+// 規格2に選択肢を割り当てる。
+function fnSetClassCategories(form, classcat_id2_selected) {
+    sele1 = form.classcategory_id1;
+    sele2 = form.classcategory_id2;
+
+    if (sele1) {
+        if (sele2) {
+            // 規格2の選択肢をクリア
+            count = sele2.options.length;
+            for(i = count; i >= 0; i--) {
+                sele2.options[i] = null;
+            }
+
+            // 規格2に選択肢を割り当てる
+            classcats = classCategories[sele1.value];
+            i = 0;
+            for (var classcat_id2_key in classcats) {
+                sele2.options[i] = new Option(classcats[classcat_id2_key].name, classcat_id2_key);
+                if (classcat_id2_key == classcat_id2_selected) {
+                    sele2.options[i].selected = true;
+                }
+                i++;
+            }
+        }
+        fnCheckStock(form);
+    }
+}
+function fnCheckStock(form) {
+    classcat_id1 = form.classcategory_id1.value;
+    classcat_id2 = form.classcategory_id2 ? form.classcategory_id2.value : 0;
+    classcat2 = classCategories[classcat_id1][classcat_id2];
+
+    // 商品コード
+    eleDefault = document.getElementById('product_code_default');
+    eleDynamic = document.getElementById('product_code_dynamic');
+    if (
+           classcat2
+        && typeof classcat2.product_code != 'undefined'
+    ) {
+        eleDefault.style.display = 'none';
+        eleDynamic.innerHTML = classcat2.product_code;
+    } else {
+        eleDefault.style.display = '';
+        eleDynamic.innerHTML = '';
+    }
+
+    // 在庫(品切れ)
+    eleDefault = document.getElementById('cartbtn_default');
+    eleDynamic = document.getElementById('cartbtn_dynamic');
+    if (
+           classcat2
+        && classcat2.stock_find === false
+    ) {
+        eleDefault.style.display = 'none';
+        eleDynamic.innerHTML = '申し訳ございませんが、只今品切れ中です。';
+    } else {
+        eleDefault.style.display = '';
+        eleDynamic.innerHTML = '';
+    }
+
+    // 通常価格
+    eleDefault = document.getElementById('price01_default');
+    eleDynamic = document.getElementById('price01_dynamic');
+    if (eleDefault && eleDynamic) {
+        if (
+               classcat2
+            && typeof classcat2.price01 != 'undefined'
+            && String(classcat2.price01).length >= 1
+        ) {
+            eleDefault.style.display = 'none';
+            eleDynamic.innerHTML = classcat2.price01;
+        } else {
+            eleDefault.style.display = '';
+            eleDynamic.innerHTML = '';
+        }
+    }
+
+    // 販売価格
+    eleDefault = document.getElementById('price02_default');
+    eleDynamic = document.getElementById('price02_dynamic');
+    if (
+           classcat2
+        && typeof classcat2.price02 != 'undefined'
+        && String(classcat2.price02).length >= 1
+    ) {
+        eleDefault.style.display = 'none';
+        eleDynamic.innerHTML = classcat2.price02;
+    } else {
+        eleDefault.style.display = '';
+        eleDynamic.innerHTML = '';
+    }
+
+    // ポイント
+    eleDefault = document.getElementById('point_default');
+    eleDynamic = document.getElementById('point_dynamic');
+    if (
+           classcat2
+        && typeof classcat2.point != 'undefined'
+        && String(classcat2.point).length >= 1
+    ) {
+        eleDefault.style.display = 'none';
+        eleDynamic.innerHTML = classcat2.point;
+    } else {
+        eleDefault.style.display = '';
+        eleDynamic.innerHTML = '';
+    }
+    // 商品規格
+    eleDynamic = document.getElementById('product_class_id');
+    if (
+           classcat2
+        && typeof classcat2.product_class_id != 'undefined'
+        && String(classcat2.product_class_id).length >= 1
+    ) {
+        eleDynamic.value = classcat2.product_class_id;
+    } else {
+        eleDynamic.value = ''
+    }
+    // 商品種別
+    eleDynamic = document.getElementById('product_type');
+    if (
+           classcat2
+        && typeof classcat2.product_type != 'undefined'
+        && String(classcat2.product_type).length >= 1
+    ) {
+        eleDynamic.value = classcat2.product_type;
+    } else {
+        eleDynamic.value = ''
+    }
+}
+$(document).ready(function() {
+    $("a.expansion").fancybox({
+    });
+});
+//]]>
+</script>
+
+<!--▼CONTENTS-->
+<div id="undercolumn" class="product product_detail">
+
+    <!--★タイトル★-->
+    <h2 class="title"><!--{$tpl_subtitle|escape}--></h2>
+
+    <div id="detailarea">
+        <div id="detailphotoblock">
+
+            <!--{assign var=key value="main_image"}-->
+
+            <!--★画像★-->
+            <a
+                <!--{if $arrProduct.main_large_image|strlen >= 1}-->
+                    href="<!--{$smarty.const.IMAGE_SAVE_URL}--><!--{$arrProduct.main_large_image|escape}-->"
+                    class="expansion"
+                    onmouseover="chgImg('<!--{$TPL_DIR}-->img/products/b_expansion_on.gif','expansion01');"
+                    onmouseout="chgImg('<!--{$TPL_DIR}-->img/products/b_expansion.gif','expansion01');"
+                    target="_blank"
+                <!--{/if}-->
+            >
+                <img src="<!--{$arrFile[$key].filepath|escape}-->" width="<!--{$arrFile[$key].width}-->" height="<!--{$arrFile[$key].height}-->" alt="<!--{$arrProduct.name|escape}-->" class="picture" /><br />
+                <!--★拡大する★-->
+                <!--{if $arrProduct.main_large_image|strlen >= 1}-->
+                    <img src="<!--{$TPL_DIR}-->img/products/b_expansion.gif" width="85" height="13" alt="画像を拡大する" name="expansion01" id="expansion01" />
+                <!--{/if}-->
+            </a>
+        </div>
+
+        <div id="detailrightblock">
+            <!--▼商品ステータス-->
+            <!--{assign var=ps value=$productStatus[$smarty.get.product_id]}-->
+            <!--{if count($ps) > 0}-->
+                <ul class="status_icon">
+                    <!--{foreach from=$ps item=status}-->
+                    <li>
+                        <img src="<!--{$TPL_DIR}--><!--{$arrSTATUS_IMAGE[$status]}-->" width="65" height="17" alt="<!--{$arrSTATUS[$status]}-->" id="icon<!--{$status}-->" />
+                    </li>
+                    <!--{/foreach}-->
+                </ul>
+            <!--{/if}-->
+            <!--▲商品ステータス-->
+
+            <!--★ダウンロード販売★-->
+            <!--{if $arrProduct.down == 2}-->
+                <div><font color="red">本商品はダウンロード販売となります。<br /> 購入後はMYページの購入履歴からダウンロード可能です。</font></div><br />
+            <!--{/if}-->
+
+            <table>
+                <tr>
+                    <th colspan="2">
+                        <!--★商品名★-->
+                        <h2><!--{$arrProduct.name|escape}--></h2>
+                    </th>
+                </tr>
+                <tr>
+                    <th>
+                        <!--★販売価格★-->
+                        <div class="sale_price"><!--{$smarty.const.SALE_PRICE_TITLE}--><span class="mini">(税込)</span></div>
+                    </th>
+                    <td>
+                        <span class="price">
+                            <span id="price02_default">
+                                <!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
+                                    <!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                                <!--{else}-->
+                                    <!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->～<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                                <!--{/if}-->
+                            </span><span id="price02_dynamic"></span>
+                            円
+                        </span>
+                    </td>
+                </tr>
+                <!--★通常価格★-->
+                <!--{if $arrProduct.price01_max > 0}-->
+                <tr>
+                    <th>
+                        <div class="normal_price">
+                        <!--{$smarty.const.NORMAL_PRICE_TITLE}-->：
+                        </div>
+                    </th>
+                    <td>
+                        <span class="price">
+                            <span id="price01_default">
+                                <!--{if $arrProduct.price01_min == $arrProduct.price01_max}-->
+                                    <!--{$arrProduct.price01_min|number_format}-->
+                                <!--{else}-->
+                                    <!--{$arrProduct.price01_min|number_format}-->～<!--{$arrProduct.price01_max|number_format}-->
+                                <!--{/if}-->
+                            </span><span id="price01_dynamic"></span>
+                            円
+                        </span>
+                    </td>
+                </tr>    
+                <!--{/if}-->
+
+            
+                <!--★ポイント★-->
+                <!--{if $smarty.const.USE_POINT !== false}-->
+                <tr>
+                    <th>
+                        <span class="price">ポイント：</span>
+                    </th>
+                    <td>
+                        <span id="point_default">
+                            <!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
+                                <!--{$arrProduct.price02_min|sfPrePoint:$arrProduct.point_rate:$smarty.const.POINT_RULE:$arrProduct.product_id}-->
+                            <!--{else}-->
+                                <!--{if $arrProduct.price02_min|sfPrePoint:$arrProduct.point_rate:$smarty.const.POINT_RULE:$arrProduct.product_id == $arrProduct.price02_max|sfPrePoint:$arrProduct.point_rate:$smarty.const.POINT_RULE:$arrProduct.product_id}-->
+                                    <!--{$arrProduct.price02_min|sfPrePoint:$arrProduct.point_rate:$smarty.const.POINT_RULE:$arrProduct.product_id}-->
+                                <!--{else}-->
+                                    <!--{$arrProduct.price02_min|sfPrePoint:$arrProduct.point_rate:$smarty.const.POINT_RULE:$arrProduct.product_id}-->～<!--{$arrProduct.price02_max|sfPrePoint:$arrProduct.point_rate:$smarty.const.POINT_RULE:$arrProduct.product_id}-->
+                                <!--{/if}-->
+                            <!--{/if}-->
+                            </span><span id="point_dynamic">
+                            Pt
+                        </span>
+                    </td>
+                </tr>
+                <!--{/if}-->
+
+                <!--▼メーカーURL-->
+                <!--{if $arrProduct.comment1|strlen >= 1}-->
+                <tr>
+                    <th>
+                        <span class="comment1">メーカーURL：
+                    </th>
+                    <td>
+                            <a href="<!--{$arrProduct.comment1|escape}-->">
+                                <!--{$arrProduct.comment1|escape}--></a>
+                    </td>
+                </tr>
+                <!--{/if}-->
+                <!--▲メーカーURL-->
+
+                <!--★関連カテゴリ★-->
+                <tr>
+                    <th>
+                        <div class="relative_cat">関連カテゴリ：</div>
+                    </th>
+                    <td>
+                        <!--{section name=r loop=$arrRelativeCat}-->
+                        <p>
+                            <!--{section name=s loop=$arrRelativeCat[r]}-->
+                            <a href="<!--{$smarty.const.SPHONE_URL_DIR}-->products/list.php?category_id=<!--{$arrRelativeCat[r][s].category_id}-->"><!--{$arrRelativeCat[r][s].category_name}--></a>
+                            <!--{if !$smarty.section.s.last}--><!--{$smarty.const.SEPA_CATNAVI}--><!--{/if}-->
+                            <!--{/section}-->
+                        </p>
+                        <!--{/section}-->
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2">
+                            <!--★詳細メインコメント★-->
+                            <div class="main_comment"><!--{$arrProduct.main_comment|nl2br_html}--></div>
+                    </td>
+                </tr>
+            </table>
+
+            <!--▼買い物かご-->
+            <form name="form1" id="form1" method="post" action="?">
+                <input type="hidden" name="mode" value="cart" />
+                <input type="hidden" name="product_id" value="<!--{$tpl_product_id}-->" />
+                <input type="hidden" name="product_class_id" value="<!--{$tpl_product_class_id}-->" id="product_class_id" />
+                <input type="hidden" name="product_type" value="<!--{$tpl_product_type}-->" id="product_type" />
+                <input type="hidden" name="favorite_product_id" value="" />
+
+                <!--{if $tpl_stock_find}-->
+                    <dl>
+                        <!--{if $tpl_classcat_find1}-->
+                            <!--▼規格1-->
+                            <dt><!--{$tpl_class_name1|escape}--></dt>
+                            <dd>
+                                <select name="classcategory_id1"
+                                    style="<!--{$arrErr.classcategory_id1|sfGetErrorColor}-->"
+                                    onchange="fnSetClassCategories(this.form);"
+                                >
+                                    <!--{html_options options=$arrClassCat1 selected=$arrForm.classcategory_id1.value}-->
+                                </select>
+                                <!--{if $arrErr.classcategory_id1 != ""}-->
+                                    <br /><span class="attention">※ <!--{$tpl_class_name1}-->を入力して下さい。</span>
+                                <!--{/if}-->
+                            </dd>
+                            <!--▲規格1-->
+                        <!--{/if}-->
+
+                        <!--{if $tpl_classcat_find2}-->
+                            <!--▼規格2-->
+                            <dt><!--{$tpl_class_name2|escape}--></dt>
+                            <dd>
+                                <select name="classcategory_id2"
+                                    style="<!--{$arrErr.classcategory_id2|sfGetErrorColor}-->"
+                                    onchange="fnCheckStock(this.form);"
+                                >
+                                </select>
+                                <!--{if $arrErr.classcategory_id2 != ""}-->
+                                    <br /><span class="attention">※ <!--{$tpl_class_name2}-->を入力して下さい。</span>
+                                <!--{/if}-->
+                            </dd>
+                            <!--▲規格2-->
+                        <!--{/if}-->
+
+                        <dt>数量</dt>
+                        <dd>
+                            <input type="text" name="quantity" class="box54" value="<!--{$arrForm.quantity.value|default:1}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr.quantity|sfGetErrorColor}-->" />
+                            <!--{if $arrErr.quantity != ""}-->
+                                <br /><span class="attention"><!--{$arrErr.quantity}--></span>
+                            <!--{/if}-->
+                        </dd>
+                    </dl>
+                <!--{/if}-->
+
+                <div class="btn">
+                    <!--{if $smarty.const.OPTION_FAVOFITE_PRODUCT == 1 && $tpl_login === true}-->
+                        <div>
+                            <!--{assign var=add_favorite value="add_favorite`$product_id`"}-->
+                            <!--{if $arrErr[$add_favorite]}--><div class="attention"><!--{$arrErr[$add_favorite]}--></div><!--{/if}-->
+                            <!--{if !$arrProduct.favorite_count}-->
+                                <a
+                                    href="javascript:fnModeSubmit('add_favorite','favorite_product_id','<!--{$arrProduct.product_id|escape}-->');"
+                                    onmouseover="chgImg('<!--{$TPL_DIR}-->img/products/add_favolite_product_on.gif','add_favolite_product');"
+                                    onmouseout="chgImg('<!--{$TPL_DIR}-->img/products/add_favolite_product.gif','add_favolite_product');"
+                                ><img src="<!--{$TPL_DIR}-->img/products/add_favolite_product.gif" width="115" height="20" alt="お気に入りに追加" name="add_favolite_product" id="add_favolite_product" /></a>
+                            <!--{else}-->
+                                <img src="<!--{$TPL_DIR}-->img/products/add_favolite_product_on.gif" width="115" height="20" alt="お気に入り登録済" name="add_favolite_product" id="add_favolite_product" />
+                            <!--{/if}-->
+                        </div>
+                    <!--{/if}-->
+
+                    <!--{if $tpl_stock_find}-->
+                        <div id="cartbtn_default">
+                            <!--★カゴに入れる★-->
+                            <div>
+                                <a href="javascript:void(document.form1.submit())" onmouseover="chgImg('<!--{$TPL_DIR}-->img/products/b_cartin_on.gif','cart');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/products/b_cartin.gif','cart');" class="spbtn spbtn-agree">
+                                    カゴに入れる
+                                </a>
+                            </div>
+                            <!--{if 'sfGMODetailDisplay'|function_exists}--><!--{* GMOワンクリック *}-->
+                                <!--{'sfGMODetailDisplay'|call_user_func}-->
+                            <!--{/if}-->
+                        </div>
+                        <div class="attention" id="cartbtn_dynamic"></div>
+                    <!--{else}-->
+                        <div class="attention">申し訳ございませんが、只今品切れ中です。</div>
+                    <!--{/if}-->
+                </div>
+            </form>
+            <!--▲買い物かご-->
+
+        </div>
+    </div>
+    <!--{* オペビルダー用 *}-->
+    <!--{if "sfViewDetailOpe"|function_exists === TRUE}-->
+        <!--{include file=`$smarty.const.MODULE_PATH`mdl_opebuilder/detail_ope_view.tpl}-->
+    <!--{/if}-->
+    <!--詳細ここまで-->
+
+    <!--▼サブコメント-->
+    <!--{section name=cnt loop=$smarty.const.PRODUCTSUB_MAX}-->
+        <!--{assign var=key value="sub_title`$smarty.section.cnt.index+1`"}-->
+        <!--{if $arrProduct[$key] != ""}-->
+            <div class="subarea">
+                <h3><!--★サブタイトル★--><!--{$arrProduct[$key]|escape}--></h3>
+                <!--{assign var=ckey value="sub_comment`$smarty.section.cnt.index+1`"}-->
+
+                <div class="subtext"><!--★サブテキスト★--><!--{$arrProduct[$ckey]|nl2br_html}--></div>
+
+                <!--▼サブ画像-->
+                <!--{assign var=key value="sub_image`$smarty.section.cnt.index+1`"}-->
+                <!--{assign var=lkey value="sub_large_image`$smarty.section.cnt.index+1`"}-->
+                <!--{if $arrProduct[$key]|strlen >= 1}-->
+                    <div class="subphotoimg">
+                        <a
+                            <!--{if $arrProduct[$lkey]|strlen >= 1}-->
+                                href="<!--{$smarty.const.IMAGE_SAVE_URL}--><!--{$arrProduct[$lkey]|escape}-->"
+                                class="expansion"
+                                onmouseover="chgImg('<!--{$TPL_DIR}-->img/products/b_expansion_on.gif', 'expansion_<!--{$lkey|escape}-->');"
+                                onmouseout="chgImg('<!--{$TPL_DIR}-->img/products/b_expansion.gif', 'expansion_<!--{$lkey|escape}-->');"
+                                target="_blank"
+                            <!--{/if}-->
+                        >
+                            <img src="<!--{$arrFile[$key].filepath}-->" alt="<!--{$arrProduct.name|escape}-->" width="<!--{$arrFile[$key].width}-->" height="<!--{$arrFile[$key].height}-->" /><br />
+                            <!--{if $arrProduct[$lkey]|strlen >= 1}-->
+                                <img src="<!--{$TPL_DIR}-->img/products/b_expansion.gif" width="85" height="13" alt="画像を拡大する" id="expansion_<!--{$lkey|escape}-->" />
+                            <!--{/if}-->
+                        </a>
+                    </div>
+                <!--{/if}-->
+                <!--▲サブ画像-->
+            </div>
+        <!--{/if}-->
+    <!--{/section}-->
+    <!--▲サブコメント-->
+
+    <!--▼関連商品-->
+    <!--{if $arrRecommend}-->
+        <div id="whoboughtarea">
+            <h2>その他のオススメ商品(関連商品)</h2>
+            <div class="whoboughtblock">
+
+            <!--{section name=cnt loop=$arrRecommend}-->
+                <!--{if ($smarty.section.cnt.index % 2) == 0}-->
+                <!--{if $arrRecommend[cnt].product_id}-->
+                <!-- 左列 -->
+                <div class="whoboughtleft">
+
+                    <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrRecommend[cnt].product_id|escape:url}-->">
+                        <img src="<!--{$smarty.const.SPHONE_URL_DIR}-->resize_image.php?image=<!--{$arrRecommend[cnt].main_list_image|sfNoImageMainList|escape}-->&amp;width=65&amp;height=65" alt="<!--{$arrRecommend[cnt].name|escape}-->" /></a>
+
+                    <div class="whoboughtrightblock">
+                        <!--{assign var=price02_min value=`$arrRecommend[cnt].price02_min`}-->
+                        <!--{assign var=price02_max value=`$arrRecommend[cnt].price02_max`}-->
+                        <h3><a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrRecommend[cnt].product_id|escape:url}-->"><!--{$arrRecommend[cnt].name|escape}--></a></h3>
+
+                        <p class="sale_price"><!--{$smarty.const.SALE_PRICE_TITLE}--><span class="mini">(税込)</span>：<span class="price">
+                            <!--{if $price02_min == $price02_max}-->
+                                <!--{$price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                            <!--{else}-->
+                                <!--{$price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->～<!--{$price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                            <!--{/if}-->円</span></p>
+                        <p class="mini"><!--{$arrRecommend[cnt].comment|escape|nl2br}--></p>
+                    </div>
+                </div>
+                <!-- 左列 -->
+                <!--{/if}-->
+                <!--{/if}-->
+
+                <!--{if ($smarty.section.cnt.index % 2) != 0}-->
+                <!--{* assign var=nextCnt value=$smarty.section.cnt.index+1 *}-->
+                <!--{if $arrRecommend[cnt].product_id}-->
+                <!-- 右列 -->
+                <div class="whoboughtright">
+
+                    <a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrRecommend[cnt].product_id|escape:url}-->">
+                        <img src="<!--{$smarty.const.SPHONE_URL_DIR}-->resize_image.php?image=<!--{$arrRecommend[cnt].main_list_image|sfNoImageMainList|escape}-->&amp;width=65&amp;height=65" alt="<!--{$arrRecommend[cnt].name|escape}-->" /></a>
+
+                    <div class="whoboughtrightblock">
+                        <!--{assign var=price02_min value=`$arrRecommend[cnt].price02_min`}-->
+                        <!--{assign var=price02_max value=`$arrRecommend[cnt].price02_max`}-->
+                        <h3><a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrRecommend[cnt].product_id|escape:url}-->"><!--{$arrRecommend[cnt].name|escape}--></a></h3>
+
+                        <p class="sale_price"><!--{$smarty.const.SALE_PRICE_TITLE}--><span class="mini">(税込)</span>：<span class="price">
+
+                            <!--{if $price02_min == $price02_max}-->
+                                <!--{$price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                            <!--{else}-->
+                                <!--{$price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->～<!--{$price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+                            <!--{/if}-->円</span></p>
+                        <p class="mini"><!--{$arrRecommend[cnt].comment|escape|nl2br}--></p>
+                    </div>
+                </div>
+                <!-- 右列 -->
+            <!--{/if}-->
+            <!--{/if}-->
+
+            <!--{if $smarty.section.cnt.last}-->
+            </div>
+            <!--{/if}-->
+        <!--{/section}-->
+        </div>
+    <!--{/if}-->
+    <!--▲関連商品-->
+
+</div>
+<!--▲CONTENTS-->
Index: /branches/version-2_5-dev/data/Smarty/templates/default/sphone/top.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/default/sphone/top.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/default/sphone/top.tpl	(revision 19661)
@@ -0,0 +1,55 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+
+<div id="topbox">
+<!--{* ▼ロゴ ここから *}-->
+<div id="header">
+<h1>
+    <a href="<!--{$smarty.const.SPHONE_SSL_URL}-->">
+      <em><!--{$arrSiteInfo.shop_name|escape}-->/<!--{$tpl_title|escape}--></em></a>
+  </h1>
+</div>
+<!--{* ▲ロゴ ここまで *}-->
+
+<!--{* ヘッダメニュー *}-->
+<div id="headmenu">
+
+<!--{* 検索 *}-->
+<div id="searchbar">
+<form method="get" action="<!--{$smarty.const.SPHONE_SITE_URL}-->products/list.php">
+<input type="text" name="name" maxlength="50" value="<!--{$smarty.get.name|escape}-->" placeholder="商品検索" ><input type="submit" name="search" value="検索">
+</form>
+<!--{* searchmenu *}--></div>
+<!--{* headmenu *}--></div>
+<!--{* topbox *}--></div>
+
+<!--{* 新着情報 *}-->
+<!--{include_php file=`$smarty.const.SPHONE_HTML_PATH`/frontparts/bloc/news.php}-->
+
+<!--{* ログイン *}-->
+<!--{include_php file=`$smarty.const.SPHONE_HTML_PATH`/frontparts/bloc/login.php}-->
+
+<!--{* おすすめ商品 *}-->
+<!--{include_php file=`$smarty.const.SPHONE_HTML_PATH`/frontparts/bloc/best5.php}-->
+
+<!-- ▼メニュー ここから -->
+<!--{include_php file=`$smarty.const.SPHONE_HTML_PATH`/frontparts/bloc/category.php}-->
Index: /branches/version-2_5-dev/data/Smarty/templates/admin/system/subnavi.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/admin/system/subnavi.tpl	(revision 18873)
+++ /branches/version-2_5-dev/data/Smarty/templates/admin/system/subnavi.tpl	(revision 19661)
@@ -28,4 +28,5 @@
 <li<!--{if $tpl_subno == 'masterdata'}--> class="on"<!--{/if}--> id="navi-system-masterdata"><a href="<!--{$smarty.const.URL_DIR}-->admin/system/masterdata.php"><span>マスタデータ管理</span></a></li>
 <li<!--{if $tpl_subno == 'system'}--> class="on"<!--{/if}--> id="navi-system-system"><a href="<!--{$smarty.const.URL_DIR}-->admin/system/system.php"><span>システム情報</span></a></li>
+<li<!--{if $tpl_subno == 'plugin'}--> class="on"<!--{/if}--> id="navi-system-plugin"><a href="<!--{$smarty.const.URL_DIR}-->admin/system/plugin.php"><span>プラグイン管理</span></a></li>
 <li<!--{if $tpl_mainno == 'system' && $tpl_subno == 'log'}--> class="on"<!--{/if}--> id="navi-system-log"><a href="<!--{$smarty.const.URL_DIR}-->admin/system/log.php"><span>ログ表示</span></a></li>
 </ul>
Index: /branches/version-2_5-dev/data/Smarty/templates/admin/system/plugin.tpl
===================================================================
--- /branches/version-2_5-dev/data/Smarty/templates/admin/system/plugin.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/Smarty/templates/admin/system/plugin.tpl	(revision 19661)
@@ -0,0 +1,56 @@
+<form name="form1" id="form1" method="post" action="?">
+<input type="hidden" name="mode" value="" />
+<input type="hidden" name="keyname" value="" />
+<div id="system" class="contents-main">
+  <div class="paging">
+    <!--▼ページ送り-->
+    <!--{$tpl_strnavi}-->
+    <!--▲ページ送り-->
+  </div>
+  
+  <!--▼メンバー一覧ここから-->
+  <table class="list">
+    <tr>
+      <th>名前</th>
+      <th>パス</th>
+      <th>有効/無効</th>
+      <th>設定</th>
+    </tr>
+    <!--{section name=data loop=$plugins}-->
+    <!--▼メンバー<!--{$smarty.section.data.iteration}-->-->
+    <tr>
+      <td><!--{$plugins[data].plugin_name|escape}--></td>
+      <td><!--{$plugins[data].plugin_name|escape}--></td>
+      <td>
+        <!--{if $plugins[data].create_date == null }-->
+        <input type="hidden" name="plugin_name" value="<!--{$plugins[data].plugin_name}-->" />
+           <input type="button" name="install" value="install" onclick="fnModeSubmit('install','','');" />
+        <!--{else}-->
+          <!--{if $plugins[data].enable == 1}-->
+          <input type="button" name="disable" value="disable" onclick="fnModeSubmit('disable')" />
+          <!--{else}-->
+          <input type="button" name="enable" value="enable" onclick="fnModeSubmit('enable');" /> 
+          <!--{/if}-->
+          <input type="button" name="uninstall" value="uninstall" onclick="fnModeSubmit('uninstall');" />
+        <!--{/if}-->
+      </td>
+      
+      <td>
+      <!--{if $plugins[data].create_date != null && $plugins[data].enable == 1}-->
+        <input type="button" name="preference" value="preference" onclick="" />
+        <!--{/if}-->
+      </td>
+      
+    </tr>
+    <!--▲メンバー<!--{$smarty.section.data.iteration}-->-->
+    <!--{/section}-->
+  </table>
+
+  <div class="paging">
+    <!--▼ページ送り-->
+    <!--{$tpl_strnavi}-->
+    <!--▲ページ送り-->
+  </div>
+
+</div>
+</form>
Index: /branches/version-2_5-dev/data/module/Net/UserAgent/Mobile.php
===================================================================
--- /branches/version-2_5-dev/data/module/Net/UserAgent/Mobile.php	(revision 18188)
+++ /branches/version-2_5-dev/data/module/Net/UserAgent/Mobile.php	(revision 19661)
@@ -396,4 +396,40 @@
     }
 
+    // }}}
+    // {{{ isSmartphone()
+
+    /**
+     * Checks whether or not the user agent is Smartphone by a given user agent string.
+     *
+     * @param string $userAgent
+     * @return boolean
+     * @since Method available since Release 0.31.0
+     */
+    function isSmartphone($userAgent = null)
+    {
+        if (is_null($userAgent)) {
+            $userAgent = @$_SERVER['HTTP_USER_AGENT'];
+        }
+
+        $useragents = array(
+            'iPhone',         // Apple iPhone
+            'iPod',           // Apple iPod touch
+            'Android',        // 1.5+ Android
+            'dream',          // Pre 1.5 Android
+            'CUPCAKE',        // 1.5+ Android
+            'blackberry9500', // Storm
+            'blackberry9530', // Storm
+            'blackberry9520', // Storm v2
+            'blackberry9550', // Storm v2
+            'blackberry9800', // Torch
+            'webOS',          // Palm Pre Experimental
+            'incognito',      // Other iPhone browser
+            'webmate'         // Other iPhone browser
+        );
+
+        $pattern = implode("|", $useragents);
+        return preg_match('/'.$pattern.'/', $userAgent);
+    }
+
     /**#@-*/
 
Index: /branches/version-2_5-dev/data/module/Net/UserAgent/Mobile/Common.php
===================================================================
--- /branches/version-2_5-dev/data/module/Net/UserAgent/Mobile/Common.php	(revision 18188)
+++ /branches/version-2_5-dev/data/module/Net/UserAgent/Mobile/Common.php	(revision 19661)
@@ -447,4 +447,19 @@
 
     // }}}
+    // {{{ isSmartphone()
+
+    /**
+     * Returns whether the agent is Smartphone or not.
+     *
+     * @return boolean
+     * @since Method available since Release 0.31.0
+     */
+    function isSmartphone()
+    {
+        return false;
+    }
+
+
+    // }}}
     // {{{ getModel()
 
Index: /branches/version-2_5-dev/data/mtb_constants_init.php
===================================================================
--- /branches/version-2_5-dev/data/mtb_constants_init.php	(revision 18882)
+++ /branches/version-2_5-dev/data/mtb_constants_init.php	(revision 19661)
@@ -517,4 +517,8 @@
 /** SMARTYコンパイル(mobile) */
 define('MOBILE_COMPILE_DIR', COMPILE_DIR . "mobile/");
+/** SMARTYテンプレート(smart phone) */
+define('SMARTPHONE_TEMPLATE_DIR', TEMPLATE_DIR . "smartphone/");
+/** SMARTYコンパイル(smart phonemobile) */
+define('SMARTPHONE_COMPILE_DIR', COMPILE_DIR . "smartphone/");
 /** モバイルサイトのセッションの存続時間 (秒) */
 define('MOBILE_SESSION_LIFETIME', 1800);
Index: /branches/version-2_5-dev/data/plugin/bingo/SC_Plugin_bingo.php
===================================================================
--- /branches/version-2_5-dev/data/plugin/bingo/SC_Plugin_bingo.php	(revision 19661)
+++ /branches/version-2_5-dev/data/plugin/bingo/SC_Plugin_bingo.php	(revision 19661)
@@ -0,0 +1,122 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_EX_PATH . "SC_Plugin_Ex.php");
+// }}}
+
+class SC_Plugin_bingo extends SC_Plugin_Ex {
+    var $plugin_name = null;
+
+    // $X回に1回が当たり
+    var $X = 1;
+
+    function SC_Plugin_bingo() {
+        $this->plugin_name = 'bingo';
+
+        // $X回に1回が当たり
+        // ここの値を変更して下さい。
+        $this->X = 1;
+    }
+
+    function is_enable($class_name) {
+//        parent::is_enable($class_name);
+
+        $arrEnableClass = array(
+            'LC_Page_Shopping_Confirm_Ex',
+            'LC_Page_Shopping_Complete_Ex',
+        );
+
+        return in_array($class_name, $arrEnableClass);
+    }
+
+    function preProcess(&$objPage) {
+//        parent::preProcess($objPage);
+
+        $class_name = get_class($objPage);
+        switch ($class_name) {
+            case 'LC_Page_Shopping_Confirm_Ex':
+                if ($_POST['mode'] == 'confirm') {
+                    $this->lfDrawing();
+                }
+                break;
+        }
+    }
+
+    function process(&$objPage) {
+//        parent::process($objPage);
+
+        $class_name = get_class($objPage);
+        switch ($class_name) {
+            case 'LC_Page_Shopping_Confirm_Ex':
+                break;
+            case 'LC_Page_Shopping_Complete_Ex':
+                $is_bingo = $_SESSION['plugin_bingo']['is_bingo'];
+                if ($is_bingo) {
+                    if (SC_Utils_Ex::sfIsMobileSite()) {
+                        $objPage->tpl_mainpage = DATA_PATH . 'plugin/' . $this->plugin_name . '/templates/mobile/shopping/complete.tpl';
+                    } else {
+                        $objPage->tpl_mainpage = DATA_PATH . 'plugin/' . $this->plugin_name . '/templates/shopping/complete.tpl';
+                    }
+                }
+                break;
+        }
+    }
+
+    function lfDrawing() {
+        // is_bingoを初期化
+        $_SESSION['plugin_bingo'] = array('is_bingo'=>false);
+
+        $rand = mt_rand(1, $this->X);
+
+        // 当たり!
+        if ($rand === 1) {
+            $objDb = new SC_Helper_DB_Ex();
+            $objCartSess = new SC_CartSession();
+            $objCustomer = new SC_Customer();
+            $objSiteSess = new SC_SiteSession();
+
+            $tmpData = $objDb->sfGetOrderTemp($uniqid);
+
+            // 当たりなので、使用ポイントを未使用にする。
+            $tmpData['use_point'] = 0;
+
+            $cartKey = $_SESSION['cartKey'];
+            $results = $objCartSess->calculate($cartKey, $objCustomer, $tmpData['use_point'], $tmpData['deliv_pref'], $tmpData['payment_id'], $tmpData['charge']);
+
+            // 合計を0にするために合計額を値引にセット
+            $tmpData['discount'] = $results['total'];
+
+            // メモに「当たり」と記載する
+            $tmpData['note'] = '当たり';
+
+            $uniqid = $objSiteSess->getUniqId();
+            $objDb->sfRegistTempOrder($uniqid, $tmpData);
+
+            // is_bingoセット
+            $_SESSION['plugin_bingo'] = array('is_bingo'=>true);
+        }
+    }
+}
+
+?>
Index: /branches/version-2_5-dev/data/plugin/bingo/templates/mobile/shopping/complete.tpl
===================================================================
--- /branches/version-2_5-dev/data/plugin/bingo/templates/mobile/shopping/complete.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/plugin/bingo/templates/mobile/shopping/complete.tpl	(revision 19661)
@@ -0,0 +1,58 @@
+<!--{*
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+*}-->
+<center>ご注文完了</center>
+
+<hr>
+
+<em>
+当たり！当たり！当たり！<br>
+おめでとうございます！当たりです！お支払い合計が無料になります！<br>
+当たり！当たり！当たり！<br>
+</em><br>
+
+ご注文、有り難うございました。<br>
+商品到着をお楽しみにお待ち下さいませ。<br>
+どうぞ、今後とも、<!--{$arrInfo.shop_name|escape}-->をよろしくお願いします。<br>
+<br>
+
+<!--{if $arrOther.title.value }-->
+<!-- ▼その他の決済情報 -->
+■<!--{$arrOther.title.name}-->情報<br>
+<!--{foreach key=key item=item from=$arrOther}-->
+<!--{if $key != "title"}-->
+<!--{if $item.name != ""}--><!--{$item.name}-->：<!--{/if}--><!--{$item.value|nl2br}--><br>
+<!--{/if}-->
+<!--{/foreach}-->
+<br>
+<!-- ▲その他の決済情報 -->
+<!--{/if}-->
+
+<a href="<!--{$smarty.const.MOBILE_URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOPページに戻る</a><br>
+
+<br>
+<hr>
+
+<!-- ▼フッター ここから -->
+<!--{include file='footer.tpl'}-->
+<!-- ▲フッター ここまで -->
Index: /branches/version-2_5-dev/data/plugin/bingo/templates/shopping/complete.tpl
===================================================================
--- /branches/version-2_5-dev/data/plugin/bingo/templates/shopping/complete.tpl	(revision 19661)
+++ /branches/version-2_5-dev/data/plugin/bingo/templates/shopping/complete.tpl	(revision 19661)
@@ -0,0 +1,73 @@
+<!--{*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *}-->
+<!--▼CONTENTS-->
+<div id="under02column">
+  <div id="under02column_shopping">
+    <p class="flowarea">
+      <img src="<!--{$TPL_DIR}-->img/shopping/flow04.gif" width="700" height="36" alt="購入手続きの流れ" />
+    </p>
+    <h2 class="title"><!--{$tpl_title|escape}--></h2>
+
+    <!-- ▼その他決済情報を表示する場合は表示 -->
+    <!--{if $arrOther.title.value }-->
+    <p><em>■<!--{$arrOther.title.name}-->情報</em><br />
+        <!--{foreach key=key item=item from=$arrOther}-->
+        <!--{if $key != "title"}-->
+          <!--{if $item.name != ""}-->
+            <!--{$item.name}-->：
+          <!--{/if}-->
+            <!--{$item.value|nl2br}--><br />
+        <!--{/if}-->
+        <!--{/foreach}-->
+    </p>
+     <!--{/if}-->
+     <!-- ▲コンビに決済の場合には表示 -->
+
+    <div id="completetext">
+
+      <em>
+        当たり！当たり！当たり！<br />
+        おめでとうございます！当たりです！お支払い合計が無料になります！<br />
+        当たり！当たり！当たり！<br />
+      </em><br />
+
+      <em><!--{$arrInfo.shop_name|escape}-->の商品をご購入いただき、ありがとうございました。</em>
+
+      <p>ただいま、ご注文の確認メールをお送りさせていただきました。<br />
+        万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。<br />
+        今後ともご愛顧賜りますようよろしくお願い申し上げます。</p>
+
+      <p><!--{$arrInfo.shop_name|escape}--><br />
+        TEL：<!--{$arrInfo.tel01}-->-<!--{$arrInfo.tel02}-->-<!--{$arrInfo.tel03}--> <!--{if $arrInfo.business_hour != ""}-->（受付時間/<!--{$arrInfo.business_hour}-->）<!--{/if}--><br />
+        E-mail：<a href="mailto:<!--{$arrInfo.email02|escape:'hex'}-->"><!--{$arrInfo.email02|escape:'hexentity'}--></a></p>
+    </div>
+
+    <div class="tblareabtn">
+      <!--{if $is_campaign}-->
+        <a href="<!--{$smarty.const.CAMPAIGN_URL}--><!--{$campaign_dir}-->/<!--{$smarty.const.DIR_INDEX_URL}-->" onmouseover="chgImg('<!--{$TPL_DIR}-->img/common/b_toppage_on.gif','b_toppage');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/common/b_toppage.gif','b_toppage');"><img src="<!--{$TPL_DIR}-->img/common/b_toppage.gif" width="150" height="30" alt="トップページへ" border="0" name="b_toppage" /></a>
+      <!--{else}-->
+        <a href="<!--{$smarty.const.URL_SITE_TOP}-->" onmouseover="chgImg('<!--{$TPL_DIR}-->img/common/b_toppage_on.gif','b_toppage');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/common/b_toppage.gif','b_toppage');"><img src="<!--{$TPL_DIR}-->img/common/b_toppage.gif" width="150" height="30" alt="トップページへ" border="0" name="b_toppage" /></a>
+      <!--{/if}-->
+    </div>
+  </div>
+</div>
+<!--▲CONTENTS-->
Index: /branches/version-2_5-dev/data/plugin/TestPlugin1/TestPlugin1.php
===================================================================
--- /branches/version-2_5-dev/data/plugin/TestPlugin1/TestPlugin1.php	(revision 19661)
+++ /branches/version-2_5-dev/data/plugin/TestPlugin1/TestPlugin1.php	(revision 19661)
@@ -0,0 +1,83 @@
+<?php
+require_once CLASS_PATH."/SC_Plugin.php";
+
+class TestPlugin1 extends SC_Plugin {
+
+
+
+    function enable(String $classname){
+        return preg_match('/shopping|payment|products/',$classname)?
+        !preg_match('/list/', $classname)
+        :false
+        ;
+    }
+
+    function init(){
+
+    }
+
+
+    function getVersion(){
+        return "0.0.1";
+    }
+
+    function getName(){
+        return "TestPlugin1";
+    }
+
+    function process(){
+
+    }
+
+    function mobileprocess(){
+
+    }
+
+    function install(){
+        $objQuery = new SC_Query();
+        $arrPlugins = $objQuery->select("plugin_id", "dtb_plugin", "name = ?",array($this->getName()));
+        $data = array(
+          'plugin_name' => $this->getName(),
+          'path' => realpath(DATA_DIR.'/plugin/'.$this->getName().'/'),
+          'enable' => '1',
+          'del_flg' => '0',
+          'class_name' => $this->getName(),
+          'version' => $this->getVersion()
+        );
+        if($this->getInstallSQL() != null){
+            $objQuery->query($this->getInstallSQL());
+        }
+
+        if(count($arrPlugins) == 0){
+            $objQuery->insert("dtb_plugin", $data);
+        }else{
+            $objQuery->update('dtb_plugin',$data,'plugin_id = ?',array($arrPlugins[0]['plugin_id']));
+        }
+
+
+    }
+
+    function uninstall($plugin_id){
+        $objQuery = new SC_Query();
+        $sql = $this->getUninstallSQL();
+        if($sql != null){
+            $objQuery->query($sql);
+        }
+        return $objQuery->update('dtb_plugin', array('del_flg'=>1), 'plugin_id = ?', $plugin_id);
+        
+    }
+
+    /**
+     *
+     * @return String インストール用のSQL
+     */
+    function getInstallSQL(){
+
+    }
+
+
+    function getUninstallSQL(){
+
+    }
+
+}
Index: /branches/version-2_5-dev/data/class_extends/SC_Plugin_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/SC_Plugin_Ex.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class_extends/SC_Plugin_Ex.php	(revision 19661)
@@ -0,0 +1,41 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "SC_Plugin.php");
+
+/**
+ * プラグインクラス(拡張).
+ *
+ * SC_Plugin をカスタマイズする場合はこのクラスを使用する.
+ *
+ * @package
+ * @author LOCKON CO.,LTD.
+ * @version $Id: $
+ */
+class SC_Plugin_Ex extends SC_Plugin {
+    function SC_Plugin_Ex() {
+        parent::SC_Plugin();
+    }
+}
+?>
Index: /branches/version-2_5-dev/data/class_extends/SC_Response_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/SC_Response_Ex.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class_extends/SC_Response_Ex.php	(revision 19661)
@@ -0,0 +1,8 @@
+<?php
+
+require_once(CLASS_PATH . "SC_Response.php");
+
+class SC_Response_Ex extends SC_Response{
+    
+    
+}
Index: /branches/version-2_5-dev/data/class_extends/page_extends/admin/system/LC_Page_Admin_System_Plugin_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/page_extends/admin/system/LC_Page_Admin_System_Plugin_Ex.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class_extends/page_extends/admin/system/LC_Page_Admin_System_Plugin_Ex.php	(revision 19661)
@@ -0,0 +1,68 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/admin/system/LC_Page_Admin_System_Plugin.php");
+
+/**
+ * システム管理 のページクラス(拡張).
+ *
+ * LC_Page_Admin_System をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: LC_Page_Admin_System_Ex.php 18701 2010-06-14 08:30:18Z nanasess $
+ */
+class LC_Page_Admin_System_Plugin_Ex extends LC_Page_Admin_System_Plugin {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        parent::process();
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: /branches/version-2_5-dev/data/class_extends/page_extends/admin/LC_Page_Admin_Index_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/page_extends/admin/LC_Page_Admin_Index_Ex.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class_extends/page_extends/admin/LC_Page_Admin_Index_Ex.php	(revision 19661)
@@ -0,0 +1,68 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin_Index.php");
+
+/**
+ * 管理者ログイン のページクラス(拡張).
+ *
+ * LC_Page_Admin をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: LC_Page_Admin_Ex.php 18701 2010-06-14 08:30:18Z nanasess $
+ */
+class LC_Page_Admin_Index_Ex extends LC_Page_Admin_Index {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        parent::process();
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: anches/version-2_5-dev/data/class_extends/page_extends/admin/LC_Page_Admin_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/page_extends/admin/LC_Page_Admin_Ex.php	(revision 18701)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<?php
-/*
- * This file is part of EC-CUBE
- *
- * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
- *
- * http://www.lockon.co.jp/
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-// {{{ requires
-require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
-
-/**
- * 管理者ログイン のページクラス(拡張).
- *
- * LC_Page_Admin をカスタマイズする場合はこのクラスを編集する.
- *
- * @package Page
- * @author LOCKON CO.,LTD.
- * @version $Id$
- */
-class LC_Page_Admin_Ex extends LC_Page_Admin {
-
-    // }}}
-    // {{{ functions
-
-    /**
-     * Page を初期化する.
-     *
-     * @return void
-     */
-    function init() {
-        parent::init();
-    }
-
-    /**
-     * Page のプロセス.
-     *
-     * @return void
-     */
-    function process() {
-        parent::process();
-    }
-
-    /**
-     * デストラクタ.
-     *
-     * @return void
-     */
-    function destroy() {
-        parent::destroy();
-    }
-}
-?>
Index: /branches/version-2_5-dev/data/class_extends/helper_extends/SC_Helper_Plugin_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/helper_extends/SC_Helper_Plugin_Ex.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class_extends/helper_extends/SC_Helper_Plugin_Ex.php	(revision 19661)
@@ -0,0 +1,48 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "helper/SC_Helper_Plugin.php");
+
+/**
+ * プラグイン関連のヘルパークラス(拡張).
+ *
+ * SC_Helper_Plugin_Ex をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: $
+ */
+class SC_Helper_Plugin_Ex extends SC_Helper_Plugin {
+
+    // }}}
+    // {{{ constructors
+
+    /**
+     * デフォルトコンストラクタ.
+     */
+    function SC_Helper_Plugin_Ex() {
+        parent::SC_Helper_Plugin();
+    }
+}
+?>
Index: /branches/version-2_5-dev/data/class_extends/SC_Display_Ex.php
===================================================================
--- /branches/version-2_5-dev/data/class_extends/SC_Display_Ex.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class_extends/SC_Display_Ex.php	(revision 19661)
@@ -0,0 +1,8 @@
+<?php
+
+require_once(CLASS_PATH . "SC_Display.php");
+
+class SC_Display_Ex extends SC_Display{
+    
+    
+}
Index: /branches/version-2_5-dev/data/class/SC_SmartphoneUserAgent.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_SmartphoneUserAgent.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/SC_SmartphoneUserAgent.php	(revision 19661)
@@ -0,0 +1,100 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+require_once(dirname(__FILE__) . '/../module/Net/UserAgent/Mobile.php');
+
+/**
+ * スマートフォンの情報を扱うクラス
+ *
+ */
+class SC_SmartphoneUserAgent {
+
+    /**
+     * スマートフォンかどうかを判別する。
+     * $_SESSION['pc_disp'] = true の場合はPC表示。
+     *
+     * @return boolean
+     */
+    function isSmartphone() {
+        $nu = new Net_UserAgent_Mobile();
+        // SPでかつPC表示OFFの場合
+        return $nu->isSmartphone() && !SC_SmartphoneUserAgent::getSmartphonePcFlag();
+    }
+
+    /**
+     * スマートフォンかどうかを判別する。
+     *
+     * @return boolean
+     */
+    function isNonSmartphone() {
+        return !SC_SmartphoneUserAgent::isSmartphone();
+    }
+
+    /**
+     * PC表示フラグの取得
+     *
+     * @return string
+     */
+    function getSmartphonePcFlag() {
+        $_SESSION['pc_disp'] = empty($_SESSION['pc_disp']) ? false : $_SESSION['pc_disp'];
+        return $_SESSION['pc_disp'];
+    }
+
+    /**
+     * PC表示ON
+     */
+    function setPcDsiplayOn() {
+        $_SESSION['pc_disp'] = true;
+    }
+
+    /**
+     * PC表示OFF
+     */
+    function setPcDsiplayOff() {
+        $_SESSION['pc_disp'] = false;
+    }
+
+    /**
+     * スマートフォン端末の判定とリダイレクト
+     *
+     * @return void
+     */
+    function sfAutoRedirectSmartphoneSite() {
+        // SPでない場合は、処理しない
+        if (SC_SmartphoneUserAgent::isNonSmartphone()) return;
+
+
+        $url = SC_Utils_Ex::sfIsHTTPS()
+            ? SPHONE_SSL_URL
+            : SPHONE_SITE_URL
+        ;
+
+        $url .= (preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['REQUEST_URI'], $matches))
+            ? $matches[1]
+            : ''
+        ;
+
+        header("Location: ". SC_Utils_Ex::sfRmDupSlash($url));
+        exit;
+    }
+}
+?>
Index: /branches/version-2_5-dev/data/class/SC_Response.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_Response.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/SC_Response.php	(revision 19661)
@@ -0,0 +1,162 @@
+<?php
+// TODO GPLのあれ
+class SC_Response{
+
+    /**
+     *
+     * @var HTTP_Response
+     */
+    var $http;
+    /**
+     * コンテンツタイプ
+     * Enter description here ...
+     * @var unknown_type
+     */
+    var $contentType;
+    var $body;
+    var $statuscode;
+    var $header = array();
+
+    var $statusTexts = array(
+    '100' => 'Continue',
+    '101' => 'Switching Protocols',
+    '200' => 'OK',
+    '201' => 'Created',
+    '202' => 'Accepted',
+    '203' => 'Non-Authoritative Information',
+    '204' => 'No Content',
+    '205' => 'Reset Content',
+    '206' => 'Partial Content',
+    '300' => 'Multiple Choices',
+    '301' => 'Moved Permanently',
+    '302' => 'Found',
+    '303' => 'See Other',
+    '304' => 'Not Modified',
+    '305' => 'Use Proxy',
+    '306' => '(Unused)',
+    '307' => 'Temporary Redirect',
+    '400' => 'Bad Request',
+    '401' => 'Unauthorized',
+    '402' => 'Payment Required',
+    '403' => 'Forbidden',
+    '404' => 'Not Found',
+    '405' => 'Method Not Allowed',
+    '406' => 'Not Acceptable',
+    '407' => 'Proxy Authentication Required',
+    '408' => 'Request Timeout',
+    '409' => 'Conflict',
+    '410' => 'Gone',
+    '411' => 'Length Required',
+    '412' => 'Precondition Failed',
+    '413' => 'Request Entity Too Large',
+    '414' => 'Request-URI Too Long',
+    '415' => 'Unsupported Media Type',
+    '416' => 'Requested Range Not Satisfiable',
+    '417' => 'Expectation Failed',
+    '500' => 'Internal Server Error',
+    '501' => 'Not Implemented',
+    '502' => 'Bad Gateway',
+    '503' => 'Service Unavailable',
+    '504' => 'Gateway Timeout',
+    '505' => 'HTTP Version Not Supported',
+    );
+
+
+    /**
+     *
+     * Enter description here ...
+     */
+    var $encoding;
+
+    function SC_Response(){
+    }
+
+    function response(){
+        $this->sendHeader();
+                
+        echo $this->body;
+    }
+
+    function sendHeader(){
+        // HTTPのヘッダ
+        //        header('HTTP/1.1 '.$this->statuscode.' '.$this->statusTexts[$this->statuscode]);
+        foreach ($this->header as $name => $head){
+            header($name.': '.$head);
+        }
+    }
+
+
+    function setContentType(String $contentType){
+        $this->header['Content-Type'] = $contentType;
+    }
+
+    function setResposeBody(String $body){
+        $this->body = $body;
+    }
+
+    /* function addDateHdeader(String $name, $date){
+     *
+     * }
+     */
+
+    function addHeader(String $name, $value){
+        $this->header[$name] = $value;
+    }
+
+    function containsHeader(String $name){
+        return isset($this->header[$name]);
+    }
+
+    function sendError( $errorcode){
+        header('HTTP/1.1 '.$errorcode.' '.$this->statusTexts[$errorcode]);
+    }
+
+    function sendRedirect(String $location){
+        if (preg_match("/(" . preg_quote(SITE_URL, '/')
+                          . "|" . preg_quote(SSL_URL, '/') . ")/", $location)) {
+
+            $netURL = new Net_URL($location);
+            if (!empty($_SERVER['QUERY_STRING'])) {
+                $netURL->addRawQueryString($_SERVER['QUERY_STRING']);
+            }
+
+            $session = SC_SessionFactory::getInstance();
+            if (SC_MobileUserAgent::isMobile() || $session->useCookie() == false) {
+                $netURL->addQueryString(session_name(), session_id());
+            }
+
+            $netURL->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
+            header("Location: " . $netURL->getURL());
+            exit;
+        }
+        return false;
+    }
+
+    function reload(Array $queryString = array(), $removeQueryString = false) {
+        // 現在の URL を取得
+        $netURL = new Net_URL($_SERVER['REQUEST_URI']);
+
+        if ($removeQueryString) {
+            $netURL->querystring = array();
+            $_SERVER['QUERY_STRING'] = ''; // sendRedirect() での処理用らしい
+        }
+
+        // QueryString を付与
+        if (!empty($queryString)) {
+            foreach ($queryString as $key => $val) {
+                $netURL->addQueryString($key, $val);
+            }
+        }
+
+        $this->sendRedirect($netURL->getURL());
+    }
+
+    function setHeader(Array $headers){
+        $this->header = $headers;
+    }
+
+    function setStatus( $sc = 202){
+        $this->statuscode = $sc;
+    }
+
+}
Index: /branches/version-2_5-dev/data/class/SC_Plugin.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_Plugin.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/SC_Plugin.php	(revision 19661)
@@ -0,0 +1,84 @@
+<?php
+
+class SC_Plugin
+{
+
+    /**
+     *
+     * plugin_path
+     * @var String
+     */
+    var $path;
+
+    function SC_Plugin(){
+        $this->__construct();
+    }
+
+    function __construct(){
+        if(!defined(PLUGIN_PATH)){
+            define("PLUGIN_PATH",HTML_PATH."/user_data/plugins/");
+        }
+        $this->init();
+    }
+
+    function init(){
+
+
+    }
+
+    function enable($classname){
+
+    }
+
+    function getVersion(){
+
+    }
+
+    function getName(){
+
+    }
+
+    function process(){
+
+    }
+
+    function mobileprocess(){
+
+    }
+
+    function install(){
+
+    }
+
+    function uninstall(){
+
+    }
+
+    function disablePlugin(){
+        $objQuery = new SC_Query();
+        $name = preg_replace("/.php/", "", __FILE__);
+        $objQuery->update("dtb_plugin", array('enable'=>'0'), "plugin_name = ?", array($name));
+    }
+
+    function enablePlugin(){
+        $objQuery = new SC_Query();
+        $name = preg_replace("/.php/", "", __FILE__);
+        $objQuery->update("dtb_plugin", array('enable'=>'0'), "plugin_name = ?", array($name));
+    }
+
+
+    /**
+     *
+     * @return String インストール用のSQL
+     */
+    function getInstallSQL(){
+
+    }
+
+
+    function getUninstallSQL(){
+
+    }
+
+
+}
Index: /branches/version-2_5-dev/data/class/util/SC_Utils.php
===================================================================
--- /branches/version-2_5-dev/data/class/util/SC_Utils.php	(revision 19547)
+++ /branches/version-2_5-dev/data/class/util/SC_Utils.php	(revision 19661)
@@ -395,4 +395,6 @@
 
     function sfCSVDownload($data, $prefix = ""){
+echo "sfGetCSVData()に移行してね。";
+exit;
 
         if($prefix == "") {
@@ -415,4 +417,20 @@
         /* データを出力 */
         echo $data;
+    }
+
+    function sfGetCSVData($data, $prefix = ""){
+        if($prefix == "") {
+            $dir_name = SC_Utils::sfUpDirName();
+            $file_name = $dir_name . date("ymdHis") .".csv";
+        } else {
+            $file_name = $prefix . date("ymdHis") .".csv";
+        }
+
+        if (mb_internal_encoding() == CHAR_CODE){
+            $data = mb_convert_encoding($data,'SJIS-Win',CHAR_CODE);
+        }
+
+        /* データを出力 */
+        return array($file_name, $data);
     }
 
Index: /branches/version-2_5-dev/data/class/SC_Display.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_Display.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/SC_Display.php	(revision 19661)
@@ -0,0 +1,139 @@
+<?php
+// TODO GPLのあれ
+class SC_Display{
+
+    var $response;
+
+    var $device;
+
+    var $autoSet;
+
+    /**
+     *
+     * @var SC_View
+     */
+    var $view;
+        
+    var $deviceSeted = false;
+    
+    // TODO php4を捨てたときに ここのコメントアウトを外してね。
+    /*
+    * const('MOBILE',1);
+    * const('SMARTPHONE',2);
+    * const('PC',4);
+    * const('ADMIN',8);
+    */
+    function SC_Display($setPrevURL=true,$autoGenerateHttpHeaders = true){
+        require_once(CLASS_EX_PATH."/SC_Response_Ex.php");
+        $this->response = new SC_Response_Ex();
+        $this->autoSet = $autoGenerateHttpHeaders;
+        if ($setPrevURL) {
+            $this->setPrevURL();
+        }
+    }
+    
+    function setPrevURL(){
+        $objCartSess = new SC_CartSession();
+        $objCartSess->setPrevURL($_SERVER['REQUEST_URI']);
+
+    }
+
+
+    // TODO このメソッドは、レスポンスを返すためのメソッドです。名前を絶対に変えましょう。
+    /**
+    *
+    * @param $page LC_Page
+    */
+    function hoge(LC_Page $page, $is_admin = false){
+        if(!$this->deviceSeted || !is_null($this->view)){
+            $device = ($is_admin) ? 8 : $this->detectDevice();
+            $this->setDevice($device);
+        }
+        $this->assignobj($page);
+        $this->response->setResposeBody($this->view->getResponse($page->getTemplate()));
+    }
+    
+    function redirect($location){
+        $this->response->sendRedirect($location);
+    }
+    
+    function reload($queryString = array(), $removeQueryString = false){
+        $this->response->reload($queryString, $removeQueryString);
+    }
+    
+    function noAction(){    
+        return;
+    }
+    
+    function addHeader(String $name,String $value){
+        $this->response->addHeader($name, $value);
+    }
+
+    /**
+     * デバイス毎の出力方法を自動で変更する、ファサード
+     * Enter description here ...
+     */
+    function setDevice($device=4){
+        
+        switch ($device){
+            case 1:
+                $this->response->setContentType("text/html");
+                $this->setView(new SC_MobileView());
+                break;
+            case 2:
+                //                $this->view = new
+                break;
+            case 4:
+                $this->setView(new SC_SiteView());
+                break;
+            case 8:
+                $this->setView(new SC_AdminView());
+        }
+        $this->deviceSeted = true;
+    }
+    
+    function setView(SC_View $view){
+        
+        $this->view = $view;
+    }
+
+    /**
+     * 機種を判別する。
+     * SC_Display::MOBILE = ガラケー = 1
+     * SC_Display::SMARTPHONE = スマホ = 2
+     * SC_Display::PC = PC = 4
+     * ※PHP4の為にconstは使っていません。 1がガラケーで、2がスマホで4がPCです。
+     * @return
+     */
+    function detectDevice(){
+        $nu = new Net_UserAgent_Mobile();
+        $su = new SC_SmartphoneUserAgent();
+        $retDevice = 0;
+        if($nu->isMobile()){
+            $retDevice = 1;
+        }elseif ($su->isSmartphone()){
+            $retDevice = 2;
+        }else{
+            $retDevice = 4;
+        }
+
+        if($this->autoSet){
+            $this->setDevice($retDevice);
+        }
+        return $retDevice;
+    }
+
+    function assign($val1,$val2){
+        $this->view->assign($val1, $val2);
+    }
+
+    function assignobj($obj){
+        $this->view->assignobj($obj);
+    }
+
+    function assignarray($array){
+        $this->view->assignarray($array);
+    }
+
+
+}
Index: /branches/version-2_5-dev/data/class/SC_View.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_View.php	(revision 19547)
+++ /branches/version-2_5-dev/data/class/SC_View.php	(revision 19661)
@@ -118,6 +118,31 @@
 
     // テンプレートの処理結果を取得
-    function fetch($template) {
+    function fetch($template, $no_error=false) {
         return $this->_smarty->fetch($template);
+    }
+
+    /**
+     * SC_Display用にレスポンスを返す
+     * @global string $GLOBAL_ERR
+     * @param array $template
+     * @param boolean $no_error
+     * @return string
+     */
+    function getResponse($template, $no_error = false) {
+        if(!$no_error) {
+            global $GLOBAL_ERR;
+            if(!defined('OUTPUT_ERR')) {
+                // GLOBAL_ERR を割り当て
+                $this->assign("GLOBAL_ERR", $GLOBAL_ERR);
+                define('OUTPUT_ERR','ON');
+            }
+        }
+        $res =  $this->_smarty->fetch($template);
+        if(ADMIN_MODE == '1') {
+            $time_end = SC_Utils_Ex::sfMicrotimeFloat();
+            $time = $time_end - $this->time_start;
+            $res .= '処理時間: ' . sprintf('%.3f', $time) . '秒';
+        }
+        return $res;
     }
 
@@ -137,5 +162,5 @@
             $time_end = SC_Utils_Ex::sfMicrotimeFloat();
             $time = $time_end - $this->time_start;
-            echo '処理時間: ' . sprintf('%.3f', $time) . 秒;
+            echo '処理時間: ' . sprintf('%.3f', $time) . '秒';
         }
     }
@@ -144,5 +169,5 @@
       function assignobj($obj) {
         $data = get_object_vars($obj);
-
+        
         foreach ($data as $key => $value){
             $this->_smarty->assign($key, $value);
@@ -172,6 +197,4 @@
         $this->_smarty->debugging = $var;
     }
-
-
 }
 
@@ -225,3 +248,11 @@
     }
 }
+
+class SC_SmartphoneView extends SC_SiteView {
+    function SC_SmartphoneView($setPrevURL = true) {
+        parent::SC_SiteView($setPrevURL);
+        $this->_smarty->template_dir = SMARTPHONE_TEMPLATE_DIR;
+        $this->_smarty->compile_dir = SMARTPHONE_COMPILE_DIR;
+    }
+}
 ?>
Index: /branches/version-2_5-dev/data/class/pages/LC_Page.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/LC_Page.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/LC_Page.php	(revision 19661)
@@ -73,4 +73,7 @@
     var $transactionid;
 
+    /** テンプレート名 */
+    var $template;
+
     // }}}
     // {{{ functions
@@ -86,4 +89,13 @@
         $layout = new SC_Helper_PageLayout_Ex();
         $layout->sfGetPageLayout($this, false);
+
+        $this->template = SITE_FRAME;
+
+        // ディスプレイクラス生成
+        $this->objDisplay = new SC_Display();
+
+        // プラグインクラス生成
+        // $this->objPlugin = new SC_Helper_Plugin_Ex();
+        // $this->objPlugin->preProcess($this);
     }
 
@@ -96,4 +108,41 @@
 
     /**
+     * Page のプロセス.(モバイル）
+     *
+     * @return void
+     */
+    function mobileProcess() {}
+
+    /**
+     * Page のレスポンス送信.
+     *
+     * @return void
+     */
+    function sendResponse() {
+        // post-prosess処理(暫定的)
+        //$this->objPlugin->process($this);
+
+        $this->objDisplay->hoge($this);
+        $this->objDisplay->response->response();
+    }
+
+    /**
+     * Page のレスポンス送信(ダウンロード).
+     *
+     * @return void
+     */
+    function sendResponseCSV($file_name, $data) {
+        $this->objDisplay->hoge($this);
+        $this->objDisplay->addHeader("Content-disposition", "attachment; filename=${file_name}");
+        $this->objDisplay->addHeader("Content-type", "application/octet-stream; name=${file_name}");
+        $this->objDisplay->addHeader("Cache-Control", "");
+        $this->objDisplay->addHeader("Pragma", "");
+
+        $this->objDisplay->response->body = $data;
+        $this->objDisplay->response->response();
+        exit;
+    }
+
+    /**
      * デストラクタ.
      *
@@ -101,4 +150,20 @@
      */
     function destroy() {}
+
+    /**
+     * テンプレート取得
+     *
+     */
+    function getTemplate() {
+        return $this->template;
+    }
+
+    /**
+     * テンプレート設定(ポップアップなどの場合)
+     *
+     */
+    function setTemplate($template) {
+        $this->template = $template;
+    }
 
     /**
@@ -115,4 +180,6 @@
      */
     function sendRedirect($url, $isMobile = false) {
+echo "SC_Response.php::sendRedirect()に移行してね。";
+exit;
 
         if (preg_match("/(" . preg_quote(SITE_URL, '/')
@@ -159,4 +226,6 @@
      */
     function getToken() {
+echo "SC_Helper_Session.php::getToken()に移行してね。";
+exit;
         if (empty($_SESSION[TRANSACTION_ID_NAME])) {
             $_SESSION[TRANSACTION_ID_NAME] = $this->createToken();
@@ -176,4 +245,6 @@
      */
     function isValidToken() {
+echo "SC_Helper_Session.php::isValidToken()に移行してね。";
+exit;
 
         $checkToken = "";
@@ -296,4 +367,6 @@
      */
     function reload($queryString = array(), $removeQueryString = false) {
+echo "SC_Display.php::reload()に移行してね。";
+exit;
 
         // 現在の URL を取得
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage.php	(revision 18840)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage.php	(revision 19661)
@@ -65,6 +65,17 @@
      */
     function process() {
-
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+    
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+
+        //$objView = new SC_SiteView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -117,6 +128,6 @@
         $objDb = new SC_Helper_DB_Ex();
         $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method");
-        $objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
-        $objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
+        //$objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
+        //$objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
     }
 
@@ -127,4 +138,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'mypage/index.tpl';
         $this->tpl_title = 'MYページ/購入履歴一覧';
@@ -138,5 +150,16 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+    
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+        //$objView = new SC_MobileView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -181,5 +204,5 @@
                     if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
                         if (!$objCustomer->hasValue('email_mobile')) {
-                            $this->sendRedirect($this->getLocation("../entry/email_mobile.php"), true);
+                            $this->objDisplay->redirect($this->getLocation("../entry/email_mobile.php"));
                             exit;
                         }
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php	(revision 19659)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php	(revision 19661)
@@ -63,5 +63,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -109,6 +120,6 @@
         $this->tpl_arrMailHistory = $this->lfGetMailHistory($orderId);
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
@@ -128,4 +139,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = MOBILE_TEMPLATE_DIR . 'mypage/history.tpl';
         $this->tpl_title = 'MYページ/購入履歴一覧';
@@ -139,7 +151,18 @@
      */
     function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         define ("HISTORY_NUM", 5);
 
-        $objView = new SC_MobileView();
+        //$objView = new SC_MobileView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -192,6 +215,6 @@
 
         $this->tpl_strnavi = $previous . $bar . $next;
-        $objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
-        $objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
+        //$objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
+        //$objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php	(revision 18840)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php	(revision 19661)
@@ -59,5 +59,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objCustomer = new SC_Customer();
         $objQuery = new SC_Query();
@@ -106,10 +117,10 @@
             $objCustomer->EndSession();
             //完了ページへ
-            $this->sendRedirect($this->getLocation("./refusal_complete.php"));
+            $this->objDisplay->redirect($this->getLocation("./refusal_complete.php"));
             exit;
         }
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
@@ -120,4 +131,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'mypage/refusal.tpl';
         $this->tpl_title = "MYページ/退会手続き(入力ページ)";
@@ -131,5 +143,17 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+
+        //$objView = new SC_MobileView();
         $objCustomer = new SC_Customer();
         $objQuery = new SC_Query();
@@ -146,5 +170,5 @@
 
         if (isset($_POST['no'])) {
-            $this->sendRedirect($this->getLocation(DIR_INDEX_URL), true);
+            $this->objDisplay->redirect($this->getLocation(DIR_INDEX_URL));
             exit;
         } elseif (isset($_POST['complete'])){
@@ -155,10 +179,10 @@
             $objCustomer->EndSession();
             //完了ページへ
-            $this->sendRedirect($this->getLocation("./refusal_complete.php"), true);
+            $this->objDisplay->redirect($this->getLocation("./refusal_complete.php"));
             exit;
         }
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Delivery.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Delivery.php	(revision 18845)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Delivery.php	(revision 19661)
@@ -63,5 +63,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objCustomer = new SC_Customer();
         
@@ -114,6 +125,6 @@
         $this->tpl_linemax = count($this->arrOtherDeliv);;
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_HistoryDetail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_HistoryDetail.php	(revision 18827)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_HistoryDetail.php	(revision 19661)
@@ -52,5 +52,15 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
     }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {}
 
     /**
@@ -60,4 +70,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'mypage/history_detail.tpl';
         $this->tpl_title = 'MYページ';
@@ -71,5 +82,17 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+
+        //$objView = new SC_MobileView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -102,6 +125,6 @@
         }
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php	(revision 18853)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php	(revision 19661)
@@ -73,5 +73,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+    
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $this->objQuery = new SC_Query();
         $this->objCustomer = new SC_Customer();
@@ -180,5 +191,5 @@
 
                 //完了ページへ
-                $this->sendRedirect($this->getLocation("./change_complete.php"));
+                $this->objDisplay->redirect($this->getLocation("./change_complete.php"));
                 exit;
             } else {
@@ -201,6 +212,6 @@
         }
 
-        $objView->assignobj($this);             //$objpage内の全てのテンプレート変数をsmartyに格納
-        $objView->display(SITE_FRAME);              //パスとテンプレート変数の呼び出し、実行
+        //$objView->assignobj($this);             //$objpage内の全てのテンプレート変数をsmartyに格納
+        //$objView->display(SITE_FRAME);              //パスとテンプレート変数の呼び出し、実行
 
 
@@ -213,4 +224,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'mypage/change.tpl';		// メインテンプレート
         $this->tpl_title .= '登録変更(1/3)';			// ページタイトル
@@ -231,7 +243,18 @@
      */
     function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objDb = new SC_Helper_DB_Ex();
         $CONF = $objDb->sf_getBasisData();					// 店舗基本情報
-        $objView = new SC_MobileView();
+        //$objView = new SC_MobileView();
         
         // 生年月日選択肢の取得
@@ -385,5 +408,5 @@
                         $this->objCustomer->updateSession();
                         //完了ページへ
-                        $this->sendRedirect($this->getLocation("./change_complete.php"), true);
+                        $this->objDisplay->redirect($this->getLocation("./change_complete.php"));
                         exit;
                     } else {
@@ -400,6 +423,6 @@
 
         //---- ページ表示
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php	(revision 18743)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php	(revision 19661)
@@ -55,4 +55,15 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
         $objCustomer = new SC_Customer();
         // クッキー管理クラス
@@ -90,5 +101,5 @@
 
             if($objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'], true)) {
-                $this->sendRedirect($this->getLocation(DIR_INDEX_URL, array(), true));
+                $this->objDisplay->redirect($this->getLocation(DIR_INDEX_URL, array(), true));
                 exit;
             } else {
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php	(revision 18851)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php	(revision 19661)
@@ -52,4 +52,15 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
     	ob_end_clean();
 
@@ -69,56 +80,64 @@
 
         $objCustomer = new SC_Customer();
-        //ログインしていない場合
+        //ログインしていない場合エラー
         if (!$objCustomer->isLoginSuccess()){
             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
-        } else {
-        //ログインしている場合
-            //DBから商品情報の読込
-            $arrForm = $this->lfGetRealFileName($customer_id, $order_id, $product_id, $product_class_id);
-            //ステータスが支払済み以上である事
-            if ($arrForm["status"] < ORDER_DELIV){
-                SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
-            }
-            //ファイル情報が無い場合はNG
-            if ($arrForm["down_realfilename"] == "" ){
-                SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
-            }
-            //ファイルそのものが無い場合もとりあえずNG
-            $realpath = DOWN_SAVE_DIR . $arrForm["down_realfilename"];
-            if (!file_exists($realpath)){
-                SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
-            }
-            //ファイル名をエンコードする Safariの対策はUTF-8で様子を見る
-            $encoding = "Shift_JIS";
-            if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'Safari')) {
-                $encoding = "UTF-8";
-            }
-            $sdown_filename = mb_convert_encoding($arrForm["down_filename"], $encoding, "auto");
-            //タイプ指定
-            header("Content-Type: Application/octet-stream");
-            //ファイル名指定
-            header("Content-Disposition: attachment; filename=" . $sdown_filename);
-            header("Content-Transfer-Encoding: binary");
-            //キャッシュ無効化
-            header("Expires: Mon, 26 Nov 1962 00:00:00 GMT");
-            header("Last-Modified: " . gmdate("D,d M Y H:i:s") . " GMT");
-            //IE6+SSL環境下は、キャッシュ無しでダウンロードできない
-            header("Cache-Control: private");
-            header("Pragma: private");
-            //ファイルサイズ指定
-            $zv_filesize = filesize($realpath);
-            header("Content-Length: " . $zv_filesize);
-            set_time_limit(0);
-            ob_end_flush();
+        }
+    }
+
+    /**
+     * Page のResponse.
+     * @return void
+     */
+    function  sendResponse() {
+        $this->objDisp->noAction();
+        //DBから商品情報の読込
+        $arrForm = $this->lfGetRealFileName($customer_id, $order_id, $product_id, $product_class_id);
+        //ステータスが支払済み以上である事
+        if ($arrForm["status"] < ORDER_DELIV){
+            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
+        }
+        //ファイル情報が無い場合はNG
+        if ($arrForm["down_realfilename"] == "" ){
+            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
+        }
+        //ファイルそのものが無い場合もとりあえずNG
+        $realpath = DOWN_SAVE_DIR . $arrForm["down_realfilename"];
+        if (!file_exists($realpath)){
+            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
+        }
+        //ファイル名をエンコードする Safariの対策はUTF-8で様子を見る
+        $encoding = "Shift_JIS";
+        if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'Safari')) {
+            $encoding = "UTF-8";
+        }
+        $sdown_filename = mb_convert_encoding($arrForm["down_filename"], $encoding, "auto");
+
+        //TODO SC_Display利用に変更
+        //タイプ指定
+        header("Content-Type: Application/octet-stream");
+        //ファイル名指定
+        header("Content-Disposition: attachment; filename=" . $sdown_filename);
+        header("Content-Transfer-Encoding: binary");
+        //キャッシュ無効化
+        header("Expires: Mon, 26 Nov 1962 00:00:00 GMT");
+        header("Last-Modified: " . gmdate("D,d M Y H:i:s") . " GMT");
+        //IE6+SSL環境下は、キャッシュ無しでダウンロードできない
+        header("Cache-Control: private");
+        header("Pragma: private");
+        //ファイルサイズ指定
+        $zv_filesize = filesize($realpath);
+        header("Content-Length: " . $zv_filesize);
+        set_time_limit(0);
+        ob_end_flush();
+        flush();
+        //ファイル読み込み
+        $handle = fopen($realpath, "rb");
+        while (!feof($handle)) {
+            echo(fread($handle, DOWNLOAD_BLOCK*1024));
+            ob_flush();
             flush();
-            //ファイル読み込み
-            $handle = fopen($realpath, "rb");
-            while (!feof($handle)) {
-                echo(fread($handle, DOWNLOAD_BLOCK*1024));
-                ob_flush();
-                flush();
-            }
-            fclose($handle);
         }
+        fclose($handle);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Login.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Login.php	(revision 18743)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Login.php	(revision 19661)
@@ -56,5 +56,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -65,8 +76,8 @@
         // ログイン判定
         if($objCustomer->isLoginSuccess()) {
-            $this->sendRedirect($this->getLocation(DIR_INDEX_URL, array(), true));
+            $this->objDisplay->redirect($this->getLocation(DIR_INDEX_URL, array(), true));
             exit;
         } else {
-            // クッキー判定
+            // クッキー判定(メールアドレスをクッキーに保存しているか）
             $this->tpl_login_email = $objCookie->getCookie('login_email');
             if($this->tpl_login_email != "") {
@@ -82,7 +93,7 @@
 
         //$objpage内の全てのテンプレート変数をsmartyに格納
-        $objView->assignobj($this);
+        //$objView->assignobj($this);
         //パスとテンプレート変数の呼び出し、実行
-        $objView->display(SITE_FRAME);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_RefusalComplete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_RefusalComplete.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_RefusalComplete.php	(revision 19661)
@@ -59,5 +59,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+         parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
 
         $objCustomer = new SC_Customer();
@@ -71,6 +82,6 @@
         $objLayout->sfGetPageLayout($this, false, "mypage/index.php");
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
@@ -92,5 +103,16 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+         parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+        //$objView = new SC_MobileView();
 
         $objCustomer = new SC_Customer();
@@ -100,6 +122,6 @@
         $this->CustomerPoint = $objCustomer->getvalue('point');
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Order.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Order.php	(revision 18827)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Order.php	(revision 19661)
@@ -52,4 +52,15 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
         $objCustomer = new SC_Customer();
         $objCartSess = new SC_CartSession();
@@ -72,5 +83,5 @@
             $objCartSess->addProduct(array($product_id, $product_class_id, $cate_id1, $cate_id2), $quantity);
         }
-        $this->sendRedirect($this->getLocation(URL_CART_TOP));
+        $this->objDisplay->redirect($this->getLocation(URL_CART_TOP));
     }
 
@@ -90,4 +101,16 @@
      */
     function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+
         $objCustomer = new SC_Customer();
         $objCartSess = new SC_CartSession();
@@ -110,5 +133,5 @@
             $objCartSess->addProduct(array($product_id, $product_class_id, $cate_id1, $cate_id2), $quantity);
         }
-        $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true);
+        $this->objDisplay->redirect($this->getLocation(MOBILE_URL_CART_TOP));
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_MailView.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_MailView.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_MailView.php	(revision 19661)
@@ -54,5 +54,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objSess = new SC_Session();
         $objCustomer = new SC_Customer();
@@ -77,6 +88,6 @@
         }
 
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
+        //$objView->assignobj($this);
+        //$objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_ChangeComplete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_ChangeComplete.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_ChangeComplete.php	(revision 19661)
@@ -58,5 +58,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objCustomer = new SC_Customer();
 
@@ -75,6 +86,6 @@
         }
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
@@ -85,4 +96,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'mypage/change_complete.tpl';
         $this->tpl_title = 'MYページ/会員登録内容変更(完了ページ)';
@@ -95,7 +107,18 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+
+        //$objView = new SC_MobileView();
         $objCustomer = new SC_Customer();
-
 
         //セッション情報を最新の状態に更新する
@@ -112,6 +135,6 @@
         }
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php	(revision 18857)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php	(revision 19661)
@@ -58,5 +58,16 @@
      */
     function process() {
-        $objView = new SC_SiteView(false);
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView(false);
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -140,7 +151,7 @@
                 break;
         }
-
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
+        $this->setTemplate($this->tpl_mainpage);
+        //$objView->assignobj($this);
+        //$objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Favorite.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Favorite.php	(revision 18840)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Favorite.php	(revision 19661)
@@ -64,6 +64,17 @@
      */
     function process() {
-
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+
+        //$objView = new SC_SiteView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -134,6 +145,6 @@
         // 入力情報を渡す
         $this->arrForm = $this->objFormParam->getFormParamList();
-        $objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
-        $objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
+        //$objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
+        //$objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
     }
 
@@ -144,4 +155,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'mypage/favorite.tpl';
         $this->tpl_title = 'MYページ/お気に入り一覧';
@@ -154,5 +166,16 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+        //$objView = new SC_MobileView();
         $objQuery = new SC_Query();
         $objCustomer = new SC_Customer();
@@ -197,5 +220,5 @@
                     if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
                         if (!$objCustomer->hasValue('email_mobile')) {
-                            $this->sendRedirect($this->getLocation("../entry/email_mobile.php"), true);
+                            $this->objDisplay->redirect($this->getLocation("../entry/email_mobile.php"));
                         }
                     }
@@ -214,4 +237,5 @@
         }
 
+        // TODO objViewを分けるので、$thisに置き換える TPLの修正が必須かな？
         /*
          * ログインチェック
@@ -229,6 +253,6 @@
         }
 
-        $objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
-        $objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
+        //$objView->assignobj($this);				//$objpage内の全てのテンプレート変数をsmartyに格納
+        //$objView->display(SITE_FRAME);				//パスとテンプレート変数の呼び出し、実行
 
     }
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php	(revision 19307)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php	(revision 19661)
@@ -62,11 +62,19 @@
      */
     function process() {
-        global $objCampaignSess;
-
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objView = new SC_SiteView();
         $objCartSess = new SC_CartSession();
         $objSiteInfo = $objView->objSiteInfo;
         $objSiteSess = new SC_SiteSession();
-        $objCampaignSess = new SC_CampaignSession();
         $objCustomer = new SC_Customer();
         $objQuery = new SC_Query();
@@ -132,5 +140,5 @@
             // 正常な推移であることを記録しておく
             $objSiteSess->setRegistFlag();
-            $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT));
+            $this->objDisplay->redirect($this->getLocation(URL_SHOP_PAYMENT));
             exit;
             break;
@@ -154,5 +162,5 @@
                 $objPurchase = new SC_Helper_Purchase_Ex();
                 $objPurchase->completeOrder(ORDER_PENDING);
-                $this->sendRedirect($this->getLocation(URL_SHOP_MODULE));
+                $this->objDisplay->redirect($this->getLocation(URL_SHOP_MODULE));
             }else{
                 // 受注を完了し, 購入完了ページへ
@@ -160,5 +168,5 @@
                 $objPurchase->completeOrder(ORDER_NEW);
                 $objPurchase->sendOrderMail($arrData["order_id"]);
-                $this->sendRedirect($this->getLocation(URL_SHOP_COMPLETE));
+                $this->objDisplay->redirect($this->getLocation(URL_SHOP_COMPLETE));
             }
             exit;
@@ -167,10 +175,4 @@
             break;
         }
-
-        $this->arrData = $arrData;
-        $this->arrInfo = $objSiteInfo->data;
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
@@ -190,4 +192,15 @@
      */
     function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objView = new SC_MobileView();
         $objCartSess = new SC_CartSession();
@@ -241,5 +254,5 @@
             // 正常な推移であることを記録しておく
             $objSiteSess->setRegistFlag();
-            $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true);
+            $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT));
             exit;
             break;
@@ -259,7 +272,7 @@
             if($payment_type != "") {
                 $_SESSION["payment_id"] = $arrData['payment_id'];
-                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_MODULE), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_MODULE));
             }else{
-                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_COMPLETE), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_COMPLETE));
             }
             exit;
@@ -270,6 +283,4 @@
         $this->arrData = $arrData;
         $this->arrInfo = $objSiteInfo->data;
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php	(revision 18860)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php	(revision 19661)
@@ -65,10 +65,17 @@
      */
     function process() {
-        global $objCampaignSess;
-
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSiteSess = new SC_SiteSession();
         $objCartSess = new SC_CartSession();
-        $objCampaignSess = new SC_CampaignSession();
         $objDb = new SC_Helper_DB_Ex();
         $this->objCustomer = new SC_Customer();
@@ -108,5 +115,5 @@
         //不正遷移チェック（正常に受注情報が格納されていない場合は一旦カート画面まで戻す）
         if (!$arrOrderTemp) {
-            $this->sendRedirect($this->getLocation(URL_CART_TOP));
+            $this->objDisplay->redirect($this->getLocation(URL_CART_TOP));
             exit;
         }
@@ -137,5 +144,5 @@
                 $objSiteSess->setRegistFlag();
                 // 確認ページへ移動
-                $this->sendRedirect($this->getLocation(URL_SHOP_CONFIRM, array(), true));
+                $this->objDisplay->redirect($this->getLocation(URL_SHOP_CONFIRM, array(), true));
                 exit;
             }else{
@@ -151,5 +158,5 @@
             // 正常な推移であることを記録しておく
             $objSiteSess->setRegistFlag();
-            $this->sendRedirect(URL_SHOP_TOP);
+            $this->objDisplay->redirect(URL_SHOP_TOP);
             exit;
             break;
@@ -175,8 +182,4 @@
 
         $this->arrForm = $this->objFormParam->getFormParamList();
-
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
@@ -196,5 +199,15 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のプロセス(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objSiteSess = new SC_SiteSession();
         $objCartSess = new SC_CartSession();
@@ -227,5 +240,5 @@
         //不正遷移チェック（正常に受注情報が格納されていない場合は一旦カート画面まで戻す）
         if (!$arrOrderTemp) {
-            $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP));
+            $this->objDisplay->redirect($this->getLocation(MOBILE_URL_CART_TOP));
             exit;
         }
@@ -252,7 +265,7 @@
                 if ($this->cartdown == 2) {
                     // ダウンロード商品のみの場合はカート画面へ戻る
-                    $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true);
+                    $this->objDisplay->redirect($this->getLocation(MOBILE_URL_CART_TOP));
                 } else {
-                    $this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
+                    $this->objDisplay->redirect(MOBILE_URL_SHOP_TOP);
                 }
                 exit;
@@ -294,5 +307,5 @@
                 $objSiteSess->setRegistFlag();
                 // 確認ページへ移動
-                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_CONFIRM), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_CONFIRM));
                 exit;
             }else{
@@ -313,5 +326,5 @@
             // 正常な推移であることを記録しておく
             $objSiteSess->setRegistFlag();
-            $this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
+            $this->objDisplay->redirect(MOBILE_URL_SHOP_TOP);
             exit;
             break;
@@ -338,7 +351,4 @@
 
         $this->arrForm = $this->objFormParam->getFormParamList();
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_DelivAddr.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_DelivAddr.php	(revision 18853)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_DelivAddr.php	(revision 19661)
@@ -52,4 +52,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
     }
 
@@ -72,4 +82,14 @@
      */
     function mobileProcess() {
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objView = new SC_MobileView(false);
         $objQuery = new SC_Query();
@@ -120,5 +140,5 @@
                 break;
             default:
-                $this->sendRedirect($this->getLocation("./deliv.php"), true);
+                $this->objDisplay->redirect($this->getLocation("./deliv.php"));
                 exit;
             }
@@ -174,5 +194,5 @@
                 $objSiteSess->setRegistFlag();
                 // お支払い方法選択ページへ移動
-                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT));
                 exit;
             } else {
@@ -186,7 +206,4 @@
             }
         }
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php	(revision 18853)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php	(revision 19661)
@@ -69,10 +69,17 @@
      */
     function process() {
-        global $objCampaignSess;
-
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function action() {
         $objSiteSess = new SC_SiteSession();
         $objCartSess = new SC_CartSession();
-        $objCampaignSess = new SC_CampaignSession();
         $objCustomer = new SC_Customer();
         $objCookie = new SC_Cookie();
@@ -98,8 +105,8 @@
                 $objSiteSess->setRegistFlag();
                 //カート内が全てダウンロード商品の場合は支払方法設定画面に転送
-                $this->sendRedirect($this->getLocation("./payment.php"), array());
+                $this->objDisplay->redirect($this->getLocation("./payment.php"), array());
             } else {
                 // お届け先設定画面に転送
-                $this->sendRedirect($this->getLocation("./deliv.php"), array());
+                $this->objDisplay->redirect($this->getLocation("./deliv.php"), array());
             }
             exit;
@@ -107,5 +114,5 @@
 
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
-            if (!$this->isValidToken()) {
+            if (!SC_Helper_Session_Ex::isValidToken()) {
                 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true);
             }
@@ -138,5 +145,5 @@
                 $objSiteSess->setRegistFlag();
                 // お支払い方法選択ページへ移動
-                $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT));
+                $this->objDisplay->redirect($this->getLocation(URL_SHOP_PAYMENT));
                 exit;
             }
@@ -146,5 +153,5 @@
         case 'return':
             // 確認ページへ移動
-            $this->sendRedirect($this->getLocation(URL_CART_TOP));
+            $this->objDisplay->redirect($this->getLocation(URL_CART_TOP));
             exit;
             break;
@@ -191,8 +198,5 @@
         $this->arrForm = $this->objFormParam->getFormParamList();
 
-        $this->transactionid = $this->getToken();
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
     }
 
@@ -208,9 +212,20 @@
 
     /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->endResponse();
+    }
+
+    /**
      * Page のプロセス(モバイル).
      *
      * @return void
      */
-    function mobileProcess() {
+    function mobileAction() {
         $objView = new SC_MobileView();
         $objSiteSess = new SC_SiteSession();
@@ -241,8 +256,8 @@
                 $objSiteSess->setRegistFlag();
                 //カート内が全てダウンロード商品の場合は支払方法設定画面に転送
-                $this->sendRedirect($this->getLocation("./payment.php"), array());
+                $this->objDisplay->redirect($this->getLocation("./payment.php"), array());
             } else {
                 // お届け先設定画面に転送
-                $this->sendRedirect($this->getLocation("./deliv.php"), array());
+                $this->objDisplay->redirect($this->getLocation("./deliv.php"), array());
             }
             exit;
@@ -257,7 +272,4 @@
             $this->tpl_login_memory = "1";
         }
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 18880)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 19661)
@@ -67,10 +67,17 @@
      */
     function process() {
-        global $objCampaignSess;
-
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function action() {
         $objView = new SC_SiteView();
         $objSiteSess = new SC_SiteSession();
         $objCartSess = new SC_CartSession();
-        $objCampaignSess = new SC_CampaignSession();
         $objCustomer = new SC_Customer();
         $objDb = new SC_Helper_DB_Ex();
@@ -141,5 +148,5 @@
                 $objSiteSess->setRegistFlag();
                 // ダウンロード商品有りの場合は、支払方法画面に転送
-                $this->sendRedirect($this->getLocation("./payment.php"), array());
+                $this->objDisplay->redirect($this->getLocation("./payment.php"), array());
                 exit;
             }
@@ -163,5 +170,5 @@
                 $objSiteSess->setRegistFlag();
                 // お支払い方法選択ページへ移動
-                $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT, array(), true));
+                $this->objDisplay->redirect($this->getLocation(URL_SHOP_PAYMENT, array(), true));
                 exit;
             // 別のお届け先がチェックされている場合
@@ -179,5 +186,5 @@
                     $objSiteSess->setRegistFlag();
                     // お支払い方法選択ページへ移動
-                    $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT, array(), true));
+                    $this->objDisplay->redirect($this->getLocation(URL_SHOP_PAYMENT, array(), true));
                     exit;
                 }
@@ -190,5 +197,5 @@
         case 'return':
             // 確認ページへ移動
-            $this->sendRedirect($this->getLocation(URL_CART_TOP, array(), true));
+            $this->objDisplay->redirect($this->getLocation(URL_CART_TOP, array(), true));
             exit;
             break;
@@ -225,8 +232,4 @@
         $this->arrForm = $this->objFormParam->getFormParamList();
         $this->arrErr = $arrErr;
-
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
@@ -246,4 +249,14 @@
      */
     function mobileProcess() {
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のプロセス(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objView = new SC_MobileView();
         $objSiteSess = new SC_SiteSession();
@@ -316,10 +329,10 @@
                     $objSiteSess->setRegistFlag();
                     // ダウンロード商品有りの場合は、支払方法画面に転送
-                    $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), array());
+                    $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), array());
                     exit;
                 }
             } else {
                 // ログインページに戻る
-                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_TOP), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_TOP));
                 exit;
             }
@@ -335,5 +348,5 @@
             if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
                 if (!$objCustomer->hasValue('email_mobile')) {
-                    $this->sendRedirect($this->getLocation("../entry/email_mobile.php"), true);
+                    $this->objDisplay->redirect($this->getLocation("../entry/email_mobile.php"));
                     exit;
                 }
@@ -358,5 +371,5 @@
                 $objSiteSess->setRegistFlag();
                 // お支払い方法選択ページへ移動
-                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT));
                 exit;
             }else{
@@ -381,5 +394,5 @@
                     $objSiteSess->setRegistFlag();
                     // お支払い方法選択ページへ移動
-                    $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true);
+                    $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT));
                     exit;
                 }
@@ -393,5 +406,5 @@
         case 'return':
             // 確認ページへ移動
-            $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true);
+            $this->objDisplay->redirect($this->getLocation(MOBILE_URL_CART_TOP));
             exit;
             break;
@@ -426,6 +439,4 @@
         $this->arrForm = $this->objFormParam->getFormParamList();
         $this->arrErr = $arrErr;
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php	(revision 19628)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php	(revision 19661)
@@ -59,12 +59,18 @@
      */
     function process() {
-        global $objCampaignSess;
-
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objView = new SC_SiteView();
         $objSiteInfo = $objView->objSiteInfo;
         $this->arrInfo = $objSiteInfo->data;
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
@@ -93,4 +99,14 @@
      */
     function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+    /**
+     * Page のプロセス(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objView = new SC_MobileView();
         $this->objSiteSess = new SC_SiteSession();
@@ -152,7 +168,4 @@
             }
         }
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
@@ -234,9 +247,5 @@
         }
         // 一時テーブルを受注テーブルに格納する
-        if (defined("MOBILE_SITE")) {
-            $order_id = $this->lfRegistOrder($objQuery, $arrData);
-        } else {
-            $order_id = $this->lfRegistOrder($objQuery, $arrData, $this->objCampaignSess);
-        }
+        $order_id = $this->lfRegistOrder($objQuery, $arrData);
         // カート商品を受注詳細テーブルに格納する
         $this->lfRegistOrderDetail($objQuery, $order_id, $this->objCartSess);
@@ -375,5 +384,5 @@
      * @return integer 注文番号
      */
-    function lfRegistOrder($objQuery, $arrData, $objCampaignSess = null) {
+    function lfRegistOrder($objQuery, $arrData) {
         $objDb = new SC_Helper_DB_Ex();
         $sqlval = $arrData;
@@ -426,9 +435,4 @@
         $sqlval['create_date'] = 'Now()';       // 受注日
         $sqlval['update_date'] = 'Now()';       // 更新日時
-
-        // キャンペーンID
-        if (!defined("MOBILE_SITE")) {
-            if ($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId();
-        }
 
         // 受注テーブルの登録
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id: LC_Page_Admin_System_Rank.php 16582 2007-11-28 15:02:29Z satou $
  */
-class LC_Page_Admin_System_Rank extends LC_Page {
+class LC_Page_Admin_System_Rank extends LC_Page_Admin {
     // }}}
     // {{{ functions
@@ -51,4 +51,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
 
@@ -75,5 +85,5 @@
         
         // ページの表示
-        $this->sendRedirect($this->getLocation(URL_SYSTEM_TOP));
+        $this->objDisplay->redirect($this->getLocation(URL_SYSTEM_TOP));
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php	(revision 19661)
@@ -0,0 +1,180 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
+
+/**
+ * システム情報 のページクラス.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: LC_Page_Admin_System_System.php 18701 2010-06-14 08:30:18Z nanasess $
+ */
+class LC_Page_Admin_System_Plugin extends LC_Page_Admin {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = 'system/plugin.tpl';
+        $this->tpl_subnavi  = 'system/subnavi.tpl';
+        $this->tpl_subno    = 'plugin';
+        $this->tpl_mainno   = 'system';
+        $this->tpl_subtitle = 'プラグイン管理';
+    }
+
+    /**
+     * フォームパラメータ初期化
+     *
+     * @return void
+     */
+    function initForm() {
+        $objForm = new SC_FormParam();
+        var_dump($_POST);
+        $objForm->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK'));
+        $objForm->addParam('plugin_name', 'plugin_name', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK'));
+
+        $objForm->setParam($_POST);
+        $this->objForm = $objForm;
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
+        SC_Utils_Ex::sfIsSuccess(new SC_Session);
+        $this->initForm();
+        switch($this->objForm->getValue('mode')) {
+            // PHP INFOを表示
+            case 'install':
+                $name = $this->objForm->getValue('plugin_name');
+                require_once(DATA_PATH.'/plugin/'.$name.'/'.$name.'.php');
+                $plugin = new $name();
+                $plugin->install();
+                break;
+            case 'uninstall':
+                $name = $this->objForm->getValue('plugin_name');
+                require_once(DATA_PATH.'/plugin/'.$name.'/'.$name.'.php');
+                $plugin = new $name();
+                $plugin->uninstall();
+                break;
+            case 'enable':
+                $name = $this->objForm->getValue('plugin_name');
+                require_once(DATA_PATH.'/plugin/'.$name.'/'.$name.'.php');
+                $plugin = new $name();
+                $plugin->enable();
+                
+                break;
+            case 'disable':
+              $name = $this->objForm->getValue('plugin_name');
+                require_once(DATA_PATH.'/'.$name.'/'.$name.'.php');
+                $plugin = new $name();
+                $plugin->disable();
+                break;
+            default:
+                $plugins = SC_Helper_Plugin_Ex::getAllPlugin();
+                $this->plugins = array_merge($plugins,
+                $this->getPluginOnFilesystem($plugins));
+                break;
+        }
+
+        $this->arrSystemInfo = $this->getSystemInfo();
+    }
+
+    /*
+     CREATE TABLE dtb_plugin (
+     plugin_id INT NOT NULL,
+     plugin_name VARCHAR(255) NOT NULL DEFAULT "",
+     enable INT NOT NULL DEFAULT 0,
+     del_flg INT NOT NULL DEFAULT 0,
+     class_name VARCHAR(255) NOT NULL DEFAULT NULL,
+     create_date DATETIME NOT NULL,
+     update_date DATETIME NOT NULL,
+     PRIMARY KEY (plugin_id)
+     ) TYPE=InnoDB;
+     */
+
+    function getPluginOnFilesystem($existsPlugins){
+
+        $dir = DATA_PATH."plugin/";
+        $arrPlugins = array();
+        if($dh =  opendir($dir)){
+            while(($file = readdir($dh)) !== false){
+                if(!preg_match('/^\\./', $file) && $file !='..' && filetype($dir.$file) == 'dir'){
+                    $arrPlugins[] = array('plugin_name'=>$file,'class_name'=>$file);
+
+                }
+            }
+        }
+        //        var_dump($arrPlugins);
+        return $arrPlugins;
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    /**
+     * システム情報を取得する
+     *
+     * @return array
+     */
+    function getSystemInfo() {
+        $objDB = SC_DB_DBFactory_Ex::getInstance();
+
+        $arrSystemInfo = array(
+        array('title' => 'EC-CUBE',  'value' => ECCUBE_VERSION),
+        array('title' => 'OS',       'value' => php_uname()),
+        array('title' => 'DBサーバ',  'value' => $objDB->sfGetDBVersion()),
+        array('title' => 'WEBサーバ', 'value' => $_SERVER['SERVER_SOFTWARE']),
+        array('title' => 'PHP',      'value' => phpversion()),
+        array('title' => 'GD',       'value' => extension_loaded('GD') ? 'Loaded' : '--'),
+        );
+
+        return $arrSystemInfo;
+    }
+}
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Input.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Input.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Input.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System_Input extends LC_Page {
+class LC_Page_Admin_System_Input extends LC_Page_Admin {
 
     // }}}
@@ -44,4 +44,6 @@
     function init() {
         parent::init();
+
+        $this->tpl_mainpage = 'system/input.tpl';
 
         // ページ送り用ナンバーの取得
@@ -61,10 +63,19 @@
      */
     function process() {
-
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // ログインチェック
         SC_Utils::sfIsSuccess(new SC_Session());
 
         // トランザクショントークンの取得
-        $this->transactionid = $this->getToken();
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
 
         switch($this->getMode()) {
@@ -85,8 +96,4 @@
             break;
         }
-
-        $objView = new SC_AdminView();
-        $objView->assignobj($this);
-        $objView->display('system/input.tpl');
     }
 
@@ -124,5 +131,5 @@
      */
     function execNewMode() {
-        if ($this->isValidToken() !== true) {
+        if (SC_Helper_Session_Ex::isValidToken() !== true) {
             SC_Utils::sfDispError('');
         }
@@ -143,10 +150,10 @@
             $this->arrErr = $arrErr;
             // トランザクショントークンの取得
-            $this->transactionid = $this->getToken();
+            $this->transactionid = SC_Helper_Session_Ex::getToken();
             return;
         }
 
         $this->insertMemberData($this->objForm->getHashArray());
-        $this->reload(array('mode' => 'parent_reload'));
+        $this->objDisplay->reload(array('mode' => 'parent_reload'));
     }
 
@@ -214,5 +221,5 @@
      */
     function execEditMode() {
-        if ($this->isValidToken() !== true) {
+        if (SC_Helper_Session_Ex::isValidToken() !== true) {
             SC_Utils::sfDispError('');
         }
@@ -233,5 +240,5 @@
             $this->arrErr = $arrErr;
             // トランザクショントークンの取得
-            $this->transactionid = $this->getToken();
+            $this->transactionid = SC_Helper_Session_Ex::getToken();
             return;
         }
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System extends LC_Page {
+class LC_Page_Admin_System extends LC_Page_Admin {
 
     // }}}
@@ -65,5 +65,14 @@
      */
     function process() {
-        $objView  = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess  = new SC_Session();
 
@@ -87,7 +96,4 @@
         // 取得範囲を指定(開始行番号、行数のセット)して管理者データを取得
         $this->list_data = $this->getMemberData($objNavi->start_row);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Parameter.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Parameter.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Parameter.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System_Parameter extends LC_Page {
+class LC_Page_Admin_System_Parameter extends LC_Page_Admin {
 
     // {{{ properties
@@ -68,5 +68,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $masterData = new SC_DB_MasterData_Ex();
 
@@ -106,6 +115,4 @@
                                              array("id", "remarks", "rank")));
 
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(DATA_PATH. "module/Tar.php");
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System_Bkup extends LC_Page {
+class LC_Page_Admin_System_Bkup extends LC_Page_Admin {
 
     // }}}
@@ -61,5 +61,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
 
@@ -147,7 +156,4 @@
         $this->arrForm = isset($arrForm) ? $arrForm : array();
         $this->arrBkupList = $arrBkupList;
-
-        $objView->assignobj($this);		//変数をテンプレートにアサインする
-        $objView->display(MAIN_FRAME);		//テンプレートの出力
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Log.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Log.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Log.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id: LC_Page_Admin_System_System.php 17576 2008-08-28 06:08:09Z Seasoft $
  */
-class LC_Page_Admin_System_Log extends LC_Page {
+class LC_Page_Admin_System_Log extends LC_Page_Admin {
 
     // }}}
@@ -58,6 +58,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         SC_Utils_Ex::sfIsSuccess(new SC_Session);
-        $objView = new SC_AdminView();
         
         $this->lfInitParam();
@@ -68,7 +77,4 @@
         
         $this->tpl_ec_log = $this->getEccubeLog();
-        
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System_Delete extends LC_Page {
+class LC_Page_Admin_System_Delete extends LC_Page_Admin {
 
     // }}}
@@ -52,5 +52,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
 
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // 認証可否の判定
         $objSess = new SC_Session();
@@ -81,5 +90,5 @@
         $url = $this->getLocation(URL_SYSTEM_TOP)
              . '?pageno=' . $this->objForm->getValue('pageno');
-        $this->sendRedirect($url);
+        $this->objDisplay->redirect($url);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_System.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_System.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_System.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System_System extends LC_Page {
+class LC_Page_Admin_System_System extends LC_Page_Admin {
 
     // }}}
@@ -69,7 +69,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
 
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         SC_Utils_Ex::sfIsSuccess(new SC_Session);
-        $objView = new SC_AdminView();
 
         $this->initForm();
@@ -87,7 +95,4 @@
 
         $this->arrSystemInfo = $this->getSystemInfo();
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_System_Masterdata extends LC_Page {
+class LC_Page_Admin_System_Masterdata extends LC_Page_Admin {
 
     // }}}
@@ -57,8 +57,16 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
 
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         SC_Utils_Ex::sfIsSuccess(new SC_Session);
 
-        $objView = new SC_AdminView();
         $this->arrMasterDataName = $this->getMasterDataNames(array("mtb_pref",
                                                                    "mtb_zip",
@@ -108,7 +116,4 @@
         default:
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin.php	(revision 19661)
@@ -43,6 +43,12 @@
      */
     function init() {
-        parent::init();
-        $this->tpl_mainpage = 'login.tpl';
+        $this->template = MAIN_FRAME;
+
+        // ディスプレイクラス生成
+        $this->objDisplay = new SC_Display();
+
+        // プラグインクラス生成
+        #$this->objPlagin = new SC_Helper_Plugin_Ex();
+        #$this->objPlagin->preProcess($this);
     }
 
@@ -53,8 +59,16 @@
      */
     function process() {
-        $objView = new SC_AdminView();
-        $objView->assignobj($this);
-        $objView->display(LOGIN_FRAME);
     }
+
+    /**
+     * Page のレスポンス送信.
+     *
+     * @return void
+     */
+    function sendResponse() {
+        $this->objDisplay->hoge($this, true);
+        $this->objDisplay->response->response();
+    }
+
 
     /**
Index: /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_OwnersStore extends LC_Page {
+class LC_Page_Admin_OwnersStore extends LC_Page_Admin {
 
     var $tpl_subno = 'index';
@@ -58,11 +58,16 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
 
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // ログインチェック
         SC_Utils::sfIsSuccess(new SC_Session());
-
-        $objView = new SC_AdminView();
-        $objView->assignObj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_Settings.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_Settings.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_Settings.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_OwnersStore_Settings extends LC_Page {
+class LC_Page_Admin_OwnersStore_Settings extends LC_Page_Admin {
 
     /** SC_FormParamのインスタンス */
@@ -67,10 +67,19 @@
      */
     function process() {
-
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // ログインチェック
         SC_Utils::sfIsSuccess(new SC_Session());
 
         // トランザクションIDの取得
-        $this->transactionid = $this->getToken();
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
 
         // $_POST['mode']によってアクション振り分け
@@ -84,9 +93,4 @@
             $this->execDefaultMode();
         }
-
-        // ページ出力
-        $objView = new SC_AdminView();
-        $objView->assignObj($this);
-        $objView->display(MAIN_FRAME);
     }
 
@@ -124,5 +128,5 @@
      */
     function execRegisterMode() {
-        if ($this->isValidToken() !== true) {
+        if (SC_Helper_Session_Ex::isValidToken() !== true) {
             SC_Utils_Ex::sfDispError('');
         }
@@ -136,5 +140,5 @@
             $this->arrErr  = $arrErr;
             $this->arrForm = $this->objForm->getHashArray();
-            $this->transactionid = $this->getToken();
+            $this->transactionid = SC_Helper_Session_Ex::getToken();
             return;
         }
@@ -147,5 +151,5 @@
 
         $this->tpl_onload = "alert('登録しました。')";
-        $this->transactionid = $this->getToken();
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_Log.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_Log.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_Log.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_OwnersStore_Log extends LC_Page {
+class LC_Page_Admin_OwnersStore_Log extends LC_Page_Admin {
 
     // }}}
@@ -57,4 +57,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
 
         // ログインチェック
@@ -78,9 +88,4 @@
         }
         $this->arrInstallLogs = $this->getLogs();
-
-        // ページ出力
-        $objView = new SC_AdminView();
-        $objView->assignObj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_Recommend.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_Recommend.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_Recommend.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents_Recommend extends LC_Page {
+class LC_Page_Admin_Contents_Recommend extends LC_Page_Admin {
 
     // }}}
@@ -57,6 +57,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
 
@@ -146,8 +155,4 @@
         $objDb = new SC_Helper_DB_Ex();
         $this->arrCatList = $objDb->sfGetCategoryList("level = 1");
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileManager.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileManager.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileManager.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php");
 
@@ -33,5 +33,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents_FileManager extends LC_Page {
+class LC_Page_Admin_Contents_FileManager extends LC_Page_Admin {
 
     // }}}
@@ -59,4 +59,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         //---- 認証可否の判定
         $objSess = new SC_Session();
@@ -203,8 +213,4 @@
             }
         }
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileView.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileView.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileView.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php");
 
@@ -33,5 +33,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents_FileView extends LC_Page {
+class LC_Page_Admin_Contents_FileView extends LC_Page_Admin {
 
     // }}}
@@ -53,4 +53,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // FIXME パスのチェック関数が必要
         if (preg_match('|\./|', $_GET['file'])) {
@@ -81,5 +91,5 @@
             print($objFileManager->sfReadFile(USER_PATH . $_GET['file']));
         } else {
-            $this->sendRedirect(USER_URL . $_GET['file']);
+            $this->objDisplay->redirect(USER_URL . $_GET['file']);
             exit;
         }
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CSV.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CSV.php	(revision 18844)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CSV.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php");
 
@@ -33,5 +33,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents_CSV extends LC_Page {
+class LC_Page_Admin_Contents_CSV extends LC_Page_Admin {
 
     // }}}
@@ -59,5 +59,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objCSV = new SC_Helper_CSV_Ex();
@@ -110,5 +119,5 @@
 
                 // 画面のリロード
-                $this->reload(array("tpl_subno_csv" => $subno_csv));
+                $this->objDisplay->reload(array("tpl_subno_csv" => $subno_csv));
             }
         }
@@ -133,8 +142,4 @@
         $this->SubnaviName = $this->arrSubnaviName[$subno_id];
         $this->tpl_subno_csv = $subno_csv;
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents_CsvSql extends LC_Page {
+class LC_Page_Admin_Contents_CsvSql extends LC_Page_Admin {
 
     // }}}
@@ -58,5 +58,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objDbFactory = SC_DB_DBFactory_Ex::getInstance();
 
@@ -109,15 +118,12 @@
             $this->sqlerr = isset($errMsg) ? $errMsg : "" ;
 
-            $this->objView = $objView;
-
             // 画面の表示
-            $objView->assignobj($this);
-            $objView->display('contents/csv_sql_view.tpl');
-            exit;
+            $this->setTemplate('contents/csv_sql_view.tpl');
+            return;
             break;
 
             // 新規作成
         case "new_page":
-            $this->sendRedirect($this->getLocation("./csv_sql.php"));
+            $this->objDisplay->redirect($this->getLocation("./csv_sql.php"));
             exit;
             break;
@@ -126,5 +132,5 @@
         case "delete":
             $this->lfDelData($sql_id);
-            $this->sendRedirect($this->getLocation("./csv_sql.php"));
+            $this->objDisplay->redirect($this->getLocation("./csv_sql.php"));
             exit;
             break;
@@ -216,8 +222,4 @@
         }
         $this->arrSqlData = $arrSqlData[0];	// 選択されているSQLデータ
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_RecommendSearch.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_RecommendSearch.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_RecommendSearch.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents_RecommendSearch extends LC_Page {
+class LC_Page_Admin_Contents_RecommendSearch extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -134,9 +143,4 @@
         // カテゴリ取得
         $this->arrCatList = $objDb->sfGetCategoryList();
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
-
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Contents extends LC_Page {
+class LC_Page_Admin_Contents extends LC_Page_Admin {
 
     // }}}
@@ -60,8 +60,17 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
 
         //---- ページ初期設定
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objDate = new SC_Date(ADMIN_NEWS_STARTYEAR);
         $objDb = new SC_Helper_DB_Ex();
@@ -133,5 +142,5 @@
             $objQuery->commit();
 
-            $this->reload();             //自分にリダイレクト（再読込による誤動作防止）
+            $this->objDisplay->reload();             //自分にリダイレクト（再読込による誤動作防止）
         }
 
@@ -145,5 +154,5 @@
             }
             //sf_rebuildIndex($conn);
-            $this->reload();
+            $this->objDisplay->reload();
         }
 
@@ -154,5 +163,5 @@
             if(SC_Utils_Ex::sfIsInt($input_pos)) {
                 $objDb->sfMoveRank("dtb_news", "news_id", $_POST['news_id'], $input_pos);
-                $this->reload();
+                $this->objDisplay->reload();
             }
         }
@@ -164,9 +173,4 @@
         $sql = "SELECT MAX(rank) FROM dtb_news WHERE del_flg = '0'";        // rankの最大値を取得
         $this->max_rank = $objQuery->getOne($sql);
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin_Install.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin_Install.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin_Install.php	(revision 19661)
@@ -22,5 +22,5 @@
  */
 
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -34,5 +34,5 @@
  * @version $Id:$
  */
-class LC_Page_Admin_Plugin_Install extends LC_Page {
+class LC_Page_Admin_Plugin_Install extends LC_Page_Admin {
 
     /**
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView  = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -79,7 +88,4 @@
             SC_Utils_Ex::sfDispException();
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin_Uninstall.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin_Uninstall.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin_Uninstall.php	(revision 19661)
@@ -22,5 +22,5 @@
  */
 
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -34,5 +34,5 @@
  * @version $Id:$
  */
-class LC_Page_Admin_Plugin_Uninstall extends LC_Page {
+class LC_Page_Admin_Plugin_Uninstall extends LC_Page_Admin {
 
     /**
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView  = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -79,7 +88,4 @@
             SC_Utils_Ex::sfDispException();
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/plugin/LC_Page_Admin_Plugin.php	(revision 19661)
@@ -22,5 +22,5 @@
  */
 
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -31,5 +31,5 @@
  * @version $Id:$
  */
-class LC_Page_Admin_Plugin extends LC_Page {
+class LC_Page_Admin_Plugin extends LC_Page_Admin {
 
     /**
@@ -54,5 +54,14 @@
      */
     function process() {
-        $objView  = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -61,7 +70,4 @@
 
         $this->loadPluginsList();
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Home.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Home.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Home.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once CLASS_PATH . "pages/LC_Page.php";
+require_once CLASS_PATH . "pages/admin/LC_Page_Admin.php";
 require_once DATA_PATH . 'module/Services/JSON.php';
 require_once DATA_PATH . 'module/Request.php';
@@ -34,5 +34,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Home extends LC_Page {
+class LC_Page_Admin_Home extends LC_Page_Admin {
 
     // }}}
@@ -55,6 +55,15 @@
      */
     function process() {
-        $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
+        $objQuery = new SC_Query();
         $objSess = new SC_Session();
 
@@ -107,7 +116,4 @@
         // お知らせ一覧の取得
         $this->arrInfo = $this->lfGetInfo();
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment_Input.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment_Input.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment_Input.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Payment_Input extends LC_Page {
+class LC_Page_Admin_Basis_Payment_Input extends LC_Page_Admin {
 
     // {{{ properties
@@ -62,5 +62,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -141,7 +150,4 @@
         // HIDDEN用に配列を渡す。
         $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objUpFile->getHiddenFileList());
-
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Kiyaku extends LC_Page {
+class LC_Page_Admin_Basis_Kiyaku extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -85,5 +94,5 @@
                 }
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
             } else {
                 // POSTデータを引き継ぐ
@@ -95,5 +104,5 @@
             $objDb->sfDeleteRankRecord("dtb_kiyaku", "kiyaku_id", $_POST['kiyaku_id'], "", true);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         // 編集前処理
@@ -111,10 +120,10 @@
             $objDb->sfRankDown("dtb_kiyaku", "kiyaku_id", $_POST['kiyaku_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         case 'up':
             $objDb->sfRankUp("dtb_kiyaku", "kiyaku_id", $_POST['kiyaku_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         default:
@@ -126,7 +135,4 @@
         $objQuery->setOrder("rank DESC");
         $this->arrKiyaku = $objQuery->select("kiyaku_title, kiyaku_text, kiyaku_id", "dtb_kiyaku", $where);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php	(revision 18891)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Payment extends LC_Page {
+class LC_Page_Admin_Basis_Payment extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -71,15 +80,15 @@
                 $objDb->sfDeleteRankRecord("dtb_payment", "payment_id", $_POST['payment_id']);
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
                 break;
             case 'up':
                 $objDb->sfRankUp("dtb_payment", "payment_id", $_POST['payment_id']);
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
                 break;
             case 'down':
                 $objDb->sfRankDown("dtb_payment", "payment_id", $_POST['payment_id']);
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
                 break;
         }
@@ -87,7 +96,4 @@
         $this->arrDelivList = $objDb->sfGetIDValueList("dtb_deliv", "deliv_id", "service_name");
         $this->arrPaymentListFree = $this->lfGetPaymentList();
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php	(revision 18846)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis extends LC_Page {
+class LC_Page_Admin_Basis extends LC_Page_Admin {
 
     // }}}
@@ -69,5 +69,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -122,7 +131,4 @@
             $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "');";
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Control.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Control.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Control.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Control extends LC_Page {
+class LC_Page_Admin_Basis_Control extends LC_Page_Admin {
 
     /** フォームパラメータの配列 */
@@ -60,5 +60,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -116,6 +125,4 @@
 
         $this->arrControlList = $arrSiteControlList;
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php	(revision 18889)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Delivery_Input extends LC_Page {
+class LC_Page_Admin_Basis_Delivery_Input extends LC_Page_Admin {
 
     // {{{ properties
@@ -65,5 +65,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -99,6 +108,4 @@
 
         $this->arrForm = $this->objFormParam->getFormParamList();
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Mail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Mail.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Mail.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Mail extends LC_Page {
+class LC_Page_Admin_Basis_Mail extends LC_Page_Admin {
 
     // }}}
@@ -57,6 +57,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
         $masterData = new SC_DB_MasterData_Ex();
@@ -103,7 +112,4 @@
 
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Delivery extends LC_Page {
+class LC_Page_Admin_Basis_Delivery extends LC_Page_Admin {
 
     // }}}
@@ -60,5 +60,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -74,13 +83,13 @@
             // ランク付きレコードの削除
             $objDb->sfDeleteRankRecord("dtb_deliv", "deliv_id", $_POST['deliv_id']);
-            $this->reload(); // PRG pattern
+            $this->objDisplay->reload(); // PRG pattern
             break;
         case 'up':
             $objDb->sfRankUp("dtb_deliv", "deliv_id", $_POST['deliv_id']);
-            $this->reload(); // PRG pattern
+            $this->objDisplay->reload(); // PRG pattern
             break;
         case 'down':
             $objDb->sfRankDown("dtb_deliv", "deliv_id", $_POST['deliv_id']);
-            $this->reload(); // PRG pattern
+            $this->objDisplay->reload(); // PRG pattern
             break;
         default:
@@ -94,7 +103,4 @@
         $objQuery->setOrder("rank DESC");
         $this->arrDelivList = $objQuery->select($col, $table, $where);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Tradelaw extends LC_Page {
+class LC_Page_Admin_Basis_Tradelaw extends LC_Page_Admin {
 
     // {{{ properties
@@ -65,5 +65,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -116,6 +125,4 @@
 
         $this->arrForm = $this->objFormParam->getFormParamList();
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Seo.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Seo.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Seo.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Seo extends LC_Page {
+class LC_Page_Admin_Basis_Seo extends LC_Page_Admin {
 
     // {{{ properties
@@ -65,5 +65,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -119,7 +128,4 @@
 
         $this->disp_flg = $arrDisp_flg;
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id: LC_Page_Admin_Basis_Holiday.php 16741 2007-11-08 00:43:24Z adachi $
  */
-class LC_Page_Admin_Basis_Holiday extends LC_Page {
+class LC_Page_Admin_Basis_Holiday extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -89,5 +98,5 @@
                 }
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
             } else {
                 // POSTデータを引き継ぐ
@@ -99,5 +108,5 @@
             $objDb->sfDeleteRankRecord("dtb_holiday", "holiday_id", $_POST['holiday_id'], "", true);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         // 編集前処理
@@ -116,10 +125,10 @@
             $objDb->sfRankDown("dtb_holiday", "holiday_id", $_POST['holiday_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         case 'up':
             $objDb->sfRankUp("dtb_holiday", "holiday_id", $_POST['holiday_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         default:
@@ -131,7 +140,4 @@
         $objQuery->setOrder("rank DESC");
         $this->arrHoliday = $objQuery->select("holiday_id, title, month, day", "dtb_holiday", $where);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Point.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Point.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Point.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Basis_Point extends LC_Page {
+class LC_Page_Admin_Basis_Point extends LC_Page_Admin {
 
     // {{{ properties
@@ -62,5 +62,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -113,6 +122,4 @@
 
         $this->arrForm = $this->objFormParam->getFormParamList();
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_ZipInstall.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_ZipInstall.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_ZipInstall.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /** CSV ファイルの最大行数 */
@@ -44,5 +44,5 @@
  * @version $Id:LC_Page_Admin_Basis_ZipInstall.php 16741 2007-11-08 00:43:24Z adachi $
  */
-class LC_Page_Admin_Basis_ZipInstall extends LC_Page {
+class LC_Page_Admin_Basis_ZipInstall extends LC_Page_Admin {
 
     /** CSVの行数 */
@@ -80,4 +80,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
 
@@ -126,9 +136,4 @@
         $this->tpl_line = $this->countZipCsv();
         $this->tpl_count_mtb_zip = $this->countMtbZip();
-
-        $objView = new SC_AdminView();
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php	(revision 18867)
+++ /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Customer extends LC_Page {
+class LC_Page_Admin_Customer extends LC_Page_Admin {
 
     // }}}
@@ -214,4 +214,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         //---- ページ初期設定
         $objQuery = new SC_Query();
@@ -383,5 +393,8 @@
                     $data = SC_Utils_Ex::getCSVData($this->search_data, $arrColumn);
 
-                    SC_Utils_Ex::sfCSVDownload($header.$data);
+
+                    // CSVを送信する。
+                    list($fime_name, $data) = SC_Utils_Ex::sfGetCSVData($head.$data);
+                    $this->sendResponseCSV($fime_name, $data);
                     exit;
                     break;
@@ -421,8 +434,4 @@
 
         $this->arrCatList = $objDb->sfGetCategoryList();
-
-        //---- ページ表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php	(revision 18853)
+++ /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Customer_Edit extends LC_Page {
+class LC_Page_Admin_Customer_Edit extends LC_Page_Admin {
 
     // }}}
@@ -64,5 +64,14 @@
      */
     function process() {
-
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // 認証可否の判定
         $objSess = new SC_Session();
@@ -70,5 +79,4 @@
 
         $this->objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objDb = new SC_Helper_DB_Ex();
         $objDate = new SC_Date(1901);
@@ -197,8 +205,4 @@
             }
         }
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php	(revision 18853)
+++ /branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,6 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Customer_SearchCustomer extends LC_Page
-{
+class LC_Page_Admin_Customer_SearchCustomer extends LC_Page_Admin {
 
     // }}}
@@ -55,11 +54,19 @@
      * @return void
      */
-    function process()
-    {
+    function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // 認証可否の判定
         $objSess = new SC_Session();
         SC_Utils_Ex::sfIsSuccess($objSess);
 
-        $objView = new SC_AdminView();
         // POSTのモードがsearchなら顧客検索開始
         if($_POST['mode'] == 'search'){
@@ -155,8 +162,5 @@
 
         }
-        // 画面の表示
         $this->arrForm = $arrForm;
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_TrackbackEdit.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_TrackbackEdit.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_TrackbackEdit.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_TrackbackEdit extends LC_Page {
+class LC_Page_Admin_Products_TrackbackEdit extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -115,7 +124,4 @@
             break;
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php	(revision 18815)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_ProductRank extends LC_Page {
+class LC_Page_Admin_Products_ProductRank extends LC_Page_Admin {
 
     // }}}
@@ -57,6 +57,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -123,7 +132,4 @@
         $this->arrProductsList =
             $this->lfGetProduct($this->arrForm['parent_category_id']);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_Category extends LC_Page {
+class LC_Page_Admin_Products_Category extends LC_Page_Admin {
 
     // {{{ properties
@@ -63,5 +63,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -244,7 +253,4 @@
         $this->arrList = $this->lfGetCat($this->arrForm['parent_category_id']);
         $this->arrTree = $objDb->sfGetCatTree($this->arrForm['parent_category_id']);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -34,5 +34,5 @@
  * @version $$Id$$
  */
-class LC_Page_Admin_Products_UploadCSVCategory extends LC_Page {
+class LC_Page_Admin_Products_UploadCSVCategory extends LC_Page_Admin {
 
     // }}}
@@ -59,5 +59,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -195,7 +204,4 @@
                 break;
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Maker.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Maker.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Maker.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id: LC_Page_Admin_Products_Maker.php 16741 2007-11-08 00:43:24Z adachi $
  */
-class LC_Page_Admin_Products_Maker extends LC_Page {
+class LC_Page_Admin_Products_Maker extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -85,5 +94,5 @@
                 }
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
             } else {
                 // POSTデータを引き継ぐ
@@ -95,5 +104,5 @@
             $objDb->sfDeleteRankRecord("dtb_maker", "maker_id", $_POST['maker_id'], "", true);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         // 編集前処理
@@ -110,10 +119,10 @@
             $objDb->sfRankDown("dtb_maker", "maker_id", $_POST['maker_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         case 'up':
             $objDb->sfRankUp("dtb_maker", "maker_id", $_POST['maker_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         default:
@@ -125,7 +134,4 @@
         $objQuery->setOrder("rank DESC");
         $this->arrMaker = $objQuery->select("maker_id, name", "dtb_maker", $where);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products.php	(revision 19628)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id:LC_Page_Admin_Products.php 15532 2007-08-31 14:39:46Z nanasess $
  */
-class LC_Page_Admin_Products extends LC_Page {
+class LC_Page_Admin_Products extends LC_Page_Admin {
 
     // }}}
@@ -64,5 +64,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objDb = new SC_Helper_DB_Ex();
         $objDate = new SC_Date();
@@ -241,5 +250,7 @@
 
                         // CSVを送信する。正常終了の場合、終了。
-                        $objCSV->sfDownloadProductsCsv($where, $arrval, $order) && exit;
+                        list($fime_name, $data) = $objCSV->sfDownloadProductsCsv($where, $arrval, $order);
+                        $this->sendResponseCSV($fime_name, $data);
+                        exit;
                         break;
                     case 'delete_all':
@@ -308,8 +319,4 @@
         list($this->arrCatKey, $this->arrCatVal) = $objDb->sfGetLevelCatList(false);
         $this->arrCatList = $this->lfGetIDName($this->arrCatKey, $this->arrCatVal);
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php	(revision 18882)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_Product extends LC_Page {
+class LC_Page_Admin_Products_Product extends LC_Page_Admin {
 
     // {{{ properties
@@ -83,5 +83,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSiteInfo = new SC_SiteInfo();
         $objQuery = new SC_Query();
@@ -266,6 +275,4 @@
         // サブ情報表示・非表示のチェックに使用する。
         $this->sub_find = $sub_find;
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_ProductSelect extends LC_Page {
+class LC_Page_Admin_Products_ProductSelect extends LC_Page_Admin {
 
     // }}}
@@ -58,5 +58,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -138,8 +147,4 @@
         // カテゴリ取得
         $this->arrCatList = $objDb->sfGetCategoryList();
-
-        //---- ページ表示
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php	(revision 18876)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -34,5 +34,5 @@
  * FIXME 同一商品IDで商品規格違いを登録できない。(更新は可能)
  */
-class LC_Page_Admin_Products_UploadCSV extends LC_Page {
+class LC_Page_Admin_Products_UploadCSV extends LC_Page_Admin {
 
     // }}}
@@ -65,7 +65,17 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
+        $objView = new SC_SiteView();
 
         // 認証可否の判定
@@ -205,15 +215,11 @@
             flush();
 
-            $objView->assignobj($this);
-            $objView->display('admin_popup_footer.tpl');
-
-            exit;
+            $this->setTemplate('admin_popup_footer.tpl');
+
+            return;
             break;
         default:
             break;
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php");
 
@@ -33,5 +33,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_Review extends LC_Page {
+class LC_Page_Admin_Products_Review extends LC_Page_Admin {
 
     // }}}
@@ -64,5 +64,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDate = new SC_Date();
@@ -260,7 +269,4 @@
             }
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ClassCategory.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ClassCategory.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ClassCategory.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id:LC_Page_Admin_Products_ClassCategory.php 15532 2007-08-31 14:39:46Z nanasess $
  */
-class LC_Page_Admin_Products_ClassCategory extends LC_Page {
+class LC_Page_Admin_Products_ClassCategory extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
         $objDb = new SC_Helper_DB_Ex();
@@ -80,5 +89,5 @@
         if(!$get_check) {
             // 規格登録ページに飛ばす。
-            $this->sendRedirect($this->getLocation(URL_CLASS_REGIST));
+            $this->objDisplay->redirect($this->getLocation(URL_CLASS_REGIST));
             exit;
         }
@@ -109,5 +118,5 @@
                 }
                 // 再表示
-                $this->reload($_GET['class_id']);
+                $this->objDisplay->reload($_GET['class_id']);
                 //sfReload("class_id=" . $_GET['class_id']);
             } else {
@@ -148,8 +157,4 @@
         $objQuery->setOrder("rank DESC");
         $this->arrClassCat = $objQuery->select("name, classcategory_id", "dtb_classcategory", $where, array($_GET['class_id']));
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Class.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Class.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Class.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_Class extends LC_Page {
+class LC_Page_Admin_Products_Class extends LC_Page_Admin {
 
     // }}}
@@ -57,5 +57,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objQuery = new SC_Query();
@@ -84,5 +93,5 @@
                 }
                 // 再表示
-                $this->reload();
+                $this->objDisplay->reload();
             } else {
                 // POSTデータを引き継ぐ
@@ -96,5 +105,5 @@
             $objQuery->delete("dtb_classcategory", "class_id = ?", $_POST['class_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
             // 編集前処理
@@ -111,10 +120,10 @@
             $objDb->sfRankDown("dtb_class", "class_id", $_POST['class_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         case 'up':
             $objDb->sfRankUp("dtb_class", "class_id", $_POST['class_id']);
             // 再表示
-            $this->reload();
+            $this->objDisplay->reload();
             break;
         default:
@@ -127,7 +136,4 @@
         $this->arrClass = $objQuery->select("name, class_id", "dtb_class", $where);
         $this->arrClassCatCount = SC_Utils_Ex::sfGetClassCatCount();
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Trackback.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Trackback.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Trackback.php	(revision 19661)
@@ -22,5 +22,5 @@
  */
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php");
 
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_Trackback extends LC_Page {
+class LC_Page_Admin_Products_Trackback extends LC_Page_Admin {
 
     // }}}
@@ -62,5 +62,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDate = new SC_Date();
@@ -237,7 +246,4 @@
             }
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php	(revision 18882)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_ProductClass extends LC_Page {
+class LC_Page_Admin_Products_ProductClass extends LC_Page_Admin {
 
     // }}}
@@ -65,5 +65,20 @@
     }
 
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $this->authorization();
 
@@ -172,5 +187,4 @@
         $this->arrClass = $this->getAllClass();
         $this->arrForm['product_name'] = $this->getProductName($_POST['product_id']);
-        $this->assignView();
     }
 
@@ -600,13 +614,4 @@
         SC_Utils_Ex::sfIsSuccess(new SC_Session());
     }
-
-    /**
-     * @access private
-     */
-    function assignView() {
-        $objView = new SC_AdminView();
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-    }
 }
 ?>
Index: /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Products_ReviewEdit extends LC_Page {
+class LC_Page_Admin_Products_ReviewEdit extends LC_Page_Admin {
 
     // }}}
@@ -61,5 +61,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $this->objQuery = new SC_Query();
@@ -118,7 +127,4 @@
                 break;
         }
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php");
 
@@ -33,5 +33,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Design_CSS extends LC_Page {
+class LC_Page_Admin_Design_CSS extends LC_Page_Admin {
 
     // }}}
@@ -59,6 +59,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
-
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // 認証可否の判定
         $objSess = new SC_Session();
@@ -115,8 +123,4 @@
         // ファイルリストを取得
         $this->arrCSSList = $this->lfGetCSSList($css_dir);
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
@@ -158,5 +162,5 @@
             $objFileManager->sfDeleteDir($css_path);
         }
-        $this->sendRedirect($this->getLocation("./css.php"));
+        $this->objDisplay->redirect($this->getLocation("./css.php"));
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Design_Header extends LC_Page {
+class LC_Page_Admin_Design_Header extends LC_Page_Admin {
 
     // }}}
@@ -59,6 +59,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
 
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // 認証可否の判定
         $objSess = new SC_Session();
@@ -135,8 +143,4 @@
         $this->browser_type =
             isset($_POST['browser_type']) ? $_POST['browser_type'] : "";
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php	(revision 18861)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Design_MainEdit extends LC_Page {
+class LC_Page_Admin_Design_MainEdit extends LC_Page_Admin {
 
     // }}}
@@ -59,4 +59,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objView = new SC_AdminView();
         $this->objLayout = new SC_Helper_PageLayout_Ex();
@@ -108,8 +118,4 @@
             exit;
         }
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
@@ -220,5 +226,5 @@
         }
         $_SESSION['preview'] = "ON";
-        $this->sendRedirect($this->getLocation(URL_DIR . "preview/" . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"])));
+        $this->objDisplay->redirect($this->getLocation(URL_DIR . "preview/" . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"])));
 
     }
@@ -255,5 +261,5 @@
                 $page_id = $arrPageData[0]['page_id'];
             }
-            $this->sendRedirect($this->getLocation("./main_edit.php",
+            $this->objDisplay->redirect($this->getLocation("./main_edit.php",
                                     array("page_id" => $page_id,
                                           "msg"     => "on")));
@@ -338,5 +344,5 @@
     function lfDeletePageData($page_id){
         $this->objLayout->lfDelPageData($_POST['page_id']);
-        $this->sendRedirect($this->getLocation("./main_edit.php"));
+        $this->objDisplay->redirect($this->getLocation("./main_edit.php"));
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Template.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Template.php	(revision 19628)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Template.php	(revision 19661)
@@ -23,5 +23,5 @@
 
   // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(DATA_PATH . "module/Tar.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php");
@@ -34,5 +34,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Design_Template extends LC_Page {
+class LC_Page_Admin_Design_Template extends LC_Page_Admin {
 
     // }}}
@@ -79,102 +79,112 @@
      */
     function process() {
-    	// 認証可否の判定
-		$objSession = new SC_Session();
-		SC_Utils::sfIsSuccess($objSession);
-
-		// uniqidをテンプレートへ埋め込み
-		$this->uniqid = $objSession->getUniqId();
-
-		$objView = new SC_AdminView();
-
-		switch($this->lfGetMode()) {
-
-		// 登録ボタン押下時
-		case 'register':
-		    // 画面遷移の正当性チェック
-		    if (!SC_Utils::sfIsValidTransition($objSession)) {
-		        sfDispError('');
-		    }
-		    // パラメータ検証
-		    $objForm = $this->lfInitRegister();
-		    if ($objForm->checkError()) {
-		        SC_Utils_Ex::sfDispError('');
-		    }
-
-		    $template_code = $objForm->getValue('template_code');
-            $this->tpl_select = $template_code;
-
-		    if($template_code == "") {
-		    	$template_code = "default";
-		    }
-
-		    // DBへ使用するテンプレートを登録
-		    $this->lfRegisterTemplate($template_code);
-
-		    // XXX コンパイルファイルのクリア処理を行う
-		    $objView->_smarty->clear_compiled_tpl();
-
-		    // common.cssの内容を更新
-		    $this->lfChangeCommonCss($template_code);
-
-		    // ブロック位置を更新
-		    $this->lfChangeBloc($template_code);
-
-		    // 完了メッセージ
-		    $this->tpl_onload="alert('登録が完了しました。');";
-		    break;
-
-		// 削除ボタン押下時
-		case 'delete':
-		    // 画面遷移の正当性チェック
-		    if (!SC_Utils::sfIsValidTransition($objSession)) {
-		        SC_Utils::sfDispError('');
-		    }
-		    // パラメータ検証
-		    $objForm = $this->lfInitDelete();
-		    if ($objForm->checkError()) {
-		        SC_Utils::sfDispError('');
-		    }
-			
-		    //現在使用中のテンプレートとデフォルトのテンプレートは削除できないようにする
-		    $template_code = $objForm->getValue('template_code_temp');
-		    if ($template_code == TEMPLATE_NAME || $template_code == DEFAULT_TEMPLATE_NAME) {
-		    	$this->tpl_onload = "alert('選択中のテンプレートは削除出来ません');";
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
+        // 認証可否の判定
+		    $objSession = new SC_Session();
+		    SC_Utils::sfIsSuccess($objSession);
+
+		    // uniqidをテンプレートへ埋め込み
+		    $this->uniqid = $objSession->getUniqId();
+
+		    $objView = new SC_AdminView();
+
+		    switch($this->lfGetMode()) {
+
+		    // 登録ボタン押下時
+		    case 'register':
+		        // 画面遷移の正当性チェック
+		        if (!SC_Utils::sfIsValidTransition($objSession)) {
+		            sfDispError('');
+		        }
+		        // パラメータ検証
+		        $objForm = $this->lfInitRegister();
+		        if ($objForm->checkError()) {
+		            SC_Utils_Ex::sfDispError('');
+		        }
+
+		        $template_code = $objForm->getValue('template_code');
+                $this->tpl_select = $template_code;
+
+		        if($template_code == "") {
+		        	$template_code = "default";
+		        }
+
+		        // DBへ使用するテンプレートを登録
+		        $this->lfRegisterTemplate($template_code);
+
+		        // XXX コンパイルファイルのクリア処理を行う
+		        $objView->_smarty->clear_compiled_tpl();
+
+		        // common.cssの内容を更新
+		        $this->lfChangeCommonCss($template_code);
+		    	
+		        // テンプレートのコピー
+		    	$this->lfCopyTemplate($template_code);
+		        
+		        // ブロック位置を更新
+		        $this->lfChangeBloc($template_code);
+
+		        // 完了メッセージ
+		        $this->tpl_onload="alert('登録が完了しました。');";
+		        break;
+
+		    // 削除ボタン押下時
+		    case 'delete':
+		        // 画面遷移の正当性チェック
+		        if (!SC_Utils::sfIsValidTransition($objSession)) {
+		            SC_Utils::sfDispError('');
+		        }
+		        // パラメータ検証
+		        $objForm = $this->lfInitDelete();
+		        if ($objForm->checkError()) {
+		            SC_Utils::sfDispError('');
+		        }
+		    	
+		        //現在使用中のテンプレートとデフォルトのテンプレートは削除できないようにする
+		        $template_code = $objForm->getValue('template_code_temp');
+		        if ($template_code == TEMPLATE_NAME || $template_code == DEFAULT_TEMPLATE_NAME) {
+		        	$this->tpl_onload = "alert('選択中のテンプレートは削除出来ません');";
+		            break;
+		        }
+		        $this->lfDeleteTemplate($template_code);
+		        break;
+
+		    // downloadボタン押下時
+		    case 'download':
+		        // 画面遷移の正当性チェック
+		        if (!SC_Utils::sfIsValidTransition($objSession)) {
+		            SC_Utils::sfDispError('');
+		        }
+		    	// パラメータ検証
+		        $objForm = $this->lfInitDownload();
+		        $template_code = $objForm->getValue('template_code_temp');
+		        // ユーザデータの下のファイルも保存する。
+		        $from_dir = USER_TEMPLATE_PATH . $template_code . "/";
+		        $to_dir = SMARTY_TEMPLATES_DIR . $template_code . "/_packages/";
+		        SC_Utils::sfMakeDir($to_dir);
+		    	SC_Utils::sfCopyDir($from_dir, $to_dir);
+		        SC_Helper_FileManager::downloadArchiveFiles(SMARTY_TEMPLATES_DIR . $template_code);
+		        break;
+
+		    // プレビューボタン押下時
+		    case 'preview':
+		        break;
+
+		    default:
 		        break;
 		    }
-		    $this->lfDeleteTemplate($template_code);
-		    break;
-
-		// downloadボタン押下時
-		case 'download':
-		    // 画面遷移の正当性チェック
-		    if (!SC_Utils::sfIsValidTransition($objSession)) {
-		        SC_Utils::sfDispError('');
-		    }
-			// パラメータ検証
-		    $objForm = $this->lfInitDownload();
-		    $template_code = $objForm->getValue('template_code_temp');
-		    // ユーザデータの下のファイルも保存する。
-		    $from_dir = USER_TEMPLATE_PATH . $template_code . "/";
-		    $to_dir = SMARTY_TEMPLATES_DIR . $template_code . "/_packages/";
-		    SC_Utils::sfMakeDir($to_dir);
-			SC_Utils::sfCopyDir($from_dir, $to_dir);
-		    SC_Helper_FileManager::downloadArchiveFiles(SMARTY_TEMPLATES_DIR . $template_code);
-		    break;
-
-		// プレビューボタン押下時
-		case 'preview':
-		    break;
-
-		default:
-		    break;
-		}
-
-		// defaultパラメータのセット
-		$this->templates = $this->lfGetAllTemplates();
-		$this->now_template = TEMPLATE_NAME;
-		// 画面の表示
-		$objView->assignobj($this);
-		$objView->display(MAIN_FRAME);
+
+		    // defaultパラメータのセット
+		    $this->templates = $this->lfGetAllTemplates();
+		    $this->now_template = TEMPLATE_NAME;
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Up_Down.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Up_Down.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Up_Down.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(DATA_PATH. "module/Tar.php");
 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php");
@@ -34,5 +34,5 @@
  * @version $Id: LC_Page_Admin_Design_Up_Down.php 16582 2007-10-29 03:06:29Z nanasess $
  */
-class LC_Page_Admin_Design_Up_Down extends LC_Page {
+class LC_Page_Admin_Design_Up_Down extends LC_Page_Admin {
 
     // }}}
@@ -62,54 +62,59 @@
      */
     function process() {
-    	// ログインチェック
-		$objSession = new SC_Session();
-		SC_Utils::sfIsSuccess($objSession);
-		$this->now_template = $this->lfGetNowTemplate();
-		
-		// uniqidをテンプレートへ埋め込み
-		$this->uniqid = $objSession->getUniqId();
-		
-		switch($this->lfGetMode()) {
-		
-		// ダウンロードボタン押下時の処理
-		case 'download':
-		    break;
-		// アップロードボタン押下時の処理
-		case 'upload':
-		    // 画面遷移の正当性チェック
-		    if (!SC_Utils::sfIsValidTransition($objSession)) {
-		        SC_Utils::sfDispError('');
-		    }
-		    // フォームパラメータ初期化
-		    $objForm = $this->lfInitUpload();
-		    // エラーチェック
-		    if ($arrErr = $this->lfValidateUpload($objForm)) {
-		        $this->arrErr  = $arrErr;
-		        $this->arrForm = $objForm->getFormParamList();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
+        // ログインチェック
+		    $objSession = new SC_Session();
+		    SC_Utils::sfIsSuccess($objSession);
+		    $this->now_template = $this->lfGetNowTemplate();
+		    
+		    // uniqidをテンプレートへ埋め込み
+		    $this->uniqid = $objSession->getUniqId();
+		    
+		    switch($this->lfGetMode()) {
+		    
+		    // ダウンロードボタン押下時の処理
+		    case 'download':
+		        break;
+		    // アップロードボタン押下時の処理
+		    case 'upload':
+		        // 画面遷移の正当性チェック
+		        if (!SC_Utils::sfIsValidTransition($objSession)) {
+		            SC_Utils::sfDispError('');
+		        }
+		        // フォームパラメータ初期化
+		        $objForm = $this->lfInitUpload();
+		        // エラーチェック
+		        if ($arrErr = $this->lfValidateUpload($objForm)) {
+		            $this->arrErr  = $arrErr;
+		            $this->arrForm = $objForm->getFormParamList();
+		            break;
+		        }
+		        // アップロードファイル初期化
+		        $objUpFile = $this->lfInitUploadFile($objForm);
+		        // 一時ファイルへ保存
+		        $errMsg = $objUpFile->makeTempFile('template_file', false);
+		        // 書き込みエラーチェック
+		        if(isset($errMsg)) {
+		            $this->arrErr['template_file'] = $errMsg;
+		            $this->arrForm = $objForm->getFormParamList();
+		            break;
+		        }
+		        $this->lfAddTemplates($objForm, $objUpFile);
+		        $this->tpl_onload = "alert('テンプレートファイルをアップロードしました。');";
+		        break;
+		    
+		    // 初回表示
+		    default:
 		        break;
 		    }
-		    // アップロードファイル初期化
-		    $objUpFile = $this->lfInitUploadFile($objForm);
-		    // 一時ファイルへ保存
-		    $errMsg = $objUpFile->makeTempFile('template_file', false);
-		    // 書き込みエラーチェック
-		    if(isset($errMsg)) {
-		        $this->arrErr['template_file'] = $errMsg;
-		        $this->arrForm = $objForm->getFormParamList();
-		        break;
-		    }
-		    $this->lfAddTemplates($objForm, $objUpFile);
-		    $this->tpl_onload = "alert('テンプレートファイルをアップロードしました。');";
-		    break;
-		
-		// 初回表示
-		default:
-		    break;
-		}
-		
-		// 画面の表示
-		$objView = new SC_AdminView();
-		$objView->assignobj($this);
-		$objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php	(revision 18978)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Design_Bloc extends LC_Page {
+class LC_Page_Admin_Design_Bloc extends LC_Page_Admin {
 
     // }}}
@@ -59,5 +59,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $this->objLayout = new SC_Helper_PageLayout_Ex();
         $package_path = USER_TEMPLATE_PATH . "/" . TEMPLATE_NAME . "/";
@@ -151,5 +160,5 @@
 
                 $bloc_id = $arrBlocData[0]['bloc_id'];
-                $this->sendRedirect($this->getLocation("./bloc.php",
+                $this->objDisplay->redirect($this->getLocation("./bloc.php",
                                             array("bloc_id" => $bloc_id,
                                                   "msg" => "on")));
@@ -189,5 +198,5 @@
                 }
             }
-            $this->sendRedirect($this->getLocation("./bloc.php"));
+            $this->objDisplay->redirect($this->getLocation("./bloc.php"));
             exit;
         	break;
@@ -198,8 +207,4 @@
         	break;
         }        
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /** ターゲットID 未使用 */
@@ -36,5 +36,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Design extends LC_Page {
+class LC_Page_Admin_Design extends LC_Page_Admin {
 
     // }}}
@@ -61,6 +61,14 @@
      */
     function process() {
-
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objLayout = new SC_Helper_PageLayout_Ex();
@@ -115,5 +123,5 @@
         // 新規ブロック作成
         if ($_POST['mode'] == 'new_bloc') {
-            $this->sendRedirect($this->getLocation("./bloc.php"));
+            $this->objDisplay->redirect($this->getLocation("./bloc.php"));
             exit;
         }
@@ -121,5 +129,5 @@
         // 新規ページ作成
         if ($_POST['mode'] == 'new_page') {
-            $this->sendRedirect($this->getLocation("./main_edit.php"));
+            $this->objDisplay->redirect($this->getLocation("./main_edit.php"));
             exit;
         }
@@ -215,5 +223,5 @@
             if ($_POST['mode'] == 'preview') {
                 if ($page_id === "") {
-                    $this->sendRedirect($this->getLocation(DIR_INDEX_URL));
+                    $this->objDisplay->redirect($this->getLocation(DIR_INDEX_URL));
                     exit;
                 }
@@ -222,9 +230,9 @@
                 $_SESSION['preview'] = "ON";
 
-                $this->sendRedirect($this->getLocation(URL_DIR . "preview/" . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"])));
+                $this->objDisplay->redirect($this->getLocation(URL_DIR . "preview/" . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"])));
                 exit;
 
             }else{
-                $this->sendRedirect($this->getLocation(DIR_INDEX_URL,
+                $this->objDisplay->redirect($this->getLocation(DIR_INDEX_URL,
                 array("page_id" => $page_id,
                                                   "msg" => "on")));
@@ -237,5 +245,5 @@
         if ($_POST['mode'] == 'delete' and  !$objLayout->lfCheckBaseData($page_id)) {
             $objLayout->lfDelPageData($page_id);
-            $this->sendRedirect($this->getLocation(DIR_INDEX_URL));
+            $this->objDisplay->redirect($this->getLocation(DIR_INDEX_URL));
             exit;
         }
@@ -281,10 +289,6 @@
         }
         $this->errCnt = $errCnt;
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-
-    }
+    }
+
     /**
      * デストラクタ.
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order_Mail extends LC_Page {
+class LC_Page_Admin_Order_Mail extends LC_Page_Admin {
 
     // }}}
@@ -61,6 +61,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
 
-        $objView = new SC_AdminView();
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         SC_Utils_Ex::sfIsSuccess($objSess);
@@ -100,5 +108,5 @@
                 $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer']);
             }
-            $this->sendRedirect($this->getLocation(URL_SEARCH_ORDER));
+            $this->objDisplay->redirect($this->getLocation(URL_SEARCH_ORDER));
             exit;
             break;
@@ -120,9 +128,5 @@
                 $this->tpl_to = $objSendMail->tpl_to;
                 $this->tpl_mainpage = 'order/mail_confirm.tpl';
-
-                $objView->assignobj($this);
-                $objView->display(MAIN_FRAME);
-
-                exit;
+                return;
             }
             break;
@@ -149,6 +153,4 @@
 
         $this->arrForm = $objFormParam->getFormParamList();
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Status.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Status.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Status.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order_Status extends LC_Page {
+class LC_Page_Admin_Order_Status extends LC_Page_Admin {
 
     // }}}
@@ -61,5 +61,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -117,8 +126,6 @@
         //検索結果の表示
         $this->lfStatusDisp($status, $_POST['search_pageno']);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-    }
+    }
+
     /**
      * デストラクタ.
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php	(revision 18875)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /* GMO決済モジュール連携用 */
@@ -53,5 +53,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order_Edit extends LC_Page {
+class LC_Page_Admin_Order_Edit extends LC_Page_Admin {
 
     // {{{ properties
@@ -107,5 +107,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -314,10 +323,9 @@
         }
 
-        $objView->assignobj($this);
         // 表示モード判定
         if(!$this->disp_mode) {
-            $objView->display(MAIN_FRAME);
+            $this->setTemplate(MAIN_FRAME);
         } else {
-            $objView->display('order/disp.tpl');
+            $this->setTemplate('order/disp.tpl');
         }
     }
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Pdf.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Pdf.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Pdf.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_PATH . "SC_Fpdf.php");
 
@@ -33,5 +33,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order_Pdf extends LC_Page {
+class LC_Page_Admin_Order_Pdf extends LC_Page_Admin {
 
     // }}}
@@ -67,5 +67,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objDb = new SC_Helper_DB_Ex();
         $objSess = new SC_Session();
@@ -138,7 +147,4 @@
             break;
         }
-
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_MailView.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_MailView.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_MailView.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order_MailView extends LC_Page {
+class LC_Page_Admin_Order_MailView extends LC_Page_Admin {
 
     // }}}
@@ -54,5 +54,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -68,7 +77,5 @@
             $this->tpl_body = $arrRet[0]['mail_body'];
         }
-
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
+        $this->setTemplate($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /* ペイジェント決済モジュール連携用 */
@@ -37,5 +37,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order extends LC_Page {
+class LC_Page_Admin_Order extends LC_Page_Admin {
 
     // }}}
@@ -75,5 +75,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objDb = new SC_Helper_DB_Ex();
         $objSess = new SC_Session();
@@ -278,5 +287,6 @@
 
                             // CSVを送信する。
-                            SC_Utils_Ex::sfCSVDownload($head.$data);
+                            list($fime_name, $data) = SC_Utils_Ex::sfGetCSVData($head.$data);
+                            $this->sendResponseCSV($fime_name, $data);
                             exit;
                             break;
@@ -342,7 +352,4 @@
         $arrRet = $objDb->sfGetPayment();
         $this->arrPayment = SC_Utils_Ex::sfArrKeyValue($arrRet, 'payment_id', 'payment_method');
-
-        $objView->assignobj($this);
-                $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php	(revision 18875)
+++ /branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php	(revision 19661)
@@ -24,5 +24,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(DATA_PATH . 'module/Services/JSON.php');
 
@@ -34,5 +34,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Order_ProductSelect extends LC_Page {
+class LC_Page_Admin_Order_ProductSelect extends LC_Page_Admin {
 
     // }}}
@@ -59,5 +59,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
         $objDb = new SC_Helper_DB_Ex();
@@ -169,8 +178,4 @@
         // カテゴリ取得
         $this->arrCatList = $objDb->sfGetCategoryList();
-
-        //---- ページ表示
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Index.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Index.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Index.php	(revision 19661)
@@ -0,0 +1,78 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
+
+/**
+ * 管理者ログイン のページクラス.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: LC_Page_Admin.php 18701 2010-06-14 08:30:18Z nanasess $
+ */
+class LC_Page_Admin_Index extends LC_Page_Admin {
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init() {
+        parent::init();
+        $this->tpl_mainpage = 'login.tpl';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
+        $this->setTemplate(LOGIN_FRAME);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+}
+?>
Index: /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Login.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Login.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Login.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Login extends LC_Page {
+class LC_Page_Admin_Login extends LC_Page_Admin {
 
     // {{{ properties
@@ -57,4 +57,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
         $this->objSess = new SC_Session();
@@ -72,5 +82,5 @@
         if($ret) {
             // 成功
-            $this->sendRedirect($this->getLocation(URL_HOME));
+            $this->objDisplay->redirect($this->getLocation(URL_HOME));
             exit;
         } else {
Index: /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Logout extends LC_Page {
+class LC_Page_Admin_Logout extends LC_Page_Admin {
 
     // }}}
@@ -55,5 +55,5 @@
         $objSess->logout();
 
-        $this->sendRedirect($this->getLocation(URL_DIR . "admin/" . DIR_INDEX_URL));
+        $this->objDisplay->redirect($this->getLocation(URL_DIR . "admin/" . DIR_INDEX_URL));
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Template.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Template.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Template.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Mail_Template extends LC_Page {
+class LC_Page_Admin_Mail_Template extends LC_Page_Admin {
 
     // }}}
@@ -60,6 +60,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
 
@@ -83,5 +92,5 @@
             $objQuery->query($sql, array($_GET['id']));
 
-            $this->reload(null, true);
+            $this->objDisplay->reload(null, true);
         }
 
@@ -89,7 +98,4 @@
         $sql = "SELECT *, create_date as disp_date FROM dtb_mailmaga_template WHERE del_flg = 0 ORDER BY create_date DESC";
         $this->list_data = $objQuery->getAll($sql);
-
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /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	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_TemplateInput.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Mail_TemplateInput extends LC_Page {
+class LC_Page_Admin_Mail_TemplateInput extends LC_Page_Admin {
 
     // }}}
@@ -60,6 +60,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
 
@@ -99,5 +108,5 @@
                 $this->lfRegistData( $this->arrForm, $_POST['template_id']);
                 // 自分を再読込して、完了画面へ遷移
-                $this->reload(array("mode" => "complete"));
+                $this->objDisplay->reload(array("mode" => "complete"));
             }
 
@@ -107,6 +116,4 @@
             $this->tpl_mainpage = 'mail/template_complete.tpl';
         }
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Mail_Sendmail extends LC_Page {
+class LC_Page_Admin_Mail_Sendmail extends LC_Page_Admin {
     
     var $objMail;
@@ -178,5 +178,5 @@
         }
         if ($_GET['mode'] == 'now') {
-            $this->sendRedirect($this->getLocation(URL_DIR . 'admin/mail/history.php'));
+            $this->objDisplay->redirect($this->getLocation(URL_DIR . 'admin/mail/history.php'));
         }
         echo "complete\n";
Index: /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php	(revision 19628)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Mail extends LC_Page {
+class LC_Page_Admin_Mail extends LC_Page_Admin {
 
     // }}}
@@ -148,7 +148,15 @@
      */
     function process() {
-
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // ページ初期設定
-        $objView = new SC_AdminView();
         $objDate = new SC_Date();
         $objQuery = new SC_Query();
@@ -202,8 +210,5 @@
 
             $this->list_data = $list_data;
-
-            $objView->assignobj($this);
-            $objView->display($tpl_path);
-            exit;
+            return;
         }
 
@@ -359,7 +364,7 @@
                     if (MELMAGA_SEND) {
                         if (MELMAGA_BATCH_MODE) {
-                            $this->sendRedirect($this->getLocation(URL_DIR . 'admin/mail/history.php'));
+                            $this->objDisplay->redirect($this->getLocation(URL_DIR . 'admin/mail/history.php'));
                         } else {
-                            $this->sendRedirect($this->getLocation(URL_DIR . 'admin/mail/sendmail.php', array('mode' => 'now', 'send_id' => $sendId)));
+                            $this->objDisplay->redirect($this->getLocation(URL_DIR . 'admin/mail/sendmail.php', array('mode' => 'now', 'send_id' => $sendId)));
                         }
                         exit;
@@ -385,8 +390,5 @@
         $this->arrCatList = $objDb->sfGetCategoryList();
 
-        // ページ表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-
+        $this->arrCampaignList = $this->lfGetCampaignList($objQuery);
     }
 
Index: /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	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_History.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Mail_History extends LC_Page {
+class LC_Page_Admin_Mail_History extends LC_Page_Admin {
 
     // }}}
@@ -58,7 +58,16 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // ページ初期設定
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
         $objDate = new SC_Date();
@@ -77,5 +86,5 @@
             $objQuery->query($sql, array($_GET['send_id']) );
             $_SERVER['QUERY_STRING'] = "";
-            $this->reload();
+            $this->objDisplay->reload();
         }
         $from = "dtb_send_history";
@@ -108,8 +117,4 @@
         // 検索結果の取得
         $this->arrDataList = $objQuery->select($col, $from, $where, $arrval);
-
-        // ページ表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Preview.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Preview.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Preview.php	(revision 19661)
@@ -23,5 +23,5 @@
 
   // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 
 /**
@@ -32,5 +32,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Mail_Preview extends LC_Page {
+class LC_Page_Admin_Mail_Preview extends LC_Page_Admin {
 
     // }}}
@@ -53,6 +53,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = new SC_AdminView();
         $objSess = new SC_Session();
         $objDate = new SC_Date();
@@ -134,7 +143,4 @@
             }
         }
-
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/total/LC_Page_Admin_Total.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/total/LC_Page_Admin_Total.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/admin/total/LC_Page_Admin_Total.php	(revision 19661)
@@ -23,5 +23,5 @@
 
 // {{{ requires
-require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_PATH . "pages/admin/LC_Page_Admin.php");
 require_once(CLASS_EX_PATH . "batch_extends/SC_Batch_Daily_Ex.php");
 require_once(CLASS_PATH . "graph/SC_GraphPie.php");
@@ -36,5 +36,5 @@
  * @version $Id$
  */
-class LC_Page_Admin_Total extends LC_Page {
+class LC_Page_Admin_Total extends LC_Page_Admin {
 
     // }}}
@@ -89,5 +89,14 @@
      */
     function process() {
-        $objView = new SC_AdminView();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objSess = new SC_Session();
 
@@ -258,6 +267,4 @@
 
         $this->tpl_subtitle = $this->arrTitle[$this->objFormParam->getValue('page')];
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/cart/LC_Page_Cart.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/cart/LC_Page_Cart.php	(revision 18859)
+++ /branches/version-2_5-dev/data/class/pages/cart/LC_Page_Cart.php	(revision 19661)
@@ -69,9 +69,18 @@
      */
     function process() {
-
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objView = new SC_SiteView(false);
         $objCartSess = new SC_CartSession();
         $objSiteSess = new SC_SiteSession();
-        $objCampaignSess = new SC_CampaignSession();
         $objSiteInfo = $objView->objSiteInfo;
         $objCustomer = new SC_Customer();
@@ -126,5 +135,5 @@
                 $objCartSess->saveCurrentCart($uniqid, $cartKey);
                 // 購入ページへ
-                $this->sendRedirect(URL_SHOP_TOP);
+                $this->objDisplay->redirect(URL_SHOP_TOP);
                 exit;
             }
@@ -158,8 +167,4 @@
         // 前頁のURLを取得
         $this->tpl_prev_url = $objCartSess->getPrevURL();
-
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
@@ -179,8 +184,18 @@
      */
     function mobileProcess() {
-
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         // 買い物を続ける場合
         if ($_REQUEST['mode'] == 'continue') {
-            $this->sendRedirect($this->getLocation(MOBILE_URL_SITE_TOP), true);
+            $this->objDisplay->redirect($this->getLocation(MOBILE_URL_SITE_TOP));
             exit;
         }
@@ -230,5 +245,5 @@
                 $objCartSess->saveCurrentCart($uniqid);
                 // 購入ページへ
-                $this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
+                $this->objDisplay->redirect(MOBILE_URL_SHOP_TOP);
                 exit;
             }
@@ -281,7 +296,4 @@
         // 前頁のURLを取得
         $this->tpl_prev_url = $objCartSess->getPrevURL();
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php	(revision 19547)
+++ /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php	(revision 19661)
@@ -82,8 +82,14 @@
      */
     function process() {
-        global $objCampaignSess;
-
-        $this->objView = new SC_SiteView();
-        $objCampaignSess = new SC_CampaignSession();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objDb = new SC_Helper_DB_Ex();
         $CONF = $objDb->sf_getBasisData();			// 店舗基本情報
@@ -115,9 +121,4 @@
               break;
         }
-
-        //----　ページ表示
-        $this->objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($this->objView);
     }
 
@@ -137,12 +138,16 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objDb = new SC_Helper_DB_Ex();
-        $CONF = $objDb->sf_getBasisData();			// 店舗基本情報
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->assignarray($CONF);
-        $objView->display(SITE_FRAME);
+        $this->CONF = $objDb->sf_getBasisData();			// 店舗基本情報
     }
 
@@ -200,5 +205,5 @@
             $this->lfSendMail($this);
             // 完了ページへ移動する
-            $this->sendRedirect($this->getLocation("./complete.php", array(), true));
+            $this->objDisplay->redirect($this->getLocation("./complete.php", array(), true));
             exit;
         } else {
Index: /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact_Complete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact_Complete.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact_Complete.php	(revision 19661)
@@ -55,20 +55,17 @@
      */
     function process() {
-        global $objCampaignSess;
+        $this->action();
+        $this->sendResponse();
+    }
 
-        $objView = new SC_SiteView();
-        $objCampaignSess = new SC_CampaignSession();
-
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // レイアウトデザインを取得
         $layout = new SC_Helper_PageLayout_Ex();
         $layout->sfGetPageLayout($this, false, DEF_LAYOUT);
-
-        // キャンペーンからの遷移かチェック
-        $this->is_campaign = $objCampaignSess->getIsCampaign();
-        $this->campaign_dir = $objCampaignSess->getCampaignDir();
-
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/magazine/LC_Page_Magazine_Confirm.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/magazine/LC_Page_Magazine_Confirm.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/magazine/LC_Page_Magazine_Confirm.php	(revision 19661)
@@ -143,5 +143,5 @@
 
             // 完了ページに移動させる。
-            $this->sendRedirect($this->getLocation("./complete.php",
+            $this->objDisplay->redirect($this->getLocation("./complete.php",
                                 array(session_name() => session_id())));
             exit;
Index: /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist.php	(revision 19661)
@@ -57,5 +57,16 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        //$objView = new SC_SiteView();
         $objSiteInfo = $objView->objSiteInfo;
         $objCustomer = new SC_Customer();
@@ -86,5 +97,5 @@
                 $etc_val['ci'] = $arrRet[0]['customer_id'];
                 $_SERVER['QUERY_STRING'] = NULL;
-                $this->sendRedirect($this->getLocation("./complete.php", $etc_val));
+                $this->objDisplay->redirect($this->getLocation("./complete.php", $etc_val));
                 exit;
             }
@@ -96,6 +107,6 @@
 
         //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
@@ -115,5 +126,16 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+        //$objView = new SC_MobileView();
         $objSiteInfo = $objView->objSiteInfo;
         $objCustomer = new SC_Customer();
@@ -138,5 +160,5 @@
                 $email = $objQuery->get("dtb_customer", "email", "secret_key = ?", array($registSecretKey));
                 $objCustomer->setLogin($email);
-                $this->sendRedirect($this->getLocation("./complete.php"), true);
+                $this->objDisplay->redirect($this->getLocation("./complete.php"));
                 exit;
             }
@@ -150,6 +172,6 @@
 
         //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist_Complete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist_Complete.php	(revision 19628)
+++ /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist_Complete.php	(revision 19661)
@@ -55,7 +55,17 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
         global $objCampaignSess;
 
-        $objView = new SC_SiteView();
         $objQuery = new SC_Query();
         $objCampaignSess = new SC_CampaignSession();
@@ -64,7 +74,4 @@
         $helper = new SC_Helper_PageLayout_Ex();
         $helper->sfGetPageLayout($this, false, DEF_LAYOUT);
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
@@ -84,5 +91,17 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
+
+        //$objView = new SC_MobileView();
 
         // カートが空かどうかを確認する。
@@ -90,6 +109,6 @@
         $this->tpl_cart_empty = count($objCartSess->getCartList()) < 1;
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/abouts/LC_Page_Abouts.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/abouts/LC_Page_Abouts.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/abouts/LC_Page_Abouts.php	(revision 19661)
@@ -55,13 +55,18 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
 
-        $objView = new SC_SiteView();
-
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // レイアウトデザインを取得
         $layout = new SC_Helper_PageLayout_Ex();
         $layout->sfGetPageLayout($this, false, DEF_LAYOUT);
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/forgot/LC_Page_Forgot.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/forgot/LC_Page_Forgot.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/forgot/LC_Page_Forgot.php	(revision 19661)
@@ -65,13 +65,15 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
-        $objView = null;
-
-        if (defined("MOBILE_SITE") && MOBILE_SITE) {
-            $objView = new SC_MobileView();
-        } else {
-            $objView = new SC_SiteView(false);
-        }
-
         $objSess = new SC_Session();
 
@@ -175,8 +177,4 @@
             $this->createMobileToken();
         }
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_Complete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_Complete.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_Complete.php	(revision 19661)
@@ -65,11 +65,16 @@
      */
     function process() {
-        global $objCampaignSess;
+        $this->action();
+        $this->sendResponse();
+    }
 
-        $objView = new SC_SiteView();
-        $objCampaignSess = new SC_CampaignSession();
-
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // transaction check
-        if (!$this->isValidToken()) {
+        if (!SC_Helper_Session_Ex::isValidToken()) {
             SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true);
         }
@@ -78,12 +83,4 @@
         $layout = new SC_Helper_PageLayout_Ex();
         $layout->sfGetPageLayout($this, false, DEF_LAYOUT);
-
-        // キャンペーンからの遷移がチェック
-        $this->is_campaign = $objCampaignSess->getIsCampaign();
-        $this->campaign_dir = $objCampaignSess->getCampaignDir();
-
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
@@ -103,13 +100,17 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
 
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         // レイアウトデザインを取得
         $objLayout = new SC_Helper_PageLayout_Ex();
         $objLayout->sfGetPageLayout($this, false, DEF_LAYOUT);
-
-        //----　ページ表示
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_New.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_New.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_New.php	(revision 19661)
@@ -52,4 +52,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
     }
 
@@ -69,7 +79,14 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
     }
 
Index: /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php	(revision 19661)
@@ -54,9 +54,15 @@
      */
     function process() {
-        global $objCampaignSess;
+        $this->action();
+        $this->sendResponse();
+    }
 
-        $objView = new SC_SiteView();
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objCustomer = new SC_Customer();
-        $objCampaignSess = new SC_CampaignSession();
 
         // レイアウトデザインを取得
@@ -75,12 +81,4 @@
             $this->tpl_kiyaku_text.=$arrRet[$i]['kiyaku_text'] . "\n\n";
         }
-
-        // キャンペーンからの遷移がチェック
-        $this->is_campaign = $objCampaignSess->getIsCampaign();
-        $this->campaign_dir = $objCampaignSess->getCampaignDir();
-
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
     }
 
@@ -100,5 +98,14 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        $this->mobilAection();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objCustomer = new SC_Customer();
 
@@ -129,8 +136,4 @@
             $this->tpl_kiyaku_text.=$arrRet[$i]['kiyaku_text'] . "\n\n";
         }
-
-        $objView->assign("offset", $next);
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_EmailMobile.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_EmailMobile.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry_EmailMobile.php	(revision 19661)
@@ -52,4 +52,14 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
     }
 
@@ -70,5 +80,14 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView;
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objCustomer = new SC_Customer;
         $objFormParam = new SC_FormParam;
@@ -104,7 +123,4 @@
         $this->tpl_name = $objCustomer->getValue('name01');
         $this->arrForm = $objFormParam->getFormParamList();
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php	(revision 18853)
+++ /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php	(revision 19661)
@@ -73,4 +73,14 @@
         
         $this->httpCacheControl('nocache');
+    }
+
+    /**
+     * Page のプロセス.
+     * 
+     * @return void
+     */
+    function process() {
+        $this->action();
+        $this->sendResponse();
     }
 
@@ -156,13 +166,9 @@
      * - $_POST["mode"]('return', 'confirm', 'complate')
      *
-     * @global $objCampaignSess
      * @return void
      */
-    function process() {
-        global $objCampaignSess;
-
+    function action() {
         $objView = new SC_SiteView();
         $objCustomer = new SC_Customer();
-        $objCampaignSess = new SC_CampaignSession();
         $objDb = new SC_Helper_DB_Ex();
         $CONF = $objDb->sf_getBasisData();
@@ -219,5 +225,5 @@
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
 
-            if (!$this->isValidToken()) {
+            if (!SC_Helper_Session_Ex::isValidToken()) {
                 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true);
             }
@@ -283,9 +289,4 @@
                 //-- 会員登録と完了画面
                 if ($_POST["mode"] == "complete") {
-                    // キャンペーンからの遷移の時用の値
-                    if($objCampaignSess->getIsCampaign()) {
-                        $this->etc_value = "&cp=".$objCampaignSess->getCampaignId();
-                    }
-
                     // 会員情報の登録
                     $this->CONF = $CONF;
@@ -335,5 +336,5 @@
                     // 完了ページに移動させる。
                     $customer_id = $objQuery->get("dtb_customer", "customer_id", "secret_key = ?", array($this->uniqid));
-                    $this->sendRedirect($this->getLocation("./complete.php", array("ci" => $customer_id)));
+                    $this->objDisplay->redirect($this->getLocation("./complete.php", array("ci" => $customer_id)));
                     exit;
                 }
@@ -341,10 +342,5 @@
         }
 
-        $this->transactionid = $this->getToken();
-
-        //---- ページ表示
-        $objView->assignobj($this);
-        // フレームを選択(キャンペーンページから遷移なら変更)
-        $objCampaignSess->pageView($objView);
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
     }
 
@@ -366,4 +362,14 @@
      */
     function mobileProcess() {
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         //---- ページ初期設定
         $objDb = new SC_Helper_DB_Ex();
@@ -586,5 +592,5 @@
                                        "id" => $this->uniqid,
                                        session_name() => session_id());
-                        $this->sendRedirect($this->getLocation(MOBILE_URL_DIR . "regist/" . DIR_INDEX_URL, $param));
+                        $this->objDisplay->redirect($this->getLocation(MOBILE_URL_DIR . "regist/" . DIR_INDEX_URL, $param));
                         exit;
                     }
@@ -634,13 +640,9 @@
 
                     // 完了ページに移動させる。
-                    $this->sendRedirect($this->getLocation("./complete.php"), true);
+                    $this->objDisplay->redirect($this->getLocation("./complete.php"));
                     exit;
                 }
             }
         }
-
-        //---- ページ表示
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	(revision 19661)
@@ -55,7 +55,17 @@
      */
     function process() {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objCustomer = new SC_Customer();
         // 不正なURLがPOSTされた場合はエラー表示
-        if (!$this->isValidToken()) {
+        if (!SC_Helper_Session_Ex::isValidToken()) {
             GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
             SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
@@ -96,5 +106,5 @@
             if(count($arrErr) == 0) {
                 if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
-                    $this->sendRedirect($this->getLocation(URL_DIR, array(), false));
+                    $this->objDisplay->redirect($this->getLocation(URL_DIR, array(), false));
                     exit;
                 } else {
@@ -112,5 +122,5 @@
             } else {
                 // 入力エラーの場合、元のアドレスに戻す。
-                $this->sendRedirect($this->getLocation($_POST['url'], array(), false));
+                $this->objDisplay->redirect($this->getLocation($_POST['url'], array(), false));
                 exit;
             }
@@ -122,7 +132,7 @@
             //マイページログイン中はログイン画面へ移行
             if ($mypage_url_search == 2){
-                $this->sendRedirect($this->getLocation(URL_DIR . "mypage/login.php", array(), false));
+                $this->objDisplay->redirect($this->getLocation(URL_DIR . "mypage/login.php", array(), false));
             }else{
-                $this->sendRedirect($this->getLocation(URL_DIR, array(), false));
+                $this->objDisplay->redirect($this->getLocation(URL_DIR, array(), false));
             }
             exit;
Index: /branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php	(revision 19661)
@@ -82,5 +82,5 @@
         $this->tpl_disable_logout = $this->lfCheckDisableLogout();
         $objSubView = new SC_SiteView(false);
-        $this->transactionid = $this->getToken();
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
         $objSubView->assignobj($this);
         $objSubView->display($this->tpl_mainpage);
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Search.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Search.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Search.php	(revision 19661)
@@ -52,4 +52,15 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function action() {
     }
 
@@ -60,6 +71,18 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = 'products/search.tpl';
         $this->tpl_title = '商品検索';
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
     }
 
@@ -69,9 +92,5 @@
      * @return void
      */
-    function mobileProcess() {
-        $objView = new SC_MobileView();
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+    function mobileAction() {
     }
 
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_CategoryList.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_CategoryList.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_CategoryList.php	(revision 19661)
@@ -52,5 +52,14 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
     }
+
+    /**
+     * Page のAction
+     * @return void
+     */
+    function action() {}
 
     /**
@@ -60,4 +69,5 @@
      */
     function mobileInit() {
+        $this->init();
         $this->tpl_mainpage = MOBILE_TEMPLATE_DIR . 'products/category_list.tpl';
         $this->tpl_title = 'カテゴリ一覧ページ';
@@ -65,13 +75,24 @@
 
     /**
-     * Page のプロセス(モバイル).
+     * Page のプロセス（モバイル）.
      *
      * @return void
      */
-    function mobileProcess() {
+    function mobileProcess(){
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         // カテゴリIDの正当性チェック
         $this->lfCheckCategoryId();
         
-        $objView = new SC_MobileView();
+        //$objView = new SC_MobileView();
 
         // レイアウトデザインを取得
@@ -82,6 +103,6 @@
         $this->lfGetCategories(@$_GET['category_id'], true, $this);
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_ReviewComplete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_ReviewComplete.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_ReviewComplete.php	(revision 19661)
@@ -47,4 +47,5 @@
     }
 
+
     /**
      * Page のプロセス.
@@ -53,9 +54,16 @@
      */
     function process() {
-
-        $objView = new SC_SiteView();
-
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+    
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        $this->setTemplate($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php	(revision 18862)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php	(revision 19661)
@@ -84,7 +84,16 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     *  ページのアクション（旧process)
+     * @return void
+     */
+    function action() {
         $this->lfLoadParam();
-
-        $objView = new SC_SiteView(!$this->inCart);
+        //$objView = new SC_SiteView(!$this->inCart);
         $objQuery = new SC_Query();
         $objDb = new SC_Helper_DB_Ex();
@@ -161,5 +170,5 @@
                 $objCartSess = new SC_CartSession();
                 $objCartSess->addProduct($product_class_id, $this->arrForm['quantity'], $product_type);
-                $this->sendRedirect($this->getLocation(URL_CART_TOP));
+                $this->objDisplay->redirect($this->getLocation(URL_CART_TOP));
                 exit;
             }
@@ -176,11 +185,9 @@
             }
         }
+
         $this->tpl_javascript .= 'function fnOnLoad(){' . $js_fnOnLoad . '}';
         $this->tpl_onload .= 'fnOnLoad(); ';
 
         $this->tpl_rnd = SC_Utils_Ex::sfGetRandomString(3);
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
@@ -197,12 +204,22 @@
      * Page のプロセス(モバイル).
      *
+     * @return void
+     */
+    function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobieAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
+     *
      * FIXME スパゲッティ...
      *
      * @return void
      */
-    function mobileProcess() {
+    function mobieAction(){
         $this->lfLoadParam();
-
-        $objView = new SC_MobileView();
+        //$objView = new SC_MobileView();
         $objQuery = new SC_Query();
         $objDb = new SC_Helper_DB_Ex();
@@ -263,7 +280,4 @@
 
         $this->tpl_mainpage = MOBILE_TEMPLATE_DIR . "products/list.tpl";
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Review.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Review.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Review.php	(revision 19661)
@@ -66,13 +66,22 @@
     /**
      * Page のプロセス.
+     */
+    function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
      *
      * @return void
      */
-    function process() {
-        $objView = new SC_SiteView();
+    function action() {
+        //$objView = new SC_SiteView();
         $objQuery = new SC_Query();
 
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
-            if (!$this->isValidToken()) {
+            if (!SC_Helper_Session_Ex::isValidToken()) {
                 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true);
             }
@@ -145,5 +154,5 @@
                     $this->lfRegistRecommendData($arrForm, $arrRegistColumn);
                     //レビュー書き込み完了ページへ
-                    $this->sendRedirect($this->getLocation("./review_complete.php", array(), true));
+                    $this->objDisplay->redirect($this->getLocation("./review_complete.php", array(), true));
                     exit;
                 }
@@ -168,7 +177,6 @@
         }
 
-        $this->transactionid = $this->getToken();
-        $objView->assignobj($this);
-        $objView->display($this->tpl_mainpage);
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
+        $this->setTemplate($this->tpl_mainpage);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Detail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Detail.php	(revision 18876)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Detail.php	(revision 19661)
@@ -78,4 +78,15 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
         // プロダクトIDの正当性チェック
         $product_id = $this->lfCheckProductId();
@@ -216,10 +227,10 @@
                         $objCartSess->saveCurrentCart($objSiteSess->getUniqId());
 
-                        $this->sendRedirect($this->getLocation(
+                        $this->objDisplay->redirect($this->getLocation(
                             URL_DIR . 'user_data/gmopg_oneclick_confirm.php', array(), true));
                         exit;
                     }
 
-                    $this->sendRedirect($this->getLocation(URL_CART_TOP));
+                    $this->objDisplay->redirect($this->getLocation(URL_CART_TOP));
                     exit;
                 }
@@ -269,6 +280,6 @@
         $this->lfConvertParam();
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
@@ -294,4 +305,14 @@
     /**
      * Page のプロセス(モバイル).
+     * @return void
+     */
+    function mobileProcess() {
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction(モバイル).
      *
      * FIXME 要リファクタリング
@@ -299,9 +320,9 @@
      * @return void
      */
-    function mobileProcess() {
+    function mobileAction() {
         // プロダクトIDの正当性チェック
         $product_id = $this->lfCheckProductId();
 
-        $objView = new SC_MobileView();
+        //$objView = new SC_MobileView();
         $objCustomer = new SC_Customer();
         $objQuery = new SC_Query();
@@ -419,5 +440,5 @@
 
                 $objCartSess->addProduct(array($_POST['product_id'], $product_class_id, $classcategory_id1, $classcategory_id2), $this->objFormParam->getValue('quantity'));
-                $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true);
+                $this->objDisplay->redirect($this->getLocation(MOBILE_URL_CART_TOP));
                 exit;
             }
@@ -452,6 +473,6 @@
         $this->arrRecommend = $this->lfPreGetRecommendProducts($product_id);
 
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        //$objView->assignobj($this);
+        //$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/LC_Page_Index.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/LC_Page_Index.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/pages/LC_Page_Index.php	(revision 19661)
@@ -54,5 +54,5 @@
      */
     function mobileInit() {
-        $this->tpl_mainpage = 'top.tpl';
+        $this->init();
     }
 
@@ -63,14 +63,19 @@
      */
     function process() {
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
 
-        $objView = new SC_SiteView();
-
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         // レイアウトデザインを取得
         $layout = new SC_Helper_PageLayout_Ex();
         $layout->sfGetPageLayout($this, false, "index.php");
         $this->tpl_title = '';
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
@@ -81,10 +86,20 @@
      */
     function mobileProcess() {
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のプロセス(モバイル).
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objCustomer = new SC_Customer();
 
-        $objView = new SC_MobileView();
-        $objView->assign("isLogin", $objCustomer->isLoginSuccess(true));
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
+        #$objView = new SC_MobileView();
+        #$objView->assign("isLogin", $objCustomer->isLoginSuccess(true));
+        #$objView->assignobj($this);
+        #$objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/order/LC_Page_Order.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/order/LC_Page_Order.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/pages/order/LC_Page_Order.php	(revision 19661)
@@ -59,5 +59,15 @@
      */
     function process() {
-        $objView = new SC_SiteView();
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action() {
         $objQuery = new SC_Query();
         $layout = new SC_Helper_PageLayout_Ex();
@@ -67,7 +77,4 @@
         $layout->sfGetPageLayout($this, false, DEF_LAYOUT);
         $this->arrRet = $objDb->sf_getBasisData();
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
@@ -88,11 +95,18 @@
      */
     function mobileProcess() {
-        $objView = new SC_MobileView();
+        parent::mobileProcess();
+        $this->mobileAction();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション(モバイル).
+     *
+     *
+     * @return void
+     */
+    function mobileAction() {
         $objDb = new SC_Helper_DB_Ex();
-
         $this->arrRet = $objDb->sf_getBasisData();
-
-        $objView->assignobj($this);
-        $objView->display(SITE_FRAME);
     }
 
Index: /branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php
===================================================================
--- /branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php	(revision 18843)
+++ /branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php	(revision 19661)
@@ -180,8 +180,9 @@
         
         // CSVを送信する。
-        $this->lfDownloadCsv($outputArray);
+        #$this->lfDownloadCsv($outputArray);
+        return $this->lfGetCsv2($outputArray);
         
         // 成功終了
-        return true;
+        #return true;
     }
 
@@ -495,4 +496,25 @@
         }
     }
+
+    /**
+     * CSVデータを取得する。
+     */
+    function lfGetCsv2($arrayData, $prefix = "") {
+
+        if($prefix == "") {
+            $dir_name = SC_Utils::sfUpDirName();
+            $file_name = $dir_name . date("ymdHis") .".csv";
+        } else {
+            $file_name = $prefix . date("ymdHis") .".csv";
+        }
+
+        /* データを出力 */
+        foreach ($arrayData as $lineArray) {
+            $lineString = $this->sfArrayToCsv($lineArray);
+            $lineString = mb_convert_encoding($lineString, 'SJIS-Win');
+            $lineString .= "\r\n";
+        }
+        return array($file_name, $lineString);
+    }
 }
 ?>
Index: /branches/version-2_5-dev/data/class/helper/SC_Helper_Plugin.php
===================================================================
--- /branches/version-2_5-dev/data/class/helper/SC_Helper_Plugin.php	(revision 19661)
+++ /branches/version-2_5-dev/data/class/helper/SC_Helper_Plugin.php	(revision 19661)
@@ -0,0 +1,99 @@
+<?php
+
+class SC_Helper_Plugin{
+
+    /**
+     * enableかどうかを判別する
+     * インスタンス化
+     */
+    public static function load(LC_Page &$lcpage){
+        //データベースからクラス名を読み込む
+        $objQuery = new SC_Query();
+        $col = "*";
+        $table = "dtb_plugin";
+        $where = "enable = 1 AND del_flg = 0";
+        $arrRet = $objQuery->select($col, $table, $where);
+        $class_name = get_class($lcpage);
+
+        // 実行されたぺーじ
+        // 現在のページで使用するプラグインが存在するかどうかを検証する
+        foreach ($arrRet as $plugins){
+            // プラグインを稼働させるクラス名のリストを取得する
+            // プラグインのディレクトリ内の設定ファイルを参照する
+            $plugin_name = $plugins['name'];
+            $plugin_class_name = $plugins['class_name'];
+            require_once DATA_PATH."plugin/{$plugin_name}/{$plugin_class_name}.php";
+
+            $code_str = "\$is_enable = {$plugin_class_name}::is_enable(\$class_name);";
+            eval($code_str);
+            if ($is_enable) {
+                $arrPluginList[] = $plugin_class_name;
+            }
+        }
+        return $arrPluginList;
+    }
+
+    public static function preProcess(LC_Page &$lcpage){
+        //プラグインの名前を判別してページ内で有効なプラグインがあれば実行する
+        $arrPluginList = SC_Helper_Plugin::load($lcpage);
+       if(count($arrPluginList) > 0){
+            foreach ($arrPluginList as $key => $value){
+                $instance = new $value;
+                $instance->preProcess($lcpage);
+            }
+        }
+        return $lcpage;
+    }
+
+    /* 読み込んだプラグインの実行用メソッド
+     *
+     */
+    public static function process(LC_Page &$lcpage){
+        //プラグインの名前を判別してページ内で有効なプラグインがあれば実行する
+        $arrPluginList = SC_Helper_Plugin::load($lcpage);
+        if(count($arrPluginList) > 0){
+            foreach ($arrPluginList as $key => $value){
+                $instance = new $value;
+                $instance->process($lcpage);
+            }
+        }
+        return $lcpage;
+    }
+
+    /**
+     * 稼働中のプラグインを取得する。
+     */
+    public static function getEnablePlugin(){
+        $objQuery = new SC_Query();
+        $col = '*';
+        $table = 'dtb_plugin';
+        $where = 'enable = 1 AND del_flg = 0';
+        $arrRet = $objQuery->select($col,$table,$where);
+        return $arrRet;
+    }
+
+    /**
+     * インストールされているプラグインを取得する。
+     */
+    public static function getAllPlugin(){
+        $objQuery = new SC_Query();
+        $col = '*';
+        $table = 'dtb_plugin';
+        $where = 'del_flg = 0';
+        $arrRet = $objQuery->select($col,$table,$where);
+        return $arrRet;
+    }
+
+
+    public static function getFilesystemPlugins(){
+        $plugin_dir = DATA_PATH."/plugin/";
+        if($dh = opendir($plugin_dir)){
+            while(($file = readdir($dh) !== false)){
+                if(is_dir($plugin_dir."/".$file)){
+                     
+                }
+            }
+        }
+    }
+}
+
Index: /branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php
===================================================================
--- /branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php	(revision 18820)
+++ /branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php	(revision 19661)
@@ -132,4 +132,64 @@
          return true;
     }
+
+    /**
+     * トランザクショントークンを生成し, 取得する.
+     *
+     * 悪意のある不正な画面遷移を防止するため, 予測困難な文字列を生成して返す.
+     * 同時に, この文字列をセッションに保存する.
+     *
+     * この関数を使用するためには, 生成した文字列を次画面へ渡すパラメータとして
+     * 出力する必要がある.
+     *
+     * 例)
+     * <input type="hidden" name="transactionid" value="この関数の返り値" />
+     *
+     * 遷移先のページで, LC_Page::isValidToken() の返り値をチェックすることにより,
+     * 画面遷移の妥当性が確認できる.
+     *
+     * @access protected
+     * @return string トランザクショントークンの文字列
+     */
+    function getToken() {
+        if (empty($_SESSION[TRANSACTION_ID_NAME])) {
+            $_SESSION[TRANSACTION_ID_NAME] = $this->createToken();
+        }
+        return $_SESSION[TRANSACTION_ID_NAME];
+    }
+
+    /**
+     * トランザクショントークンの妥当性をチェックする.
+     *
+     * 前画面で生成されたトランザクショントークンの妥当性をチェックする.
+     * この関数を使用するためには, 前画面のページクラスで LC_Page::getToken()
+     * を呼んでおく必要がある.
+     *
+     * @access protected
+     * @return boolean トランザクショントークンが有効な場合 true
+     */
+    function isValidToken() {
+
+        $checkToken = "";
+
+        // $_POST の値を優先する
+        if (isset($_POST[TRANSACTION_ID_NAME])) {
+
+            $checkToken = $_POST[TRANSACTION_ID_NAME];
+        } elseif (isset($_GET[TRANSACTION_ID_NAME])) {
+
+            $checkToken = $_GET[TRANSACTION_ID_NAME];
+        }
+
+        $ret = false;
+        // token の妥当性チェック
+        if ($checkToken === $_SESSION[TRANSACTION_ID_NAME]) {
+
+            $ret = true;
+        }
+
+        unset($_SESSION[TRANSACTION_ID_NAME]);
+        return $ret;
+    }
+
 }
 ?>
