public static function getElementValues($storedElement) { $return_array = array(); $app_json = AdminHelper::getElementAppJSON($storedElement['type']); if ($app_json) { // start by getting defaults. this will populate scalars, etc. $return_array = AdminHelper::getElementDefaults($app_json['options']); foreach ($app_json['options'] as $section_name => $details) { foreach ($details['data'] as $data => $value) { if (isset($value['values'])) { $formatting_data = $value['values']; } if ($value['type'] == 'options') { if (is_array($value['values'])) { foreach ($value['values'] as $subname => $subvalue) { if (isset($storedElement['options'][$data][$subname])) { $return_array['options_' . $value['name'] . '-' . $subname] = AdminHelper::formatElementValue($storedElement['options'][$data][$subname], $subvalue['type'], $formatting_data); } } } } else { if ($value['type'] == 'scalar') { $scalarcount = 0; if (isset($storedElement['options'][$data])) { if (is_array($storedElement['options'][$data])) { $scalarcount = count($storedElement['options'][$data]); } } for ($i = 0; $i < $scalarcount; $i++) { foreach ($value['values'] as $subname => $subvalue) { if (isset($subvalue['values'])) { $formatting_data = $subvalue['values']; } if ($subvalue['type'] == 'options') { if (is_array($subvalue['values'])) { foreach ($subvalue['values'] as $sub2name => $sub2value) { if (isset($sub2value['values'])) { $formatting_data = $sub2value['values']; } if (isset($storedElement['options'][$data][$i][$subname][$sub2name])) { $return_array['options_' . $subname . '-' . $sub2name . '-clone-' . $data . '-' . $i] = AdminHelper::formatElementValue($storedElement['options'][$data][$i][$subname][$sub2name], $sub2value['type'], $formatting_data); } } } } else { if (isset($storedElement['options'][$data][$i][$subname])) { $return_array['options_' . $subname . '-clone-' . $data . '-' . $i] = AdminHelper::formatElementValue($storedElement['options'][$data][$i][$subname], $subvalue['type'], $formatting_data); } } } } } else { if (isset($storedElement['options'][$data])) { $return_array['options_' . $data] = AdminHelper::formatElementValue($storedElement['options'][$data], $value['type'], $formatting_data); } } } } } } return $return_array; }
AdminHelper::handleElementFormPOST($_POST, $cash_admin); // Detects state of element add and routes to /elements/edit if successful if ($cash_admin->getCurrentElementState() == 'add' && !$cash_admin->getErrorState()) { $current_element = $cash_admin->getCurrentElement(); AdminHelper::controllerRedirect('/elements/edit/' . $current_element['id']); } // Not a completed add, so let's show the form // first check for requirements $requirements_response = $cash_admin->requestAndStore(array('cash_request_type' => 'element', 'cash_action' => 'checkuserrequirements', 'user_id' => $cash_admin->effective_user_id, 'element_type' => $element_addtype)); $app_json = AdminHelper::getElementAppJSON($element_addtype); if ($requirements_response['payload'] === true) { if ($app_json) { // set page title/tip $cash_admin->page_data['ui_title'] = 'Add ' . $app_json['details']['en']['name'] . ' Element'; $cash_admin->page_data['ui_page_tip'] = $app_json['details']['en']['instructions']; $element_defaults = AdminHelper::getElementDefaults($app_json['options']); $cash_admin->page_data = array_merge($cash_admin->page_data, $element_defaults); if (isset($app_json['copy'])) { if (is_array($app_json['copy']['en'])) { foreach ($app_json['copy']['en'] as $key => $val) { $cash_admin->page_data['copy_' . $key] = $val; } } } if (is_array($app_json['details']['en'])) { foreach ($app_json['details']['en'] as $key => $val) { $cash_admin->page_data['details_' . $key] = $val; } } $cash_admin->page_data['all_requirements'] = true; $cash_admin->page_data['element_button_text'] = 'Save changes';