コード例 #1
0
ファイル: element.php プロジェクト: mirkoargentino/bbn
 /**
  * Returns the corresponding HTML string
  * 
  * @param bool $with_js Includes the javascript
  * @return string HTML string
  */
 public function html($with_js = 1)
 {
     $html = '';
     if ($this->tag) {
         $this->update();
         // TAG
         $html .= '<' . $this->tag;
         foreach ($this->attr as $key => $val) {
             if (is_string($key)) {
                 $html .= ' ' . htmlspecialchars($key) . '="';
                 if (is_numeric($val)) {
                     $html .= $val;
                 } else {
                     if (is_string($val)) {
                         $html .= htmlspecialchars($val);
                     }
                 }
                 $html .= '"';
             }
         }
         if (count($this->css) > 0) {
             $html .= self::css_to_string($this->css);
         }
         if ($this->xhtml) {
             $html .= ' /';
         }
         $html .= '>';
         if (!in_array($this->tag, self::$self_closing_tags)) {
             if (isset($this->text)) {
                 $html .= $this->text;
             }
             if (isset($this->content)) {
                 // @todo: Add the ability to imbricate elements
                 if (is_string($this->content)) {
                     $html .= $this->content;
                 } else {
                     if (is_array($this->content)) {
                         foreach ($this->content as $c) {
                             if (is_array($c)) {
                                 $c = new \bbn\html\element($c);
                             }
                             $html .= $c->html($with_js);
                         }
                     }
                 }
             }
             $html .= '</' . $this->tag . '>';
         }
         if (isset($this->placeholder) && strpos($this->placeholder, '%s') !== false) {
             $html = sprintf($this->placeholder, $html);
         }
     }
     return $html;
 }