public function uninstall() { if (parent::uninstall() == true) { Symphony::Database()->query("DROP TABLE `tbl_fields_selectbox_link`"); return true; } return false; }
public function uninstall() { if (parent::uninstall() == true) { try { Symphony::Database()->query("DROP TABLE `tbl_fields_metakeys`"); return true; } catch (Exception $ex) { $extension = $this->about(); Administration::instance()->Page->pageAlert(__('An error occurred while uninstalling %s. %s', array($extension['name'], $ex->getMessage())), Alert::ERROR); return false; } } return false; }
/** * Uninstalls this Extension * * @return bool TRUE on success or FALSE in case of an error * @throws Exception */ public function uninstall() { if (parent::uninstall()) { if ($this->uninstallPropertyTables("yg_ext_" . $this->_code . "_cblocks")) { $sql = "DELETE FROM yg_extensions_lnk_cblocks WHERE CODE = ?"; $result = sYDB()->Execute($sql, $this->_code); if ($result === false) { throw new Exception(sYDB()->ErrorMsg()); } if (Singleton::cache_config()->getVar("CONFIG/INVALIDATEON/EXTENSION_UNINSTALL") == "true") { Singleton::FC()->emptyBucket(); } return true; } } else { return false; } }
/** * Refreshes the internal list of Extensions * * @param string $dir Extension directory */ function refreshList($dir) { $moduledirs = getdirlist($dir); for ($m = 0; $m < count($moduledirs); $m++) { $path = $moduledirs[$m]; if (file_exists($dir . $path . "/extension.php") && file_exists($dir . $path . "/extension.xml")) { if (!$this->getIdByPath($path)) { $extConfig = new \framework\Config($dir . $path . "/extension.xml"); $extApiVersion = explode('.', (string) $extConfig->getVar("extension/api")); if ($extApiVersion[0] != EXTENSION_VERSION_MAJOR) { sLog()->error('Extension: API Version mismatch. Expected v' . EXTENSION_VERSION_MAJOR . '.x, Extension has v' . $extApiVersion[0] . '.x!'); return false; } require_once $dir . $path . "/extension.php"; $namespace = (string) $extConfig->getVar("extension/namespace"); $classname = $namespace . "\\" . (string) $extConfig->getVar("extension/class"); $code = strtolower(preg_replace("/[^A-Za-z0-9]/", "_", $classname)); try { $extension = new $classname(); } catch (Exception $e) { return; } $info = $extension->getInfo(); if ($this->getIdByCode($code) == NULL) { $this->add($code, $path, $info["NAME"], $info["DEVELOPERNAME"], $info["VERSION"], $info["DESCRIPTION"], $info["URL"], $info["TYPE"]); } } } } // Remove orphaned extensions from database $currentExtensions = $this->getList(0, false, true); foreach ($currentExtensions as $currentExtensionItem) { if (!$currentExtensionItem['INSTALLED'] && !in_array($currentExtensionItem['PATH'], $moduledirs)) { $currExtension = new Extension($currentExtensionItem['CODE']); $currExtension->uninstall(); $extMgr = new ExtensionMgr(); $extMgr->remove($currentExtensionItem['CODE']); } } }