예제 #1
0
파일: Plain.php 프로젝트: hanif/stokq
 /**
  * @param Element $element
  * @return string
  */
 public function render(Element $element)
 {
     if ($element instanceof Element\Hidden) {
         return $this->elementHelper->render($element);
     } else {
         $replaces = ['{{before}}' => '', '{{after}}' => '', '{{error_messages}}' => '', '{{elem_markup}}' => ''];
         $elemClass = $element->getAttribute('class');
         $elemType = $element->getAttribute('type');
         $placeholder = $element->getAttribute('placeholder');
         if (!$placeholder) {
             $element->setAttribute('placeholder', $element->getLabel());
         }
         if (!in_array($elemType, $this->excludedFormControlClass)) {
             $element->setAttribute('class', join(' ', ['form-control', $elemClass]));
         }
         if (method_exists($element, 'getInputSpecification')) {
             $spec = $element->getInputSpecification();
             if (isset($spec['required']) && $spec['required']) {
                 $element->setAttribute('required', 'required');
             }
         }
         if ($errorMessages = $this->errorHelper->render($element)) {
             $replaces['{{error_messages}}'] = sprintf('<div class="error-messages">%s</div>', $errorMessages);
         }
         if ($before = $element->getOption('before')) {
             $replaces['{{before}}'] = $before;
         }
         if ($after = $element->getOption('after')) {
             $replaces['{{after}}'] = $after;
         }
         $replaces['{{elem_markup}}'] = $this->elementHelper->render($element);
         return strtr($this->template, $replaces);
     }
 }
 public function render(ElementInterface $element)
 {
     $formLabel = new Helper\FormLabel();
     $formElement = new Helper\FormElement();
     $formErrors = new Helper\FormElementErrors();
     $view = $this->getView();
     $formElement->setView($view);
     $formErrors->setView($view);
     $html = '<tr>' . '<th align="right">' . $formLabel($element) . '</th>' . '<td width="10px">&nbsp;</td>' . '<td>' . $formElement($element) . '<span class="form-errors">' . $formErrors($element) . '</span>' . '</td></tr>' . PHP_EOL;
     return $html;
 }
예제 #3
0
파일: Element.php 프로젝트: coolms/common
 /**
  * @return FormElement
  */
 protected function getElementHelper()
 {
     if ($this->elementHelper) {
         return $this->elementHelper;
     }
     if (method_exists($this->view, 'plugin')) {
         $this->elementHelper = $this->view->plugin($this->defaultElementHelper);
     }
     if (!$this->elementHelper instanceof FormElement) {
         $this->elementHelper = new FormElement();
         $this->elementHelper->setView($this->getView());
     }
     return $this->elementHelper;
 }
예제 #4
0
파일: Horizontal.php 프로젝트: hanif/stokq
 /**
  * @param Element $element
  * @return string
  */
 public function render(Element $element)
 {
     if ($element instanceof Element\Hidden) {
         return $this->elementHelper->render($element);
     } else {
         $replaces = ['{{before}}' => '', '{{after}}' => '', '{{row_class}}' => $this->options['row_class'], '{{label_text}}' => $element->getLabel(), '{{label_class}}' => $this->options['label_class'], '{{elem_markup}}' => '', '{{elem_wrapper_class}}' => $this->options['elem_wrapper_class'], '{{error_messages}}' => '', '{{help_text}}' => '', '{{feedback}}' => '', '{{elem_id}}' => ''];
         $elemClass = $element->getAttribute('class');
         $elemType = $element->getAttribute('type');
         if (!in_array($elemType, $this->excludedFormControlClass)) {
             $element->setAttribute('class', join(' ', ['form-control', $elemClass]));
         }
         if ($elemType) {
             $replaces['{{elem_wrapper_class}}'] .= sprintf(' type-%s', $elemType);
         }
         if (method_exists($element, 'getInputSpecification')) {
             $spec = $element->getInputSpecification();
             if (isset($spec['required']) && $spec['required']) {
                 $replaces['{{label_class}}'] .= ' required';
                 $element->setAttribute('required', 'required');
             }
         }
         if ($errorMessages = $this->errorHelper->render($element)) {
             $replaces['{{error_messages}}'] = sprintf('<div class="error-messages">%s</div>', $errorMessages);
         }
         if ($replaces['{{error_messages}}']) {
             $replaces['{{row_class}}'] .= ' has-error';
         }
         if ($feedback = $element->getOption('feedback')) {
             $replaces['{{feedback}}'] = sprintf('<span class="fa fa-%s form-control-feedback"></span>', $feedback);
             $replaces['{{elem_wrapper_class}}'] .= ' has-feedback';
         }
         if ($helpText = $element->getOption('help')) {
             $replaces['{{help_text}}'] = sprintf('<div class="help-text help-block">%s</div>', $helpText);
         }
         if ($before = $element->getOption('before')) {
             $replaces['{{before}}'] = $before;
         }
         if ($after = $element->getOption('after')) {
             $replaces['{{after}}'] = $after;
         }
         if (!$element->getAttribute('id')) {
             $element->setAttribute('id', sprintf('input-id-%s', crc32(self::$suffix++)));
         }
         $replaces['{{elem_id}}'] = $element->getAttribute('id');
         $replaces['{{elem_markup}}'] = $this->elementHelper->render($element);
         return strtr($this->template, $replaces);
     }
 }
