コード例 #1
0
ファイル: Closure.php プロジェクト: johnstyle/sjo
 function __set($name, $data)
 {
     if (Validate::isCallable($data)) {
         $this->methods[$name] = $data;
     } else {
         $this->properties[$name] = $data;
     }
     return $this;
 }
コード例 #2
0
ファイル: Dom.php プロジェクト: johnstyle/sjo
 protected final function buildElements($elements)
 {
     foreach ($elements as $name => &$element) {
         if (in_array($name, $this->wrappers) && is_array($element)) {
             foreach ($element as &$el) {
                 if (is_object($el) && method_exists($el, 'html') && in_array(__CLASS__, class_parents($el))) {
                     $el = $el->html();
                 } elseif (Validate::isCallable($el) && in_array(__CLASS__, class_parents($el))) {
                     $el = call_user_func($el);
                 } elseif (is_array($el)) {
                     $el = $this->buildElements($el);
                 }
             }
         }
     }
     return $elements;
 }
コード例 #3
0
ファイル: Form.php プロジェクト: johnstyle/sjo
 /**
  * @return bool
  */
 protected function validateForm()
 {
     foreach ($this->getFormFields() as $name => $attr) {
         // Get field label
         $label = $this->getFieldLabel($name);
         if (isset($attr['validate'])) {
             if (Validate::isCallable($attr['validate'])) {
                 call_user_func($attr['validate'], $attr, $name, $label);
             } elseif (preg_match("#^:([[:alnum:]]+)\$#", $attr['validate'], $match)) {
                 if (Request::env('POST')->{$name}->val() !== Request::env('POST')->{$match[1]}->val()) {
                     $this->setError($name, I18n::__('The field %s must be identical to %s.', '<strong>' . $label . '</strong>', '<strong>' . $this->getFieldLabel($match[1]) . '</strong>'));
                 }
             }
         }
     }
     return !$this->hasErrors();
 }