Overview
Comment: | Met à jour les infos du plugin et notamment menu_condition lors de la mise à jour du plugin |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
883448f7b51f5afb6877663014ec9759 |
User & Date: | bohwaz on 2018-08-18 13:38:37 |
Other Links: | branch diff | manifest | tags |
Context
2018-08-18
| ||
13:44 | Mettre à jour la session si nécessaire check-in: 0ea3b1fbae user: bohwaz tags: dev | |
13:38 | Met à jour les infos du plugin et notamment menu_condition lors de la mise à jour du plugin check-in: 883448f7b5 user: bohwaz tags: dev | |
13:38 | Réinstalle / met à jour les plugins si nécessaire après mise à jour de Garradin check-in: f38e28c857 user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Plugin.php from [3ca4d30569] to [dd72967e72].
︙ | ︙ | |||
256 257 258 259 260 261 262 | * Renvoie TRUE si le plugin a besoin d'être mis à jour * (si la version notée dans la DB est différente de la version notée dans garradin_plugin.ini) * @return boolean TRUE si le plugin doit être mis à jour, FALSE sinon */ public function needUpgrade() { $infos = (object) parse_ini_file($this->path() . '/garradin_plugin.ini', false); | | | 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 | * Renvoie TRUE si le plugin a besoin d'être mis à jour * (si la version notée dans la DB est différente de la version notée dans garradin_plugin.ini) * @return boolean TRUE si le plugin doit être mis à jour, FALSE sinon */ public function needUpgrade() { $infos = (object) parse_ini_file($this->path() . '/garradin_plugin.ini', false); if (version_compare($this->plugin->version, $infos->version, '!=')) return true; return false; } /** |
︙ | ︙ | |||
278 279 280 281 282 283 284 | { $plugin = $this; include $this->path() . '/upgrade.php'; } $infos = (object) parse_ini_file($this->path() . '/garradin_plugin.ini', false); | | > > > > | < > > | < | 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 | { $plugin = $this; include $this->path() . '/upgrade.php'; } $infos = (object) parse_ini_file($this->path() . '/garradin_plugin.ini', false); return DB::getInstance()->update('plugins', [ 'nom' => $infos->nom, 'description'=> $infos->description, 'auteur' => $infos->auteur, 'url' => $infos->url, 'version' => $infos->version, 'menu' => (int)(bool)$infos->menu, 'menu_condition' => $infos->menu && isset($infos->menu_condition) ? trim($infos->menu_condition) : null, ], 'id = :id', ['id' => $this->id]); } /** * Associer un signal à un callback du plugin * @param string $signal Nom du signal (par exemple boucle.agenda pour la boucle de type AGENDA) * @param mixed $callback Callback, sous forme d'un nom de fonction ou de méthode statique * @return boolean TRUE |
︙ | ︙ | |||
394 395 396 397 398 399 400 | { if (!$row->menu_condition) { $row = $row->nom; continue; } | > > > > > > > | > | 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 | { if (!$row->menu_condition) { $row = $row->nom; continue; } $condition = strtr($row->menu_condition, [ '{Membres::DROIT_AUCUN}' => Membres::DROIT_AUCUN, '{Membres::DROIT_ACCES}' => Membres::DROIT_ACCES, '{Membres::DROIT_ECRITURE}' => Membres::DROIT_ECRITURE, '{Membres::DROIT_ADMIN}' => Membres::DROIT_ADMIN, ]); $condition = preg_replace_callback('/\{\$user\.(\w+)\}/', function ($m) use ($user) { return $user->{$m[1]}; }, $row->menu_condition); $query = 'SELECT 1 WHERE ' . $st = $db->prepare($query); if (!$st->readOnly()) { throw new \LogicException('Requête plugin pour affichage dans le menu n\'est pas en lecture : ' . $query); } |
︙ | ︙ | |||
672 673 674 675 676 677 678 679 680 681 682 683 684 685 | 'officiel' => (int)(bool)$official, 'nom' => $infos->nom, 'description'=> $infos->description, 'auteur' => $infos->auteur, 'url' => $infos->url, 'version' => $infos->version, 'menu' => (int)(bool)$infos->menu, 'config' => $config, ]); if (file_exists($path . '/install.php')) { $plugin = new Plugin($id); require $plugin->path() . '/install.php'; | > | 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 | 'officiel' => (int)(bool)$official, 'nom' => $infos->nom, 'description'=> $infos->description, 'auteur' => $infos->auteur, 'url' => $infos->url, 'version' => $infos->version, 'menu' => (int)(bool)$infos->menu, 'menu_condition' => $infos->menu && isset($infos->menu_condition) ? trim($infos->menu_condition) : null, 'config' => $config, ]); if (file_exists($path . '/install.php')) { $plugin = new Plugin($id); require $plugin->path() . '/install.php'; |
︙ | ︙ |