/**
  * Store the submitted data into the session and redirect to the next step
  * unless it's the last.
  *
  * @param array $submitted
  * @param array $labels
  * @param $fieldsOrForm
  * @param $formOrFields
  */
 public function prepareFormData(&$submitted, &$labels, $fieldsOrForm, $formOrFields)
 {
     // Compat with Contao 4 and 3.5
     $form = $fieldsOrForm instanceof \Form ? $fieldsOrForm : $formOrFields;
     $manager = new MPFormsFormManager($form->id);
     // Don't do anything if not valid
     if (!$manager->isValidFormFieldCombination()) {
         return;
     }
     // Store data in session
     $manager->storeData($submitted, $labels, (array) $_SESSION['FILES']);
     // Submit form
     if ($manager->isLastStep() && 'continue' === $submitted['mp_form_pageswitch']) {
         $allData = $manager->getDataOfAllSteps();
         // Replace data by reference and then return so the default Contao
         // routine kicks in
         $submitted = $allData['submitted'];
         $labels = $allData['labels'];
         $_SESSION['FILES'] = $allData['files'];
         // Clear session
         $manager->resetData();
         return;
     } else {
         // Make sure the Contao form data session handling doesn't do
         // anything at all while we're on a multipage form
         $_SESSION['FORM_DATA'] = [];
     }
     $this->redirectToStep($manager, $manager->getNextStep());
 }