/**
  * アップデート
  * updateはアップデート時に実行されます.
  * 引数にはdtb_pluginのプラグイン情報が渡されます.
  * 
  * @param array $arrPlugin プラグイン情報の連想配列(dtb_plugin)
  * @return void
  */
 function update($arrPlugin)
 {
     self::copyFiles($arrPlugin);
     $arrOldPlugin = self::getOldPlugin($arrPlugin);
     $arrVersionKeys = array_flip(self::$arrVersions);
     $current_version_key = $arrVersionKeys[$arrPlugin['plugin_version']];
     if (is_numeric($current_version_key)) {
         foreach (self::$arrVersions as $version_key => $version) {
             if ($current_version_key < $version_key) {
                 switch ($version) {
                     case '1.0.fix1':
                     case '1.0.fix2':
                     case '1.0.fix3':
                     case '1.1':
                     case '1.1.fix1':
                     case '1.1.fix2':
                     case '1.1.fix3':
                         break;
                     case '2.0':
                         self::deleteFiles_2_0($arrPlugin);
                         self::alterTables_2_0($arrPlugin);
                         break;
                     case '2.0.fix1':
                         self::alterTables_2_0_fix1($arrPlugin);
                         break;
                     case '2.0.fix2':
                         break;
                     case '2.0.fix3':
                         break;
                     case '2.0.fix4':
                         break;
                 }
             }
         }
     }
     self::updatePluginRow($arrPlugin, '2.0.fix4');
     self::updateHookPoints($arrPlugin);
     if (isset($arrOldPlugin['enable']) && $arrOldPlugin['enable'] == PLUGIN_ENABLE_TRUE) {
         SC_Utils_Ex::clearCompliedTemplate();
         $_SESSION['Message.AddProductColumns.Updated'] = 'プラグインをアップデートしました。';
         $objDisplay = new SC_Display_Ex();
         $objDisplay->reload();
     }
 }