From 1f2fd027906397ab8232633b707daf299fed8232 Mon Sep 17 00:00:00 2001 From: Jean-Christian Denis Date: Sat, 29 Jul 2023 10:51:09 +0200 Subject: [PATCH] release 2023.07.29 --- CHANGELOG.md | 5 +++++ README.md | 7 ++++--- _define.php | 6 +++--- dcstore.xml | 6 +++--- src/Backend.php | 34 ++++++++++------------------------ src/Install.php | 13 +++++-------- src/Manage.php | 39 ++++++++++++++++++--------------------- src/My.php | 33 ++------------------------------- src/MyUrlHandlers.php | 4 ++-- src/Prepend.php | 10 ++++------ src/Uninstall.php | 10 ++++------ 11 files changed, 60 insertions(+), 107 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54b205e..3e13c8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +2023.07.29 +* require dotclear 2.27 +* require PHP 7.4+ +* update to dotclear 2.27-dev + 2023.05.13 * require dotclear 2.26 * cleanup for dc2.26 stable diff --git a/README.md b/README.md index b211b5b..7819795 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Release](https://img.shields.io/github/v/release/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/releases) [![Date](https://img.shields.io/github/release-date/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/releases) [![Issues](https://img.shields.io/github/issues/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/issues) -[![Dotclear](https://img.shields.io/badge/dotclear-v2.26-blue.svg)](https://fr.dotclear.org/download) +[![Dotclear](https://img.shields.io/badge/dotclear-v2.27-blue.svg)](https://fr.dotclear.org/download) [![Dotaddict](https://img.shields.io/badge/dotaddict-official-green.svg)](https://plugins.dotaddict.org/dc2/details/myUrlHandlers) [![License](https://img.shields.io/github/license/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/blob/master/LICENSE) @@ -19,8 +19,9 @@ like post, category, etc and some plugins having public parts. _myUrlHandlers_ requires: - * contentadmin permissions for management - * Dotclear 2.26 + * contentadmin permissions for management + * Dotclear 2.27 + * PHP 7.4+ ## USAGE diff --git a/_define.php b/_define.php index 17b5363..76b911e 100644 --- a/_define.php +++ b/_define.php @@ -10,7 +10,7 @@ * @copyright Jean-Christian Denis * @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html */ -if (!defined('DC_RC_PATH') || is_null(dcCore::app()->auth)) { +if (!defined('DC_RC_PATH')) { return null; } @@ -18,9 +18,9 @@ $this->registerModule( 'URL handlers', 'Change Dotclear URL handlers', 'Alex Pirine and contributors', - '2023.05.13', + '2023.07.29', [ - 'requires' => [['core', '2.26']], + 'requires' => [['core', '2.27']], 'permissions' => dcCore::app()->auth->makePermissions([ dcCore::app()->auth::PERMISSION_CONTENT_ADMIN, ]), diff --git a/dcstore.xml b/dcstore.xml index 421b355..3cf3954 100644 --- a/dcstore.xml +++ b/dcstore.xml @@ -2,11 +2,11 @@ URL handlers - 2023.05.13 + 2023.07.29 Alex Pirine and contributors Change Dotclear URL handlers - https://github.com/JcDenis/myUrlHandlers/releases/download/v2023.05.13/plugin-myUrlHandlers.zip - 2.26 + https://github.com/JcDenis/myUrlHandlers/releases/download/v2023.07.29/plugin-myUrlHandlers.zip + 2.27 http://plugins.dotaddict.org/dc2/details/myUrlHandlers https://github.com/JcDenis/myUrlHandlers diff --git a/src/Backend.php b/src/Backend.php index 89d0e44..a468c4b 100644 --- a/src/Backend.php +++ b/src/Backend.php @@ -14,46 +14,32 @@ declare(strict_types=1); namespace Dotclear\Plugin\myUrlHandlers; -use dcAdmin; use dcCore; -use dcFavorites; -use dcPage; -use dcNsProcess; +use Dotclear\Core\Process; +use Dotclear\Core\backend\Favorites; -class Backend extends dcNsProcess +class Backend extends Process { public static function init(): bool { - static::$init = defined('DC_CONTEXT_ADMIN'); - - return static::$init; + return self::status(My::checkContext(My::BACKEND)); } public static function process(): bool { - if (!static::$init || is_null(dcCore::app()->auth) || is_null(dcCore::app()->blog) || is_null(dcCore::app()->adminurl)) { + if (!self::status()) { return false; } - // add backend sidebar menu icon - dcCore::app()->menu[dcAdmin::MENU_PLUGINS]->addItem( - My::name(), - dcCore::app()->adminurl->get('admin.plugin.' . My::id()), - dcPage::getPF(My::id() . '/icon.svg'), - preg_match('/' . preg_quote(dcCore::app()->adminurl->get('admin.plugin.' . My::id())) . '(&.*)?$/', $_SERVER['REQUEST_URI']), - dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([dcCore::app()->auth::PERMISSION_CONTENT_ADMIN]), dcCore::app()->blog->id) - ); + My::addBackendMenuItem(); // register user backend dashboard icon - dcCore::app()->addBehavior('adminDashboardFavoritesV2', function (dcFavorites $favs): void { - if (is_null(dcCore::app()->auth) || is_null(dcCore::app()->adminurl)) { - return; - } + dcCore::app()->addBehavior('adminDashboardFavoritesV2', function (Favorites $favs): void { $favs->register(My::id(), [ 'title' => My::name(), - 'url' => dcCore::app()->adminurl->get('admin.plugin.' . My::id()), - 'small-icon' => dcPage::getPF(My::id() . '/icon.svg'), - 'large-icon' => dcPage::getPF(My::id() . '/icon.svg'), + 'url' => My::manageUrl(), + 'small-icon' => My::icons(), + 'large-icon' => My::icons(), 'permissions' => dcCore::app()->auth->makePermissions([dcCore::app()->auth::PERMISSION_CONTENT_ADMIN]), ]); }); diff --git a/src/Install.php b/src/Install.php index a51fa57..47bfe43 100644 --- a/src/Install.php +++ b/src/Install.php @@ -16,27 +16,24 @@ namespace Dotclear\Plugin\myUrlHandlers; use dcCore; use dcNamespace; -use dcNsProcess; +use Dotclear\Core\Process; -class Install extends dcNsProcess +class Install extends Process { public static function init(): bool { - static::$init = defined('DC_CONTEXT_ADMIN') - && dcCore::app()->newVersion(My::id(), dcCore::app()->plugins->moduleInfo(My::id(), 'version')); - - return static::$init; + return self::status(My::checkContext(My::INSTALL)); } public static function process(): bool { - if (!static::$init || is_null(dcCore::app()->blog)) { + if (!self::status()) { return false; } self::growUp(); - dcCore::app()->blog->settings->get(My::id())->put( + My::settings()->put( My::NS_SETTING_ID, json_encode([]), 'string', diff --git a/src/Manage.php b/src/Manage.php index a2476d2..c56a3d8 100644 --- a/src/Manage.php +++ b/src/Manage.php @@ -15,8 +15,11 @@ declare(strict_types=1); namespace Dotclear\Plugin\myUrlHandlers; use dcCore; -use dcNsProcess; -use dcPage; +use Dotclear\Core\Process; +use Dotclear\Core\Backend\{ + Notices, + Page +}; use Dotclear\Helper\Html\Form\Input; use Dotclear\Helper\Html\Html; use Dotclear\Helper\Text; @@ -25,22 +28,16 @@ use Exception; /** * Manage contributions list */ -class Manage extends dcNsProcess +class Manage extends Process { public static function init(): bool { - static::$init = defined('DC_CONTEXT_ADMIN') - && !is_null(dcCore::app()->auth) && !is_null(dcCore::app()->blog) - && dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([ - dcCore::app()->auth::PERMISSION_CONTENT_ADMIN, - ]), dcCore::app()->blog->id); - - return static::$init; + return self::status(My::checkContext(My::MANAGE)); } public static function process(): bool { - if (!static::$init || is_null(dcCore::app()->adminurl)) { + if (!self::status()) { return false; } @@ -98,12 +95,12 @@ class Manage extends dcNsProcess if (isset($_POST['act_save'])) { MyUrlHandlers::saveBlogHandlers($handlers); - dcPage::addSuccessNotice(__('URL handlers have been successfully updated.')); - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id()); + Notices::addSuccessNotice(__('URL handlers have been successfully updated.')); + My::redirect(); } elseif (isset($_POST['act_restore'])) { MyUrlHandlers::saveBlogHandlers([]); - dcPage::addSuccessNotice(__('URL handlers have been successfully restored.')); - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id()); + Notices::addSuccessNotice(__('URL handlers have been successfully restored.')); + My::redirect(); } } catch (Exception $e) { dcCore::app()->error->add($e->getMessage()); @@ -114,22 +111,22 @@ class Manage extends dcNsProcess public static function render(): void { - if (!static::$init || is_null(dcCore::app()->blog)) { + if (!self::status()) { return; } $handlers = self::getHandlers(); - dcPage::openModule(My::name()); + Page::openModule(My::name()); echo - dcPage::breadcrumb( + Page::breadcrumb( [ Html::escapeHTML(dcCore::app()->blog->name) => '', My::name() => '', ] ) . - dcPage::notices(); + Notices::getNotices(); if (empty($handlers)) { echo @@ -164,11 +161,11 @@ class Manage extends dcNsProcess '

' . ' ' . '' . - dcCore::app()->formNonce() . '

' . + My::parsedHiddenFields() . '

' . ''; } - dcPage::closeModule(); + Page::closeModule(); } private static function getHandlers(): array diff --git a/src/My.php b/src/My.php index d362274..4a2b408 100644 --- a/src/My.php +++ b/src/My.php @@ -14,39 +14,10 @@ declare(strict_types=1); namespace Dotclear\Plugin\myUrlHandlers; -use dcCore; +use Dotclear\Module\MyPlugin; -/** - * This module definitions. - */ -class My +class My extends MyPlugin { /** @var string This module settings ID */ public const NS_SETTING_ID = 'handlers'; - - /** - * This module id. - */ - public static function id(): string - { - return basename(dirname(__DIR__)); - } - - /** - * This module name. - */ - public static function name(): string - { - $name = dcCore::app()->plugins->moduleInfo(self::id(), 'name'); - - return __(is_string($name) ? $name : self::id()); - } - - /** - * This module path. - */ - public static function path(): string - { - return dirname(__DIR__); - } } diff --git a/src/MyUrlHandlers.php b/src/MyUrlHandlers.php index 547ce9f..31a2964 100644 --- a/src/MyUrlHandlers.php +++ b/src/MyUrlHandlers.php @@ -109,7 +109,7 @@ class MyUrlHandlers if (is_null(dcCore::app()->blog)) { return []; } - $handlers = json_decode((string) dcCore::app()->blog->settings->get(My::id())->get(My::NS_SETTING_ID), true); + $handlers = json_decode((string) My::settings()->get(My::NS_SETTING_ID), true); return is_array($handlers) ? $handlers : []; } @@ -124,7 +124,7 @@ class MyUrlHandlers if (is_null(dcCore::app()->blog)) { return; } - dcCore::app()->blog->settings->get(My::id())->put(My::NS_SETTING_ID, json_encode($handlers)); + My::settings()->put(My::NS_SETTING_ID, json_encode($handlers)); dcCore::app()->blog->triggerBlog(); } } diff --git a/src/Prepend.php b/src/Prepend.php index bb0afb4..6805ad9 100644 --- a/src/Prepend.php +++ b/src/Prepend.php @@ -14,20 +14,18 @@ declare(strict_types=1); namespace Dotclear\Plugin\myUrlHandlers; -use dcNsProcess; +use Dotclear\Core\Process; -class Prepend extends dcNsProcess +class Prepend extends Process { public static function init(): bool { - static::$init = true; - - return static::$init; + return self::status(My::checkContext(My::PREPEND)); } public static function process(): bool { - if (!static::$init) { + if (!self::status()) { return false; } diff --git a/src/Uninstall.php b/src/Uninstall.php index 0cb03a1..71c2486 100644 --- a/src/Uninstall.php +++ b/src/Uninstall.php @@ -15,21 +15,19 @@ declare(strict_types=1); namespace Dotclear\Plugin\myUrlHandlers; use dcCore; -use dcNsProcess; +use Dotclear\Core\Process; use Dotclear\Plugin\Uninstaller\Uninstaller; -class Uninstall extends dcNsProcess +class Uninstall extends Process { public static function init(): bool { - static::$init = defined('DC_CONTEXT_ADMIN'); - - return static::$init; + return self::status(My::checkContext(My::UNINSTALL)); } public static function process(): bool { - if (!static::$init || !dcCore::app()->plugins->moduleExists('Uninstaller')) { + if (!self::status() || !dcCore::app()->plugins->moduleExists('Uninstaller')) { return false; }