TYPO3  7.6
UploadViewHelper.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
3 
4 /* *
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * *
12  * This script is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14  * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15  * General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU Lesser General Public *
18  * License along with the script. *
19  * If not, see http://www.gnu.org/licenses/lgpl.html *
20  * *
21  * The TYPO3 project - inspiring people to share! *
22  * */
39 {
43  protected $tagName = 'input';
44 
51  public function initializeArguments()
52  {
53  parent::initializeArguments();
54  $this->registerTagAttribute('disabled', 'string', 'Specifies that the input element should be disabled when the page loads');
55  $this->registerTagAttribute('multiple', 'string', 'Specifies that the file input element should allow multiple selection of files');
56  $this->registerArgument('errorClass', 'string', 'CSS class to set if there are errors for this view helper', false, 'f3-form-error');
58  }
59 
66  public function render()
67  {
68  $name = $this->getName();
69  $allowedFields = array('name', 'type', 'tmp_name', 'error', 'size');
70  foreach ($allowedFields as $fieldName) {
71  $this->registerFieldNameForFormTokenGeneration($name . '[' . $fieldName . ']');
72  }
73  $this->tag->addAttribute('type', 'file');
74 
75  if (isset($this->arguments['multiple'])) {
76  $this->tag->addAttribute('name', $name . '[]');
77  } else {
78  $this->tag->addAttribute('name', $name);
79  }
80 
81  $this->setErrorClassAttribute();
82  return $this->tag->render();
83  }
84 }