diff --git a/_admin.php b/_admin.php index 3c16f9b..77df0c5 100644 --- a/_admin.php +++ b/_admin.php @@ -16,40 +16,20 @@ if (!defined('DC_CONTEXT_ADMIN')) { dcCore::app()->blog->settings->addNamespace('pacKman'); -dcCore::app()->addBehavior('adminDashboardFavoritesV2', ['packmanBehaviors', 'adminDashboardFavorites']); +dcCore::app()->addBehavior('adminDashboardFavoritesV2', function (dcFavorites $favs): void { + $favs->register('pacKman', [ + 'title' => __('Packages repository'), + 'url' => dcCore::app()->adminurl->get('admin.plugin.pacKman') . '#packman-repository-repository', + 'small-icon' => [dcPage::getPF('pacKman/icon.svg'), dcPage::getPF('pacKman/icon-dark.svg')], + 'large-icon' => [dcPage::getPF('pacKman/icon.svg'), dcPage::getPF('pacKman/icon-dark.svg')], + 'permissions' => dcCore::app()->auth->isSuperAdmin(), + ]); +}); dcCore::app()->menu[dcAdmin::MENU_PLUGINS]->addItem( __('Packages repository'), - 'plugin.php?p=pacKman#packman-repository-repository', + dcCore::app()->adminurl->get('admin.plugin.pacKman') . '#packman-repository-repository', [dcPage::getPF('pacKman/icon.svg'), dcPage::getPF('pacKman/icon-dark.svg')], - preg_match( - '/plugin.php\?p=pacKman(&.*)?$/', - $_SERVER['REQUEST_URI'] - ), + preg_match('/' . preg_quote(dcCore::app()->adminurl->get('admin.plugin.pacKman')) . '(&.*)?$/', $_SERVER['REQUEST_URI']), dcCore::app()->auth->isSuperAdmin() ); - -class packmanBehaviors -{ - public static function adminDashboardFavorites(dcFavorites $favs): void - { - $favs->register('pacKman', [ - 'title' => __('Packages repository'), - 'url' => 'plugin.php?p=pacKman#packman-repository-repository', - 'small-icon' => [dcPage::getPF('pacKman/icon.svg'), dcPage::getPF('pacKman/icon-dark.svg')], - 'large-icon' => [dcPage::getPF('pacKman/icon.svg'), dcPage::getPF('pacKman/icon-dark.svg')], - 'permissions' => dcCore::app()->auth->isSuperAdmin(), - 'active_cb' => [ - 'packmanBehaviors', - 'adminDashboardFavoritesActive' - ] - ]); - } - - public static function adminDashboardFavoritesActive(string $request, array $params): bool - { - return $request == 'plugin.php' - && isset($params['p']) - && $params['p'] == 'pacKman'; - } -}