@@ -26,9 +26,67 @@ function configmanagerInstall() {
2626function configManagerDisplayInstallFile () {
2727 if (file_exists (ROOT . 'install.php ' )) {
2828 echo "<div class='msg warning'>
29- <p>Le fichier install.php est toujours présent. Pour plus de sécurité, il est conseillé de le supprimer.<br/>
30- Si l'installation de 299ko s'est déroulée correctement, cliquez sur le bouton ci-dessous pour le supprimer</p>
31- <div style='text-align:center'><a class='button' href='index.php?p=configmanager&action=del_install&token= " . administrator::getToken () . "'>Supprimer le fichier install</a></div> "
32- . "<a href='#' class='msg-button-close'><i class='fa-solid fa-xmark'></i></a></div> " ;
29+ <p>Le fichier install.php est toujours présent. Pour plus de sécurité, il est conseillé de le supprimer.<br/>
30+ Si l'installation de 299ko s'est déroulée correctement, cliquez sur le bouton ci-dessous pour le supprimer</p>
31+ <div style='text-align:center'><a class='button' href='index.php?p=configmanager&action=del_install&token= " . administrator::getToken () . "'>Supprimer le fichier install</a></div> "
32+ . "<a href='#' class='msg-button-close'><i class='fa-solid fa-xmark'></i></a></div> " ;
3333 }
3434}
35+
36+ function configManagerCheckNewVersion () {
37+ $ cachedInfos = util::readJsonFile (DATA_PLUGIN . 'configmanager/cache.json ' );
38+ if ($ cachedInfos !== false ) {
39+ // Cached infos
40+ $ lastVersion = $ cachedInfos ['lastVersion ' ];
41+ if ($ lastVersion === VERSION ) {
42+ // No local update, check if cache is fresh
43+ $ lastCheckUpdate = (int ) $ cachedInfos ['lastCheckUpdate ' ];
44+ if ($ lastCheckUpdate + 86400 < time ()) {
45+ // Expired cache, try to retrieve new version
46+ $ nextVersion = configmanagerGetNewVersion ();
47+ } else {
48+ // Cache ok, actual version is the lastest
49+ $ nextVersion = false ;
50+ }
51+ } else {
52+ // Newer version exist in cache
53+ $ nextVersion = $ lastVersion ;
54+ }
55+ } else {
56+ // No cache
57+ $ nextVersion = configmanagerGetNewVersion ();
58+ }
59+ if ($ nextVersion ) {
60+ configmanagerDisplayNewVersion ($ nextVersion );
61+ }
62+ }
63+
64+ function configmanagerDisplayNewVersion ($ nextVersion ) {
65+ show::msg ("<p>Une nouvelle version est disponible.<br/>
66+ Cliquez ci-dessous pour mettre à jour votre site en version " . $ nextVersion . "</p>
67+ <p>N'oubliez pas de faire une sauvegarde de votre site avant d'effectuer cette mise à jour.</p>
68+ <p>Vous pouvez consulter le <a href='https://github.com/299Ko/299ko/blob/master/changelog.md'
69+ target='_blank'>changelog des versions de 299Ko ici</a>.</p>
70+ <div style='text-align:center'><a class='button alert' href='index.php?p=configmanager&action=update&token= " . administrator::getToken () . "'>Mettre à jour le site</a></div> " );
71+ }
72+
73+ function configmanagerGetNewVersion () {
74+ $ updaterManager = new UpdaterManager ();
75+ if ($ updaterManager ) {
76+ $ nextVersion = $ updaterManager ->getNextVersion ();
77+ } else {
78+ $ nextVersion = false ;
79+ }
80+ $ file = DATA_PLUGIN . 'configmanager/cache.json ' ;
81+ $ cachedInfos = util::readJsonFile ($ file );
82+ if ($ cachedInfos === false ) {
83+ $ cachedInfos = [];
84+ }
85+ $ cachedInfos ['lastVersion ' ] = $ updaterManager ->lastVersion ;
86+ $ cachedInfos ['lastCheckUpdate ' ] = time ();
87+ util::writeJsonFile ($ file , $ cachedInfos );
88+ if ($ nextVersion ) {
89+ logg ('Nouvelle version trouvée : ' . $ nextVersion , 'INFO ' );
90+ }
91+ return $ nextVersion ;
92+ }
0 commit comments