| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | <?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) {  $errors = [];  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();    \Drupal::logger('file')->notice('Copied file %source has been renamed to %destination', ['%source' => $source->filename, '%destination' => $file->getFilename()]);  }}/** * 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();    \Drupal::logger('file')->notice('Moved file %source has been renamed to %destination', ['%source' => $source->filename, '%destination' => $file->getFilename()]);  }}/** * @} End of "addtogroup hooks". */
 |