| 
<?php/**
 * User: delboy1978uk
 * Date: 04/12/2016
 * Time: 23:36
 */
 
 namespace Del\Form\Renderer\Error;
 
 
 use Del\Form\Field\FieldInterface;
 use DOMElement;
 use DOMText;
 
 class HorizontalFormErrorRender extends AbstractErrorRender implements ErrorRendererInterface
 {
 /**
 * @param FieldInterface $field
 * @return DOMElement
 */
 public function render(FieldInterface $field)
 {
 $helpBlock = $this->createElement('span');
 $helpBlock->setAttribute('class', 'help-block');
 
 if ($this->shouldRender($field)) {
 $helpBlock = $field->hasCustomErrorMessage()
 ? $this->addCustomErrorMessage($helpBlock, $field)
 : $this->addErrorMessages($helpBlock, $field);
 }
 
 $div = $this->createElement('div');
 $div->setAttribute('class', 'col-sm-offset-2 col-sm-10');
 $div->appendChild($helpBlock);
 return $div;
 }
 
 /**
 * @param DOMElement $helpBlock
 * @param FieldInterface $field
 * @return DOMElement
 */
 private function addCustomErrorMessage(DOMElement $helpBlock, FieldInterface $field)
 {
 $message = $field->getCustomErrorMessage();
 $text = $this->createText($message);
 $helpBlock->appendChild($text);
 return $helpBlock;
 }
 
 /**
 * @param DOMElement $helpBlock
 * @param FieldInterface $field
 * @return DOMElement
 */
 private function addErrorMessages(DOMElement $helpBlock, FieldInterface $field)
 {
 $messages = $field->getMessages();
 
 foreach ($messages as $message) {
 $helpBlock = $this->appendMessage($helpBlock, $message);
 }
 return $helpBlock;
 }
 
 /**
 * @param DOMElement $helpBlock
 * @param $message
 * @return DOMElement
 */
 private function appendMessage(DOMElement $helpBlock, $message)
 {
 $text = $this->createText($message);
 $br = $this->createLineBreak();
 $helpBlock->appendChild($text);
 $helpBlock->appendChild($br);
 return $helpBlock;
 }
 
 }
 |