You are here

function file_upload_secure_validator_field_widget_form_alter in File Upload Secure Validator 7.2

Same name and namespace in other branches
  1. 7 file_upload_secure_validator.module \file_upload_secure_validator_field_widget_form_alter()

Implements hook_field_widget_form_alter().

Add one more validation callback to every file field of every content type.

File

./file_upload_secure_validator.module, line 13
Provides file upload extension validation through php fileinfo.

Code

function file_upload_secure_validator_field_widget_form_alter(&$element, &$form_state, $context) {

  // Retrieve all user defined allowed file extensions for each file field and
  // pass them as a parameter to the validation callback.
  $children = array_intersect_key($element, element_children($element));
  foreach ($children as $child_element_index => $child_element) {
    if (isset($child_element["#type"]) && $child_element["#type"] == "managed_file") {

      // make sure that `fileinfo` extension is loaded/enabled.
      if (extension_loaded('fileinfo')) {
        $child_element["#upload_validators"]["file_upload_secure_validator_upload_validate"] = array();
        $element[$child_element_index] = $child_element;
      }
      else {
        drupal_set_message(t("It seems as if Fileinfo extension is not loaded/enabled. If you are using Windows, may be, you should uncomment php_fileinfo.dll in php.ini file."), "error");
      }
    }
  }
}