/** * Process the type element data from the type form. * * @param ArrayObject $post */ public function afterSaveForm($post) { foreach ($post['Elements'] as $elementId => $elementData) { $element = $this->getDb()->getTable('ContributionTypeElement')->find($elementId); if ($elementData['delete']) { $element->delete(); } else { $element->saveForm($elementData); } } foreach ($post['newElements'] as $index => $elementData) { // Skip totally empty elements if (!empty($elementData['prompt']) || !empty($elementData['element_set_id'])) { $element = new ContributionTypeElement(); $element->type_id = $this->id; $element->order = count($post['Elements']) + $index; $element->saveForm($elementData); } } }