AddItem($item); $this->SetClass($class); } function SetAlign($value){ return $this->options['align'] = $value; } function SetRowSpan($value){ return $this->options['rowspan'] = strval($value); } function SetColSpan($value){ return $this->options['colspan'] =strval($value); } function SetWidth($value){ if(is_string($value))$this->AddOption('width',$value); } } class CRow extends CTag{ /* public */ function CRow($item=NULL,$class=NULL){ parent::CTag("tr","yes"); $this->AddItem($item); $this->SetClass($class); } function SetAlign($value){ return $this->options['align'] = $value; } function AddItem($item){ if(strtolower(get_class($item))=='ccol') { parent::AddItem($item); } elseif(is_array($item)){ foreach($item as $el){ if(strtolower(get_class($el))=='ccol') { parent::AddItem($el); } else if(!is_null($el)){ parent::AddItem(new CCol($el)); } } } elseif(!is_null($item)){ parent::AddItem(new CCol($item)); } } function SetWidth($value){ if(is_string($value))$this->AddOption('width',$value); } } class CTable extends CTag{ /* protected *//* var $oddRowClass; var $evenRowClass; var $header; var $headerClass; var $colnum; var $rownum; var $footer; var $footerClass; var $message;*/ /* public */ function CTable($message=NULL,$class=NULL){ parent::CTag("table","yes"); $this->SetClass($class); $this->rownum = 0; $this->oddRowClass = NULL; $this->evenRowClass = NULL; $this->header = ''; $this->headerClass = NULL; $this->footer = ''; $this->footerClass = NULL; $this->colnum = 1; $this->message = $message; } function SetOddRowClass($value=NULL){ $this->oddRowClass = $value; } function SetEvenRowClass($value=NULL){ $this->evenRowClass = $value; } function SetAlign($value){ return $this->options['align'] = $value; } function SetCellPadding($value){ return $this->options['cellpadding'] = strval($value); } function SetCellSpacing($value){ return $this->options['cellspacing'] = strval($value); } function PrepareRow($item,$rowClass=NULL){ if(is_null($item)) return NULL; if(strtolower(get_class($item))=='ccol') { if(isset($this->header) && !isset($item->options['colspan'])) $item->options['colspan'] = $this->colnum; $item = new CRow($item,$rowClass); } if(strtolower(get_class($item))=='crow') { if(isset($rowClass)) $item->SetClass($rowClass); } else{ $item = new CRow($item,$rowClass); } if(!isset($item->options['class'])){ $item->SetClass(($this->rownum % 2) ? $this->oddRowClass: $this->evenRowClass); }/**/ return $item; } function SetHeader($value=NULL,$class=NULL){ if(isset($_REQUEST['print'])) hide_form_items($value); if(is_null($class)) $class = $this->headerClass; if(strtolower(get_class($value))=='crow') { if(!is_null($class)) $value->SetClass($class); }else{ $value = new CRow($value,$class); } $this->colnum = $value->ItemsCount(); $this->header = $value->ToString(); } function SetFooter($value=NULL,$class=NULL){ if(isset($_REQUEST['print'])) hide_form_items($value); if(is_null($class)) $class = $this->footerClass; $this->footer = $this->PrepareRow($value,$class); $this->footer = $this->footer->ToString(); } function AddRow($item,$rowClass=NULL){ $item = $this->AddItem($this->PrepareRow($item,$rowClass)); ++$this->rownum; return $item; } function ShowRow($item,$rowClass=NULL){ // needed for PHP4 $tempobj = $this->PrepareRow($item,$rowClass); echo $tempobj->ToString(); unset($tempobj); //--------------- ++$this->rownum; } /* protected */ function GetNumRows(){ return $this->rownum; } function StartToString(){ $ret = parent::StartToString(); $ret .= $this->header; return $ret; } function EndToString(){ $ret = ""; if($this->rownum == 0 && isset($this->message)) { $ret = $this->PrepareRow(new CCol($this->message,'message')); $ret = $ret->ToString(); } $ret .= $this->footer; $ret .= parent::EndToString(); return $ret; } } ?>