I'm glad of your help, but it did not work either as you say
Meanwhile, I found some very interesting tools:
http://marcelog.github.io/articles/ci_jenkins_hudson_continuous_integration_php_phing.html
And look the modifies:
Admin/fields.php
case 'save':
if ( !$GLOBALS['xoopsSecurity']->check() ) {
redirect_header('fields.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
}
if (isset($field_id)) {
$obj =& $fieldsHandler->get($field_id);
} else {
$obj =& $fieldsHandler->create();
}
if ($table_nbfields > 0) {
for( $i = 0; $i < $table_nbfields; $i++ ) {
$datas[] = array('field_mid' => $table_mid[$i],
'field_tid' => $table_id[$i],
'field_numb' => $table_nbfields[$i],
'field_name' => $_POST['field_name'][$i],
'field_type' => $_POST['field_type'][$i],
'field_value' => $_POST['field_value'][$i],
'field_attribute' => $_POST['field_attribute'][$i],
'field_null' => $_POST['field_null'][$i],
'field_default' => $_POST['field_default'][$i],
'field_key' => $_POST['field_key'][$i],
'field_autoincrement' => (($_REQUEST['field_autoincrement'][$i] == 1) ? '1' : '0'),
'field_element' => $_POST['field_element'][$i],
'field_inlist' => (($_REQUEST['field_inlist'][$i] == 1) ? '1' : '0'),
'field_inform' => (($_REQUEST['field_inform'][$i] == 1) ? '1' : '0'),
'field_admin' => (($_REQUEST['field_admin'][$i] == 1) ? '1' : '0'),
'field_user' => (($_REQUEST['field_user'][$i] == 1) ? '1' : '0'),
'field_block' => (($_REQUEST['field_block'][$i] == 1) ? '1' : '0'),
'field_main' => (($i == $_REQUEST['field_main']) ? '1' : '0'),
'field_search' => (($_REQUEST['field_search'][$i] == 1) ? '1' : '0'),
'field_required' => (($_REQUEST['field_required'][$i] == 1) ? '1' : '0')
);
foreach ($datas as $value) {
$obj->setVars( $value );
$fieldsHandler->insert($obj);
}
}
}
if ($obj->isNew()) {
redirect_header('fields.php', 2, sprintf(_AM_TDMCREATE_FIELD_FORM_SAVED_OK, $_REQUEST['table_name']));
} else {
redirect_header('fields.php', 2, sprintf(_AM_TDMCREATE_FIELD_FORM_UPDATED_OK, $_REQUEST['table_name']));
}
//
$GLOBALS['xoopsTpl']->assign('error', $obj->getHtmlErrors());
$form = $obj->getForm($field_mid, $field_tid, $field_numb, $field_name);
$GLOBALS['xoopsTpl']->assign('form', $form->render());
break;
class/fields.php
public function getForm($f_mid = null, $f_tid = null, $f_numb = null, $f_name = null, $action = false)
{
if ($action === false) {
$action = XOOPS_URL.'/modules/TDMCreate/admin/fields.php'; //$_SERVER['REQUEST_URI'];
}
$isNew = $this->isNew();
$title = $isNew ? sprintf(_AM_TDMCREATE_FIELD_ADD) : sprintf(_AM_TDMCREATE_FIELD_EDIT);
$field_mid = $isNew ? $f_mid : $this->getVar('field_mid');
$field_tid = $isNew ? $f_tid : $this->getVar('field_tid');
$field_numb = $isNew ? $f_numb : $this->getVar('field_numb');
$form = new TDMCreateThemeForm(null, 'form', $action, 'post', true);
$form->setExtra('enctype="multipart/form-data"');
$tablesHandler = xoops_getModuleHandler('tables');
//$fieldsHandler = xoops_getModuleHandler('fields');
$fieldelementsHandler =& xoops_getModuleHandler('fieldelements');
$fieldtypeHandler =& xoops_getModuleHandler('fieldtype');
$fieldattrsHandler =& xoops_getModuleHandler('fieldattributes');
$fieldnullHandler =& xoops_getModuleHandler('fieldnull');
$fieldkeyHandler =& xoops_getModuleHandler('fieldkey');
// New Object HtmlTable
$form->addElement(new TDMCreateFormLabel('<table border="0" cellspacing="1" class="outer width100">'));
$form->addElement(new TDMCreateFormLabel('<thead class="center">'));
$form->addElement(new TDMCreateFormLabel('<tr class="head"><th colspan="9">'.$title.'</th></tr>'));
$form->addElement(new TDMCreateFormLabel('<tr class="head width5">'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_NUMBER.'</td>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_NAME.'</td>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_TYPE.'</td>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_VALUE.'</th>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_ATTRIBUTE.'</th>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_NULL.'</th>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_DEFAULT.'</th>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_KEY.'</th>'));
$form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_PARAMETERS.'</th>'));
$form->addElement(new TDMCreateFormLabel('</tr></thead>'));
$form->addElement(new TDMCreateFormLabel('<tbody>'));
//$fields = $fieldsHandler->getObjects(null);
$class = '';
for($i = 1; $i <= $field_numb; $i++)
{
$class = ($class == 'even') ? 'odd' : 'even';
$form->addElement(new TDMCreateFormLabel('<tr class="'.$class.'">'));
// Index ID
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$i.'</td>'));
// Field Name
$this_field_name = $isNew ? (!empty($f_name) ? $f_name . '_' : '') : $this->getVar('field_name');
$field_name = new XoopsFormText(_AM_TDMCREATE_FIELD_NAME, 'field_name['.$i.']', 15, 255, $this_field_name);
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$field_name->render().'</td>'));
// Field Type
$fieldtype_select = new XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_type['.$i.']', $this->getVar('field_type'));
$fieldtype_select->addOptionArray($fieldtypeHandler->getList());
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldtype_select->render().'</td>'));
// Field Value
$field_value = new XoopsFormText(_AM_TDMCREATE_FIELD_VALUE, 'field_value['.$i.']', 5, 20, $this->getVar('field_value'));
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$field_value->render().'</td>'));
// Field Attributes
$field_attributes_select = new XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_attribute['.$i.']', $this->getVar('field_attribute'));
$field_attributes_select->addOptionArray($fieldattrsHandler->getList());
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$field_attributes_select->render().'</td>'));
// Field Null
$field_null_select = new XoopsFormSelect(_AM_TDMCREATE_FIELD_NULL, 'field_null['.$i.']', $this->getVar('field_null'));
$field_null_select->addOptionArray($fieldnullHandler->getList());
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$field_null_select->render().'</td>'));
// Field Default
$field_default = new XoopsFormText(_AM_TDMCREATE_FIELD_DEFAULT, 'field_default['.$i.']', 15, 25, $this->getVar('field_default'));
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$field_default->render().'</td>'));
// Field Key
$field_key_select = new XoopsFormSelect(_AM_TDMCREATE_FIELD_KEY, 'field_key['.$i.']', $this->getVar('field_key'));
$field_key_select->addOptionArray($fieldkeyHandler->getList());
$form->addElement(new TDMCreateFormLabel('<td class="center">'.$field_key_select->render().'</td>'));
// Field Autoincrement
if($i == 1) {
$field_autoincrement = $this->isNew() ? 0 : $this->getVar('field_autoincrement');
$check_field_autoincrement = new XoopsFormCheckBox(' ', 'field_autoincrement['.$i.']', $field_autoincrement);
$check_field_autoincrement->addOption(1, _AM_TDMCREATE_FIELD_AUTO_INCREMENT);
$form->addElement(new TDMCreateFormLabel('<td>'.$check_field_autoincrement->render().'</td></tr>'));
} elseif($i > 1) {
// Box header row
$parameters_tray = new XoopsFormElementTray('', '<br />');
// Field Elements
$field_elements_select = new XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element['.$i.']', $this->getVar('field_element'));
$field_elements_select->addOptionArray($fieldelementsHandler->getList());
$criteria = new CriteriaCompo(new Criteria('table_id', $f_tid));
$criteria->add(new Criteria('table_mid', $f_mid));
$criteria->setSort('table_name');
$criteria->setOrder('ASC');
$table_arr = $tablesHandler->getAll($criteria);
unset($criteria);
foreach (array_keys($table_arr) as $xft_other)
{
$form_table_name = $table_arr[$xft_other]->getVar('table_name');
if ( $xft_other[$i] == 'XoopsFormTables-'.$form_table_name ) {
$field_elements_select->addOption('XoopsFormTables-'.$form_table_name, 'Table : '.$form_table_name);
}
}
$parameters_tray->addElement($field_elements_select);
$field_inlist = $this->isNew() ? 0 : $this->getVar('field_inlist');
$check_field_inlist = new XoopsFormCheckBox(' ', 'field_inlist['.$i.']', $field_inlist);
$check_field_inlist->addOption(1, _AM_TDMCREATE_FIELD_INLIST);
$parameters_tray->addElement($check_field_inlist);
$field_inform = $this->isNew() ? 0 : $this->getVar('field_inform');
$check_field_inform = new XoopsFormCheckBox(' ', 'field_inform['.$i.']', $field_inform);
$check_field_inform->addOption(1, _AM_TDMCREATE_FIELD_INFORM);
$parameters_tray->addElement($check_field_inform);
$field_admin = $this->isNew() ? 0 : $this->getVar('field_admin');
$check_field_admin = new XoopsFormCheckBox(' ', 'field_admin['.$i.']', $field_admin);
$check_field_admin->addOption(1, _AM_TDMCREATE_FIELD_ADMIN);
$parameters_tray->addElement($check_field_admin);
$field_user = $this->isNew() ? 0 : $this->getVar('field_user');
$check_field_user = new XoopsFormCheckBox(' ', 'field_user['.$i.']', $field_user);
$check_field_user->addOption(1, _AM_TDMCREATE_FIELD_USER);
$parameters_tray->addElement($check_field_user);
$field_block = $this->isNew() ? 0 : $this->getVar('field_block');
$check_field_block = new XoopsFormCheckBox('', 'field_block['.$i.']', $field_block);
$check_field_block->addOption(1, _AM_TDMCREATE_FIELD_BLOCK);
$parameters_tray->addElement($check_field_block);
$field_mnfield = $this->isNew() ? 1 : $this->getVar('field_main');
$field_main = new XoopsFormRadio('', 'field_main['.$i.']', $field_mnfield);
$field_main->addOption( $i, _AM_TDMCREATE_FIELD_MAINFIELD );
$parameters_tray->addElement($field_main);
$field_search = $this->isNew() ? 0 : $this->getVar('field_search');
$check_field_search = new XoopsFormCheckBox(' ', 'field_search['.$i.']', $field_search);
$check_field_search->addOption(1, _AM_TDMCREATE_FIELD_SEARCH);
$parameters_tray->addElement($check_field_search);
$field_required = $this->isNew() ? 0 : $this->getVar('field_required');
$check_field_required = new XoopsFormCheckBox(' ', 'field_required['.$i.']', $field_required);
$check_field_required->addOption(1, _AM_TDMCREATE_FIELD_REQUIRED);
$parameters_tray->addElement($check_field_required);
$form->addElement(new TDMCreateFormLabel('<td>'.$parameters_tray->render().'</td></tr>'));
}
$form->addElement(new XoopsFormHidden('field_id['.$i.']', $i));
}
$form->addElement(new XoopsFormHidden('field_mid', $field_mid));
$form->addElement(new XoopsFormHidden('field_tid', $field_tid));
$form->addElement(new XoopsFormHidden('field_numb', $field_numb));
$form->addElement(new TDMCreateFormLabel('</tbody>'));
$form->addElement(new TDMCreateFormLabel('<tfoot><tr>'));
$form_hidden = new XoopsFormHidden('op', 'save');
$form_button = new XoopsFormButton('', 'submit', _SUBMIT, 'submit');
$form->addElement(new TDMCreateFormLabel('<td colspan="8">'.$form_hidden->render().'</td>'));
$form->addElement(new TDMCreateFormLabel('<td>'.$form_button->render().'</td>'));
$form->addElement(new TDMCreateFormLabel('</tr></tfoot></table>'));
return $form;
}
I posted all the code so that can see even those who are not registered to the forum and the potential to help