Validación de un form con campos de tipo file usando la propiedad #required

Por lo visto, no se puede utilizar la propiedad #required para hacer que los campos de tipo file en los formularios de Drupal sean obligatorios. El problema es que el campo que contiene la ruta del fichero se vacía al realizar la carga, ya que ésta se realiza a nivel de sesión.
Para poder validar si los usuarios rellenan o no un campo obligatorio de tipo file, podemos optar por parchear el core, en el form.inc como sugieren en algunos posts del foro de Drupal.org o podemos validarlo utilizando la variable global $_FILES en el hook validate del propio formulario.
Os dejo un ejemplo:

<?php
function member_payment_import_csv_validate($form_id, $form_values) {
foreach($_FILES as $file) { // Se recorre el array $_FILES
if (empty($file['name']['file'])) {
// Y si el nombre del fichero está vacío, devolvemos un error
form_set_error('file',t('Cannot import an empty file'));
}
}
return TRUE;
}
?>

Comentarios

Como el envías los paramentros, cuales son los paramentros y como invocas la funcion, soy novato en php.

Añadir nuevo comentario