public function isValid($value) { $valid = true; $name_explode = explode("_", $this->name); $field_id = $name_explode[1]; $field = new RM_Fields(); $gopts = new RM_Options(); $field->load_from_db($field_id); //Sanitize value before use, remove white space, trim extra pipes. $fv = explode("|", trim(preg_replace('/\\s+/', '', $field->get_field_value()), '|')); $allowed_types = array(); $multiple = $gopts->get_value_of('allow_multiple_file_uploads'); if (!$fv || count($fv) === 1 && $fv[0] == "") { $allowed_types = explode("|", $gopts->get_value_of('allowed_file_types')); } else { foreach ($fv as $key => $value) { $fv[$key] = strtolower($value); } $allowed_types = $fv; } //die; if ($multiple == "yes") { if (isset($_FILES[$this->name]) && !empty($_FILES[$this->name])) { foreach ($_FILES[$this->name]['name'] as $filename) { if ($filename == "") { if (!$this->isRequiredFileField) { return true; } else { $this->message = " %element% " . RM_UI_Strings::get('ERROR_REQUIRED'); return false; } } elseif (strpos($filename, '.') === 0) { return false; } elseif (strpos($filename, '.') === false) { return false; } else { $arrx = explode('.', $filename); $ext = $arrx[count($arrx) - 1]; if ($ext == "") { return false; } $ext = strtolower($ext); if (!in_array($ext, $allowed_types)) { return false; } } } return true; } return true; } else { if (isset($_FILES[$this->name]) && !empty($_FILES[$this->name])) { $filename = $_FILES[$this->name]['name']; if ($filename == "") { if (!$this->isRequiredFileField) { return true; } else { $this->message = " %element% " . RM_UI_Strings::get('ERROR_REQUIRED'); return false; } } elseif (strpos($filename, '.') === 0) { return false; } elseif (strpos($filename, '.') === false) { return false; } else { $arrx = explode('.', $filename); $ext = $arrx[count($arrx) - 1]; if ($ext == "") { return false; } if (!in_array($ext, $allowed_types)) { return false; } } return true; } return true; } return false; }