View source
<?php
namespace Drupal\file_module_test\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class FileModuleTestForm extends FormBase {
public function getFormId() {
return 'file_module_test_form';
}
public function buildForm(array $form, FormStateInterface $form_state, $tree = TRUE, $extended = TRUE, $multiple = FALSE, $default_fids = NULL) {
$form['#tree'] = (bool) $tree;
$form['nested']['file'] = array(
'#type' => 'managed_file',
'#title' => $this
->t('Managed <em>@type</em>', [
'@type' => 'file & butter',
]),
'#upload_location' => 'public://test',
'#progress_message' => $this
->t('Please wait...'),
'#extended' => (bool) $extended,
'#size' => 13,
'#multiple' => (bool) $multiple,
);
if ($default_fids) {
$default_fids = explode(',', $default_fids);
$form['nested']['file']['#default_value'] = $extended ? array(
'fids' => $default_fids,
) : $default_fids;
}
$form['textfield'] = array(
'#type' => 'textfield',
'#title' => $this
->t('Type a value and ensure it stays'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => $this
->t('Save'),
);
return $form;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
if ($form['#tree']) {
$uploads = $form_state
->getValue(array(
'nested',
'file',
));
}
else {
$uploads = $form_state
->getValue('file');
}
if ($form['nested']['file']['#extended']) {
$uploads = $uploads['fids'];
}
$fids = array();
foreach ($uploads as $fid) {
$fids[] = $fid;
}
drupal_set_message($this
->t('The file ids are %fids.', array(
'%fids' => implode(',', $fids),
)));
}
}