Example #1
0
 public function settings_sanitize_section($sections, $input, $output, $stored = array())
 {
     foreach ($sections as $section => $section_args) {
         foreach ($section_args['fields'] as $field => $field_args) {
             if (isset($field_args['constant']) && $field_args['constant'] && defined($field_args['constant'])) {
                 // do nothing
                 // new value
             } else {
                 if (isset($input[$field])) {
                     // callback
                     if (isset($field_args['filter']) && $field_args['filter'] && is_callable($field_args['filter'])) {
                         $output[$field] = call_user_func_array($field_args['filter'], array($input[$field]));
                     } else {
                         if (isset($field_args['values']) && FALSE === $field_args['values']) {
                             $output[$field] = $field_args['default'];
                         } else {
                             if (is_array($input[$field])) {
                                 $output[$field] = gPluginUtils::getKeys($input[$field]);
                             } else {
                                 $output[$field] = $input[$field];
                             }
                         }
                     }
                     // empty multiple checkboxes
                 } else {
                     if (isset($field_args['values']) && FALSE !== $field_args['values']) {
                         $output[$field] = array();
                         // custom multiple checkboxes
                     } else {
                         if (in_array($field_args['type'], array('posttypes'))) {
                             $output[$field] = array();
                             // previously stored value
                         } else {
                             if (isset($stored[$field])) {
                                 $output[$field] = $stored[$field];
                                 // default value
                             } else {
                                 $output[$field] = $field_args['default'];
                             }
                         }
                     }
                 }
             }
         }
     }
     return $output;
 }