/** * uninstall a plugin * * @param $ID ID of the plugin **/ function uninstall($ID) { if ($this->getFromDB($ID)) { CronTask::Unregister($this->fields['directory']); self::load($this->fields['directory'], true); FieldUnicity::deleteForItemtype($this->fields['directory']); Link_Itemtype::deleteForItemtype($this->fields['directory']); // Run the Plugin's Uninstall Function first $function = 'plugin_' . $this->fields['directory'] . '_uninstall'; if (function_exists($function)) { $function(); } $this->update(array('id' => $ID, 'state' => self::NOTINSTALLED, 'version' => '')); $this->removeFromSession($this->fields['directory']); } }
static function uninstall() { global $DB; // Remove unicity constraints on simcards FieldUnicity::deleteForItemtype("SimcardSimcard"); foreach (array('Notepad', 'DisplayPreference', 'Contract_Item', 'Infocom', 'Fieldblacklist', 'Document_Item', 'Bookmark', 'Log') as $itemtype) { $item = new $itemtype(); $item->deleteByCriteria(array('itemtype' => __CLASS__)); } $plugin = new Plugin(); if ($plugin->isActivated('datainjection') && class_exists('PluginDatainjectionModel')) { PluginDatainjectionModel::clean(array('itemtype' => __CLASS__)); } if ($plugin->isInstalled('customfields') && $plugin->isActivated('customfields')) { PluginCustomfieldsItemtype::unregisterItemtype('PluginSimcardSimcard'); } $table = getTableForItemType(__CLASS__); $DB->query("DROP TABLE IF EXISTS `{$table}`"); }