Usiamo l'eccellente modulo uRapidFlow di Unirgy, ma abbiamo riscontrato un po 'di fastidio. Quando si esegue uno dei loro profili, chiamano session_write_close
. Il problema è che se vogliamo eseguire un processo da un controller adminhtml non possiamo impostare un messaggio flash di sessione per informare l'utente del successo o delle eccezioni rilevate.
È possibile riavviare la sessione al termine del processo, al fine di aggiungere un messaggio di sessione?
Inizialmente non ero sicuro che fosse possibile riavviare una sessione in PHP, ma la prova del concetto PHP funziona:
session_start();
// if this is the second run, show the value
if (!empty($_SESSION['foo'])) {
echo $_SESSION['foo'], PHP_EOL;
}
// set an initial value
$_SESSION['foo'] = 'bar';
// start running profile
session_write_close();
// after running profile
session_start();
// set a value to see if it takes
$_SESSION['foo'] = 'foo';
Tuttavia, non sono stato in grado di impostare correttamente un messaggio flash nella sessione adminhtml. Ho pensato di poter chiamare qualcosa sulla falsariga di:
Mage::getSingleton('adminhtml/session')
->init('core', 'adminhtml')
->addSuccess('Whoop');
Ma questo non sembra funzionare.