function ruleApply(\HTML_QuickForm2_Node &$el, $qf_rule, $laravel_rule, $params = null, $replaces = []) { switch (true) { case isset($this->validator_messages[$el->getNameDot() . '.' . $laravel_rule]): $message = $this->validator_messages[$el->getNameDot() . '.' . $laravel_rule]; break; case isset($this->validator_messages[$laravel_rule]): $message = $this->validator_messages[$laravel_rule]; break; default: $message = \Lang::get('validation.' . $laravel_rule); break; } $message = str_replace(':attribute', '"' . $el->getLabel() . '"', $message); $message = str_replace(array_keys($replaces), array_values($replaces), $message); $el->addRule($qf_rule, $message, $params, \HTML_QuickForm2_Rule::ONBLUR_CLIENT); }
public static function _renderLabel(HTML_QuickForm2_Renderer $renderer, HTML_QuickForm2_Node $node) { $html = array(); $label = $node->getLabel(); if (!is_array($label)) { $label = array($label); } if ($node->isRequired()) { $renderer->hasRequired = true; } if (!empty($label[0])) { if ($node instanceof HTML_QuickForm2_Container) { $html[] = '<label">'; } else { $html[] = '<label for="' . $node->getId() . '">'; } if ($node->isRequired()) { $html[] = '<span class="required">* </span>'; } $html[] = array_shift($label); $html[] = '</label>'; } return implode('', $html); }
/** * Creates an array with fields that are common to all elements * * @param HTML_QuickForm2_Node Element being rendered * @return array */ public function buildCommonFields(HTML_QuickForm2_Node $element) { $ary = array('id' => $element->getId(), 'frozen' => $element->toggleFrozen()); if ($labels = $element->getLabel()) { if (!is_array($labels) || !$this->options['static_labels']) { $ary['label'] = $labels; } else { foreach ($labels as $key => $label) { $key = is_int($key) ? $key + 1 : $key; if (1 === $key) { $ary['label'] = $label; } else { $ary['label_' . $key] = $label; } } } } if (($error = $element->getError()) && $this->options['group_errors']) { $this->array['errors'][$ary['id']] = $error; } elseif ($error) { $ary['error'] = $error; } if (isset($this->styles[$ary['id']])) { $ary['style'] = $this->styles[$ary['id']]; } if (!$element instanceof HTML_QuickForm2_Container) { $ary['html'] = $element->__toString(); } else { $ary['elements'] = array(); $ary['attributes'] = $element->getAttributes(true); } return $ary; }
/** * Processes the element's template, adding label(s), required note and error message * * @param string Element template * @param HTML_QuickForm2_Node Element being rendered * @return string Template with some substitutions done */ public function prepareTemplate($elTpl, HTML_QuickForm2_Node $element) { // if element is required $elTpl = $this->markRequired($elTpl, $element->isRequired()); $elTpl = $this->outputError($elTpl, $element->getError()); return $this->outputLabel($elTpl, $element->getLabel()); }
/** * Creates an array with fields that are common to all elements * * @param HTML_QuickForm2_Node Element being rendered * * @return array */ public function buildCommonFields(HTML_QuickForm2_Node $element) { $keyn = $this->options['key_id'] ? 'id' : 'name'; $ary = array('id' => $element->getId(), 'frozen' => $element->toggleFrozen(), 'name' => $element->getName()); // Key that we use for putting into arrays so that smarty can extract them. // Note that the name may be empty. $key_val = $ary[$keyn]; if ($key_val == '') { $key_val = $ary['id']; } if ($labels = $element->getLabel()) { if (!is_array($labels) || !$this->options['static_labels']) { $ary['label'] = $labels; } else { foreach ($labels as $key => $label) { $key = is_int($key) ? $key + 1 : $key; if (1 === $key) { $ary['label'] = $label; } else { $ary['label_' . $key] = $label; } } } } // Smarty: group_errors under 'name' or 'id' depending on key_id option: if (($error = $element->getError()) && $this->options['group_errors']) { $this->array['errors'][$key_val] = $error; } elseif ($error) { $ary['error'] = $error; } if (isset($this->styles[$key_val])) { $ary['style'] = $this->styles[$key_val]; } if (!$element instanceof HTML_QuickForm2_Container) { $ary['html'] = $element->__toString(); } else { $ary['elements'] = array(); $ary['attributes'] = $element->getAttributes(true); } return $ary; }