コード例 #1
0
 public function uninstall()
 {
     // check uninstall.php
     $file = $this->path . '/lib/config/uninstall.php';
     if (file_exists($file)) {
         include $file;
     }
     $file_db = $this->path . '/lib/config/db.php';
     if (file_exists($file_db)) {
         $schema = (include $file_db);
         $model = new waModel();
         foreach ($schema as $table => $fields) {
             $sql = "DROP TABLE IF EXISTS " . $table;
             $model->exec($sql);
         }
     } else {
         // check plugin.sql
         $file_sql = $this->path . '/lib/config/plugin.sql';
         if (file_exists($file_sql)) {
             waAppConfig::executeSQL($file_sql, 2);
         }
     }
     // Remove plugin settings
     $app_settings_model = new waAppSettingsModel();
     $sql = "DELETE FROM " . $app_settings_model->getTableName() . "\n                WHERE app_id = s:app_id";
     $app_settings_model->exec($sql, array('app_id' => $this->app_id . "." . $this->id));
     if (!empty($this->info['rights'])) {
         // Remove rights to plugin
         $contact_rights_model = new waContactRightsModel();
         $sql = "DELETE FROM " . $contact_rights_model->getTableName() . "\n                    WHERE app_id = s:app_id AND (\n                        name = '" . $contact_rights_model->escape('plugin.' . $this->id) . "' OR\n                        name LIKE '" . $contact_rights_model->escape('plugin.' . $this->id) . ".%'\n                    )";
         $contact_rights_model->exec($sql, array('app_id' => $this->app_id));
     }
     // Remove cache of the appliaction
     waFiles::delete(wa()->getAppCachePath('', $this->app_id));
 }