예제 #5
0
 public function render(ElementInterface $element = null)
 {
     if ($element->getMessages()) {
         $element->setAttribute('class', 'error ' . $element->getAttribute('class'));
     }
     return parent::render($element);
 }
예제 #6
0
    public function render(ElementInterface $element)
    {
        $attributes = $element->getAttributes();
        if (isset($attributes['custom'])) {
            $custom = $attributes['custom'];
            unset($attributes['custom']);
            $element->setAttributes($attributes);
        }
        $prefix = '';
        $suffix = '';

        // Check on name for now
        if ($attributes['type'] === 'text' && $attributes['name'] === 'email') {
            $prefix .= '<div class="input-group">';
            $prefix .= '<span class="input-group-addon">@</span>';
            $suffix .= '<span class="input-group-addon" id="basic-addon2">@example.com</span>';
            $suffix .= '</div>';
        } elseif ($attributes['type'] === 'text' && $attributes['name'] === 'keyword') {
            $prefix .= '<div class="input-group">';
            $suffix .= '<span class="input-group-btn">';
            $suffix .= sprintf('<button class="btn btn-default" type="submit">%s</button>', $custom['label']);
            $suffix .= '</span>';
        }
        return $prefix . parent::render($element) . $suffix;
    }
예제 #7
0
 public function render(ElementInterface $element)
 {
     /* just a reminder. the types are:
     			checkbox, color, date, datetime, datetime-local, email, file, hidden
     			image, month, multi_checkbox, number, password, radio, range, reset
     			search, select, submit, tel, text, textarea, time, url, week
     		*/
     $labelHelper = $this->getLabelHelper();
     $escapeHelper = $this->getEscapeHtmlHelper();
     $elementHelper = $this->getElementHelper();
     $elementErrorHelper = $this->getElementErrorHelper();
     $descriptionHelper = $this->getDescriptionHelper();
     $groupWrapper = $groupWrapper ?: $this->groupWrapper;
     $controlWrapper = $controlWrapper ?: $this->controlWrapper;
     $id = $element->getAttribute('id') ?: $element->getAttribute('name');
     $html = "";
     $label = $element->getAttribute('label');
     if ($label) {
         $html .= $labelHelper->openTag(array('for' => $id, 'class' => 'control-label'));
         // todo allow for not escaping the label
         $html .= $escapeHelper($label);
         $html .= $labelHelper->closeTag();
     }
     $html .= sprintf($controlWrapper, $id, $elementHelper->render($element), $descriptionHelper->render($element), $elementErrorHelper->render($element));
     $addtClass = $element->getMessages() ? ' error' : '';
     echo $element->getLabel();
     die;
     $output .= parent::render($element);
     return $output;
 }
 public function render(ElementInterface $element)
 {
     $req = '';
     if ($element->getOption('required')) {
         $req = 'required';
     }
     return sprintf('<tr><td>%s</td><td>%s</td>  </tr>', $element->getLabel(), parent::render($element));
 }
