예제 #1
0
 public function testValidation()
 {
     /** @var FileFieldListener $mockFileFieldListener */
     $mockFileFieldListener = $this->getMock('ch\\metanet\\formHandler\\listener\\FileFieldListener');
     /** @var Form $mockForm */
     $mockForm = $this->getMock('ch\\metanet\\formHandler\\component\\Form');
     $field = new FileField('field1', 'field1');
     $field->setFormComponent($mockForm);
     $field->addListener($mockFileFieldListener);
     $this->assertTrue($field->validate());
 }
 /**
  * @param FileField $field
  *
  * @return string
  */
 public function render(FileField $field)
 {
     $required = null;
     if ($field->hasRule('ch\\metanet\\formHandler\\rule\\RequiredRule')) {
         $required = ' aria-required="true"';
     }
     if ($this->numberOfFiles <= 1) {
         return '<input type="file" name="' . $field->getFormIdentifierAsString() . '" id="' . $field->getId() . '" ' . $this->getAttributesAsHtml() . $required . '>';
     }
     $field->setLinkedLabel(false);
     $html = '<ul' . $this->getAttributesAsHtml() . '>';
     for ($i = 0; $i < $this->numberOfFiles; $i++) {
         $html .= '<li><input type="file" name="' . $field->getFormIdentifierAsString() . '[]" id="' . $field->getId() . '-' . $i . '" ' . ($i === 0 ? $required : null) . '></li>';
     }
     $html .= '</ul>';
     return $html;
 }