diff --git a/README.md b/README.md index 55b0f22..6f8f003 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Dans la page `GererMisesAJour` de votre YesWiki, recherchez l'extension bénévo ## Utilisation -Connecté en tant qu'administrateur, administratrice du YesWiki, cliquer sur le bouton `Gérer l'extension bénévolat` en fin de mise à jour (handler `/update`). Vous pouvez retrouver cette interface de gestion avec le handler `/gestionbenevolat`. +Connecté en tant qu'administrateur, administratrice du YesWiki, cliquer sur le bouton `Gérer l'extension bénévolat` en fin de mise à jour (lien `?GererMisesAJour&action=post_install`). Vous pouvez retrouver cette interface de gestion avec le handler `/gestionbenevolat`. Sur cette interface de gestion, vous pouvez installer les listes, pages, formulaires nécessaires. Vous pouvez aussi changer leur nom. @@ -23,6 +23,6 @@ Into page `GererMisesAJour` of your YesWiki, seek "bénévolat" extension and in ## Usage -Logged as administrator of the YesWiki, click on the button `'Manage \'Benevolat\' extension (Voluntary work)` at the end of the update (handler `/update`). You can find this management interface with handler `/gestionbenevolat`. +Logged as administrator of the YesWiki, click on the button `'Manage \'Benevolat\' extension (Voluntary work)` at the end of the update (link `?GererMisesAJour&action=post_install`). You can find this management interface with handler `/gestionbenevolat`. In this management interface,you can install necessaries lists, pages, forms. You can also change their name. diff --git a/actions/UpdateAction__.php b/actions/UpdateAction__.php new file mode 100644 index 0000000..2e39cc2 --- /dev/null +++ b/actions/UpdateAction__.php @@ -0,0 +1,54 @@ +isWikiHibernated() + && $this->wiki->UserIsAdmin() + && !empty($_GET['action']) + && $_GET['action'] === 'post_install' + ) { + $version = $this->params->get('yeswiki_version'); + if (!is_string($version)) { + $version = ''; + } + $release = $this->params->get('yeswiki_release'); + if (!is_string($release)) { + $release = ''; + } + $matches = []; + if ( + $version !== 'doryphore' + || !preg_match("/^(\d+)\.(\d+)\.(\d+)\$/", $release, $matches) + || intval($matches[1]) > 4 + || ( + intval($matches[1]) === 4 + && ( + intval($matches[2]) > 4 + || ( + intval($matches[2]) === 4 + && intval($matches[3]) > 4 + ) + ) + ) + ) { + $anchor = '' . _t('UPDATE_ADMIN_PAGES_HINT') . '
'; + $this->output = str_replace( + $anchor, + << + {$this->wiki->render('@benevolat/update-handler.twig', [])} + HTML, + $this->output + ); + } + } + } + +} diff --git a/handlers/UpdateHandler__.php b/handlers/UpdateHandler__.php deleted file mode 100644 index a5e795c..0000000 --- a/handlers/UpdateHandler__.php +++ /dev/null @@ -1,29 +0,0 @@ -getService(SecurityController::class)->isWikiHibernated()) { - throw new \Exception(_t('WIKI_IN_HIBERNATION')); - }; - if (!$this->wiki->UserIsAdmin()) { - return null; - } - - $output = $this->wiki->render('@benevolat/update-handler.twig', []); - - // set output - $this->output = str_replace( - '', - $output.'', - $this->output - ); - return null; - } -}