public function ImceProfileForm::form in IMCE 8
Same name and namespace in other branches
- 8.2 src/Form/ImceProfileForm.php \Drupal\imce\Form\ImceProfileForm::form()
Gets the actual form array to be built.
Overrides EntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- src/
Form/ ImceProfileForm.php, line 55
Class
- ImceProfileForm
- Base form for Imce Profile entities.
Namespace
Drupal\imce\FormCode
public function form(array $form, FormStateInterface $form_state) {
/**
* @var \Drupal\imce\Entity\ImceProfile
*/
$imce_profile = $this
->getEntity();
// Check duplication.
if ($this
->getOperation() === 'duplicate') {
$imce_profile = $imce_profile
->createDuplicate();
$imce_profile
->set('label', $this
->t('Duplicate of @label', [
'@label' => $imce_profile
->label(),
]));
$this
->setEntity($imce_profile);
}
// Label.
$form['label'] = [
'#type' => 'textfield',
'#title' => $this
->t('Name'),
'#default_value' => $imce_profile
->label(),
'#maxlength' => 64,
'#required' => TRUE,
'#weight' => -20,
];
// Id.
$form['id'] = [
'#type' => 'machine_name',
'#machine_name' => [
'exists' => [
get_class($imce_profile),
'load',
],
'source' => [
'label',
],
],
'#default_value' => $imce_profile
->id(),
'#maxlength' => 32,
'#required' => TRUE,
'#weight' => -20,
];
// Description.
$form['description'] = [
'#type' => 'textfield',
'#title' => $this
->t('Description'),
'#default_value' => $imce_profile
->get('description'),
'#weight' => -10,
];
// Conf.
$conf = [
'#tree' => TRUE,
];
// Extensions.
$conf['extensions'] = [
'#type' => 'textfield',
'#title' => $this
->t('Allowed file extensions'),
'#default_value' => $imce_profile
->getConf('extensions'),
'#maxlength' => 255,
'#description' => $this
->t('Separate extensions with a space, and do not include the leading dot.') . ' ' . $this
->t('Set to * to allow all extensions.'),
'#weight' => -9,
];
// File size.
$maxsize = Environment::getUploadMaxSize();
$conf['maxsize'] = [
'#type' => 'number',
'#min' => 0,
'#max' => ceil($maxsize / 1024 / 1024),
'#step' => 'any',
'#size' => 8,
'#title' => $this
->t('Maximum file size'),
'#default_value' => $imce_profile
->getConf('maxsize'),
'#description' => $this
->t('Maximum allowed file size per upload.') . ' ' . $this
->t('Your PHP settings limit the upload size to %size.', [
'%size' => format_size($maxsize),
]),
'#field_suffix' => $this
->t('MB'),
'#weight' => -8,
];
// Quota.
$conf['quota'] = [
'#type' => 'number',
'#min' => 0,
'#step' => 'any',
'#size' => 8,
'#title' => $this
->t('Disk quota'),
'#default_value' => $imce_profile
->getConf('quota'),
'#description' => $this
->t('Maximum disk space that can be allocated by a user.'),
'#field_suffix' => $this
->t('MB'),
'#weight' => -7,
];
// Image dimensions.
$conf['dimensions'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'dimensions-wrapper form-item',
],
],
'#weight' => -6,
];
$conf['dimensions']['label'] = [
'#markup' => '<label>' . $this
->t('Maximum image dimensions') . '</label>',
];
$conf['dimensions']['maxwidth'] = [
'#type' => 'number',
'#default_value' => $imce_profile
->getConf('maxwidth'),
'#maxlength' => 5,
'#min' => 0,
'#size' => 8,
'#placeholder' => $this
->t('Width'),
'#field_suffix' => ' x ',
'#parents' => [
'conf',
'maxwidth',
],
];
$conf['dimensions']['maxheight'] = [
'#type' => 'number',
'#default_value' => $imce_profile
->getConf('maxheight'),
'#maxlength' => 5,
'#min' => 0,
'#size' => 8,
'#placeholder' => $this
->t('Height'),
'#field_suffix' => $this
->t('pixels'),
'#parents' => [
'conf',
'maxheight',
],
];
$conf['dimensions']['description'] = [
'#markup' => '<div class="description">' . $this
->t('Images exceeding the limit will be scaled down.') . '</div>',
];
// Replace method.
$conf['replace'] = [
'#type' => 'radios',
'#title' => $this
->t('Upload replace method'),
'#default_value' => $imce_profile
->getConf('replace', FileSystemInterface::EXISTS_RENAME),
'#options' => [
FileSystemInterface::EXISTS_RENAME => $this
->t('Keep the existing file renaming the new one'),
FileSystemInterface::EXISTS_REPLACE => $this
->t('Replace the existing file with the new one'),
FileSystemInterface::EXISTS_ERROR => $this
->t('Keep the existing file rejecting the new one'),
],
'#description' => $this
->t('Select the replace method for existing files during uploads.'),
'#weight' => -5,
];
// Image thumbnails.
if (function_exists('image_style_options')) {
$conf['thumbnail_style'] = [
'#type' => 'select',
'#title' => $this
->t('Thumbnail style'),
'#options' => image_style_options(),
'#default_value' => $imce_profile
->getConf('thumbnail_style'),
'#description' => $this
->t('Select a thumbnail style from the list to make the file browser display inline image previews. Note that this could reduce the performance of the file browser drastically.'),
];
$conf['thumbnail_grid_style'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Thumbnail grid style'),
'#default_value' => $imce_profile
->getConf('thumbnail_grid_style'),
'#description' => $this
->t('Check it if you want to display the thumbnail in a grid. If not checked it will display the thumbnail in a list.'),
];
}
// Folders.
$conf['folders'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Folders'),
'description' => [
'#markup' => '<div class="description">' . $this
->t('You can use user tokens in folder paths, e.g. @tokens.', [
'@tokens' => '[user:uid], [user:name]',
]) . ' ' . $this
->t('Subfolders inherit parent permissions when subfolder browsing is enabled.') . '</div>',
],
'#weight' => 10,
];
if ($this->moduleHandler
->moduleExists('token')) {
$conf['folders']['token_tree'] = [
'#theme' => 'token_tree_link',
'#token_types' => [
'user',
],
'#show_restricted' => TRUE,
'#global_types' => FALSE,
];
}
$folders = $imce_profile
->getConf('folders', []);
$index = 0;
foreach ($folders as $folder) {
$conf['folders'][] = $this
->folderForm($index++, $folder);
}
$conf['folders'][] = $this
->folderForm($index++);
$conf['folders'][] = $this
->folderForm($index);
$form['conf'] = $conf;
// Add library.
$form['#attached']['library'][] = 'imce/drupal.imce.admin';
// Call plugin form alterers.
$this->pluginManagerImce
->alterProfileForm($form, $form_state, $imce_profile);
return parent::form($form, $form_state);
}