// Récupérer les tags $tags = $scenario->getTags(); $id1 = isset($tags['#ID1#']) ? intval($tags['#ID1#']) : null; $id2 = isset($tags['#ID2#']) ? intval($tags['#ID2#']) : null; $id3 = isset($tags['#ID3#']) ? intval($tags['#ID3#']) : null; if ($id1 === null || $id2 === null || $id3 === null) { $scenario->setLog('Un ou plusieurs IDs sont manquants.'); return; } $commandes = array($id1, $id2, $id3); // Variable pour suivre l'index de la commande visible $indexVar = 'index_visible_command'; $index = $scenario->getData($indexVar); if ($index === null) { $index = 0; // Initialiser si la variable n'existe pas } else { $index = intval($index); } // Rendre la commande actuellement visible invisible $commandeVisible = cmd::byId($commandes[$index]); if (is_object($commandeVisible)) { $commandeVisible->setIsVisible(0); $commandeVisible->save(); } // Calculer l'index de la prochaine commande à rendre visible $index = ($index + 1) % count($commandes); // Rendre la prochaine commande visible $commandeSuivante = cmd::byId($commandes[$index]); if (is_object($commandeSuivante)) { $commandeSuivante->setIsVisible(1); $commandeSuivante->save(); } // Sauvegarder l'index de la commande visible $scenario->setData($indexVar, $index); // Logs pour le debug $scenario->setLog('Commande visible ID: ' . $commandes[$index]);