示例#1
0
 function _attrs($extra, $names)
 {
     $body = [];
     $a = [];
     foreach ((array) $names as $name) {
         if (strlen($name) && isset($extra[$name])) {
             $a[$name] = $extra[$name];
         }
     }
     // Try to find and allow all data-* and ng-* attributes automatically
     foreach ((array) $extra as $name => $val) {
         if (strpos($name, 'data-') === 0 || strpos($name, 'ng-') === 0) {
             $a[$name] = $val;
         }
     }
     // Custom html attributes forced with sub-array "attr"
     if (is_array($extra['attr'])) {
         foreach ($extra['attr'] as $name => $val) {
             if (strlen($name)) {
                 $a[$name] = $val;
             }
         }
     }
     // Make sure that class attribute contains unique names and also cleanup extra spaces
     if (isset($a['class']) && strpos($a['class'], ' ') !== false) {
         $a['class'] = _attr_class_clean($a['class']);
     }
     foreach ($a as $name => $val) {
         if (is_array($val)) {
             $body[$name] = _htmlchars($name) . '="' . http_build_query(_htmlchars($val)) . '"';
         } else {
             if (!strlen($val)) {
                 continue;
             }
             if ($name == 'id') {
                 $val = fix_html_attr_id($val);
             }
             $body[$name] = _htmlchars($name) . '="' . _htmlchars($val) . '"';
         }
     }
     return $body ? ' ' . implode(' ', $body) : '';
 }
示例#2
0
 public function test_container()
 {
     $this->assertEquals('<form method="post" action="' . self::$action . '" class="form-horizontal" name="form_action" autocomplete="1"><fieldset>' . '<div class="' . self::$css['CLASS_FORM_GROUP'] . '"><div class="' . _attr_class_clean(self::$css['CLASS_CONTROLS'] . self::$css['CLASS_NO_LABEL']) . '"><section id="test"></section></div></div></fieldset></form>', str_replace(PHP_EOL, '', trim(form()->container('<section id="test"></section>'))));
     $this->assertEquals('<section id="test"></section>', trim(self::form_no_chain($r)->container('<section id="test"></section>')));
 }