Index: /branches/version-2_12-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php
===================================================================
--- /branches/version-2_12-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php	(revision 22033)
+++ /branches/version-2_12-dev/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php	(revision 22034)
@@ -82,8 +82,7 @@
                 $this->arrErr = $this->checkUploadFile($file_key);
                 if ($this->isError($this->arrErr) === false) {
-                    $upload_file = $_FILES[$file_key];
-                    $upload_file_file_name = $upload_file['name'];
+                    $archive_file_name = $_FILES[$file_key]['name'];
                     // インストール処理.
-                    $this->arrErr = $this->installPlugin($upload_file_file_name, 'plugin_file');
+                    $this->arrErr = $this->installPlugin($archive_file_name, 'plugin_file');
                     if ($this->isError($this->arrErr) === false) {
                         // コンパイルファイルのクリア処理
@@ -112,5 +111,4 @@
             // 有効化
             case 'enable':
-
                 // エラーチェック
                 $this->arrErr = $objFormParam->checkError();
@@ -315,6 +313,6 @@
      */
     function getHtmlPluginDir($plugin_code) {
-        $plugin_dir_path = PLUGIN_HTML_REALDIR . $plugin_code . '/';
-        return $plugin_dir_path;
+        $plugin_html_dir_path = PLUGIN_HTML_REALDIR . $plugin_code . '/';
+        return $plugin_html_dir_path;
     }
 
@@ -323,8 +321,9 @@
      *
      * @param string $plugin_code プラグインコード
+     * @param string $plugin_class プラグインクラス名
      * @return string $plugin_file_path クラスファイルのパス.
      */
-    function getPluginFilePath($plugin_code) {
-        $plugin_file_path = $this->getPluginDir($plugin_code) . $plugin_code . '.php';
+    function getPluginFilePath($plugin_code , $plugin_class) {
+        $plugin_file_path = $this->getPluginDir($plugin_code) . $plugin_class . '.php';
         return $plugin_file_path;
     }
@@ -333,12 +332,15 @@
      * プラグインをインストールします.
      *
-     * @param string $plugin_code プラグインコード.
+     * @param string $archive_file_name アーカイブファイル名.
      * @param string $key キー.
      * @return array エラー情報を格納した連想配列.
      */
-    function installPlugin($upload_file_file_name, $key) {
-        // インストール前に不要なファイルを消しておきます.
-        SC_Helper_FileManager_Ex::deleteFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, false);
-
+    function installPlugin($archive_file_name, $key) {
+        // 一時展開ディレクトリにファイルがある場合は事前に削除.
+        $arrFileHash = SC_Helper_FileManager_Ex::sfGetFileList(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
+        if(count($arrFileHash) > 0) {
+            SC_Helper_FileManager_Ex::deleteFile(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, false);
+        }
+        
         //シンタックスエラーがあるtar.gzをアップ後、削除するとたまにディレクトリが消えるので追加
         $this->makeDir(PLUGIN_UPLOAD_REALDIR);
@@ -351,5 +353,5 @@
         }
         // ファイルをチェックし一時展開用ディレクトリに展開します.
-        $arrErr = $this->unpackPluginFile($upload_file_file_name, DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $key);
+        $arrErr = $this->unpackPluginFile($archive_file_name, DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $key);
         if ($this->isError($arrErr) === true) {
             return $arrErr;
@@ -372,13 +374,8 @@
         }
 
-        // プラグインコード
-        $plugin_code = $arrPluginInfo['PLUGIN_CODE'];
-        // プラグイン名
-        $plugin_name = $arrPluginInfo['PLUGIN_NAME'];
-
         // 既にインストールされていないかを判定.
-        if ($this->isInstalledPlugin($plugin_code) === true) {
+        if ($this->isInstalledPlugin($arrPluginInfo['PLUGIN_CODE']) === true) {
             $this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR);
-            $arrErr['plugin_file'] = '※ ' . $plugin_name . 'は既にインストールされています。<br/>';
+            $arrErr['plugin_file'] = '※ ' . $arrPluginInfo['PLUGIN_NAME'] . 'は既にインストールされています。<br/>';
             return $arrErr;
         }
@@ -392,13 +389,13 @@
 
         // プラグイン保存ディレクトリを作成し、一時展開用ディレクトリから移動します.
-        $plugin_dir_path = PLUGIN_UPLOAD_REALDIR . $plugin_code . '/';
+        $plugin_dir_path = $this->getPluginDir($arrPluginInfo['PLUGIN_CODE']);
         $this->makeDir($plugin_dir_path);
         SC_Utils_Ex::copyDirectory(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin_dir_path);
 
         // プラグイン情報を取得
-        $plugin = SC_Plugin_Util_Ex::getPluginByPluginCode($plugin_code);
+        $plugin = SC_Plugin_Util_Ex::getPluginByPluginCode($arrPluginInfo['PLUGIN_CODE']);
 
         // クラスファイルを読み込み.
-        $plugin_class_file_path = $plugin_dir_path . $plugin['class_name'] . '.php';
+        $plugin_class_file_path = $this->getPluginFilePath($plugin['plugin_code'], $plugin['class_name']);
         $arrErr = $this->requirePluginFile($plugin_class_file_path, $key);
         if ($this->isError($arrErr) === true) {
@@ -407,10 +404,10 @@
         }
         // プラグインhtmlディレクトリ作成
-        $plugin_html_dir = PLUGIN_HTML_REALDIR . $plugin_code;
-        $this->makeDir($plugin_html_dir);
+        $plugin_html_dir_path = $this->getHtmlPluginDir($plugin['plugin_code']);
+        $this->makeDir($plugin_html_dir_path);
 
         $arrErr = $this->execPlugin($plugin, $plugin['class_name'], 'install');
         if ($this->isError($arrErr) === true) {
-            $this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin['plugin_id'], $plugin_html_dir);
+            $this->rollBack(DOWNLOADS_TEMP_PLUGIN_INSTALL_DIR, $plugin['plugin_id'], $plugin_html_dir_path);
             return $arrErr;
         }
@@ -427,7 +424,7 @@
      * @param string $temp_dir インストール・アップデート時の一時展開用ディレクトリのパス.
      * @param string $plugin_id プラグインID.
-     * @param string $plugin_html_dir プラグイン毎に生成されるhtmlディレクトリのパス.
-     */
-    function rollBack($temp_dir, $plugin_id = '', $plugin_html_dir ='') {
+     * @param string $plugin_html_dir_path プラグイン毎に生成されるhtmlディレクトリのパス.
+     */
+    function rollBack($temp_dir, $plugin_id = '', $plugin_html_dir_path ='') {
         // 一時ディレクトリを削除.
         SC_Helper_FileManager_Ex::deleteFile($temp_dir, false);
@@ -437,6 +434,6 @@
         }
         // htmlディレクトリを削除
-        if (empty($plugin_html_dir) === false) {
-            SC_Helper_FileManager_Ex::deleteFile($plugin_html_dir, true);
+        if (empty($plugin_html_dir_path) === false) {
+            SC_Helper_FileManager_Ex::deleteFile($plugin_html_dir_path, true);
         }
     }
@@ -483,7 +480,8 @@
      *
      * @param ReflectionClass $objReflection リフレクションオブジェクト
+     * @param string $dir_path チェックするプラグインディレクトリ
      * @return array エラー情報を格納した連想配列.
      */
-    function checkPluginConstants(ReflectionClass $objReflection, $unpack_dir) {
+    function checkPluginConstants(ReflectionClass $objReflection, $dir_path) {
         $arrErr = array();
         // プラグイン情報を取得
@@ -502,6 +500,6 @@
             return $arrErr;
         }
-        $class_path = $unpack_dir . $arrPluginInfo['CLASS_NAME'] . '.php';
-        if (file_exists($class_path) === false) {
+        $plugin_class_file_path = $dir_path . $arrPluginInfo['CLASS_NAME'] . '.php';
+        if (file_exists($plugin_class_file_path) === false) {
             $arrErr['plugin_file'] = '※ CLASS_NAMEが正しく定義されていません。<br/>';
             return $arrErr;
@@ -550,5 +548,5 @@
      * プラグインをアップデートします.
      *
-     * @param string $target_plugin アップデートするプラグインコード.
+     * @param array $target_plugin アップデートするプラグイン情報の配列.
      * @param string $upload_file_name アップロードファイル名.
      * @return array エラー情報を格納した連想配列.
@@ -598,12 +596,12 @@
      *
      * @param string $unpack_file_name 解凍ファイル名
-     * @param string $unpack_dir 解凍先ディレクトリ
+     * @param string $unpack_dir_path 解凍先ディレクトリパス
      * @param string $file_key ファイルキー
      * @return array エラー情報を格納した連想配列.
      */
-    function unpackPluginFile($unpack_file_name, $unpack_dir, $file_key) {
+    function unpackPluginFile($unpack_file_name, $unpack_dir_path, $file_key) {
         $arrErr = array();
         // 解凍ディレクトリディレクトリを作成し、一時ディレクトリからファイルを移動
-        $objUpFile = new SC_UploadFile_Ex(PLUGIN_TEMP_REALDIR, $unpack_dir);
+        $objUpFile = new SC_UploadFile_Ex(PLUGIN_TEMP_REALDIR, $unpack_dir_path);
         $this->initUploadFile($objUpFile, $file_key);
         $arrErr = $objUpFile->makeTempFile($file_key, false);
@@ -619,6 +617,6 @@
         $objUpFile->moveTempFile();
         // 解凍
-        $update_plugin_file_path = $unpack_dir . $unpack_file_name;
-        if (!$this->unpackPluginArchive($update_plugin_file_path)) {
+        $unpack_file_path = $unpack_dir_path . $unpack_file_name;
+        if (!$this->unpackPluginArchive($unpack_file_path)) {
             $arrErr['plugin_file'] = '※ 解凍に失敗しました。<br/>';
             return $arrErr;
@@ -636,5 +634,5 @@
         $arrErr = array();
         // プラグインファイルを読み込みます.
-        $plugin_class_file_path = PLUGIN_UPLOAD_REALDIR . $plugin['plugin_code'] . '/' . $plugin['class_name'] . '.php';
+        $plugin_class_file_path = $this->getPluginFilePath($plugin['plugin_code'], $plugin['class_name']);
         $arrErr = $this->requirePluginFile($plugin_class_file_path, 'plugin_error');
         if ($this->isError($arrErr) === true) {
@@ -670,5 +668,5 @@
         $arrErr = array();
         // クラスファイルを読み込み.
-        $plugin_class_file_path = PLUGIN_UPLOAD_REALDIR . $plugin['plugin_code'] . '/' . $plugin['class_name'] . '.php';
+        $plugin_class_file_path = $this->getPluginFilePath($plugin['plugin_code'], $plugin['class_name']);
         $arrErr = $this->requirePluginFile($plugin_class_file_path, 'plugin_error');
         if ($this->isError($arrErr) === true) {
@@ -695,5 +693,5 @@
         $arrErr = array();
         // クラスファイルを読み込み.
-        $plugin_class_file_path = PLUGIN_UPLOAD_REALDIR . $plugin['plugin_code'] . '/' . $plugin['class_name'] . '.php';
+        $plugin_class_file_path =$this->getPluginFilePath($plugin['plugin_code'], $plugin['class_name']);
         $arrErr = $this->requirePluginFile($plugin_class_file_path, 'plugin_error');
         if ($this->isError($arrErr) === true) {
