$formDistance = $prefix . 'Distance'; $formDirection = $prefix . 'Direction'; $formCity = $prefix . 'City'; $isNull = $formData[$formDistance] == null || $formData[$formDirection] == null || $formData[$formCity] == null; if ($isNull) { $formData[$formDistance] = null; $formData[$formDirection] = null; $formData[$formCity] = null; } } return $formData; } switch ($action) { case 'new': $clue = new Clue(array('year' => Year::current(), 'name' => $clue_name, 'time' => $clue_time)); $clue->doAdd('Created clue successfully.'); break; case 'edit': $clue = Clue::getClue($clue_id); $form_data = setNullIfEmpty($_POST); $form_data = coagulateTimes($form_data, array('', 'start', 'hint', 'answer')); $form_data = coagulateLocs($form_data, array('start', 'hint', 'answer')); $clue->makeChanges($form_data); $clue->doUpdate('Edited clue successfully.'); break; case 'delete': $clue = Clue::getClue($clue_id); foreach ($clue->getClueStates() as $clueState) { $clueState->doRemove(); } $clue->doRemove('Deleted clue successfully.');