Index: /branches/camp/camp-2_13-plugin/html/admin/ownersstore/plugin_hookpoint_list.php
===================================================================
--- /branches/camp/camp-2_13-plugin/html/admin/ownersstore/plugin_hookpoint_list.php	(revision 22629)
+++ /branches/camp/camp-2_13-plugin/html/admin/ownersstore/plugin_hookpoint_list.php	(revision 22629)
@@ -0,0 +1,34 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2013 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_REALDIR . 'page_extends/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.php';
+
+// }}}
+// {{{ generate page
+
+$objPage = new LC_Page_Admin_OwnersStore_PluginHookPointList_Ex();
+register_shutdown_function(array($objPage, 'destroy'));
+$objPage->init();
+$objPage->process();
Index: /branches/camp/camp-2_13-plugin/html/install/sql/create_table_mysql.sql
===================================================================
--- /branches/camp/camp-2_13-plugin/html/install/sql/create_table_mysql.sql	(revision 22218)
+++ /branches/camp/camp-2_13-plugin/html/install/sql/create_table_mysql.sql	(revision 22629)
@@ -1166,4 +1166,5 @@
     hook_point text NOT NULL,
     callback text,
+    use_flg text booelan NOT NULL DEFAULT true,
     create_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
     update_date timestamp NOT NULL,
Index: /branches/camp/camp-2_13-plugin/html/install/sql/create_table_pgsql.sql
===================================================================
--- /branches/camp/camp-2_13-plugin/html/install/sql/create_table_pgsql.sql	(revision 22218)
+++ /branches/camp/camp-2_13-plugin/html/install/sql/create_table_pgsql.sql	(revision 22629)
@@ -1166,4 +1166,5 @@
     hook_point text NOT NULL,
     callback text,
+    use_flg text booelan NOT NULL DEFAULT true,
     create_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
     update_date timestamp NOT NULL,
Index: /branches/camp/camp-2_13-plugin/data/class/plugin/SC_Plugin_Util.php
===================================================================
--- /branches/camp/camp-2_13-plugin/data/class/plugin/SC_Plugin_Util.php	(revision 22567)
+++ /branches/camp/camp-2_13-plugin/data/class/plugin/SC_Plugin_Util.php	(revision 22629)
@@ -148,6 +148,20 @@
         $cols = '*';
         $from = 'dtb_plugin_hookpoint';
-        $where = 'plugin_id = ?';
+        $where = 'plugin_id = ? AND use_flg = true';
         return $objQuery->select($cols, $from, $where, array($plugin_id));
+    }
+
+    function getPluginHookPointList()
+    {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+        $objQuery->setOrder('priority DESC');
+        $cols = 'dtb_plugin_hookpoint.*, dtb_plugin.priority, dtb_plugin.plugin_name';
+        $from = 'dtb_plugin_hookpoint LEFT JOIN dtb_plugin USING(plugin_id)';
+        $arrRet = $objQuery->select($cols, $from);
+        $arrList = array();
+        foreach ($arrRet AS $key=>$val) {
+            $arrList[$val['plugin_hookpoint_id']][$val['plugin_id']] = $val;
+        }
+        return $arrList;
     }
 
