Mettre les étapes d'un tunnel en session
Des fois dans les autorisations pour accéder à une étape on est un peu coincés : on doit s'assurer au minimum que l'étape précédente a été validée mais on n'a pas toujours cette visibilité.
Quand les étapes comportent des formulaires qui modifient la base de donnée ou la session, on peut se reposer sur ces infos donc en général ça va : « il faut qu'il y ait une commande avec tel statut », « il faut qu'il y ait un auteur connecté », etc.
Mais ça n'est pas forcément systématique. Imaginons par exemple une étape où il y a juste un texte à lire avec un lien vers l'étape suivante. Dans l'autorisation de l'étape suivante on n'a aucun moyen de savoir qu'on est passé par cette étape. J'ai plus l'exemple de la vraie vie en tête, mais j'avais eu un cas insoluble comme ça.
Donc l'idée ça serait de mettre systématiquement toutes les étapes réalisées d'un tunnel en session, ce qui pourrait servir aux autorisations si besoin.
Exemple : un tunnel « légumes » avec 4 étapes « patates, poireaux, betterave, courgette » À chaque étape on complèterait la liste des étapes accédées, donc à la 2ème étape par exemple on aurait ça dans le session :
$etapes_deja_faites = session_get('tunnels/legumes');
var_dump($etapes_deja_faites);
→ array('patates', 'poireaux');
Je parle bien de toutes les étapes faites, et pas juste de l'étape en cours, car on peut toujours revenir en arrière et donc on perdait l'info pour les étapes ultérieures.
Le truc, c'est qu'une fois un tunnel fini, à la fin il faudrait "reset" la session pour ce tunnel. Et là ça dépend de chaque tunnel, de ce qu'il y a dans la dernière étape quoi. Je vois pas trop comment faire automatiquement au niveau du plugin.