thomascube
2011-08-18 fbe54043cf598b19a753dc2b21a7ed558d23fd15
program/include/html.php
@@ -271,7 +271,7 @@
    protected $type = 'text';
    protected $allowed = array('type','name','value','size','tabindex',
   'autocomplete','checked','onchange','onclick','disabled','readonly',
   'spellcheck','results','maxlength','src');
   'spellcheck','results','maxlength','src','multiple');
    /**
     * Object constructor
@@ -524,7 +524,6 @@
        }
    }
    /**
     * Get HTML code for this object
     *
@@ -563,7 +562,7 @@
{
    protected $tagname = 'table';
    protected $allowed = array('id','class','style','width','summary',
   'cellpadding','cellspacing','border');
       'cellpadding','cellspacing','border');
    private $header = array();
    private $rows = array();
@@ -630,24 +629,23 @@
    public function remove_column($class)
    {
        // Remove the header
        foreach($this->header as $index=>$header){
            if($header->attrib['class'] == $class){
        foreach ($this->header as $index=>$header){
            if ($header->attrib['class'] == $class){
                unset($this->header[$index]);
                break;
            }
        }
        // Remove cells from rows
        foreach($this->rows as $i=>$row){
            foreach($row->cells as $j=>$cell){
                if($cell->attrib['class'] == $class){
        foreach ($this->rows as $i=>$row){
            foreach ($row->cells as $j=>$cell){
                if ($cell->attrib['class'] == $class){
                    unset($this->rows[$i]->cells[$j]);
                    break;
                }
            }
        }
    }
    /**
     * Jump to next row
@@ -664,16 +662,35 @@
    }
    /**
     * Set current row attrib
     * Set row attributes
     *
     * @param array $attr Row attributes
     * @param array $attr  Row attributes
     * @param int   $index Optional row index (default current row index)
     */
    public function set_row_attribs($attr = array())
    public function set_row_attribs($attr = array(), $index = null)
    {
        if (is_string($attr))
           $attr = array('class' => $attr);
        $this->rows[$this->rowindex]->attrib = $attr;
        if ($index === null)
            $index = $this->rowindex;
        $this->rows[$index]->attrib = $attr;
    }
    /**
     * Get row attributes
     *
     * @param int $index Row index
     *
     * @return array Row attributes
     */
    public function get_row_attribs($index = null)
    {
        if ($index === null)
            $index = $this->rowindex;
        return $this->rows[$index] ? $this->rows[$index]->attrib : null;
    }
    /**
@@ -686,7 +703,7 @@
    {
        if (is_array($attrib))
            $this->attrib = array_merge($this->attrib, $attrib);
        $thead = $tbody = "";
        // include <thead>
@@ -695,7 +712,7 @@
            foreach ($this->header as $c => $col) {
                $rowcontent .= self::tag('td', $col->attrib, $col->content);
            }
            $thead = self::tag('thead', null, self::tag('tr', null, $rowcontent));
            $thead = self::tag('thead', null, self::tag('tr', null, $rowcontent, parent::$common_attrib));
        }
        foreach ($this->rows as $r => $row) {
@@ -705,7 +722,7 @@
            }
            if ($r < $this->rowindex || count($row->cells)) {
                $tbody .= self::tag('tr', $row->attrib, $rowcontent);
                $tbody .= self::tag('tr', $row->attrib, $rowcontent, parent::$common_attrib);
            }
        }
@@ -719,7 +736,7 @@
        unset($this->attrib['cols'], $this->attrib['rowsonly']);
        return parent::show();
    }
    /**
     * Count number of rows
     *
@@ -729,5 +746,15 @@
    {
      return count($this->rows);
    }
    /**
     * Remove table body (all rows)
     */
    public function remove_body()
    {
        $this->rows     = array();
        $this->rowindex = 0;
    }
}