Overview
Comment: | Détecter les plugins dont le code source manque (cas lorsqu'on importe une base sur une installation ou un plugin manque à l'appel) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
65ad392db45fd70a51959e4c94019461 |
User & Date: | bohwaz on 2018-09-06 21:50:36 |
Other Links: | branch diff | manifest | tags |
References
2020-12-08
| ||
23:25 | • Wiki page "Changelog/0.9" artifact: b9c916b4d1 user: bohwaz | |
Context
2018-09-06
| ||
21:51 | Ne pas lister les plugins dont l'archive n'est pas dispo check-in: c3eb0857a4 user: bohwaz tags: dev | |
21:50 | Détecter les plugins dont le code source manque (cas lorsqu'on importe une base sur une installation ou un plugin manque à l'appel) check-in: 65ad392db4 user: bohwaz tags: dev | |
21:43 | Mettre à jour la liste des comptes pour corriger le souci avec le champ parent qui n'était pas forcément positionné correctement (la faute au formulaire qui permettait de choisir un compte qui n'était pas le parent le plus proche) check-in: 3bbb95ed9f user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Plugin.php from [d0c4560c12] to [8c873bd631].
︙ | ︙ | |||
23 24 25 26 27 28 29 | 'pdf' => 'application/pdf', 'png' => 'image/png', 'swf' => 'application/shockwave-flash', 'xml' => 'text/xml', 'svg' => 'image/svg+xml', ]; | | > > | > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 'pdf' => 'application/pdf', 'png' => 'image/png', 'swf' => 'application/shockwave-flash', 'xml' => 'text/xml', 'svg' => 'image/svg+xml', ]; static public function getPath($id, $fail_with_exception = true) { if (file_exists(PLUGINS_ROOT . '/' . $id . '.tar.gz')) { return 'phar://' . PLUGINS_ROOT . '/' . $id . '.tar.gz'; } elseif (is_dir(PLUGINS_ROOT . '/' . $id)) { return PLUGINS_ROOT . '/' . $id; } if ($fail_with_exception) { throw new \LogicException(sprintf('Le plugin "%s" n\'existe pas dans le répertoire des plugins.', $id)); } return false; } /** * Construire un objet Plugin pour un plugin * @param string $id Identifiant du plugin * @throws UserException Si le plugin n'est pas installé (n'existe pas en DB) */ |
︙ | ︙ | |||
58 59 60 61 62 63 64 65 66 67 68 69 70 71 | $this->plugin->config = json_decode($this->plugin->config); if (!is_object($this->plugin->config)) { $this->plugin->config = new \stdClass; } $this->id = $id; } /** * Enregistrer les changements dans la config */ | > > > | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | $this->plugin->config = json_decode($this->plugin->config); if (!is_object($this->plugin->config)) { $this->plugin->config = new \stdClass; } // Juste pour vérifier que le fichier source du plugin existe bien self::getPath($id); $this->id = $id; } /** * Enregistrer les changements dans la config */ |
︙ | ︙ | |||
347 348 349 350 351 352 353 354 355 356 357 358 359 360 | $db = DB::getInstance(); $plugins = $db->getGrouped('SELECT id, * FROM plugins ORDER BY nom;'); $system = explode(',', PLUGINS_SYSTEM); foreach ($plugins as &$row) { $row->system = in_array($row->id, $system); } return $plugins; } /** * Vérifie que les plugins système sont bien installés et sinon les réinstalle | > | 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 | $db = DB::getInstance(); $plugins = $db->getGrouped('SELECT id, * FROM plugins ORDER BY nom;'); $system = explode(',', PLUGINS_SYSTEM); foreach ($plugins as &$row) { $row->system = in_array($row->id, $system); $row->disabled = !self::getPath($row->id, false); } return $plugins; } /** * Vérifie que les plugins système sont bien installés et sinon les réinstalle |
︙ | ︙ |
Modified src/templates/admin/config/plugins.tpl from [f3dbb74805] to [d99e6b054a].
︙ | ︙ | |||
25 26 27 28 29 30 31 | </form> {else} {if !empty($liste_installes)} <table class="list"> <thead> <tr> <th>Extension</th> | | | > > > > > > > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | </form> {else} {if !empty($liste_installes)} <table class="list"> <thead> <tr> <th>Extension</th> <td></td> <td>Version installée</td> <td></td> </tr> </thead> <tbody> {foreach from=$liste_installes item="plugin"} <tr{if $plugin.disabled} class="disabled"{/if}> <th> <h4>{$plugin.nom}</h4> <small>{$plugin.description}</small> </th> {if $plugin.disabled} <td colspan="3"> <span class="alert">Code source du plugin non trouvé dans le répertoire <em>plugins</em> !</span><br /> Ce plugin ne peut fonctionner ou être désinstallé. </td> {else} <td> <a href="{$plugin.url}" onclick="return !window.open(this.href);">{$plugin.auteur}</a> </td> <td> {$plugin.version} </td> <td class="actions"> {if empty($plugin.system)} <a href="{$admin_url}config/plugins.php?delete={$plugin.id}">Désinstaller</a> {/if} {if !empty($plugin.config)} {if empty($plugin.system)}|{/if} <a href="{plugin_url id=$plugin.id file="config.php"}">Configurer</a> {/if} </td> {/if} </tr> {/foreach} </tbody> </table> {else} <p class="help"> Aucune extension n'est installée. |
︙ | ︙ |
Modified src/www/admin/static/admin.css from [91aba5da71] to [78c40bcd12].
︙ | ︙ | |||
613 614 615 616 617 618 619 620 621 622 623 624 625 626 | } table.search th { background: rgb(217, 134, 40); background: rgba(217, 134, 40, 0.5); background: rgba(var(--gSecondColor), 0.5); } #queryBuilder .column select { max-width: 15em; } #queryBuilder table td { vertical-align: top; | > > > > > | 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 | } table.search th { background: rgb(217, 134, 40); background: rgba(217, 134, 40, 0.5); background: rgba(var(--gSecondColor), 0.5); } table.list .disabled { background: #eee; color: #999; } #queryBuilder .column select { max-width: 15em; } #queryBuilder table td { vertical-align: top; |
︙ | ︙ |
Modified src/www/admin/upgrade.php from [53e496bd2b] to [a960b884a1].
︙ | ︙ | |||
229 230 231 232 233 234 235 236 237 238 239 240 241 242 | // Réinstaller les plugins système si nécessaire Plugin::checkAndInstallSystemPlugins(); // Mettre à jour les plugins si nécessaire foreach (Plugin::listInstalled() as $id=>$infos) { $plugin = new Plugin($id); if ($plugin->needUpgrade()) { $plugin->upgrade(); } | > > > > > > | 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 | // Réinstaller les plugins système si nécessaire Plugin::checkAndInstallSystemPlugins(); // Mettre à jour les plugins si nécessaire foreach (Plugin::listInstalled() as $id=>$infos) { // Ne pas tenir compte des plugins dont le code n'est pas dispo if ($infos->disabled) { continue; } $plugin = new Plugin($id); if ($plugin->needUpgrade()) { $plugin->upgrade(); } |
︙ | ︙ |