public function uninstall() { PHPWS_Cache::clearCache(); $content = array(); if (!$this->isModules()) { return PHPWS_Error::get(BOOST_NO_MODULES_SET, 'boost', 'install'); } foreach ($this->modules as $title => $mod) { unset($GLOBALS['Modules'][$title]); $title = trim($title); if ($this->getStatus($title) == BOOST_DONE) { continue; } if ($this->getCurrent() != $title && $this->getStatus($title) == BOOST_NEW) { $this->setCurrent($title); $this->setStatus($title, BOOST_START); } // H 0120 $content[] = dgettext('boost', 'Uninstalling') . ' - ' . $mod->getProperName(); // $content[] = '<b>' . dgettext('boost', 'Uninstalling') . ' - ' . $mod->getProperName() .'</b>'; if ($this->getStatus($title) == BOOST_START && $mod->isImportSQL()) { $uninstall_file = $mod->getDirectory() . 'boost/uninstall.sql'; if (!is_file($uninstall_file)) { $content[] = dgettext('boost', 'Uninstall SQL not found.'); } else { $content[] = dgettext('boost', 'Importing SQL uninstall file.'); $result = PHPWS_Boost::importSQL($uninstall_file); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); $content[] = dgettext('boost', 'An import error occurred.'); $content[] = dgettext('boost', 'Check your logs for more information.'); return implode('<br />', $content); } else { $content[] = dgettext('boost', 'Import successful.'); } } } $result = (bool) $this->onUninstall($mod, $content); // ensure translate path if ($result === true) { $this->setStatus($title, BOOST_DONE); $this->removeDirectories($mod, $content); $this->unregisterModule($mod, $content); $this->removeDependencies($mod); $this->removeKeys($mod); // H 0120 // $content[] = '<hr />'; $content[] = dgettext('boost', 'Finished uninstalling module!'); break; } elseif ($result == -1) { $this->setStatus($title, BOOST_DONE); $this->removeDirectories($mod, $content); $this->unregisterModule($mod, $content); $this->removeDependencies($mod); $this->removeKeys($mod); } elseif ($result === false) { $this->setStatus($title, BOOST_PENDING); break; } elseif (PHPWS_Error::isError($result)) { $content[] = dgettext('boost', 'There was a problem in the installation file:'); $content[] = '<b>' . $result->getMessage() . '</b>'; $content[] = '<br />'; PHPWS_Error::log($result); } } // H 0120 + place into boost log also $this->addLog($title, implode("\n", str_replace('<br />', "\n", $content))); return implode('<br />', $content); }