예제 #9
0
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         return '';
     }
     if ($element instanceof UploadcareInput) {
         $helper = $renderer->plugin('formuploadcareinputhelper');
         return $helper($element);
     }
     return parent::render($element);
 }
예제 #10
0
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         return '';
     }
     if ($element instanceof Element\PlainText) {
         $helper = $renderer->plugin('form_plain_text');
         return $helper($element);
     }
     if ($element instanceof Element\CheckboxTree) {
         $helper = $renderer->plugin('form_checkbox_tree');
         return $helper($element);
     }
     return parent::render($element);
 }
예제 #11
0
 /**
  * render
  *
  * Render a single form element.
  *
  * @param ElementInterface  $element  The form element that should be rendered.
  * @param array             $options  Optional view helper options.
  *
  * @return string
  */
 public function render(ElementInterface $element, array $options = [])
 {
     if (!empty($options)) {
         $this->setOptions($options);
     }
     $errorHtml = null;
     $helpTextHtml = null;
     $labelHtml = null;
     /** @var FormElementErrors $errorHelper */
     $errorHelper = $this->elementErrorsHelper;
     if ($errorHelper) {
         if ($this->getOption('display_error_messages', true)) {
             $errorHtml = $errorHelper($element);
         }
         $helpText = $this->getOption('help_text');
         if (empty($errorHtml) && !empty($helpText)) {
             $helpTextHtml = $errorHelper->renderMessage($helpText, HelpText::TEXT_INFO);
         }
     }
     if ($this->getOption('render_errors', true)) {
         $errorHtml = $errorHelper($element);
     }
     if ($this->getOption('render_label', true) && $element instanceof LabelAwareInterface && !$element instanceof Hidden) {
         /** @var Callable $labelHelper */
         $labelHelper = $this->labelHelper;
         $labelHtml .= $labelHelper($element);
     }
     // Input HTML
     $elementHtml = $this->elementHelper->render($element);
     // Optional wrapping tag around element
     $elementWrapper = $this->elementWrapper;
     if ($elementWrapper && $elementWrapper->hasAttribute('class') && false !== $this->getOption('element_wrapper')) {
         $elementHtml = $elementWrapper($elementHtml);
     }
     // Compose the label, element and any error HTML
     $html = $this->renderHtml($elementHtml, $labelHtml, $errorHtml);
     if (!empty($helpTextHtml)) {
         $html .= $helpTextHtml;
     }
     // Finally, an optional HTML wrapper of the completed string
     $groupHelper = $this->getGroupHelper();
     if ($groupHelper) {
         return $groupHelper($html);
     }
     return $html;
 }
예제 #12
0
 /**
  * Render an element
  *
  * Introspects the element type and attributes to determine which
  * helper to utilize when rendering.
  *
  * @param  ElementInterface $element
  * @return string
  */
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         // Bail early if renderer is not pluggable
         return '';
     }
     $type = $element->getAttribute('type');
     if (!empty($type)) {
         $pm = $renderer->getHelperPluginManager();
         if ($pm->has('form_' . $type)) {
             $helper = $pm->get('form_' . $type);
             return $helper($element);
         }
     }
     return parent::render($element);
 }
예제 #13
0
 /**
  * Render an element
  *
  * {@inheritdoc}
  */
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         // Bail early if renderer is not pluggable
         return '';
     }
     $type = $element->getAttribute('type');
     if ($type) {
         if (false === strpos($type, '\\')) {
             $type = sprintf('form_%s', str_replace('-', '_', $type));
         }
         $helper = $renderer->plugin($type);
         if ($helper) {
             return $helper($element);
         }
     }
     return parent::render($element);
 }
예제 #14
0
 /**
  * @param ElementInterface $element
  *
  * @return string
  */
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         // Bail early if renderer is not pluggable
         return '';
     }
     if ($element instanceof CoreElementInterface) {
         $helper = $element->getViewHelper();
         if (is_string($helper)) {
             $helper = $renderer->plugin($helper);
         }
         if ($helper instanceof HelperInterface) {
             $helper->setView($renderer);
         }
         return $helper($element);
     }
     return parent::render($element);
 }
