function update(array $arrPlugin, SC_Plugin_Installer $installer)
 {
     $base_dir = dirname(__FILE__);
     GC_Utils_Ex::gfPrintLog("[" . $arrPlugin["plugin_code"] . "]更新処理を実行します。", PLUGIN_LOG_REALFILE, FALSE);
     $log = "";
     $xdir = PLUGIN_UPLOAD_REALDIR . $arrPlugin["plugin_code"];
     if (!is_dir($xdir . "_" . date("Ymd") . "/")) {
         rename($xdir . "/", $xdir . "_" . date("Ymd") . "/");
     }
     SC_Helper_FileManager_Ex::deleteFile($xdir . "/", false);
     $log .= SC_Utils_Ex::sfCopyDir("{$base_dir}/", PLUGIN_UPLOAD_REALDIR . $arrPlugin["plugin_code"] . "/", '', true);
     // logo コピー
     $installer->copyDirectory("copy/plugin_dir/", "");
     GC_Utils_Ex::gfPrintLog($log, PLUGIN_LOG_REALFILE, false);
     $core = new SupportDeviceCore($arrPlugin);
     $plugin_version = $arrPlugin["plugin_version"];
     switch ($plugin_version) {
         case "0.0.0":
         case "0.0.1":
             // 再インストール
             $core->install($arrPlugin, $installer);
             $core->update($arrPlugin, $installer, "0.0.0");
             break;
         default:
             $core->update($arrPlugin, $installer, $plugin_version);
             break;
     }
     $core->createCash();
     $objQuery = SC_Query_Ex::getSingletonInstance();
     $objQuery->begin();
     GC_Utils_Ex::gfPrintLog("[" . $arrPlugin["plugin_code"] . "]更新処理を実行完了しました。", PLUGIN_LOG_REALFILE, FALSE);
 }
 /**
  * アンインストール
  * uninstallはアンインストール時に実行されます.
  * 引数にはdtb_pluginのプラグイン情報が渡されます.
  *
  * @param array $arrPlugin プラグイン情報の連想配列(dtb_plugin)
  * @return void
  */
 function uninstall($arrPlugin)
 {
     // ファイル削除
     if (SC_Helper_FileManager_Ex::deleteFile(PLUGIN_HTML_REALDIR . "SessionNotUsingDB/logo.png") === false) {
     }
     print_r("失敗");
 }
