예제 #1
0
 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;
 }