예제 #15
0
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         // Bail early if renderer is not pluggable
         return '';
     }
     if ($element instanceof Rich) {
         $helper = $renderer->plugin('richelement');
         return $helper($element);
     } elseif ($element instanceof Img) {
         $helper = $renderer->plugin('imgelement');
         return $helper($element);
     } elseif ($element instanceof File) {
         $helper = $renderer->plugin('fileelement');
         return $helper($element);
     }
     return parent::render($element);
 }
 public function render(ElementInterface $element)
 {
     $renderer = $this->getView();
     if (!method_exists($renderer, 'plugin')) {
         // Bail early if renderer is not pluggable
         return '';
     }
     if ($element instanceof CoreElementInterface) {
         $helper = $element->getViewHelper();
         if (is_string($helper)) {
             $helper = $renderer->plugin($helper);
         }
         return $helper($element);
     }
     //         $type = $element->getAttribute('type');
     //         if ('checkbox' == $type) {
     //             $helper = $renderer->plugin('formcheckbox');
     //             return $helper($element);
     //         }
     return parent::render($element);
 }
예제 #17
0
 /**
  * Render an element
  *
  * @param ElementInterface $oElement        	
  * @return string
  */
 public function render(ElementInterface $oElement)
 {
     // Add form-controll class
     $sElementType = $oElement->getAttribute('type');
     if (!in_array($sElementType, $this->options->getIgnoredViewHelpers()) && !$oElement instanceof Collection) {
         $sElementClass = $oElement->getAttribute('class');
         if ($sElementClass) {
             if (!preg_match('/(\\s|^)form-control(\\s|$)/', $sElementClass)) {
                 $oElement->setAttribute('class', trim($sElementClass . ' form-control'));
             }
         } else {
             $oElement->setAttribute('class', 'form-control');
         }
     }
     $sMarkup = parent::render($oElement);
     // Addon prepend
     $aAddOnPrepend = $oElement->getOption('add-on-prepend');
     if ($aAddOnPrepend) {
         $sMarkup = $this->renderAddOn($aAddOnPrepend) . $sMarkup;
     }
     // Addon append
     $aAddOnAppend = $oElement->getOption('add-on-append');
     if ($aAddOnAppend) {
         $sMarkup .= $this->renderAddOn($aAddOnAppend);
     }
     if ($aAddOnAppend || $aAddOnPrepend) {
         $sSpecialClass = '';
         // Input size
         $sElementClass = $oElement->getAttribute('class');
         if ($sElementClass) {
             if (preg_match('/(\\s|^)input-lg(\\s|$)/', $sElementClass)) {
                 $sSpecialClass .= ' input-group-lg';
             } elseif (preg_match('/(\\s|^)input-sm(\\s|$)/', $sElementClass)) {
                 $sSpecialClass .= ' input-group-sm';
             }
         }
         return sprintf(self::$inputGroupFormat, trim($sSpecialClass), $sMarkup);
     }
     return $sMarkup;
 }
 /**
  * Render an element
  * @param \Zend\Form\ElementInterface $oElement
  * @return string
  */
 public function render(\Zend\Form\ElementInterface $oElement)
 {
     // Add form-controll class
     $sElementType = $oElement->getAttribute('type');
     if (!in_array($sElementType, array('file', 'checkbox', 'radio', 'submit', 'multi_checkbox', 'static', 'button', 'reset')) && !$oElement instanceof \Zend\Form\Element\Collection) {
         if ($sElementClass = $oElement->getAttribute('class')) {
             if (!preg_match('/(\\s|^)form-control(\\s|$)/', $sElementClass)) {
                 $oElement->setAttribute('class', trim($sElementClass . ' form-control'));
             }
         } else {
             $oElement->setAttribute('class', 'form-control');
         }
     }
     $sMarkup = parent::render($oElement);
     // Addon prepend
     if ($aAddOnPrepend = $oElement->getOption('add-on-prepend')) {
         $sMarkup = $this->renderAddOn($aAddOnPrepend) . $sMarkup;
     }
     // Addon append
     if ($aAddOnAppend = $oElement->getOption('add-on-append')) {
         $sMarkup .= $this->renderAddOn($aAddOnAppend);
     }
     if ($aAddOnAppend || $aAddOnPrepend) {
         $sSpecialClass = '';
         // Input size
         if ($sElementClass = $oElement->getAttribute('class')) {
             if (preg_match('/(\\s|^)input-lg(\\s|$)/', $sElementClass)) {
                 $sSpecialClass .= ' input-group-lg';
             } elseif (preg_match('/(\\s|^)input-sm(\\s|$)/', $sElementClass)) {
                 $sSpecialClass .= ' input-group-sm';
             }
         }
         return sprintf(self::$inputGroupFormat, trim($sSpecialClass), $sMarkup);
     }
     return $sMarkup;
 }
