Esempio n. 1
0
 /**
  * Validate settings.
  * @param array $settings
  * @return array
  */
 public function validate_settings(array $settings)
 {
     $errors = parent::validate_settings($settings);
     $form_limits = $this->get_form_limits();
     $alike_fields = array('site_type', 'user_type', 'orientation', 'lang', 'land', 'country_code');
     foreach ($alike_fields as $field) {
         if (!isset($settings[$field])) {
             continue;
         } elseif (empty($settings[$field])) {
             $errors[$field] = l("admin_error_{$field}_empty", self::MODULE_GID);
         } elseif (!empty($form_limits[$field]) && count($settings[$field]) > $form_limits[$field]) {
             $errors[$field] = l("admin_error_{$field}_too_many", self::MODULE_GID);
         }
     }
     if (!empty($settings['min_age']) || !empty($settings['max_age'])) {
         $age_min = $this->CI->pg_module->get_module_config('users', 'age_min');
         $age_max = $this->CI->pg_module->get_module_config('users', 'age_max');
         if ((int) $settings['min_age'] > (int) $settings['max_age']) {
             $errors['max_age'] = l('admin_error_min_age_bigger_than_max_age', self::MODULE_GID);
         }
     }
     if (isset($settings['min_age'])) {
         $settings['min_age'] = (int) $settings['min_age'];
         if (empty($settings['min_age'])) {
             $errors['min_age'] = l('admin_error_min_age_empty', self::MODULE_GID);
         } elseif ($settings['min_age'] < $age_min) {
             $errors['min_age'] = l('admin_error_min_age_too_small', self::MODULE_GID);
         } elseif ($settings['min_age'] > $age_max) {
             $errors['min_age'] = l('admin_error_min_age_too_big', self::MODULE_GID);
         }
     }
     if (isset($settings['max_age'])) {
         $settings['max_age'] = (int) $settings['max_age'];
         if (empty($settings['max_age'])) {
             $errors['max_age'] = l('admin_error_max_age_empty', self::MODULE_GID);
         } elseif ($settings['max_age'] > $age_max) {
             $errors['max_age'] = l('admin_error_max_age_too_big', self::MODULE_GID);
         } elseif ($settings['max_age'] < $age_min) {
             $errors['max_age'] = l('admin_error_max_age_too_small', self::MODULE_GID);
         }
     }
     return $errors;
 }