2015-08-18 00:00:26 +00:00
< ? php
/**
* @ file
* Hooks for file module .
*/
/**
* @ addtogroup hooks
* @ {
*/
/**
* Check that files meet a given criteria .
*
* This hook lets modules perform additional validation on files . They ' re able
* to report a failure by returning one or more error messages .
*
* @ param \Drupal\file\FileInterface $file
* The file entity being validated .
* @ return array
* An array of error messages . If there are no problems with the file return
* an empty array .
*
* @ see file_validate ()
*/
function hook_file_validate ( Drupal\file\FileInterface $file ) {
2017-04-13 14:53:35 +00:00
$errors = [];
2015-08-18 00:00:26 +00:00
if ( ! $file -> getFilename ()) {
$errors [] = t ( " The file's name is empty. Please give a name to the file. " );
}
if ( strlen ( $file -> getFilename ()) > 255 ) {
$errors [] = t ( " The file's name exceeds the 255 characters limit. Please rename the file and try again. " );
}
return $errors ;
}
/**
* Respond to a file that has been copied .
*
* @ param \Drupal\file\FileInterface $file
* The newly copied file entity .
* @ param \Drupal\file\FileInterface $source
* The original file before the copy .
*
* @ see file_copy ()
*/
function hook_file_copy ( Drupal\file\FileInterface $file , Drupal\file\FileInterface $source ) {
// Make sure that the file name starts with the owner's user name.
if ( strpos ( $file -> getFilename (), $file -> getOwner () -> name ) !== 0 ) {
$file -> setFilename ( $file -> getOwner () -> name . '_' . $file -> getFilename ());
$file -> save ();
2017-04-13 14:53:35 +00:00
\Drupal :: logger ( 'file' ) -> notice ( 'Copied file %source has been renamed to %destination' , [ '%source' => $source -> filename , '%destination' => $file -> getFilename ()]);
2015-08-18 00:00:26 +00:00
}
}
/**
* Respond to a file that has been moved .
*
* @ param \Drupal\file\FileInterface $file
* The updated file entity after the move .
* @ param \Drupal\file\FileInterface $source
* The original file entity before the move .
*
* @ see file_move ()
*/
function hook_file_move ( Drupal\file\FileInterface $file , Drupal\file\FileInterface $source ) {
// Make sure that the file name starts with the owner's user name.
if ( strpos ( $file -> getFilename (), $file -> getOwner () -> name ) !== 0 ) {
$file -> setFilename ( $file -> getOwner () -> name . '_' . $file -> getFilename ());
$file -> save ();
2017-04-13 14:53:35 +00:00
\Drupal :: logger ( 'file' ) -> notice ( 'Moved file %source has been renamed to %destination' , [ '%source' => $source -> filename , '%destination' => $file -> getFilename ()]);
2015-08-18 00:00:26 +00:00
}
}
/**
* @ } End of " addtogroup hooks " .
*/