yeswiki icon indicating copy to clipboard operation
yeswiki copied to clipboard

Une action bazar décomposée en sous-actions

Open acheype opened this issue 4 years ago • 0 comments

En rapport avec #550, voici une alternative. L'objectif est de diviser l'action qui est actuellement trop grosse en plus sous-actions : dans cet exemple, je créer une action pour chaque valeur du paramètre 'vue'.

Au niveau du switch($view) de BazarAction.php, cette action principale réaiguille à la sous-action correspondante suivant la valeur de $view :

private const SUB_ACTIONS = [
        self::VOIR_CONSULTER => 'bazarconsulter',
        self::VOIR_SAISIR => 'bazarsaisir',
        ...
    ];
...
...
 switch ($view) {
            case self::VOIR_CONSULTER
                return $this->wiki->Action(self::SUB_ACTIONS[self::VOIR_CONSULTER],
                    false,
                    ['action' => $action, 'arguments' => $arguments]
                );
                break;

            case self::VOIR_SAISIR:
                $this->wiki->Action(self::SUB_ACTIONS[self::VOIR_SAISIR],
                    false,
                    ['action' => $action, 'arguments' => $arguments]
                );
                break;

            ...
            ...
        }

A voir s'il n'existe pas un autre découpe en sous-actions plus pertinent.

L'action bazar est toujours utilisée dans la page Bazar ({{bazar showexportbuttons="1"}}) et elle reste accessible pour raison de rétrocompatibilité des pages existantes. Et on préconise aux nouveaux utilisateurs, l'utilisation de ces nouvelles actions et l'on en profite pour proposer des paramètres plus user-friendly.

Avantages que je vois :

  • on utilise le même concept de template d'actions (pas besoin d'introduction un nouveau concept où l'on rajoute des notions de routage pour un simple composant)
  • l'utilisateur se voit proposer des actions plus simples

acheype avatar Dec 01 '20 21:12 acheype