예제 #1
0
 function hoot_sanitize_icon($input, $option)
 {
     $recognized = hoot_enum_icons();
     if (in_array($input, $recognized)) {
         return $input;
     }
     return apply_filters('hoot_sanitize_default_icon', '');
 }
예제 #2
0
 /**
  * Sanitize field values to store in database
  *
  * @since 1.1.7
  * @param $instance
  * @param $fields
  */
 public function sanitize($instance, $fields)
 {
     foreach ($fields as $field) {
         /* Skip if the field does not have an id/type */
         if (!isset($field['id']) || !isset($field['type'])) {
             continue;
         }
         /* Skip if instance value is not set */
         $id = $field['id'];
         if (!isset($instance[$id])) {
             continue;
         }
         /* Sanitize field values */
         switch ($field['type']) {
             case 'textarea':
                 global $allowedposttags;
                 $instance[$id] = wp_kses($instance[$id], $allowedposttags);
                 break;
             case 'checkbox':
                 $instance[$id] = !empty($instance[$id]) ? 1 : 0;
                 break;
             case 'select':
             case 'radio':
             case 'images':
                 $instance[$id] = isset($field['options'][$instance[$id]]) ? $instance[$id] : '';
                 break;
             case 'icon':
                 $icons = hoot_enum_icons();
                 $instance[$id] = in_array($instance[$id], $icons) ? $instance[$id] : '';
                 break;
             case 'group':
                 foreach ($instance[$id] as $i => $subinstance) {
                     $instance[$id][$i] = $this->sanitize($subinstance, $field['fields']);
                 }
                 break;
         }
         /* Custom sanitizations for specific field. Example, a text input has a url */
         if (isset($field['sanitize'])) {
             switch ($field['sanitize']) {
                 case 'url':
                     $instance[$id] = esc_url_raw($instance[$id]);
                     break;
                 case 'integer':
                     $instance[$id] = intval($instance[$id]);
                     $instance[$id] = !empty($instance[$id]) ? $instance[$id] : '';
                     break;
                 case 'absint':
                     $instance[$id] = absint($instance[$id]);
                     $instance[$id] = !empty($instance[$id]) ? $instance[$id] : '';
                     break;
                 case 'email':
                     $instance[$id] = is_email($instance[$id]);
                     break;
                     // Allow custom sanitization functions
                 // Allow custom sanitization functions
                 default:
                     $instance[$id] = apply_filters('widget_admin_sanitize_field', $instance[$id], $field['sanitize']);
             }
         }
     }
     return $instance;
 }
예제 #3
0
/**
 * Sanitize icon value to allow only allowed choices.
 *
 * @since 2.0.0
 * @param string $value The unsanitized string.
 * @param mixed $setting The setting for which the sanitizing is occurring.
 * @return string The sanitized value.
 */
function hoot_customizer_sanitize_icon($value, $setting)
{
    $choices = hoot_enum_icons();
    if (!in_array($value, $choices)) {
        if (is_object($setting)) {
            $setting = $setting->id;
        }
        $value = hoot_customizer_get_default($setting);
    }
    return $value;
}