/** * Deletes a package. * * @param bool $ignoreState * * @return bool TRUE on success, FALSE on error */ protected function _delete($ignoreState = false) { // if package is installed, uninstall it first if ($this->package->isInstalled() && !$this->uninstall() && !$ignoreState) { // message is set by uninstall() return false; } if (!rex_dir::delete($this->package->getPath()) && !$ignoreState) { $this->message = $this->i18n('not_deleted', $this->package->getName()); return false; } if (!$ignoreState) { $this->saveConfig(); $this->message = $this->i18n('deleted', $this->package->getName()); } return true; }
/** * @param rex_be_page|array $page * @param rex_package $package * @param bool $createMainPage * @param rex_be_page|null $parentPage * @param string $pageKey * @param bool $prefix * * @return null|rex_be_page */ private static function pageCreate($page, rex_package $package, $createMainPage, rex_be_page $parentPage = null, $pageKey = null, $prefix = false) { if (is_array($page) && isset($page['title'])) { $pageArray = $page; $pageKey = $pageKey ?: $package->getName(); if ($createMainPage || isset($pageArray['main']) && $pageArray['main']) { $page = new rex_be_page_main('addons', $pageKey, $pageArray['title']); } else { $page = new rex_be_page($pageKey, $pageArray['title']); } self::pageAddProperties($page, $pageArray, $package); } if ($page instanceof rex_be_page) { if (!is_string($prefix)) { $prefix = $prefix ? $page->getKey() . '.' : ''; } if ($page instanceof rex_be_page_main) { if (!$page->hasPath()) { $page->setPath($package->getPath('pages/' . ($prefix ?: 'index.') . 'php')); } self::$pages[$page->getKey()] = $page; } else { if (!$page->hasSubPath()) { $page->setSubPath($package->getPath('pages/' . ($prefix ?: 'index.') . 'php')); } if ($parentPage) { $parentPage->addSubpage($page); } } self::pageSetSubPaths($page, $package, $prefix); return $page; } return null; }