/** * Ajoute/modifie un astéroïde * @param string $coords * @param array $ress_val * @return boolean */ public function add_asteroid($coords, $ress_val) { if (!Members::CheckPerms('CARTOGRAPHIE_ASTEROID')) { return $this->AddErreur($this->lng['class_err_noaxx']); } $Ressource = DataEngine::a_Ressources(); $warn = ''; if (!$this->FormatId(trim($coords), $uni, $sys, 'asteroid')) { return false; } $query = 'SELECT `ID` FROM `SQL_PREFIX_Coordonnee` where `POSIN`=' . $uni . ' AND `COORDET`=\'' . $sys . '\''; $array = DataEngine::sql($query); $ligne = mysql_fetch_array($array); $do_update = intval($ligne['ID']); $sql = $insert_Val = $insert_field = ''; foreach ($ress_val as $id => $value) { if (!is_numeric($id)) { continue; } if (!$this->Ressources_Check_Value($value, false)) { return $this->AddErreur(sprintf($this->lng['class_err_ress'], $Ressource[$id]['Nom'], $value)); } $field = mysql_escape_string($Ressource[$id]['Field']); $newval = mysql_escape_string($value); if ($do_update) { if ($sql != '') { $sql .= ', '; } $sql .= '`' . $field . '`= \'' . $newval . '\''; } else { if ($insert_Val != '') { $insert_Val .= ', '; } $insert_Val .= '\'' . $newval . '\''; if ($insert_field != '') { $insert_field .= ', '; } $insert_field .= '`' . $field . '`'; } } if ($do_update) { $updated = 0; $query = 'UPDATE `SQL_PREFIX_Coordonnee` SET `udate`=' . time() . ', `UTILISATEUR`=\'' . $_SESSION['_login'] . '\' WHERE `ID`=' . $do_update; DataEngine::sql($query); $query = 'UPDATE `SQL_PREFIX_Coordonnee_Planetes` SET ' . $sql . ' WHERE `pID`=' . $do_update; DataEngine::sql($query); return $this->AddInfo(sprintf($this->lng['class_asteroid_msg1'], $uni, $sys)); } else { $query = 'INSERT INTO `SQL_PREFIX_Coordonnee` (`TYPE`,`POSIN`,`COORDET`,`NOTE`,`udate`,`UTILISATEUR`) '; $query .= 'VALUES (4,' . $uni . ',\'' . $sys . '\',\'' . $qnote . '\',' . time() . ',\'' . $_SESSION['_login'] . '\')'; DataEngine::sql($query); $pID = mysql_insert_id(); $query2 = 'INSERT INTO `SQL_PREFIX_Coordonnee_Planetes` (`pID`,' . $insert_field . ') VALUES(' . $pID . ',' . $insert_Val . ')'; DataEngine::sql($query2, false); return $this->AddInfo(sprintf($this->lng['class_asteroid_msg2'], $uni, $sys)); if ($warn != '') { DataEngine::sql('DELETE FROM `SQL_PREFIX_Coordonnee` WHERE `ID`=' . $pID . ' LIMIT 1'); return $this->AddErreur($warn); } return $this->AddInfo(sprintf($this->lng['class_asteroid_msg2'], $uni, $sys)); } }
$carto->add_player($_POST['COORIN'], $_POST['INFOS'], $_POST['USER'], $_POST['EMPIRE']); break; case '1': // vortex $carto->add_vortex($_POST['COORIN'], $_POST['COOROUT']); break; case '2': // planet foreach (DataEngine::a_Ressources() as $id => $dummy) { $Ress[$id] = gpc_esc($_POST['RESSOURCE' . $id]); } $carto->add_planet($_POST['COORIN'], $Ress); break; case '4': // asteroid foreach (DataEngine::a_Ressources() as $id => $dummy) { $Ress[$id] = gpc_esc($_POST['RESSOURCE' . $id]); } $carto->add_asteroid($_POST['COORIN'], $Ress); break; case '6': // flotte PNJ $carto->add_PNJ($_POST['COORIN'], $_POST['USER'], $_POST['INFOS']); break; default: $carto->AddWarn($lng['err_unknown_type']); } if ($carto->Messages() > 0) { $carto->Boink(ROOT_URL . basename(__FILE__) . '?' . Get_string()); } }