top_items = array(); $this->center_items = array(); $this->bottom_items = array(); $this->tableclass = 'formtable'; if( null == $method ){ $method = 'post'; } if( null == $form_variable ){ $form_variable = 'form'; } parent::CForm($action,$method,$enctype); $this->SetTitle($title); $this->SetAlign('center'); $this->SetHelp(); // $frm_link = new CLink(); // $frm_link->SetName("formtable"); // $this->AddItemToTopRow($frm_link); $this->AddVar($form_variable, get_request($form_variable, 1)); $this->AddVar('form_refresh',get_request('form_refresh',0)+1); $this->bottom_items = new CCol(SPACE,'form_row_last'); $this->bottom_items->SetColSpan(2); } function SetAction($value){ if(is_string($value)) return parent::SetAction($value); elseif(is_null($value)) return parent::SetAction($value); else return $this->error("Incorrect value for SetAction [$value]"); } function SetName($value){ if(!is_string($value)){ return $this->error("Incorrect value for SetAlign [$value]"); } $this->AddOption('name',$value); $this->AddOption('id',$value); return true; } function SetAlign($value){ if(!is_string($value)){ return $this->error("Incorrect value for SetAlign [$value]"); } return $this->align = $value; } function SetTitle($value=NULL){ if(is_null($value)){ unset($this->title); return 0; } /* elseif(!is_string($value)){ return $this->error("Incorrect value for SetTitle [$value]"); } $this->title = nbsp($value); */ $this->title = unpack_object($value); } function SetHelp($value=NULL){ if(is_null($value)) { $this->help = new CHelp(); } elseif(strtolower(get_class($value)) == 'chelp') { $this->help = $value; } elseif(is_string($value)) { $this->help = new CHelp($value); if($this->GetName()==NULL) $this->SetName($value); } else { return $this->error("Incorrect value for SetHelp [$value]"); } return 0; } function AddVar($name, $value){ $this->AddItemToTopRow(new CVar($name, $value)); } function AddItemToTopRow($value){ array_push($this->top_items, $value); } function AddRow($item1, $item2=NULL, $class=NULL){ if(strtolower(get_class($item1)) == 'crow'){ } else if(strtolower(get_class($item1)) == 'ctable'){ $td = new CCol($item1,'form_row_c'); $td->SetColSpan(2); $item1 = new CRow($td); } else{ $tmp = $item1; if(is_string($item1)){ $item1=nbsp($item1); } if(empty($item1)) $item1 = SPACE; if(empty($item2)) $item2 = SPACE; $item1 = new CRow( array( new CCol($item1,'form_row_l'), new CCol($item2,'form_row_r') ), $class); } array_push($this->center_items, $item1); } function AddSpanRow($value, $class=NULL){ if(is_string($value)) $item1=nbsp($value); if(is_null($value)) $value = SPACE; if(is_null($class)) $class = 'form_row_c'; $col = new CCol($value,$class); $col->SetColSpan(2); array_push($this->center_items,new CRow($col)); } function AddItemToBottomRow($value){ $this->bottom_items->AddItem($value); } function SetTableClass($class){ if(is_string($class)){ $this->tableclass = $class; } } /* protected */ function BodyToString(){ parent::BodyToString(); $tbl = new CTable(NULL,$this->tableclass); $tbl->SetOddRowClass('form_odd_row'); $tbl->SetEvenRowClass('form_even_row'); $tbl->SetCellSpacing(0); $tbl->SetCellPadding(1); $tbl->SetAlign($this->align); # add first row $col = new CCol(NULL,'form_row_first'); $col->SetColSpan(2); if(isset($this->help)) $col->AddItem($this->help); if(isset($this->title)) $col->AddItem($this->title); foreach($this->top_items as $item) $col->AddItem($item); $tbl->SetHeader($col); # add last row $tbl->SetFooter($this->bottom_items); # add center rows foreach($this->center_items as $item){ $tbl->AddRow($item); } return $tbl->ToString(); } } ?>