예제 #19
0
 public function render(ElementInterface $element)
 {
     $type = $element->getAttribute('type');
     if ($type == 'multi_checkbox' || $type == "radio") {
         $aOptions = $element->getValueOptions();
         $aAtributes = $element->getOptions();
         $aClasse = $element->getAttributes();
         $aClasse = explode(" ", @$aClasse["class"]);
         $sType = $type;
         $selected = $element->getValue();
         $disabled = $element->getAttribute("disabled");
         foreach ($aOptions as $sKey => $aOption) {
             if (is_scalar($aOption)) {
                 $aOption = array('label' => " " . $aOption, 'value' => $sKey);
             }
             $aOption['label_attributes'] = array();
             $classe = "";
             if (!in_array("not-bootstrap", $aClasse)) {
                 $classe = "btn btn-default ";
                 if ($type == "multi_checkbox") {
                     if (@in_array($sKey, $selected)) {
                         $classe .= "active";
                     }
                 } else {
                     if ($type == "radio") {
                         if ($sKey == $selected) {
                             $classe .= "active";
                         }
                     }
                 }
             }
             if (in_array("not-bootstrap", $aClasse)) {
                 $classe .= "not-bootstrap";
             }
             if ($disabled) {
                 $classe .= " disabled";
             }
             if (empty($aOption['label_attributes']['class'])) {
                 $aOption['label_attributes']['class'] = trim($classe);
             } elseif (!preg_match('/(\\s|^)' . preg_quote($classe) . '(\\s|$)/', $aOption['label_attributes']['class'])) {
                 $aOption['label_attributes']['class'] .= trim(' ' . $classe);
             }
             if (isset($aAtributes['data'])) {
                 foreach ($aAtributes['data'] as $key => $value) {
                     $aOption['label_attributes']['data-' . $key] = $value[$sKey];
                 }
             }
             if ($disabled) {
                 if ($type == "multi_checkbox") {
                     if (@in_array($sKey, $selected)) {
                         $aOptions[$sKey] = $aOption;
                     } else {
                         unset($aOptions[$sKey]);
                     }
                 } else {
                     if ($type == "radio") {
                         if ($sKey == $selected) {
                             $aOptions[$sKey] = $aOption;
                         } else {
                             unset($aOptions[$sKey]);
                         }
                     }
                 }
             } else {
                 $aOptions[$sKey] = $aOption;
             }
         }
         $element->setValueOptions($aOptions);
         if (!in_array("not-bootstrap", $aClasse)) {
             return sprintf('<div><div class="btn-group" data-toggle="buttons">%s</div></div>', parent::render($element));
         } else {
             return sprintf('<div>%s</div>', parent::render($element));
         }
     }
     return parent::render($element);
 }
예제 #20
0
 /**
  * Set Element Helper.
  *
  * @param \Zend\Form\View\Helper\FormElement $elementHelper
  *
  * @return self
  */
 public function setElementHelper(ZendFormElement $elementHelper)
 {
     $elementHelper->setView($this->getView());
     $this->elementHelper = $elementHelper;
     return $this;
 }
예제 #21
0
 /**
  * Render a form <input> element from the provided $element
  *
  * @param  ElementInterface          $element
  * @throws Exception\DomainException
  * @return string
  */
 public function render(ElementInterface $element)
 {
     $this->renderer->preRenderInputField($element);
     return parent::render($element);
 }