Index: /branches/camp/camp-2_13-plugin/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList.php
===================================================================
--- /branches/camp/camp-2_13-plugin/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList.php	(revision 22629)
+++ /branches/camp/camp-2_13-plugin/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList.php	(revision 22629)
@@ -0,0 +1,168 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2013 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_REALDIR . 'page_extends/admin/LC_Page_Admin_Ex.php';
+
+/**
+ * オーナーズストア：プラグイン管理 のページクラス.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: LC_Page_Admin_OwnersStore.php 22567 2013-02-18 10:09:54Z shutta $
+ */
+class LC_Page_Admin_OwnersStore_PluginHookPointList extends LC_Page_Admin_Ex 
+{
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init()
+    {
+        parent::init();
+        $this->tpl_mainpage = 'ownersstore/plugin_hookpoint_list.tpl';
+        $this->tpl_subno    = 'index';
+        $this->tpl_mainno   = 'ownersstore';
+        $this->tpl_maintitle = 'オーナーズストア';
+        $this->tpl_subtitle = 'プラグインフックポイント管理';
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process()
+    {
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のアクション.
+     *
+     * @return void
+     */
+    function action()
+    {
+        // パラメーター管理クラス
+        $objFormParam = new SC_FormParam_Ex();
+        $this->initParam($objFormParam, $mode);
+        $objFormParam->setParam($_POST);
+
+        $mode = $this->getMode();
+        switch ($mode) {
+            // 削除
+            case 'uninstall':
+                // エラーチェック
+                $this->arrErr = $objFormParam->checkError();
+                if ($this->isError($this->arrErr) === false) {
+                    $plugin_id = $objFormParam->getValue('plugin_id');
+                    $plugin = SC_Plugin_Util_Ex::getPluginByPluginId($plugin_id);
+                    $this->arrErr = $this->uninstallPlugin($plugin);
+                    if ($this->isError($this->arrErr) === false) {
+                        // TODO 全プラグインのインスタンスを保持したまま後続処理が実行されるので、全てのインスタンスを解放する。
+                        unset($GLOBALS['_SC_Helper_Plugin_instance']);
+                        // コンパイルファイルのクリア処理
+                        SC_Utils_Ex::clearCompliedTemplate();
+                        $this->tpl_onload = "alert('" . $plugin['plugin_name'] ."を削除しました。');";
+                    }
+                }
+                break;
+            // 有効化
+            case 'enable':
+                // エラーチェック
+                $this->arrErr = $objFormParam->checkError();
+                if ($this->isError($this->arrErr) === false) {
+                    $plugin_id = $objFormParam->getValue('plugin_id');
+                    // プラグイン取得.
+                    $plugin = SC_Plugin_Util_Ex::getPluginByPluginId($plugin_id);
+                    $this->arrErr = $this->enablePlugin($plugin);
+                    if ($this->isError($this->arrErr) === false) {
+                        // TODO 全プラグインのインスタンスを保持したまま後続処理が実行されるので、全てのインスタンスを解放する。
+                        unset($GLOBALS['_SC_Helper_Plugin_instance']);
+                        // コンパイルファイルのクリア処理
+                        SC_Utils_Ex::clearCompliedTemplate();
+                        $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を有効にしました。');";
+                    }
+                }
+                break;
+            // 無効化
+            case 'disable':
+                // エラーチェック
+                $this->arrErr = $objFormParam->checkError();
+                if ($this->isError($this->arrErr) === false) {
+                    $plugin_id = $objFormParam->getValue('plugin_id');
+                    // プラグイン取得.
+                    $plugin = SC_Plugin_Util_Ex::getPluginByPluginId($plugin_id);
+                    $this->arrErr = $this->disablePlugin($plugin);
+                    if ($this->isError($this->arrErr) === false) {
+                        // TODO 全プラグインのインスタンスを保持したまま後続処理が実行されるので、全てのインスタンスを解放する。
+                        unset($GLOBALS['_SC_Helper_Plugin_instance']);
+                        // コンパイルファイルのクリア処理
+                        SC_Utils_Ex::clearCompliedTemplate();
+                        $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を無効にしました。');";
+                    }
+                }
+                break;
+            default:
+                break;
+        }
+        // DBからプラグイン情報を取得
+        $arrHookPoint = SC_Plugin_Util_Ex::getPluginHookPointList();
+
+        $this->arrHookPoint = $arrHookPoint;
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy()
+    {
+        parent::destroy();
+    }
+
+    /**
+     * パラメーター初期化.
+     *
+     * @param SC_FormParam_Ex $objFormParam
+     * @param string $mode モード
+     * @return void
+     */
+    function initParam(&$objFormParam, $mode)
+    {
+        $objFormParam->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK'));
+        $objFormParam->addParam('plugin_id', 'plugin_id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+        if ($mode === 'priority') {
+            $objFormParam->addParam('優先度', 'priority', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
+        }
+    }
+
+}
Index: /branches/camp/camp-2_13-plugin/data/Smarty/templates/admin/ownersstore/plugin_hookpoint_list.tpl
===================================================================
--- /branches/camp/camp-2_13-plugin/data/Smarty/templates/admin/ownersstore/plugin_hookpoint_list.tpl	(revision 22629)
+++ /branches/camp/camp-2_13-plugin/data/Smarty/templates/admin/ownersstore/plugin_hookpoint_list.tpl	(revision 22629)
@@ -0,0 +1,158 @@
+<!--{*
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2013 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[
+    $(function() {
+
+        /**
+         * 「有効/有効にする」チェックボタン押下時
+         */
+        $('input[id^=plugin_enable]').change(function(event) {
+            // モード(有効 or 無効)
+            var mode = event.target.name;
+
+            if(mode === 'disable') {
+                result = window.confirm('プラグインを無効にしても宜しいですか？');
+                if(result === false) {
+                    $(event.target).attr("checked", "checked");
+                }
+            } else if(mode === 'enable') {
+                result = window.confirm('プラグインを有効にしても宜しいですか？');
+                if(result === false) {
+                    $(event.target).attr("checked", "");
+                }
+            }
+            if(result === true){
+                // プラグインID
+                var plugin_id = event.target.value;
+                fnModeSubmit(mode, 'plugin_id', plugin_id);
+            }
+        });
+
+    /**
+     * アップデートリンク押下時の処理.
+     */
+    $('.update_link').click(function(event) {
+        var plugin_id = event.target.name;
+        $('div[id="plugin_update_' + plugin_id + '"]').toggle("slow");
+        });
+    });
+
+    /**
+     * アプデートボタン押下時の処理.
+     * アップデート対象ファイル以外はPOSTされない様にdisabled属性を付与
+     */
+    function removeUpdateFile(select_id) {
+        $('input[name="update_plugin_file"]').attr("disabled", "disabled");
+        $('input[id="' + select_id + '"]').removeAttr("disabled");
+    }
+
+    /**
+     * インストール
+     */
+    function install() {
+        if (window.confirm('プラグインをインストールしても宜しいでしょうか？')){
+            fnModeSubmit('install','','');
+        }
+    }
+
+    /**
+     * アンインストール(削除)
+     */
+    function uninstall(plugin_id, plugin_code) {
+        if (window.confirm('一度削除したデータは元に戻せません。\nプラグインを削除しても宜しいですか？')){
+            fnSetFormValue('plugin_id', plugin_id);
+            fnModeSubmit('uninstall', 'plugin_code', plugin_code);
+        }
+    }
+
+    /**
+     * アップデート処理
+     */
+    function update(plugin_id, plugin_code) {
+        if (window.confirm('プラグインをアップデートしても宜しいですか？')){
+            removeUpdateFile('update_file_' + plugin_id);
+            fnSetFormValue('plugin_id', plugin_id);
+            fnModeSubmit('update','plugin_code', plugin_code);
+        }
+    }
+
+
+    /**
+     * 優先度変更.
+     */
+    function update_priority(plugin_id, plugin_code) {
+        var priority = $("*[name=priority_" + plugin_code +"]").val();
+        fnSetFormValue('priority', priority);
+        fnModeSubmit('priority','plugin_id',plugin_id);
+    }
+
+//]]></script>
+
+<!--<form name="form1" id="form1" method="post" action="?">-->
+<form name="form1" method="post" action="?" enctype="multipart/form-data">
+<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+<input type="hidden" name="mode" value="" />
+<input type="hidden" name="plugin_id" value="" />
+<input type="hidden" name="plugin_code" value="" />
+<input type="hidden" name="priority" value="" />
+<div id="system" class="contents-main">
+    <h2>プラグイン競合チェック</h2>
+
+    <!--▼プラグイン一覧ここから-->
+    <h2>フックポイント別プラグイン一覧</h2>
+    <!--{if count($arrHookPoint) > 0}-->
+
+        <span class="attention"><!--{$arrErr.plugin_error}--></span>
+        <table class="system-plugin" width="900">
+            <col width="10%" />
+            <col width="77" />
+            <col width="13%" />
+            <tr>
+                <th>フックポイント</th>
+                <th>優先度</th>
+                <th>プラグイン名</th>
+                <th>利用ON/OFF</th>
+            </tr>
+    <!--{foreach from=$arrHookPoint item=hookpoint}-->
+    <!--{foreach from=$hookpoint item=val}-->
+
+
+            <tr>
+                <td><!--{$val.hook_point}--></td>
+                <td><!--{$val.priority}--></td>
+                <td><!--{$val.plugin_name}--></td>
+                <td>
+plugin_hookpoint_id:<!--{$val.plugin_id}-->, plugin_id:<!--{$val.plugin_id}-->
+use_flg:<!--{$val.use_flg}--><br />
+                </td>
+            </tr>
+    <!--{/foreach}-->
+    <!--{/foreach}-->
+        </table>
+    <!--{else}-->
+        <span>登録されているプラグインはありません。</span>
+    <!--{/if}-->
+</div>
+</form>
Index: /branches/camp/camp-2_13-plugin/data/Smarty/templates/admin/ownersstore/subnavi.tpl
===================================================================
--- /branches/camp/camp-2_13-plugin/data/Smarty/templates/admin/ownersstore/subnavi.tpl	(revision 22206)
+++ /branches/camp/camp-2_13-plugin/data/Smarty/templates/admin/ownersstore/subnavi.tpl	(revision 22629)
@@ -26,4 +26,6 @@
     <li id="navi-ownersstore-index" class="<!--{if $tpl_subno == 'index'}-->on<!--{/if}-->">
         <a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->ownersstore/<!--{$smarty.const.DIR_INDEX_PATH}-->"><span>プラグイン管理</span></a></li>
+    <li id="navi-ownersstore-plugin-hookpoint-list" class="<!--{if $tpl_subno == 'plugin-hookpoint-list'}-->on<!--{/if}-->">
+        <a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->ownersstore/plugin_hookpoint_list.php"><span>プラグインフックポイント管理</span></a></li>
     <li id="navi-ownersstore-module" class="<!--{if $tpl_subno == 'module'}-->on<!--{/if}-->">
         <a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->ownersstore/module.php"><span>モジュール管理</span></a></li>
Index: /branches/camp/camp-2_13-plugin/data/class_extends/page_extends/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.php
===================================================================
--- /branches/camp/camp-2_13-plugin/data/class_extends/page_extends/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.php	(revision 22629)
+++ /branches/camp/camp-2_13-plugin/data/class_extends/page_extends/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.php	(revision 22629)
@@ -0,0 +1,71 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2013 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_REALDIR . 'pages/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList.php';
+
+/**
+ * オーナーズストア：プラグイン管理 のページクラス(拡張).
+ *
+ * LC_Page_Admin_OwnersStore_PluginHookPointList をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Page
+ * @author LOCKON CO.,LTD.
+ * @version $Id: LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.php 22567 2013-02-18 10:09:54Z shutta $
+ */
+class LC_Page_Admin_OwnersStore_PluginHookPointList_Ex extends LC_Page_Admin_OwnersStore_PluginHookPointList
+{
+
+    // }}}
+    // {{{ functions
+
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
+    function init()
+    {
+        parent::init();
+    }
+
+    /**
+     * Page のプロセス.
+     *
+     * @return void
+     */
+    function process()
+    {
+        parent::process();
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy()
+    {
+        parent::destroy();
+    }
+}