示例#3
0
 /**
  * アンインストール
  * uninstallはアンインストール時に実行されます.
  * 引数にはdtb_pluginのプラグイン情報が渡されます.
  *
  * @param array $arrPlugin プラグイン情報の連想配列(dtb_plugin)
  * @return void
  */
 function uninstall($arrPlugin)
 {
     VideoPlayer::uninsertFreeField();
     // ファイル削除
     if (SC_Helper_FileManager_Ex::deleteFile(PLUGIN_HTML_REALDIR . "VideoPlayer/logo.png") === false) {
     }
     print_r("失敗");
     if (SC_Helper_FileManager_Ex::deleteFile(PLUGIN_HTML_REALDIR . "VideoPlayer/VideoPlayer.php") === false) {
     }
     print_r("失敗");
 }
 function install(array $arrPlugin, SC_Plugin_Installer $installer)
 {
     $plugin_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
     $upload_plugin_dir = PLUGIN_UPLOAD_REALDIR . $arrPlugin["plugin_code"] . DIRECTORY_SEPARATOR;
     $backup_plugin_dir = PLUGIN_UPLOAD_REALDIR . $arrPlugin["plugin_code"] . "_" . date("Ymd") . DIRECTORY_SEPARATOR;
     if (!is_dir($backup_plugin_dir)) {
         SC_Utils_Ex::sfCopyDir($upload_plugin_dir, $backup_plugin_dir);
     }
     SC_Helper_FileManager_Ex::deleteFile($upload_plugin_dir, false);
     SC_Utils_Ex::sfCopyDir($plugin_dir . "/", $upload_plugin_dir);
     SC_Utils_Ex::sfCopyDir($plugin_dir . "/copy/Smarty/templates/admin/", TEMPLATE_ADMIN_REALDIR);
     SC_Utils_Ex::sfCopyDir($plugin_dir . "/copy/modules/", DATA_REALDIR . "module/");
     // logo コピー
     $installer->copyDirectory("copy/plugin_dir/", "");
     $table = "dtb_products";
     $fields = array('auto_display_status' => $this->intColumn('自動公開'), 'auto_display_start_date' => $this->timestampColumn('公開開始日'), 'auto_display_end_date' => $this->timestampColumn('公開終了日'));
     $type = "timestamp";
     $definition = compact("type");
     foreach ($fields as $name => $define) {
         $this->objDb->sfColumnExists($table, $name, $define["type"], "", true);
         $this->fieldComment($installer, $table, $name, $define["comment"]);
         switch ($define["type"]) {
             case "timestamp":
                 break;
             default:
                 continue;
         }
         $change = array();
         $change[$name] = compact('definition');
         $this->objManager->alterTable($table, compact("change"), false);
     }
     $this->objQuery->update("dtb_products", array(), "auto_display_start_date IS NULL", array(), array("auto_display_start_date" => "create_date"));
     $masterfields = array("id" => $this->intColumn("ID"), "name" => $this->textColumn("NAME"), "rank" => $this->intColumn("RANK"));
     $table = "atd_mtb_auto_display_status";
     if ($this->objDb->sfColumnExists($table, "id") == false) {
         $this->objManager->createTable($table, $masterfields);
     }
     foreach ($masterfields as $name => $define) {
         $this->objDb->sfColumnExists($table, $name, $define["type"], "", true);
         $this->fieldComment($installer, $table, $name, $define["comment"]);
     }
     $this->masterdata->deleteMasterData($table);
     $this->masterdata->clearCache($table);
     $this->masterdata->registMasterData($table, array(), explode(",", "常時公開,時限公開"));
     // $this->insertMasterData ( "PRODUCTS_RESULT_ROWSPAN", 1, '管理画面/商品管理一覧 行結合数' );
     // $this->insertMasterData ( "PRODUCTS_RESULT_COLUMN", 5, '管理画面/商品管理一覧 列位置' );
     // $this->insertMasterData ( "PRODUCTS_SEARCH_AUTO_DISPLAY", 1, '検索画面表示設定(1: ON/ 0:OFF)' );
     // $this->insertMasterData ( "PRODUCTS_DETAIL_AUTO_DISPLAY", 1, '検索画面表示設定(1: ON/ 0:OFF)' );
 }
 function update(array $arrPlugin, SC_Plugin_Installer $installer)
 {
     require_once DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR . "KisekaeTouchCore.php";
     $plugin_code = $arrPlugin["plugin_code"];
     $date = date("Ymd");
     define("KTC_PLG_ORG_DIR", PLUGIN_UPLOAD_REALDIR . "{$plugin_code}/");
     define("KTC_PLG_UPD_DIR", DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR);
     define("KTC_PLG_BKU_DIR", PLUGIN_UPLOAD_REALDIR . "{$plugin_code}_{$date}/");
     if (file_exists(KTC_PLG_BKU_DIR)) {
         // nop
     } else {
         SC_Utils_Ex::recursiveMkdir(KTC_PLG_BKU_DIR);
         $log = SC_Utils_Ex::sfCopyDir(KTC_PLG_ORG_DIR, KTC_PLG_BKU_DIR, "", TRUE);
         GC_Utils_Ex::gfPrintLog($log, PLUGIN_LOG_REALFILE, FALSE);
     }
     SC_Helper_FileManager_Ex::deleteFile(KTC_PLG_ORG_DIR, FALSE);
     $log = SC_Utils_Ex::sfCopyDir(KTC_PLG_UPD_DIR, KTC_PLG_ORG_DIR, "", TRUE);
     GC_Utils_Ex::gfPrintLog($log, PLUGIN_LOG_REALFILE, FALSE);
     $installer->copyDirectory("copy/plugin_dir/", "");
     $core = new KisekaeTouchCore($arrPlugin);
     $plugin_version = $arrPlugin["plugin_version"];
     $core->update($arrPlugin, $installer, $plugin_version);
     $core->createCash();
 }
