Overview
Comment: | Possibilité de définir une condition d'affichage (en SQL) du plugin dans le menu, permettant de ne pas l'afficher à tous les membres |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
a92458a4b5718ec1e4f4089e4ef67cad |
User & Date: | bohwaz on 2018-07-30 03:15:35 |
Other Links: | branch diff | manifest | tags |
References
2020-12-08
| ||
23:25 | • Wiki page "Changelog/0.9" artifact: b9c916b4d1 user: bohwaz | |
Context
2018-08-02
| ||
22:58 | Merge avec trunk check-in: e9ab0666a3 user: bohwaz tags: dev | |
2018-07-30
| ||
03:15 | Possibilité de définir une condition d'affichage (en SQL) du plugin dans le menu, permettant de ne pas l'afficher à tous les membres check-in: a92458a4b5 user: bohwaz tags: dev | |
2018-07-26
| ||
13:07 | Ajout queue d'envoi d'emails check-in: fa50a20dd3 user: bohwaz tags: dev | |
Changes
Modified src/include/data/0.9.0.sql from [2f69fe8735] to [3ad6108e5f].
︙ | ︙ | |||
24 25 26 27 28 29 30 | -- Migration des données INSERT INTO compta_rapprochement SELECT * FROM compta_rapprochement_old; DROP TABLE compta_rapprochement_old; -- Cette variable n'est plus utilisée DELETE FROM config WHERE cle = 'email_envoi_automatique'; | > > | 24 25 26 27 28 29 30 31 32 | -- Migration des données INSERT INTO compta_rapprochement SELECT * FROM compta_rapprochement_old; DROP TABLE compta_rapprochement_old; -- Cette variable n'est plus utilisée DELETE FROM config WHERE cle = 'email_envoi_automatique'; ALTER TABLE plugins ADD COLUMN menu_condition TEXT NULL; |
Modified src/include/data/schema.sql from [21009b3120] to [3637608e49].
︙ | ︙ | |||
314 315 316 317 318 319 320 321 322 323 324 325 326 327 | officiel INTEGER NOT NULL DEFAULT 0, nom TEXT NOT NULL, description TEXT NULL, auteur TEXT NULL, url TEXT NULL, version TEXT NOT NULL, menu INTEGER NOT NULL DEFAULT 0, config TEXT NULL ); CREATE TABLE IF NOT EXISTS plugins_signaux -- Association entre plugins et signaux (hooks) ( signal TEXT NOT NULL, | > | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 | officiel INTEGER NOT NULL DEFAULT 0, nom TEXT NOT NULL, description TEXT NULL, auteur TEXT NULL, url TEXT NULL, version TEXT NOT NULL, menu INTEGER NOT NULL DEFAULT 0, menu_condition TEXT NULL, config TEXT NULL ); CREATE TABLE IF NOT EXISTS plugins_signaux -- Association entre plugins et signaux (hooks) ( signal TEXT NOT NULL, |
︙ | ︙ |
Modified src/include/lib/Garradin/Plugin.php from [a13d03f59d] to [d7415e1122].
︙ | ︙ | |||
375 376 377 378 379 380 381 | return true; } /** * Liste les plugins qui doivent être affichés dans le menu * @return array Tableau associatif id => nom (ou un tableau vide si aucun plugin ne doit être affiché) */ | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 | return true; } /** * Liste les plugins qui doivent être affichés dans le menu * @return array Tableau associatif id => nom (ou un tableau vide si aucun plugin ne doit être affiché) */ static public function listMenu($user) { $db = DB::getInstance(); $list = $db->getGrouped('SELECT id, nom, menu_condition FROM plugins WHERE menu = 1 ORDER BY nom;'); foreach ($list as $id => &$row) { if (!$row->menu_condition) { $row = $row->nom; continue; } $query = 'SELECT 1 WHERE ' . preg_replace_callback('/\{\$user\.(\w+)\}/', function ($m) use ($user) { return $user->{$m[1]}; }, $row->menu_condition); $st = $db->prepare($query); if (!$st->readOnly()) { throw new \LogicException('Requête plugin pour affichage dans le menu n\'est pas en lecture : ' . $query); } $res = $st->execute(); if (!$res->fetchArray(\SQLITE3_NUM)) { unset($list[$id]); continue; } $row = $row->nom; } unset($row); return $list; } /** * Liste les plugins téléchargés mais non installés * @return array Liste des plugins téléchargés */ static public function listDownloaded() |
︙ | ︙ |
Modified src/www/admin/_inc.php from [e0bbbc300b] to [d2b4f407f4].
︙ | ︙ | |||
66 67 68 69 70 71 72 | $tpl->assign('is_logged', true); $user = $session->getUser(); $tpl->assign('user', $user); $tpl->assign('current', ''); | > > > > > > > > | | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | $tpl->assign('is_logged', true); $user = $session->getUser(); $tpl->assign('user', $user); $tpl->assign('current', ''); if ($session->get('plugins_menu') === null) { // Construction de la liste de plugins pour le menu // et stockage en session pour ne pas la recalculer à chaque page $session->set('plugins_menu', Plugin::listMenu($user)); } $tpl->assign('plugins_menu', $session->get('plugins_menu')); if ($session->canAccess('membres', Membres::DROIT_ACCES)) { $tpl->assign('nb_membres', (new Membres)->countAllButHidden()); } } |