function m_save_field($edit = 0) { global $xoopsModule, $xoopsModuleConfig, $xoopsSecurity; $query = ''; foreach ($_POST as $k => $v) { ${$k} = $v; if ($k == 'XOOPS_TOKEN_REQUEST' || $k == 'action' || $k == 'sbt') { continue; } $query .= $query == '' ? "{$k}=" . urlencode($v) : "&{$k}=" . urlencode($v); } $action = $edit ? '?action=edit&id=' . $id : '?action=new&'; if (!$xoopsSecurity->check()) { redirectMsg('fields.php?action=' . ($edit ? 'edit&id=' . $id : 'new') . '&' . $query, __('Session token expired!', 'match'), 1); die; } if ($name == '') { redirectMsg('fields.php?action=' . ($edit ? 'edit&id=' . $id : 'new') . '&' . $query, __('Please fill all required data!', 'match'), 1); } if ($edit) { if ($id <= 0) { redirectMsg('./fields.php', __('Field ID not valid!', 'match'), 1); die; } //Verificamos que el trabajo exista $field = new MCHField($id); if ($field->isNew()) { redirectMsg('./champ.php', __('Specified field does not exists!', 'match'), 1); die; } } else { $field = new MCHField(); } $db = XoopsDatabaseFactory::getDatabaseConnection(); // Check if work exists already if ($edit) { $sql = "SELECT COUNT(*) FROM " . $db->prefix("mch_fields") . " WHERE name='{$name}' and id_field<>'{$id}'"; } else { $sql = "SELECT COUNT(*) FROM " . $db->prefix("mch_fields") . " WHERE name='{$name}'"; } list($num) = $db->fetchRow($db->query($sql)); if ($num > 0) { redirectMsg("fields.php" . $action . $query, __('A field with same name already exists!', 'match'), 1); die; } //Genera $nameid Nombre identificador $found = false; $i = 0; if ($name != $field->getVar('name') || empty($nameid)) { do { $nameid = TextCleaner::sweetstring($name) . ($found ? $i : ''); $sql = "SELECT COUNT(*) FROM " . $db->prefix('mch_fields') . " WHERE nameid = '{$nameid}'"; list($num) = $db->fetchRow($db->queryF($sql)); if ($num > 0) { $found = true; $i++; } else { $found = false; } } while ($found == true); } $field->setVar('name', $name); $field->setVar('nameid', $nameid); $field->setVar('description', $description); if (!$field->save()) { redirectMsg('./fields.php' . $action . $query, __('Errors ocurred while trying to update database!', 'match') . $field->errors(), 1); die; } else { redirectMsg('./fields.php?id=' . $field->id(), __('Field saved successfully!', 'match'), 0); die; } }