function FileThemeHooks::preprocessFileUploadHelp
Prepares variables for file upload help text templates.
Default template: file-upload-help.html.twig.
Parameters
array<string,mixed> $variables: An associative array containing:
- description: The normal description for this field, specified by the user.
- upload_validators: An array of upload validators as used in $element['#upload_validators'].
File
-
core/
modules/ file/ src/ Hook/ FileThemeHooks.php, line 137
Class
- FileThemeHooks
- Theme hooks for the file module.
Namespace
Drupal\file\HookCode
public function preprocessFileUploadHelp(array &$variables) : void {
$description = $variables['description'];
$upload_validators = $variables['upload_validators'];
$cardinality = $variables['cardinality'];
$descriptions = [];
if (!empty($description)) {
$descriptions[] = FieldFilteredMarkup::create($description);
}
if (isset($cardinality)) {
if ($cardinality == -1) {
$descriptions[] = $this->t('Unlimited number of files can be uploaded to this field.');
}
else {
$descriptions[] = $this->formatPlural($cardinality, 'One file only.', 'Maximum @count files.');
}
}
if (isset($upload_validators['FileSizeLimit'])) {
$descriptions[] = $this->t('@size limit.', [
'@size' => ByteSizeMarkup::create($upload_validators['FileSizeLimit']['fileLimit']),
]);
}
if (isset($upload_validators['FileExtension'])) {
$descriptions[] = $this->t('Allowed types: @extensions.', [
'@extensions' => $upload_validators['FileExtension']['extensions'],
]);
}
if (isset($upload_validators['FileImageDimensions'])) {
$max = $upload_validators['FileImageDimensions']['maxDimensions'];
$min = $upload_validators['FileImageDimensions']['minDimensions'];
if ($min && $max && $min == $max) {
$descriptions[] = $this->t('Images must be exactly <strong>@size</strong> pixels.', [
'@size' => $max,
]);
}
elseif ($min && $max) {
$descriptions[] = $this->t('Images must be larger than <strong>@min</strong> pixels. Images larger than <strong>@max</strong> pixels will be resized.', [
'@min' => $min,
'@max' => $max,
]);
}
elseif ($min) {
$descriptions[] = $this->t('Images must be larger than <strong>@min</strong> pixels.', [
'@min' => $min,
]);
}
elseif ($max) {
$descriptions[] = $this->t('Images larger than <strong>@max</strong> pixels will be resized.', [
'@max' => $max,
]);
}
}
$variables['descriptions'] = $descriptions;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.