table_attr = $this->table_attr; if ($this->edit_mode) { $this->disable = true; } // initialize result buffer $_buffer = ''; // check if form tag is included if ($this->with_form_tag) { $this->submit_target = 'submitExec'; // for debugging purpose only if (ENVIRONMENT === 'development') { $_buffer .= '# Debug|'; $_buffer .= ''; $_buffer .= ''; } $_buffer .= $this->startForm()."\n"; } // loop the form element $_row_num = 0; foreach ($this->elements as $row) { $_form_element = $row['element']->out(); if ($_form_element_info = trim($row['info']??'')) { $_form_element .= '
'.$_form_element_info.'
'; } // append row $_table->appendTableRow(array($row['label'], ':', $_form_element)); if(!empty($row['element']->element_name)) { $_table->setCellAttr($_row_num+1, null, 'id="simbioFormRow' . $row['element']->element_name . '"'); } // set the column header attr $_table->setCellAttr($_row_num+1, 0, 'width="20%" valign="top"'.$this->table_header_attr); $_table->setCellAttr($_row_num+1, 1, 'width="1%" valign="top"'.$this->table_header_attr); // set the form element column attr $_table->setCellAttr($_row_num+1, 2, 'width="79%" '.$this->table_content_attr); $_row_num++; } // link and buttons $_edit_link = ''; $_delete_button = ''; $_custom_link = ''; $_back_button = ''; $_del_value = __('Delete Record'); $_cancel_value = __('Cancel'); // check if we are on edit form mode if ($this->edit_mode) { $_edit_link .= '' . __('Edit') . ''; if($this->customBtn){ $_custom_link .= 'style.'">' . $this->str . ''; } // back button if ($this->back_button) { $_back_button = ''; } // delete button exists if the record_id properties exists if ($this->record_id && $this->delete_button) { // create delete button $_delete_button = ''; } } $_buttons = ''; // check if form tag is included if ($this->with_form_tag) { $_buttons = '' .'' .'
submit_button_attr.' /> '.$_delete_button.'
'."\n"; } // get the table result $_buffer .= $_buttons; $_buffer .= $_table->printTable(); $_buffer .= $_buttons; // extract all hidden elements here foreach ($this->hidden_elements as $_hidden) { $_buffer .= $_hidden->out(); } // update ID hidden elements if ($this->edit_mode AND $this->record_id) { // add hidden form element flag for detail editing purpose $_buffer .= ''; } // check if form tag is included if ($this->with_form_tag) { $_buffer .= $this->endForm()."\n"; } if ($this->edit_mode) { // hidden form for deleting records $_buffer .= $this->createDeleteForm(); } // hidden iframe for form executing if (ENVIRONMENT !== 'development') $_buffer .= ''; return $_buffer; } /** * Private method to create hidden form for deleting records */ private function createDeleteForm() { $form_name = 'deleteForm'; $form_token = self::genRandomToken(); $form = '
'; $form .= ''; $form .= ''; $form .= '
'; if (isset($_SESSION)) { $_SESSION['csrf_token'][$form_name] = $form_token; } return $form; } public function addCustomBtn($name,$str,$url,$style){ $this->customBtn = true; $this->name = $name; $this->str = $str; $this->url = $url; $this->style = $style; } }