Nouvelle gestion des plugins¶
- Stockage en base de l'état des plugins utilisés / installés
- Une page de config dans le coeur qui permet de gérer les actions standards (via des appels standards) -> et donc les changements d'états
- La seule page qui parse le répertoire plugins est la page de gestion des plugins
- Une fonction standard : plugin_PLUGINNAME_check_config -> true -> opérationnel / false -> problème
- Les différents états :
|
Etat |
|
Description |
|
Actions possibles |
|
Actions |
|
|
nouveau |
|
répertoire et fichier setup.php présent mais pas d'entrée en base -> créé entrée / pas version installée / etat desinstallé |
|
installer / desinstaller (pour gestion erreur) |
|
|
|
non installé ou à mettre à jour |
|
entrée en base marqué comme non installé |
|
installer / desinstaller (pour gestion erreur) |
|
|
installé / à configurer |
|
installé mais à besoin d'une action complémetaire / lancement check_config dans TD pour information |
|
Desinstaller |
|
|
installé / désactivé |
|
Plugin installé mais non activé |
|
Activer / Desinstaller |
|
|
installé / activé |
|
Plugin installé et activé |
|
Déactiver / Desinstaller |
|
- Procédure install : lancement plugin_PLUGINNAME_install si fonction plugin_PLUGINNAME_check_prerequisites n'existe pas ou retourne vrai (a droit de faire un echo dans TD)
- true : install OK : mise à jour version installé
- check_config :
- true : prêt a activer : mise à jour état désactivé
- false : mise à jour état à configurer
- false : install problem
- reste dans l'état desinstallé
- Procédure activation : si check_config OK et si check_prerequisite n'existe pas ou est OK : status -> activé
- Procédure désactivation : status -> desactivé
- Procédure désinstallation : lancement fonction uninstall + status -> uninstall + version installée -> vide
- Dans page de gestion des plugins : chargement des plugins et lancement de l'init des plugins pour tous les plugins installé (nécessaire pour définition page config)
- check présence du fichier au chargement et de la version / celle installée -> si problème marqué comme desinstallé
- Dans page si pas de fichier et entrée en base -> affichage problème : action nettoyer
- Dans page pour chaque plugin installé et activé : check_prerequisite / check_config : si erreur -> desactivation / rechargement page
- Résumé des fonctions nécessaire pour un plugin dans setup.php :
- plugin_init_example
- plugin_version_example
- plugin_example_install
- plugin_example_uninstall
- plugin_example_check_prerequisites (optionnel)
- plugin_example_check_config
- haveright functions
- Fonctions nécessaire pour les hooks dans hooks.php