示例#6
0
 /**
  * コンパイルファイルを削除します.
  * @return void
  */
 function clearCompliedTemplate()
 {
     // コンパイルファイルの削除処理
     SC_Helper_FileManager_Ex::deleteFile(COMPILE_REALDIR, false);
     SC_Helper_FileManager_Ex::deleteFile(COMPILE_ADMIN_REALDIR, false);
     SC_Helper_FileManager_Ex::deleteFile(SMARTPHONE_COMPILE_REALDIR, false);
     SC_Helper_FileManager_Ex::deleteFile(MOBILE_COMPILE_REALDIR, false);
 }
 /**
  * ファイル削除
  *
  * @param string $targetPath
  * @return void
  */
 static function lfDeleteFile($targetPath)
 {
     if (SC_Helper_FileManager_Ex::deleteFile($targetPath) === false) {
         AddProduct::lfTriggerError('[' . $targetPath . ']の削除に失敗しました');
     }
 }
 /**
  * Page のアクション.
  *
  * @return void
  */
 function action()
 {
     $objFormParam = new SC_FormParam_Ex();
     // パラメーターの初期化
     $this->initParam($objFormParam, $_POST);
     $arrErrTmp = array();
     $arrForm = array();
     $this->mode = $this->getMode();
     switch ($this->mode) {
         // バックアップを作成する
         case 'bkup':
             // データ型エラーチェック
             $arrErrTmp[1] = $objFormParam->checkError();
             // データ型に問題がない場合
             if (SC_Utils_Ex::isBlank($arrErrTmp[1])) {
                 // データ型以外のエラーチェック
                 $arrErrTmp[2] = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             }
             // エラーがなければバックアップ処理を行う
             if (SC_Utils_Ex::isBlank($arrErrTmp[1]) && SC_Utils_Ex::isBlank($arrErrTmp[2])) {
                 $arrData = $objFormParam->getHashArray();
                 $work_dir = $this->bkup_dir . $arrData['bkup_name'] . '/';
                 // バックアップデータの事前削除
                 SC_Helper_FileManager_Ex::deleteFile($work_dir);
                 // バックアップファイル作成
                 $res = $this->lfCreateBkupData($arrData['bkup_name'], $work_dir);
                 // バックアップデータの事後削除
                 SC_Helper_FileManager_Ex::deleteFile($work_dir);
                 $arrErrTmp[3] = array();
                 if ($res !== true) {
                     $arrErrTmp[3]['bkup_name'] = 'バックアップに失敗しました。(' . $res . ')';
                 }
                 // DBにデータ更新
                 if (SC_Utils_Ex::isBlank($arrErrTmp[3])) {
                     $this->lfUpdBkupData($arrData);
                 } else {
                     $arrForm = $arrData;
                     $arrErr = $arrErrTmp[3];
                 }
                 $this->tpl_onload = "alert('バックアップ完了しました');";
             } else {
                 $arrForm = $objFormParam->getHashArray();
                 $arrErr = array_merge((array) $arrErrTmp[1], (array) $arrErrTmp[2]);
             }
             break;
             // リストア
         // リストア
         case 'restore_config':
         case 'restore':
             // データベースに存在するかどうかチェック
             $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             // エラーがなければリストア処理を行う
             if (SC_Utils_Ex::isBlank($arrErr)) {
                 $arrData = $objFormParam->getHashArray();
                 $msg = '「' . $arrData['list_name'] . '」のリストアを開始します。';
                 GC_Utils_Ex::gfPrintLog($msg);
                 $success = $this->lfRestore($arrData['list_name'], $this->bkup_dir, $this->bkup_ext, $this->mode);
                 $msg = '「' . $arrData['list_name'] . '」の';
                 $msg .= $success ? 'リストアを終了しました。' : 'リストアに失敗しました。';
                 $this->tpl_restore_msg .= $msg . "\n";
                 GC_Utils_Ex::gfPrintLog($msg);
             }
             break;
             // 削除
         // 削除
         case 'delete':
             // データベースに存在するかどうかチェック
             $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             // エラーがなければリストア処理を行う
             if (SC_Utils_Ex::isBlank($arrErr)) {
                 $arrData = $objFormParam->getHashArray();
                 // DBとファイルを削除
                 $this->lfDeleteBackUp($arrData, $this->bkup_dir, $this->bkup_ext);
             }
             break;
             // ダウンロード
         // ダウンロード
         case 'download':
             // データベースに存在するかどうかチェック
             $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             // エラーがなければダウンロード処理を行う
             if (SC_Utils_Ex::isBlank($arrErr)) {
                 $arrData = $objFormParam->getHashArray();
                 $filename = $arrData['list_name'] . $this->bkup_ext;
                 $dl_file = $this->bkup_dir . $arrData['list_name'] . $this->bkup_ext;
                 // ダウンロード開始
                 Header("Content-disposition: attachment; filename={$filename}");
                 Header("Content-type: application/octet-stream; name={$filename}");
                 header('Content-Length: ' . filesize($dl_file));
                 readfile($dl_file);
                 exit;
                 break;
             }
         default:
             break;
     }
     // 不要になった変数を解放
     unset($arrErrTmp);
     // バックアップリストを取得する
     $arrBkupList = $this->lfGetBkupData('ORDER BY create_date DESC');
     // テンプレートファイルに渡すデータをセット
     $this->arrErr = isset($arrErr) ? $arrErr : array();
     $this->arrForm = isset($arrForm) ? $arrForm : array();
     $this->arrBkupList = $arrBkupList;
 }
 /**
  * 指定されたパスの配下を再帰的に削除.
  *
  * @param string  $path       削除対象のディレクトリまたはファイルのパス
  * @param boolean $del_myself $pathそのものを削除するか. true なら削除する.
  * @return void
  */
 function deleteFile($path, $del_myself = true)
 {
     $flg = false;
     // 対象が存在するかを検証.
     if (file_exists($path) === false) {
         GC_Utils_Ex::gfPrintLog($path . ' が存在しません.');
     } elseif (is_dir($path)) {
         // ディレクトリが指定された場合
         $handle = opendir($path);
         if (!$handle) {
             GC_Utils_Ex::gfPrintLog($path . ' が開けませんでした.');
         }
         while (($item = readdir($handle)) !== false) {
             if ($item === '.' || $item === '..') {
                 continue;
             }
             $cur_path = $path . '/' . $item;
             if (is_dir($cur_path)) {
                 // ディレクトリの場合、再帰処理
                 $flg = SC_Helper_FileManager_Ex::deleteFile($cur_path);
             } else {
                 // ファイルの場合、unlink
                 $flg = @unlink($cur_path);
             }
         }
         closedir($handle);
         // ディレクトリを削除
         GC_Utils_Ex::gfPrintLog($path . ' を削除します.');
         if ($del_myself) {
             $flg = @rmdir($path);
         }
     } else {
         // ファイルが指定された場合.
         GC_Utils_Ex::gfPrintLog($path . ' を削除します.');
         $flg = @unlink($path);
     }
     return $flg;
 }
 /**
  * テンプレートパッケージの削除.
  *
  * @param  string  $template_code  テンプレートコード
  * @param  integer $device_type_id 端末種別ID
  * @return boolean 成功した場合 true; 失敗した場合 false
  */
 public function doDelete($template_code, $device_type_id)
 {
     if ($template_code == $this->getTemplateName($device_type_id) || $template_code == $this->getTemplateName($device_type_id, true)) {
         $this->arrErr['err'] = '※ デフォルトテンプレートと、選択中のテンプレートは削除出来ません<br />';
         return false;
     } else {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $objQuery->begin();
         $objQuery->delete('dtb_templates', 'template_code = ? AND device_type_id = ?', array($template_code, $device_type_id));
         $error = '※ テンプレートの削除ができませんでした<br />';
         // テンプレート削除
         $templates_dir = SMARTY_TEMPLATES_REALDIR . $template_code . '/';
         if (SC_Helper_FileManager_Ex::deleteFile($templates_dir) === false) {
             $this->arrErr['err'] = $error;
             $objQuery->rollback();
             return false;
         }
         // ユーザーデータ削除
         $user_dir = USER_TEMPLATE_REALDIR . $template_code . '/';
         if (SC_Helper_FileManager_Ex::deleteFile($user_dir) === false) {
             $this->arrErr['err'] = $error;
             $objQuery->rollback();
             return false;
         }
         // コンパイル削除
         $templates_c_dir = DATA_REALDIR . 'Smarty/templates_c/' . $template_code . '/';
         if (SC_Helper_FileManager_Ex::deleteFile($templates_c_dir) === false) {
             $this->arrErr['err'] = $error;
             $objQuery->rollback();
             return false;
         }
         $objQuery->commit();
         return true;
     }
 }
 /**
  * plugin_idをキーにdtb_plugin, dtb_plugin_hookpointから物理削除します.
  *
  * @param  int    $plugin_id   プラグインID.
  * @param  string $plugin_code プラグインコード.
  * @return array  $arrErr エラー情報を格納した連想配列.
  */
 public function deletePlugin($plugin_id, $plugin_code)
 {
     $arrErr = array();
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $objQuery->begin();
     SC_Plugin_Util_Ex::deletePluginByPluginId($plugin_id);
     if (SC_Helper_FileManager_Ex::deleteFile($this->getPluginDir($plugin_code)) === false) {
         // TODO エラー処理
     }
     if (SC_Helper_FileManager_Ex::deleteFile($this->getHtmlPluginDir($plugin_code)) === false) {
         // TODO エラー処理
     }
     $objQuery->commit();
     return $arrErr;
 }
 /**
  * プラグイン用コアファイルを削除
  * @param array $arrPlugin dtb_pluginの情報配列
  * @return void 
  */
 static function deleteFiles($arrPlugin)
 {
     //html
     SC_Helper_FileManager_Ex::deleteFile(PLUGIN_HTML_REALDIR . 'AddProductColumns/');
 }
 /**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     // フォーム操作クラス
     $objFormParam = new SC_FormParam_Ex();
     // パラメーター情報の初期化
     $this->lfInitParam($objFormParam);
     $objFormParam->setParam($this->createSetParam($_POST));
     $objFormParam->convParam();
     // ファイル管理クラス
     $objUpFile = new SC_UploadFile_Ex($objFormParam->getValue('now_dir'), $objFormParam->getValue('now_dir'));
     // ファイル情報の初期化
     $this->lfInitFile($objUpFile);
     // ファイル操作クラス
     $objFileManager = new SC_Helper_FileManager_Ex();
     switch ($this->getMode()) {
         // フォルダ移動
         case 'move':
             $objFormParam = new SC_FormParam_Ex();
             $this->lfInitParamModeMove($objFormParam);
             $objFormParam->setParam($this->createSetParam($_POST));
             $objFormParam->convParam();
             $this->arrErr = $objFormParam->checkError();
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 $now_dir = $this->lfCheckSelectDir($objFormParam, $objFormParam->getValue('tree_select_file'));
                 $objFormParam->setValue('now_dir', $now_dir);
             }
             break;
             // ファイル表示
         // ファイル表示
         case 'view':
             $objFormParam = new SC_FormParam_Ex();
             $this->lfInitParamModeView($objFormParam);
             $objFormParam->setParam($this->createSetParam($_POST));
             $objFormParam->convParam();
             $this->arrErr = $objFormParam->checkError();
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 if ($this->tryView($objFormParam)) {
                     $pattern = '/' . preg_quote($objFormParam->getValue('top_dir'), '/') . '/';
                     $file_url = htmlspecialchars(preg_replace($pattern, '', $objFormParam->getValue('select_file')));
                     $tpl_onload = "eccube.openWindow('./file_view.php?file=" . $file_url . "', 'user_data', '600', '400');";
                     $this->setTplOnLoad($tpl_onload);
                 }
             }
             break;
             // ファイルダウンロード
         // ファイルダウンロード
         case 'download':
             $objFormParam = new SC_FormParam_Ex();
             $this->lfInitParamModeView($objFormParam);
             $objFormParam->setParam($this->createSetParam($_POST));
             $objFormParam->convParam();
             $this->arrErr = $objFormParam->checkError();
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 if (is_dir($objFormParam->getValue('select_file'))) {
                     $disp_error = '※ ディレクトリをダウンロードすることは出来ません。<br/>';
                     $this->setDispError('select_file', $disp_error);
                 } else {
                     $path_exists = SC_Utils_Ex::checkFileExistsWithInBasePath($objFormParam->getValue('select_file'), USER_REALDIR);
                     if ($path_exists) {
                         // ファイルダウンロード
                         $objFileManager->sfDownloadFile($objFormParam->getValue('select_file'));
                         SC_Response_Ex::actionExit();
                     }
                 }
             }
             break;
             // ファイル削除
         // ファイル削除
         case 'delete':
             $objFormParam = new SC_FormParam_Ex();
             $this->lfInitParamModeView($objFormParam);
             $objFormParam->setParam($this->createSetParam($_POST));
             $objFormParam->convParam();
             $this->arrErr = $objFormParam->checkError();
             $path_exists = SC_Utils::checkFileExistsWithInBasePath($objFormParam->getValue('select_file'), USER_REALDIR);
             if (SC_Utils_Ex::isBlank($this->arrErr) && $path_exists) {
                 SC_Helper_FileManager_Ex::deleteFile($objFormParam->getValue('select_file'));
             }
             break;
             // ファイル作成
         // ファイル作成
         case 'create':
             $objFormParam = new SC_FormParam_Ex();
             $this->lfInitParamModeCreate($objFormParam);
             $objFormParam->setParam($this->createSetParam($_POST));
             $objFormParam->convParam();
             $this->arrErr = $objFormParam->checkError();
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 if (!$this->tryCreateDir($objFileManager, $objFormParam)) {
                     $disp_error = '※ ' . htmlspecialchars($objFormParam->getValue('create_file'), ENT_QUOTES) . 'の作成に失敗しました。<br/>';
                     $this->setDispError('create_file', $disp_error);
                 } else {
                     $tpl_onload = "alert('フォルダを作成しました。');";
                     $this->setTplOnLoad($tpl_onload);
                 }
             }
             break;
             // ファイルアップロード
         // ファイルアップロード
         case 'upload':
             // 画像保存処理
             $ret = $objUpFile->makeTempFile('upload_file', false);
             if (SC_Utils_Ex::isBlank($ret)) {
                 $tpl_onload = "alert('ファイルをアップロードしました。');";
                 $this->setTplOnLoad($tpl_onload);
             } else {
                 $this->setDispError('upload_file', $ret);
             }
             break;
             // 初期表示
         // 初期表示
         default:
             break;
     }
     // 値をテンプレートに渡す
     $this->arrParam = $objFormParam->getHashArray();
     // 現在の階層がルートディレクトリかどうかテンプレートに渡す
     $this->setIsTopDir($objFormParam);
     // 現在の階層より一つ上の階層をテンプレートに渡す
     $this->setParentDir($objFormParam);
     // 現在いる階層(表示用)をテンプレートに渡す
     $this->setDispPath($objFormParam);
     // 現在のディレクトリ配下のファイル一覧を取得
     $this->arrFileList = $objFileManager->sfGetFileList($objFormParam->getValue('now_dir'));
     // 現在の階層のディレクトリをテンプレートに渡す
     $this->setDispParam('tpl_now_file', $objFormParam->getValue('now_dir'));
     // ディレクトリツリー表示
     $this->setDispTree($objFileManager, $objFormParam);
 }
 /**
  * テンプレートパッケージの削除.
  *
  * @param string $template_code テンプレートコード
  * @param integer $device_type_id 端末種別ID
  * @return boolean 成功した場合 true; 失敗した場合 false
  */
 function doDelete($template_code, $device_type_id)
 {
     if ($template_code == $this->getTemplateName($device_type_id) || $template_code == $this->getTemplateName($device_type_id, true)) {
         $this->arrErr['err'] = t('c_* The default template and template that is currently selected cannot be deleted<br />_01');
         return false;
     } else {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $objQuery->begin();
         $objQuery->delete('dtb_templates', 'template_code = ? AND device_type_id = ?', array($template_code, $device_type_id));
         $error = t('c_* The template could not be deleted<br />_01');
         // テンプレート削除
         $templates_dir = SMARTY_TEMPLATES_REALDIR . $template_code . '/';
         if (SC_Helper_FileManager_Ex::deleteFile($templates_dir) === false) {
             $this->arrErr['err'] = $error;
             $objQuery->rollback();
             return false;
         }
         // ユーザーデータ削除
         $user_dir = USER_TEMPLATE_REALDIR . $template_code . '/';
         if (SC_Helper_FileManager_Ex::deleteFile($user_dir) === false) {
             $this->arrErr['err'] = $error;
             $objQuery->rollback();
             return false;
         }
         // コンパイル削除
         $templates_c_dir = DATA_REALDIR . 'Smarty/templates_c/' . $template_code . '/';
         if (SC_Helper_FileManager_Ex::deleteFile($templates_c_dir) === false) {
             $this->arrErr['err'] = $error;
             $objQuery->rollback();
             return false;
         }
         $objQuery->commit();
         return true;
     }
 }
 /**
  * 停止
  * disableはプラグインを無効にした際に実行されます.
  * 引数にはdtb_pluginのプラグイン情報が渡されます.
  *
  * @param array $arrPlugin プラグイン情報の連想配列(dtb_plugin)
  * @return void
  */
 function disable($arrPlugin)
 {
     // nop
     $objQuery = SC_Query_Ex::getSingletonInstance();
     $arrBlocId = $objQuery->getCol('bloc_id', "dtb_bloc", "device_type_id = ? AND filename = ?", array(DEVICE_TYPE_PC, "breadcrumblist"));
     $bloc_id = (int) $arrBlocId[0];
     // ブロックを削除する.
     $where = "bloc_id = ?";
     $objQuery->delete("dtb_bloc", $where, array($bloc_id));
     $objQuery->delete("dtb_blocposition", $where, array($bloc_id));
     SC_Helper_FileManager_Ex::deleteFile(TEMPLATE_REALDIR . "frontparts/bloc/breadcrumblist.tpl");
     SC_Helper_FileManager_Ex::deleteFile(HTML_REALDIR . "frontparts/bloc/breadcrumblist.php");
 }
 /**
  * アップデートに伴い、不要なファイルを削除する。
  * 
  * @param array $arrPlugin 
  */
 static function deleteFiles_2_0($arrPlugin)
 {
     //html
     SC_Helper_FileManager_Ex::deleteFile(HTML_REALDIR . ADMIN_DIR . 'products/plg_AddProductColumns_add_product_columns.php');
 }