diff --git a/game/Aflottes.php b/game/Aflottes.php deleted file mode 100644 index 1638d46..0000000 --- a/game/Aflottes.php +++ /dev/null @@ -1,374 +0,0 @@ -connexion(); -$queryFlottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' OR (end_galaxie = '$Hgalaxie' AND end_ss = '$Hss' AND end_position = '$Hposition');"); -$bdd->deconnexion(); -$nbFlottes = $bdd->num_rows; -for ($i = 0; $i < $nbFlottes; $i++) { - //Récupération des principales variables de la flotte - $id_flotte = $queryFlottes[$i]['id']; - $mission = $queryFlottes[$i]['mission']; - $end_galaxie = $queryFlottes[$i]['end_galaxie']; - $end_ss = $queryFlottes[$i]['end_ss']; - $end_position = $queryFlottes[$i]['end_position']; - $end_time = $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time']; - //On vérifie que la planète cible existe - - $bdd->connexion(); - $queryEN = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_position';"); - if (!$queryEN && $mission != 3 && $mission != 6 && time() > $end_time) { - $bdd->query("UPDATE $table_flottes SET effectue = '1', mission = '6', ret_time = '".($end_time + $queryFlottes[$i]['end_time'])."' WHERE id = $id_flotte;"); - $titreA = 'Impossible d\'effectuer la mission'; - $bdd->escape($titreA); - $rapportA = 'La flotte '.$queryFlottes[$i]['nom_flotte'].' n\'a pas pu effectuer sa mission correctement car lorsqu\'elle est arrivée sur place, la planète était déserte.'; - $bdd->escape($rapportA); - $db->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$queryFlottes[$i]['id_user'].", '', '$titreA', '$rapportA', '".$end_time."')"); - $bdd->deconnexion(); - continue; - } - elseif (!$queryEN && $mission != 3 && $queryFlottes[$i]['effectue'] != 1) { - $bdd->deconnexion(); - continue; - } - $bdd->deconnexion(); - $ENidPlan = $queryEN['id']; - - //La flotte est prête a effectuer une action - if ($queryFlottes[$i]['effectue'] != 1 && time() >= $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'] && !empty($queryFlottes[$i]['end_time'])) { - //Mission Attaquer - if ($mission == 1) { - require_once(_FCORE."../game/Class/class.combat.php"); - $bdd->connexion(); - //On regarde si le combat a déjà commencé - if ($queryFlottes[$i]['effectue'] == 2) { - if ($queryCombat = $bdd->unique_query("SELECT * FROM $table_flottes_combats WHERE refflotte = '$id_flotte';")) { - //On vérifie si on lance le tour suivant ou non - if (time() >= $queryCombat['timestamp']) { - //On modifie le timestamp pour ne pas que le combat se déroule deux fois - $timebloque = time() + 5; - $bdd->query("UPDATE $table_flottes_combats SET timestamp = '$timebloque' WHERE refflotte = '$id_flotte';"); - - //Récupération du combat - $combat = unserialize($queryCombat['serialize']); - //Mise à jour des tactiques - if (!empty($queryFlottes[$i]['tactiqueAT'])) $combat->changerTactiqueAT($queryFlottes[$i]['tactiqueAT']); - if (!empty($queryFlottes[$i]['tactiqueEN'])) $combat->changerTactiqueEN($queryFlottes[$i]['tactiqueEN']); - } - else continue; - } - else { - $time = time(); - $bdd->query("UPDATE $table_flottes SET effectue = '1', ret_time = end_time + $time WHERE id = '$id_flotte';"); - file_log("Erreur dans le script de combat, la flotte de ".trouvNom($queryFlottes[$i]['id_user'])."(".$queryFlottes[$i]['id_user'].") a été renvoyé au point de départ.", 1); - header('Location: ./?erreurcombat'); - exit; - } - } - else { - //On génére un nouveau combat - $combat = new Combat($queryFlottes[$i], $queryEN, $queryEN, array(trouvInfo($queryFlottes[$i]['id_user'], 'blindage'), trouvInfo($queryEN['id_user'], 'blindage'))); - $bdd->query("UPDATE $table_flottes SET effectue = '2' WHERE id = '$id_flotte';"); - } - $bdd->deconnexion(); - - while($combat->timestamp <= time()) { - //Préparation du rapport - $rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], $queryEN['id_user'], $combat->timestamp); - - $combat->Ntour++; - $rapport->addInfo($combat->ATvais, 0); - $rapport->addInfo($combat->ENvais, 1); - $rapport->addInfo($combat->ENdef, 2); - $rapport->addInfo($combat->Ntour, 3); - $rapport->addInfo($queryEN, 4); - $rapport->addInfo($queryFlottes[$i], 5); - - //Récupération des paramètres de la tactique de l'attaquant - $arraytactique = tactique($combat->ATtactique); - //On régénére les boucliers de l'attaquant et on calcul l'attaque de l'attaquant - $ATattaque = $combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], true, !$arraytactique[3], trouvInfo($queryFlottes[$i]['id_user'], 'blindage')), true, trouvInfo($queryFlottes[$i]['id_user'], 'armement')); - - //Récupération des paramètres de la tactique du défenseur - $arraytactique = tactique($combat->ENtactique); - //On régénére les boucliers de l'attaquant et on calcul l'attaque de l'attaquant - $ENattaque = $combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], false, !$arraytactique[3], trouvInfo($queryEN['id_user'], 'blindage')), false, trouvInfo($queryEN['id_user'], 'armement')); - - //On lance l'attaque - @$ATresult = $combat->attaquerVais($ATattaque, true); - @$ENresult = $combat->attaquerVais($ENattaque, false); - - if (!$ATresult && $ENresult) { //Attaquant vainqueur - $combat->ENres['metal'] = $queryEN['metal']; - $combat->ENres['cristal'] = $queryEN['cristal']; - $combat->ENres['hydrogene'] = $queryEN['hydrogene']; - - $exportAT = $combat->exportAT(true); $ret_time = $combat->timestamp; - $exportEN = $combat->exportEN(); $pillm = $combat->pillage[0]; $pillc = $combat->pillage[1]; $pillh = $combat->pillage[2]; - $bdd->connexion(); - $bdd->query("UPDATE $table_flottes SET $exportAT, effectue = '1', ret_time = '$ret_time' + end_time WHERE id = '$id_flotte';"); - $bdd->query("UPDATE $table_planete SET $exportEN, metal = metal - '$pillm', cristal = cristal - '$pillc', hydrogene = hydrogene - '$pillh' WHERE id = '$ENidPlan';"); - $bdd->query("DELETE FROM $table_flottes_combats WHERE refflotte = '$id_flotte';"); - $bdd->deconnexion(); - $rapport->addInfo(array(true, true, false), 6); - } - elseif ($ATresult && !$ENresult) { //Défenseur vainqueur - $exportEN = $combat->exportEN(); - $bdd->connexion(); - $bdd->query("DELETE FROM $table_flottes_combats WHERE refflotte = '$id_flotte';"); - $bdd->query("DELETE FROM $table_flottes WHERE id = '$id_flotte';"); - $bdd->query("UPDATE $table_planete SET $exportEN WHERE id = '$ENidPlan';"); - $bdd->deconnexion(); - $rapport->addInfo(array(true, false, false), 6); - } - elseif (!$ATresult && !$ENresult) { //Match nul - $exportEN = $combat->exportEN(); - $bdd->connexion(); - $bdd->query("DELETE FROM $table_flottes_combats WHERE refflotte = '$id_flotte';"); - $bdd->query("DELETE FROM $table_flottes WHERE id = '$id_flotte';"); - $bdd->query("UPDATE $table_planete SET $exportEN WHERE id = '$ENidPlan';"); - $bdd->deconnexion(); - $rapport->addInfo(array(true, false, true), 6); - } - elseif ($combat->Ntour >= 250) { //Match nul - $exportAT = $combat->exportAT(false); $ret_time = $combat->timestamp; - $exportEN = $combat->exportEN(); $pillm = $combat->pillage[0]; $pillc = $combat->pillage[1]; $pillh = $combat->pillage[2]; - $bdd->connexion(); - $bdd->query("UPDATE $table_flottes SET $exportAT, effectue = '1', ret_time = '$ret_time' + end_time WHERE id = '$id_flotte';"); - $bdd->query("UPDATE $table_planete SET $exportEN, metal = metal - '$pillm', cristal = cristal - '$pillc', hydrogene = hydrogene - '$pillh' WHERE id = '$ENidPlan';"); - $bdd->query("DELETE FROM $table_flottes_combats WHERE refflotte = '$id_flotte';"); - $bdd->deconnexion(); - $rapport->addInfo(array(true, false, true), 6); - } - else $rapport->addInfo(array(false, false, false), 6); - - $rapport->addInfo($combat->ATvais, 7); - $rapport->addInfo($combat->ENvais, 8); - $rapport->addInfo($combat->ENdef, 9); - - //Prévision du prochain tour - $combat->timestamp += 300; - $rapport->addInfo($combat->timestamp, 10); - $rapport->addInfo($combat->pillage, 11); - - //On envoie les rapports aux joueurs concernés - $rapport->send(); - - //On arrête la boucle si le combat est terminé - if ($rapport->var[6][0]) break; - } - $debriM = $combat->debriM + $queryEN['debris_met']; - $debriC = $combat->debriC + $queryEN['debris_cri']; - - $bdd->connexion(); - $bdd->escape($debriM); - $bdd->escape($debriC); - - $bdd->query("UPDATE $table_planete SET debris_met = $debriM, debris_cri = $debriC WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_position';"); - - $combat->debriM = 0; - $combat->debriC = 0; - if (!$rapport->var[6][0]) { //Si le combat n'est pas terminé - //On sérialise la classe pour l'exporter - $serialise = serialize($combat); - $bdd->escape($serialise); - - //On enregistre le combat dans la base de données - $timesuite = $combat->timestamp; - $idFleet = $queryFlottes[$i]['id']; - if ($queryFlottes[$i]['effectue']) $bdd->query("UPDATE $table_flottes_combats SET serialize = '$serialise', tactiqueAT = '0', tactiqueEN = '0', timestamp = '$timesuite' WHERE refflotte = '$id_flotte';"); - else $bdd->query("INSERT INTO $table_flottes_combats (refflotte, timestamp, serialize, tactiqueAT, tactiqueEN) VALUES('$idFleet', '$timesuite', '$serialise', '0', '0');"); - } - $bdd->deconnexion(); - } - //Mission Transporter - elseif ($mission == 2) { - $Cmetal = $queryFlottes[$i]['contenu_metal']; - $Ccristal = $queryFlottes[$i]['contenu_cristal']; - $Chydrogene = $queryFlottes[$i]['contenu_hydrogene']; - $bdd->connexion(); - $bdd->query("UPDATE $table_planete SET metal = metal + '$Cmetal', cristal = cristal + '$Ccristal', hydrogene = hydrogene + '$Chydrogene' WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_position';"); - $bdd->query("UPDATE $table_flottes SET effectue = '1', contenu_metal = '0', contenu_cristal = '0', contenu_hydrogene = '0' WHERE id = '$id_flotte';"); - $bdd->deconnexion(); - - $rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], $queryEN['id_user'], $end_time); - $rapport->addInfo($queryEN, 0); - $rapport->addInfo(array($queryFlottes[$i]['contenu_metal'], $queryFlottes[$i]['contenu_cristal'], $queryFlottes[$i]['contenu_hydrogene']), 1); - $rapport->send(); - } - //Mission Coloniser - elseif ($mission == 3) { - $rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], 0, $end_time); - $rapport->addInfo(array($end_galaxie, $end_ss, $end_position), 0); - - $rapport->addInfo(true, 1); - $time = time(); - $cases = mt_rand(125,222); - $image = mt_rand(1,15); - $Cmetal = $queryFlottes[$i]['contenu_metal'] + 1000; - $Ccristal = $queryFlottes[$i]['contenu_cristal'] + 700; - $Chydrogene = $queryFlottes[$i]['contenu_hydrogene']; - - //Calcul de l'isolement - $nbPlan = count($queryPlanetes); - if ($nbPlan >= 11) { - switch($nbPlan){ - case 11: $tps = 2; break; - case 12: $tps = 4; break; - case 13: $tps = 6; break; - case 14: $tps = 8; break; - case 15: $tps = 12; break; - case 16: $tps = 16; break; - case 17: $tps = 20; break; - default: $tps = 24; - } - } - else $tps = 0; - $debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y')); - $fin = $debut + $tps * 3600; - - $idFlo = $queryFlottes[$i]['id_user']; - $bdd->connexion(); - if ($bdd->query("INSERT INTO $table_planete (id_user, isolement, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hydrogene, hash_planete) VALUES ('$idFlo', '$debut $fin', 'Planète colonisée', '$end_galaxie', '$end_ss', '$end_position', '$image', '$cases', '$time', '$Cmetal', '$Ccristal', '$Chydrogene', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)));") === false) { - $rapport->addInfo(false, 1); - $bdd->query("UPDATE $table_flottes SET effectue = 1 WHERE id = $id_flotte;"); - $bdd->deconnexion(); - } - else { - if ($queryFlottes[$i]['nb_vais'] == 1) { - $queryFlottes[$i]['nb_vais'] = -1; - $bdd->query("DELETE FROM $table_flottes WHERE id = $id_flotte"); - } - else $bdd->query("UPDATE $table_flottes SET effectue = 1, vaisseau_3 = vaisseau_3 - 1, nb_vais = nb_vais - 1, contenu_metal = 0, contenu_cristal = 0, contenu_hydrogene = 0 WHERE id = $id_flotte;"); - $bdd->deconnexion(); - } - $rapport->send(); - } - //Mission Recycler - elseif ($mission == 4) { - $capacite = $queryFlottes[$i]['contenu_max'] - (vais_conso($queryFlottes[$i]['end_time'], count($queryFlottes[$i]['nb_vais']))*$queryFlottes[$i]['vitesse']*5) + $queryFlottes[$i]['contenu_metal'] + $queryFlottes[$i]['contenu_cristal'] + $queryFlottes[$i]['contenu_hydrogene']; - - $debris_met = $queryEN['debris_met']; - $debris_cri = $queryEN['debris_cri']; - - if ($debris_met+$debris_cri > $capacite) { - $a = floor($capacite/2); - $b = floor($capacite/2); - if ($a > $debris_met && $b > $debris_cri) { - $a = $debris_met; - $b = $debris_cri; - } - else if ($a > $debris_met) { - $a = $debris_met; - $b = ($capacite - $a); - if ($b > $debris_cri) $b = $debris_cri; - } - else if ($b > $debris_cri) { - $b = $debris_cri; - $a = ($capacite - $b); - if ($a > $debris_met) $a = $debris_met; - } - } - else { - $a = $debris_met; - $b = $debris_cri; - } - $Cmetal = $a + $queryFlottes[$i]['contenu_metal']; - $Ccristal = $b + $queryFlottes[$i]['contenu_cristal']; - - $bdd->connexion(); - $bdd->query("UPDATE $table_flottes SET effectue = '1', contenu_metal = '$Cmetal', contenu_cristal = '$Ccristal' WHERE id = '$id_flotte';"); - $bdd->query("UPDATE $table_planete SET debris_met = debris_met - '$a', debris_cri = debris_cri - '$b' WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_position';"); - $bdd->deconnexion(); - - $rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], $queryEN['id_user'], $end_time); - $rapport->addInfo($queryEN, 0); - $rapport->addInfo(array($a, $b), 1); - $rapport->send(); - } - //Mission Espionnage - elseif ($mission == 5) { - $nbsondes = $queryFlottes[$i]['vaisseau_3']; - $id_userT = $queryEN['id_user']; - $id_att = $queryFlottes[$i]['id_user']; - - $bdd->connexion(); - $bdd->query("UPDATE $table_flottes SET effectue = 1 WHERE id = $id_flotte;"); - $resultatUD = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_userT;"); - $resultatUA = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_att;"); - $bdd->deconnexion(); - - $diffNiveau = $resultatUA['detection'] - $resultatUD['detection'] + floor($nbsondes/2); - $rapport = new Rapport($mission, $id_att, $id_userT, $end_time); - - if ($diffNiveau < 0) { - $rapport->addInfo($queryEN, 0); - $rapport->addInfo(false, 1); - } - if ($diffNiveau >= 0) $rapport->addInfo($queryEN, 0); - if ($diffNiveau >= 1) $rapport->addInfo(true, 1); - if ($diffNiveau >= 2) $rapport->addInfo(true, 2); - if ($diffNiveau >= 3) $rapport->addInfo(true, 3); - if ($diffNiveau >= 4) $rapport->addInfo($resultatUD, 4); - if ($diffNiveau >= 5) $rapport->addInfo(true, 5); - - $rapport->send(); - } - } - - //Si la flotte a terminé son retour - if (($queryFlottes[$i]['mission'] == 0 && $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'] <= time()) || ($queryFlottes[$i]['effectue'] == 1 && ((!empty($queryFlottes[$i]['ret_time']) && $queryFlottes[$i]['ret_time'] <= time()) || ($queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time']*2 <= time())))) { - if ($queryFlottes[$i]['mission'] == 0) { - $fin_galaxie = $queryFlottes[$i]['end_galaxie']; - $fin_systeme = $queryFlottes[$i]['end_ss']; - $fin_potision = $queryFlottes[$i]['end_position']; - } - elseif (!empty($queryFlottes[$i]['ret_position'])) { - $fin_galaxie = $queryFlottes[$i]['ret_galaxie']; - $fin_systeme = $queryFlottes[$i]['ret_ss']; - $fin_potision = $queryFlottes[$i]['ret_position']; - } - else { - $fin_galaxie = $queryFlottes[$i]['start_galaxie']; - $fin_systeme = $queryFlottes[$i]['start_ss']; - $fin_potision = $queryFlottes[$i]['start_position']; - } - - $bdd->connexion(); - if ($bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$fin_galaxie' AND ss = '$fin_systeme' AND position = '$fin_potision';")) { - $export = ''; - $nbvais = 12; - for($j = 1; $j <= $nbvais; $j++) { - $export .= ', vaisseau_'.$j.' = vaisseau_'.$j.' + '.$queryFlottes[$i]['vaisseau_'.$j]; - } - $Cmetal = $queryFlottes[$i]['contenu_metal']; - $Ccristal = $queryFlottes[$i]['contenu_cristal']; - $Chydrogene = $queryFlottes[$i]['contenu_hydrogene']; - $bdd->query("UPDATE $table_planete SET metal = metal + '$Cmetal', cristal = cristal + '$Ccristal', hydrogene = hydrogene + '$Chydrogene'$export WHERE galaxie = '$fin_galaxie' AND ss = '$fin_systeme' AND position = '$fin_potision';"); - } - $idUserFlotte = $queryFlottes[$i]['id_user']; - $bdd->query("DELETE FROM $table_flottes WHERE id_user = '$idUserFlotte' AND id = '$id_flotte';"); - $bdd->query("DELETE FROM $table_flottes_combats WHERE refflotte = '$id_flotte';"); - $bdd->deconnexion(); - } -} -?> \ No newline at end of file diff --git a/game/Class/JSON.php b/game/Class/JSON.php deleted file mode 100644 index 9be13db..0000000 --- a/game/Class/JSON.php +++ /dev/null @@ -1,806 +0,0 @@ - - * @author Matt Knapp - * @author Brett Stimmerman - * @copyright 2005 Michal Migurski - * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ - * @license http://www.opensource.org/licenses/bsd-license.php - * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 - */ - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_SLICE', 1); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_STR', 2); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_ARR', 3); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_OBJ', 4); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_CMT', 5); - -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_LOOSE_TYPE', 16); - -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_SUPPRESS_ERRORS', 32); - -/** - * Converts to and from JSON format. - * - * Brief example of use: - * - * - * // create a new instance of Services_JSON - * $json = new Services_JSON(); - * - * // convert a complexe value to JSON notation, and send it to the browser - * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); - * $output = $json->encode($value); - * - * print($output); - * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] - * - * // accept incoming POST data, assumed to be in JSON notation - * $input = file_get_contents('php://input', 1000000); - * $value = $json->decode($input); - * - */ -class Services_JSON -{ - /** - * constructs a new JSON instance - * - * @param int $use object behavior flags; combine with boolean-OR - * - * possible values: - * - SERVICES_JSON_LOOSE_TYPE: loose typing. - * "{...}" syntax creates associative arrays - * instead of objects in decode(). - * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. - * Values which can't be encoded (e.g. resources) - * appear as NULL instead of throwing errors. - * By default, a deeply-nested resource will - * bubble up with an error, so all return values - * from encode() should be checked with isError() - */ - function Services_JSON($use = 0) - { - $this->use = $use; - } - - /** - * convert a string from one UTF-16 char to one UTF-8 char - * - * Normally should be handled by mb_convert_encoding, but - * provides a slower PHP-only method for installations - * that lack the multibye string extension. - * - * @param string $utf16 UTF-16 character - * @return string UTF-8 character - * @access private - */ - function utf162utf8($utf16) - { - // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { - return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); - } - - $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); - - switch(true) { - case ((0x7F & $bytes) == $bytes): - // this case should never be reached, because we are in ASCII range - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x7F & $bytes); - - case (0x07FF & $bytes) == $bytes: - // return a 2-byte UTF-8 character - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0xC0 | (($bytes >> 6) & 0x1F)) - . chr(0x80 | ($bytes & 0x3F)); - - case (0xFFFF & $bytes) == $bytes: - // return a 3-byte UTF-8 character - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0xE0 | (($bytes >> 12) & 0x0F)) - . chr(0x80 | (($bytes >> 6) & 0x3F)) - . chr(0x80 | ($bytes & 0x3F)); - } - - // ignoring UTF-32 for now, sorry - return ''; - } - - /** - * convert a string from one UTF-8 char to one UTF-16 char - * - * Normally should be handled by mb_convert_encoding, but - * provides a slower PHP-only method for installations - * that lack the multibye string extension. - * - * @param string $utf8 UTF-8 character - * @return string UTF-16 character - * @access private - */ - function utf82utf16($utf8) - { - // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { - return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); - } - - switch(strlen($utf8)) { - case 1: - // this case should never be reached, because we are in ASCII range - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return $utf8; - - case 2: - // return a UTF-16 character from a 2-byte UTF-8 char - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x07 & (ord($utf8{0}) >> 2)) - . chr((0xC0 & (ord($utf8{0}) << 6)) - | (0x3F & ord($utf8{1}))); - - case 3: - // return a UTF-16 character from a 3-byte UTF-8 char - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr((0xF0 & (ord($utf8{0}) << 4)) - | (0x0F & (ord($utf8{1}) >> 2))) - . chr((0xC0 & (ord($utf8{1}) << 6)) - | (0x7F & ord($utf8{2}))); - } - - // ignoring UTF-32 for now, sorry - return ''; - } - - /** - * encodes an arbitrary variable into JSON format - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to Services_JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return mixed JSON string representation of input var or an error if a problem occurs - * @access public - */ - function encode($var) - { - switch (gettype($var)) { - case 'boolean': - return $var ? 'true' : 'false'; - - case 'NULL': - return 'null'; - - case 'integer': - return (int) $var; - - case 'double': - case 'float': - return (float) $var; - - case 'string': - // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT - $ascii = ''; - $strlen_var = strlen($var); - - /* - * Iterate over every character in the string, - * escaping with a slash or encoding to UTF-8 where necessary - */ - for ($c = 0; $c < $strlen_var; ++$c) { - - $ord_var_c = ord($var{$c}); - - switch (true) { - case $ord_var_c == 0x08: - $ascii .= '\b'; - break; - case $ord_var_c == 0x09: - $ascii .= '\t'; - break; - case $ord_var_c == 0x0A: - $ascii .= '\n'; - break; - case $ord_var_c == 0x0C: - $ascii .= '\f'; - break; - case $ord_var_c == 0x0D: - $ascii .= '\r'; - break; - - case $ord_var_c == 0x22: - case $ord_var_c == 0x2F: - case $ord_var_c == 0x5C: - // double quote, slash, slosh - $ascii .= '\\'.$var{$c}; - break; - - case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): - // characters U-00000000 - U-0000007F (same as ASCII) - $ascii .= $var{$c}; - break; - - case (($ord_var_c & 0xE0) == 0xC0): - // characters U-00000080 - U-000007FF, mask 110XXXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, ord($var{$c + 1})); - $c += 1; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xF0) == 0xE0): - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2})); - $c += 2; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xF8) == 0xF0): - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3})); - $c += 3; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xFC) == 0xF8): - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3}), - ord($var{$c + 4})); - $c += 4; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xFE) == 0xFC): - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3}), - ord($var{$c + 4}), - ord($var{$c + 5})); - $c += 5; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - } - } - - return '"'.$ascii.'"'; - - case 'array': - /* - * As per JSON spec if any array key is not an integer - * we must treat the the whole array as an object. We - * also try to catch a sparsely populated associative - * array with numeric keys here because some JS engines - * will create an array with empty indexes up to - * max_index which can cause memory issues and because - * the keys, which may be relevant, will be remapped - * otherwise. - * - * As per the ECMA and JSON specification an object may - * have any string as a property. Unfortunately due to - * a hole in the ECMA specification if the key is a - * ECMA reserved word or starts with a digit the - * parameter is only accessible using ECMAScript's - * bracket notation. - */ - - // treat as a JSON object - if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { - $properties = array_map(array($this, 'name_value'), - array_keys($var), - array_values($var)); - - foreach($properties as $property) { - if(Services_JSON::isError($property)) { - return $property; - } - } - - return '{' . join(',', $properties) . '}'; - } - - // treat it like a regular array - $elements = array_map(array($this, 'encode'), $var); - - foreach($elements as $element) { - if(Services_JSON::isError($element)) { - return $element; - } - } - - return '[' . join(',', $elements) . ']'; - - case 'object': - $vars = get_object_vars($var); - - $properties = array_map(array($this, 'name_value'), - array_keys($vars), - array_values($vars)); - - foreach($properties as $property) { - if(Services_JSON::isError($property)) { - return $property; - } - } - - return '{' . join(',', $properties) . '}'; - - default: - return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) - ? 'null' - : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); - } - } - - /** - * array-walking function for use in generating JSON-formatted name-value pairs - * - * @param string $name name of key to use - * @param mixed $value reference to an array element to be encoded - * - * @return string JSON-formatted name-value pair, like '"name":value' - * @access private - */ - function name_value($name, $value) - { - $encoded_value = $this->encode($value); - - if(Services_JSON::isError($encoded_value)) { - return $encoded_value; - } - - return $this->encode(strval($name)) . ':' . $encoded_value; - } - - /** - * reduce a string by removing leading and trailing comments and whitespace - * - * @param $str string string value to strip of comments and whitespace - * - * @return string string value stripped of comments and whitespace - * @access private - */ - function reduce_string($str) - { - $str = preg_replace(array( - - // eliminate single line comments in '// ...' form - '#^\s*//(.+)$#m', - - // eliminate multi-line comments in '/* ... */' form, at start of string - '#^\s*/\*(.+)\*/#Us', - - // eliminate multi-line comments in '/* ... */' form, at end of string - '#/\*(.+)\*/\s*$#Us' - - ), '', $str); - - // eliminate extraneous space - return trim($str); - } - - /** - * decodes a JSON string into appropriate variable - * - * @param string $str JSON-formatted string - * - * @return mixed number, boolean, string, array, or object - * corresponding to given JSON input string. - * See argument 1 to Services_JSON() above for object-output behavior. - * Note that decode() always returns strings - * in ASCII or UTF-8 format! - * @access public - */ - function decode($str) - { - $str = $this->reduce_string($str); - - switch (strtolower($str)) { - case 'true': - return true; - - case 'false': - return false; - - case 'null': - return null; - - default: - $m = array(); - - if (is_numeric($str)) { - // Lookie-loo, it's a number - - // This would work on its own, but I'm trying to be - // good about returning integers where appropriate: - // return (float)$str; - - // Return float or int, as appropriate - return ((float)$str == (integer)$str) - ? (integer)$str - : (float)$str; - - } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { - // STRINGS RETURNED IN UTF-8 FORMAT - $delim = substr($str, 0, 1); - $chrs = substr($str, 1, -1); - $utf8 = ''; - $strlen_chrs = strlen($chrs); - - for ($c = 0; $c < $strlen_chrs; ++$c) { - - $substr_chrs_c_2 = substr($chrs, $c, 2); - $ord_chrs_c = ord($chrs{$c}); - - switch (true) { - case $substr_chrs_c_2 == '\b': - $utf8 .= chr(0x08); - ++$c; - break; - case $substr_chrs_c_2 == '\t': - $utf8 .= chr(0x09); - ++$c; - break; - case $substr_chrs_c_2 == '\n': - $utf8 .= chr(0x0A); - ++$c; - break; - case $substr_chrs_c_2 == '\f': - $utf8 .= chr(0x0C); - ++$c; - break; - case $substr_chrs_c_2 == '\r': - $utf8 .= chr(0x0D); - ++$c; - break; - - case $substr_chrs_c_2 == '\\"': - case $substr_chrs_c_2 == '\\\'': - case $substr_chrs_c_2 == '\\\\': - case $substr_chrs_c_2 == '\\/': - if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || - ($delim == "'" && $substr_chrs_c_2 != '\\"')) { - $utf8 .= $chrs{++$c}; - } - break; - - case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): - // single, escaped unicode character - $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) - . chr(hexdec(substr($chrs, ($c + 4), 2))); - $utf8 .= $this->utf162utf8($utf16); - $c += 5; - break; - - case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): - $utf8 .= $chrs{$c}; - break; - - case ($ord_chrs_c & 0xE0) == 0xC0: - // characters U-00000080 - U-000007FF, mask 110XXXXX - //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 2); - ++$c; - break; - - case ($ord_chrs_c & 0xF0) == 0xE0: - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 3); - $c += 2; - break; - - case ($ord_chrs_c & 0xF8) == 0xF0: - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 4); - $c += 3; - break; - - case ($ord_chrs_c & 0xFC) == 0xF8: - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 5); - $c += 4; - break; - - case ($ord_chrs_c & 0xFE) == 0xFC: - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 6); - $c += 5; - break; - - } - - } - - return $utf8; - - } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { - // array, or object notation - - if ($str{0} == '[') { - $stk = array(SERVICES_JSON_IN_ARR); - $arr = array(); - } else { - if ($this->use & SERVICES_JSON_LOOSE_TYPE) { - $stk = array(SERVICES_JSON_IN_OBJ); - $obj = array(); - } else { - $stk = array(SERVICES_JSON_IN_OBJ); - $obj = new stdClass(); - } - } - - array_push($stk, array('what' => SERVICES_JSON_SLICE, - 'where' => 0, - 'delim' => false)); - - $chrs = substr($str, 1, -1); - $chrs = $this->reduce_string($chrs); - - if ($chrs == '') { - if (reset($stk) == SERVICES_JSON_IN_ARR) { - return $arr; - - } else { - return $obj; - - } - } - - //print("\nparsing {$chrs}\n"); - - $strlen_chrs = strlen($chrs); - - for ($c = 0; $c <= $strlen_chrs; ++$c) { - - $top = end($stk); - $substr_chrs_c_2 = substr($chrs, $c, 2); - - if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { - // found a comma that is not inside a string, array, etc., - // OR we've reached the end of the character list - $slice = substr($chrs, $top['where'], ($c - $top['where'])); - array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); - //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - if (reset($stk) == SERVICES_JSON_IN_ARR) { - // we are in an array, so just push an element onto the stack - array_push($arr, $this->decode($slice)); - - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { - // we are in an object, so figure - // out the property name and set an - // element in an associative array, - // for now - $parts = array(); - - if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // "name":value pair - $key = $this->decode($parts[1]); - $val = $this->decode($parts[2]); - - if ($this->use & SERVICES_JSON_LOOSE_TYPE) { - $obj[$key] = $val; - } else { - $obj->$key = $val; - } - } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // name:value pair, where name is unquoted - $key = $parts[1]; - $val = $this->decode($parts[2]); - - if ($this->use & SERVICES_JSON_LOOSE_TYPE) { - $obj[$key] = $val; - } else { - $obj->$key = $val; - } - } - - } - - } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { - // found a quote, and we are not inside a string - array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); - //print("Found start of string at {$c}\n"); - - } elseif (($chrs{$c} == $top['delim']) && - ($top['what'] == SERVICES_JSON_IN_STR) && - ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { - // found a quote, we're in a string, and it's not escaped - // we know that it's not escaped becase there is _not_ an - // odd number of backslashes at the end of the string so far - array_pop($stk); - //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); - - } elseif (($chrs{$c} == '[') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a left-bracket, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); - //print("Found start of array at {$c}\n"); - - } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { - // found a right-bracket, and we're in an array - array_pop($stk); - //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } elseif (($chrs{$c} == '{') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a left-brace, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); - //print("Found start of object at {$c}\n"); - - } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { - // found a right-brace, and we're in an object - array_pop($stk); - //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } elseif (($substr_chrs_c_2 == '/*') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a comment start, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); - $c++; - //print("Found start of comment at {$c}\n"); - - } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { - // found a comment end, and we're in one now - array_pop($stk); - $c++; - - for ($i = $top['where']; $i <= $c; ++$i) - $chrs = substr_replace($chrs, ' ', $i, 1); - - //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } - - } - - if (reset($stk) == SERVICES_JSON_IN_ARR) { - return $arr; - - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { - return $obj; - - } - - } - } - } - - /** - * @todo Ultimately, this should just call PEAR::isError() - */ - function isError($data, $code = null) - { - if (class_exists('pear')) { - return PEAR::isError($data, $code); - } elseif (is_object($data) && (get_class($data) == 'services_json_error' || - is_subclass_of($data, 'services_json_error'))) { - return true; - } - - return false; - } -} - -if (class_exists('PEAR_Error')) { - - class Services_JSON_Error extends PEAR_Error - { - function Services_JSON_Error($message = 'unknown error', $code = null, - $mode = null, $options = null, $userinfo = null) - { - parent::PEAR_Error($message, $code, $mode, $options, $userinfo); - } - } - -} else { - - /** - * @todo Ultimately, this class shall be descended from PEAR_Error - */ - class Services_JSON_Error - { - function Services_JSON_Error($message = 'unknown error', $code = null, - $mode = null, $options = null, $userinfo = null) - { - - } - } - -} - -?> \ No newline at end of file diff --git a/game/Class/class.alliance.php b/game/Class/class.alliance.php deleted file mode 100644 index dce9aa8..0000000 --- a/game/Class/class.alliance.php +++ /dev/null @@ -1,139 +0,0 @@ -connexion(); - $bdd->escape($id); - $alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;"); - $bdd->deconnexion(); - if (!empty($alli)) { - $this->id = $alli["id"]; - $this->race = $alli["race"]; - $this->fondateur = $alli["fondateur"]; - $this->sante = $alli["sante"]; - $this->nom = $alli["nom"]; - $this->tag = $alli["tag"]; - $this->galaxie = $alli["galaxie"]; - $this->ss = $alli["ss"]; - $this->nom_asteroide = $alli["nom_asteroide"]; - $this->image_asteroide = $alli["image_asteroide"]; - $this->debris_met = $alli["debris_met"]; - $this->debris_cri = $alli["debris_cri"]; - $this->credits = $alli["credits"]; - $this->metal = $alli["metal"]; - $this->cristal = $alli["cristal"]; - $this->hydrogene = $alli["hydrogene"]; - - foreach($alli_batimentVAR as $bat){ - $this->batiments[] = $alli[$bat]; - } - $this->file_bat = unserialize($alli["file_bat"]); - - foreach($nomvaisnVAR as $vais){ - $this->vaisseaux[] = $plan[$vais]; - } - $this->file_vais = unserialize($alli["file_vais"]); - - $this->actualiser(); - } - } - } - - /** - * Actualise les ressources de la planète en fonction de la production et termine les files d'attentes. - * - * @return void - * @access public - */ - function actualiser($actuFile = true){ - //Actualisation des files d'attentes - if ($actuFile) { - $this->file_pret("alli_batiments"); - $this->file_pret("vaisseaux"); - } - } - - /** - * Destructeur - * - * @return void - * @access public - */ - function __destruct(){ - global $var___db, $config, $table_alliances; - $nb = count($this->modif); - $out = array(); - $bdd = new bdd(); - $bdd->connexion(); - for($i = 0; $i < $nb; $i++){ - if (!is_array($this->{$this->modif[$i]})) { - $bdd->escape($this->{$this->modif[$i]}); - if (is_int($this->{$this->modif[$i]}) || is_float($this->{$this->modif[$i]})) $out[] .= $this->modif[$i]." = ".$this->{$this->modif[$i]}; - else $out[] .= $this->modif[$i]." = '".$this->{$this->modif[$i]}."'"; - } - else { - if (ereg('file', $this->modif[$i])) { - $prep = serialize($this->{$this->modif[$i]}); - $bdd->escape($prep); - $out[] .= $this->modif[$i]." = '$prep'"; - } - else { - if ($this->modif[$i] == "batiments") $calc = "batiment"; - elseif ($this->modif[$i] == "alli_batiments") $calc = "alli_batiment"; - elseif ($this->modif[$i] == "technologies") $calc = "technolo"; - elseif ($this->modif[$i] == "casernes")$calc = "casernen"; - elseif ($this->modif[$i] == "terrestres") $calc = "nomterrn"; - elseif ($this->modif[$i] == "vaisseaux") $calc = "nomvaisn"; - elseif ($this->modif[$i] == "coeff_bat") $calc = "coeff"; - - if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'}; - - $nombr = count(${$calc.'VAR'}); - for($j = 0; $j < $nombr; $j++){ - $bdd->escape($this->{$this->modif[$i]}[$j]); - $out[] .= ${$calc.'VAR'}[$j]." = ".$this->{$this->modif[$i]}[$j].""; - } - } - } - } - if (!empty($out)) $plan = $bdd->unique_query("UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";"); - $bdd->deconnexion(); - } -} -?> \ No newline at end of file diff --git a/game/Class/class.asteroide.php b/game/Class/class.asteroide.php deleted file mode 100644 index 0457b30..0000000 --- a/game/Class/class.asteroide.php +++ /dev/null @@ -1,691 +0,0 @@ -connexion(); - $plan = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;"); - $bdd->deconnexion(); - } - elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $id, $position)) - { - $bdd->connexion(); - $plan = $bdd->unique_query("SELECT * FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2].";"); - $bdd->deconnexion(); - } - else - die('Erreur #04 : Format de recherche d\'asteroide incorrect !'); - - if (!empty($plan)) - { - $this->id = $plan["id"]; - parent::User($sess->values['id']); //On utilise le numéro d'utilisateur enregistré en session - $this->galaxie = $plan["galaxie"]; - $this->ss = $plan["ss"]; - $this->image = $plan["image"]; - $this->debris_met = $plan["debris_met"]; - $this->debris_cri = $plan["debris_cri"]; - $this->metal = $plan["metal"]; - $this->cristal = $plan["cristal"]; - $this->hydrogene = $plan["hydrogene"]; - - foreach($alli_batimentVAR as $bat) - $this->alli_batiments[] = $plan[$bat]; - if (!empty($plan["file_bat"])) - $this->file_bat = unserialize($plan["file_bat"]); - else - $this->file_bat = array(); - - foreach($nomvaisnVAR as $vais) - $this->vaisseaux[] = $plan[$vais]; - if (!empty($plan["file_vais"])) - $this->file_vais = unserialize($plan["file_vais"]); - else - $this->file_vais = array(); - - } - } - } - - /** - * Actualise les ressources de la planète en fonction de la production et termine les files d'attentes. - * - * @return void - * @access public - */ - function actualiser($actuFile = true, $first = false) - { - //Actualisation des files d'attentes - if ($actuFile) - { - $this->file_ready("batiments"); - $this->file_readyTechno("technologies"); - $this->file_ready("casernes"); - $this->file_ready("terrestres"); - $this->file_ready("vaisseaux"); - } - - //Calcul de la capacité de stockage maximale - if (!empty($timestamp_lastSilo)) - { - $this->cap = pow(2, $this->batiments[10]-1) * 100000; - $capnouv = pow(2, $this->batiments[10]) * 100000; - } - else - $this->cap = pow(2, $this->batiments[10]) * 100000; - - //Calcul du temps écoulé depuis la dernière mise à jour de la planète - $temps_ecoule = time() - $this->timestamp; - $ressources = $this->production($temps_ecoule); - if ($this->metal + $ressources[0] < $this->cap) - $this->metal += $ressources[0]; - else - { - //Si les capacité de stockage ont changé depuis la dernière actualisation - if (isset($capnouv)) - { - $ressources = $this->production(time() - $this->timestamp_lastSilo); - if ($this->metal + $ressources[0] < $capnouv) - $this->metal += $ressources[0]; - } - else - { - $this->alert_ressources[0] = true; - $this->metal = $this->cap; - } - } - if ($this->cristal + $ressources[1] < $this->cap) - $this->cristal += $ressources[1]; - else - { - //Si les capacité de stockage ont changé depuis la dernière actualisation - if (isset($capnouv)) - { - $ressources = $this->production(time() - $this->timestamp_lastSilo); - if ($this->cristal + $ressources[1] < $capnouv) - $this->cristal += $ressources[1]; - } - else - { - $this->alert_ressources[1] = true; - $this->cristal = $this->cap; - } - } - if ($this->hydrogene + $ressources[2] < $this->cap) - $this->hydrogene += $ressources[2]; - else - { - //Si les capacité de stockage ont changé depuis la dernière actualisation - if (isset($capnouv)) - { - $ressources = $this->production(time() - $this->timestamp_lastSilo); - if ($this->hydrogene + $ressources[2] < $capnouv) - $this->hydrogene += $ressources[2]; - } - else - { - $this->alert_ressources[2] = true; - $this->hydrogene = $this->cap; - } - } - - //Vérification de la date pour faire les actions journalières - if (date('zya') != date('zya', $this->timestamp)) - { - //On évalue le moral - $this->evalMoral($first); - - //Si la population est à 0, on ajoute des habitants - if ($this->population <= 0) - $this->population = 1000; - - $popPlus = $this->population * 0.0153^max(1, floor((time()-$this->timestamp)/86400)); - - if ($this->politique == 2) - $popPlus *= 1.1; //Communisme : 10 % de population qui arrive en plus. - elseif ($this->politique == 3) - $popPlus *= 1.05; //Démocratie : 5 % de population qui arrive en plus. - - if ($this->technologies[2] & 4) - $popPlus *= 1.15; - elseif ($this->technologies[2] & 2) - $popPlus *= 1.10; - elseif ($this->technologies[2] & 1) - $popPlus *= 1.05; - - $this->population += $popPlus; - $this->credits += $this->population/100*exp(0.01)*25; - $this->modif[] = 'population'; - } - - $this->timestamp = time(); - - - //Calcul du nombre de cases restantes - $this->casesRest = $this->cases; - foreach($this->batiments as $bat) - $this->casesRest -= $bat; - } - - function setMoral($difference) - { - $this->moral += $difference; - - //Ajustement du moral - if ($this->moral > 1) - $this->moral = 1; - elseif ($this->moral < 0) - $this->moral = 0; - - if (!in_array("moral", $this->modif)) - $this->modif[] = "moral"; - } - - function evalMoral($first = false) - { - //Cas de sous-production - if (($this->coeff_bat[0] + $this->coeff_bat[1] + $this->coeff_bat[2])/3 < 0.9) - { - if ($this->politique == 2) - $this->moral -= 0.10; //Communisme : démoralise 2x plus - else - $this->moral -= 0.05; - if (!in_array('moral', $this->modif)) - $this->modif[] = 'moral'; - } - - //Surpopulation - - //Surlogement - - //Ajustement du moral en fonction de la politique - if ($this->politique == 1 && $this->moral > 0.7) - $this->moral = 0.7; - - //On vérifie qu'on ne dépasse pas le maximum - if ($this->moral > 1) - $this->moral = 1; - if ($this->moral < 0) - $this->moral = 0; - - //Isolement si besoin - if ($this->moral < 0.1) - { - //On vérifie qu'il ne s'agit pas de la planète mère - global $bdd, $table_planete; - $bdd->connexion(); - $res = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id LIMIT 1;"); - $bdd->deconnexion(); - if ($res['id'] != $this->id) - { - if ($this->moral <= 0.01 || $this->moral <= 0.04) - { - if ($this->moral <= 0.01) - $rand = rand(0,4); - else - $rand = rand(0,20); - //Perte de la planète - if ($rand == 1) - { - $bdd->connexion(); - $bdd->query("DELETE FROM $table_planete WHERE id = ".$this->id.";"); - $bdd->deconnexion(); - send_mp($this->id_user, 'Perte de contrôle de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a renversé votre gouvernement en tuant tous vos gouverneurs. Vous perdez donc définitivement le contrôle de cette planète."); - if (!$first) - { - $sess->values['idPlan'] = $res['id']; - erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révolté contre vous. Vous ne contrôlez plus cette planète.'); - } - } - } - elseif ($this->moral <= 0.06 || $this->moral <= 0.1) - { - if ($this->moral <= 0.06) - $rand = rand(0,2); - else - $rand = rand(0,10); - //Perte de contrôle temporaire - if ($rand == 1) - { - $debut = time() - rand(0, 3600)*4; - $fin = $debut + 86400; - $this->isolement = array($debut, $fin); - if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement'; - - send_mp($this->id_user, 'Perte de contrôle temporaire de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a pris le contrôle de votre planète. Vous perdez le contrôle de cette planète le temps que vos gouverneurs reprennent le pouvoir."); - if (!$first) - { - $sess->values['idPlan'] = $res['id']; - erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révoltée contre vous. Vous perdez temporairement le contrôle de cette planète.'); - } - } - } - } - } - } - - /** - * Vérifie si la planète est isolée ou non - * - * @return boolean - * @access public - */ - function isolement() - { - $return = false; - - global $var___db, $config, $table_planete; - $bdd = new BDD(); - $bdd->connexion(); - $plan = $bdd->query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id;"); - $bdd->deconnexion(); - - $numP = 0; - foreach ($plan as $key => $p) - { - if ($p['id'] == $this->id) - $numP = $key + 1; - } - - if ($numP >= 11) - { - if (!isset($this->isolement[0]) || (time() > $this->isolement[0] && (!isset($this->isolement[1]) || (time() > $this->isolement[1] && date('dmY') != date('dmY', $this->isolement[0]))))) - { - switch($numP) - { - case 11: - $tps = 2; - break; - case 12: - $tps = 4; - break; - case 13: - $tps = 6; - break; - case 14: - $tps = 8; - break; - case 15: - $tps = 12; - break; - case 16: - $tps = 16; - break; - case 17: - $tps = 20; - break; - default: - $tps = 24; - } - $debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y')); - $fin = $debut + $tps * 3600; - - $this->isolement[0] = $debut; - if (time() > $this->isolement[0]) - $this->isolement[1] = $fin; - if (!in_array('isolement', $this->modif)) - $this->modif[] = 'isolement'; - } - if (isset($this->isolement[1]) && time() < $this->isolement[1]) - $return = true; - } - elseif (!isset($this->isolement[0])) - { - $this->isolement = array(0,0); - if (!in_array('isolement', $this->modif)) - $this->modif[] = 'isolement'; - } - - return $return; - } - - /** - * Calcul les ressources produites en fonction de $temps_ecoule - * @param int $temps_ecoule Temps écoulé depuis la dernière actualisation - * - * @return array - * @access public - */ - function production($temps_ecoule, $retarray = false) - { - //Accélération de la production - $temps_ecoule *= VITESSE; - - //Calcul de la consomation d'énergie - if ($this->batiments[0] > 0) - $energie_m = ceil(exp(0.28*$this->batiments[0])*10); - else - $energie_m = 0; - if ($this->batiments[1] > 0) - $energie_c = ceil(exp(0.28*$this->batiments[1])*10); - else - $energie_c = 0; - if ($this->batiments[2] > 0) - $energie_h = ceil(exp(0.2849*$this->batiments[2])*13); - else - $energie_h = 0; - if ($this->batiments[3] > 0) - $energie_s = ceil(exp(0.28*$this->batiments[3])*22); - else - $energie_s = 0; - if ($this->batiments[4] > 0) - $energie_f = ceil(exp(0.297*$this->batiments[4])*25); - else - $energie_f = 0; - - //Calcul de la consomation d'énergie - $this->energieConso = $energie_m * $this->coeff_bat[0] + $energie_c * $this->coeff_bat[1] + $energie_h * $this->coeff_bat[2]; - $nrjmx = $energie_m + $energie_c + $energie_h; - - //Calcul de la production d'énergie - $this->energie = $energie_s * $this->coeff_bat[3] + $energie_f * $this->coeff_bat[4]; - - if ($this->energieConso == 0) - $coeff = 0; - else - $coeff = $this->energie / $this->energieConso; - - if ($coeff < 0) - $coeff = 0; - elseif ($coeff > 1) - $coeff = 1; - - $Ncoeff = array(); - for($i = 0; $i < 3; $i++) - { - $Ncoeff[$i] = $coeff * $this->coeff_bat[$i]; - if ($Ncoeff[$i] > 1) - $Ncoeff[$i] = 1; - if ($Ncoeff[$i] < $this->coeff_bat[$i] && $this->batiments[$i] != 0) - { - $this->coeff_bat[$i] = $Ncoeff[$i]; - if (!in_array('coeff_bat', $this->modif)) - $this->modif[] = 'coeff_bat'; - } - } - - //Calcul de la consomation d'hydrogène - if ($this->batiments[4] > 0) - $conso_h = ((ceil(pow(1.34,($this->batiments[4]-1))*9)/3600)*$temps_ecoule) * $this->coeff_bat[4]; - else - $conso_h = 0; - - //Calcul des production de ressources - if ($this->batiments[0] <= 0 || $this->batiments[3] <= 0) - $prod_met = 0.011 * $temps_ecoule; - else - $prod_met = ((ceil(pow(1.1, $this->batiments[0]) * 35 * $this->batiments[0]) / 3600) * $temps_ecoule) * $this->coeff_bat[0] * 1.5; - - if ($this->batiments[1] <= 0 || $this->batiments[3] <= 0) - $prod_cri = 0.0055 * $temps_ecoule; - else - $prod_cri = ((ceil(pow(1.1, $this->batiments[1]) * 23 * $this->batiments[1]) / 3600) * $temps_ecoule) * $this->coeff_bat[1] * 1.5; - - if ($this->batiments[2] <= 0) - $prod_hy = 0; - else - $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5; - - //Augmentation de la production en fonction des technologies - if ($this->technologies[0] &4) - { - $prod_met *= 1.15; - $prod_cri *= 1.15; - $prod_hy *= 1.15; - } - elseif ($this->technologies[0] &2) - { - $prod_met *= 1.10; - $prod_cri *= 1.10; - $prod_hy *= 1.10; - } - elseif ($this->technologies[0] &1) - { - $prod_met *= 1.05; - $prod_cri *= 1.05; - $prod_hy *= 1.05; - } - - //Augmentation de la production en fonction du moral - if ($this->moral > 0.9) - { - $prod_met *= 1.05; - $prod_cri *= 1.05; - $prod_hy *= 1.05; - } - elseif ($this->moral > 0.75) - { - $prod_met *= 1.02; - $prod_cri *= 1.02; - $prod_hy *= 1.02; - } - elseif ($this->moral < 0.45) - { - $prod_met *= 0.97; - $prod_cri *= 0.97; - $prod_hy *= 0.97; - } - elseif ($this->moral < 0.25) - { - $prod_met *= 0.94; - $prod_cri *= 0.94; - $prod_hy *= 0.94; - } - - //Augmentation de la production en fonction de la politique - if ($this->politique == 2) - { - $prod_met *= 1.10; - $prod_cri *= 1.10; - $prod_hy *= 1.10; - } - - //On enlève la consomation d'hydrogène - $prod_hy -= $conso_h; - - if ($retarray) - return array(array(ceil($this->coeff_bat[0]*100), ceil($this->coeff_bat[1]*100), ceil($this->coeff_bat[2]*100), ceil($this->coeff_bat[3]*100), ceil($this->coeff_bat[4]*100)), array($prod_met, $prod_cri, $prod_hy + $conso_h, $energie_s*$this->coeff_bat[3], $energie_f*$this->coeff_bat[4]), array($energie_m*$this->coeff_bat[0], $energie_c*$this->coeff_bat[1], $energie_h*$this->coeff_bat[2], $conso_h, ($energie_s*$this->coeff_bat[3] + $energie_f*$this->coeff_bat[4])-($energie_m*$this->coeff_bat[0] + $energie_c*$this->coeff_bat[1] + $energie_h*$this->coeff_bat[2]))); - else - return array($prod_met, $prod_cri, $prod_hy); - } - - function creer($id_user) - { - //Définition des paramètres de l'utilisateur pour la planète - $this->id_user = $id_user; - - //Génération du nombre de case et de l'image en fonction de la position dans le système - if ($this->position > MAX_PLANETE*0.75) - { - $this->cases = mt_rand(200,255); - $this->image = mt_rand(1,19); - } - elseif ($this->position > MAX_PLANETE/2) - { - $this->cases = mt_rand(250,300); - $this->image = mt_rand(1,19); - } - elseif ($this->position > MAX_PLANETE/4) - { - $this->cases = mt_rand(175,260); - $this->image = mt_rand(1,19); - } - else - { - $this->cases = mt_rand(150,220); - $this->image = mt_rand(1,19); - } - - //Définition des principaux paramètres de la planète - $this->nom_planete = 'Planète colonisée'; - $this->timestamp = time(); - $this->metal = 1000; - $this->cristal = 700; - $this->hydrogene = 0; - - $this->modif = array("id_user", "nom_planete", "galaxie", "ss", "position", "image", "cases", "timestamp", "metal", "cristal", "hydrogene"); - } - - /** - * Destructeur - * - * @return void - * @access public - */ - function __destruct() - { - if (empty($this->ss) || empty($this->id_user)) - return; - if ($this->id_user == 1) - var_dump($this); - - global $var___db, $config, $table_planete; - if (empty($this->id)) - { - $out1 = array(); $out2 = array(); - $bdd = new bdd(); - $bdd->connexion(); - foreach($this->modif as $modif) - { - if (!is_array($this->{$modif})) - { - $bdd->escape($this->{$modif}); - $out1[] = $modif; - if (is_int($this->{$modif}) || is_float($this->{$modif})) - $out2[] = $this->{$modif}; - else - $out2[] = "'".$this->{$modif}."'"; - } - else - { - if (is_array($this->{$modif}) && $modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") - { - $prep = serialize($this->{$modif}); - $bdd->escape($prep); - $out1[] = $modif; - $out2[] = "'$prep'"; - } - else - { - if ($modif == "batiments") - $calc = "batiment"; - elseif ($modif == "technologies") - $calc = "technolo"; - elseif ($modif == "casernes") - $calc = "casernen"; - elseif ($modif == "terrestres") - $calc = "nomterrn"; - elseif ($modif == "vaisseaux") - $calc = "nomvaisn"; - elseif ($modif == "coeff_bat") - $calc = "coeff"; - - if (!isset(${$calc.'VAR'})) - global ${$calc.'VAR'}; - - foreach($this->{$modif} as $j => $value) - { - $out1[] = ${$calc.'VAR'}[$j]; - $out2[] = $value; - } - } - } - } - $bdd->query("INSERT INTO $table_planete (".implode(', ', $out1).", hash_planete) VALUES (".implode(', ', $out2).", SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))"); - $bdd->deconnexion(); - } - else - { - $nb = count($this->modif); - $out = array(); - $bdd = new bdd(); - $bdd->connexion(); - for($i = 0; $i < $nb; $i++) - { - if ($this->modif[$i] == 'technologies') - $this->modifUser[] = $this->modif[$i]; - elseif (!is_array($this->{$this->modif[$i]})) - { - $bdd->escape($this->{$this->modif[$i]}); - if (is_int($this->{$this->modif[$i]}) || is_float($this->{$this->modif[$i]})) - $out[] = $this->modif[$i]." = ".$this->{$this->modif[$i]}; - else - $out[] = $this->modif[$i]." = '".$this->{$this->modif[$i]}."'"; - } - else - { - if (is_array($this->{$this->modif[$i]}) && $this->modif[$i] != "coeff_bat" && $this->modif[$i] != "vaisseaux" && $this->modif[$i] != "terrestres" && $this->modif[$i] != "casernes" && $this->modif[$i] != "technologies" && $this->modif[$i] != "batiments") - { - $prep = serialize($this->{$this->modif[$i]}); - $bdd->escape($prep); - $out[] = $this->modif[$i]." = '$prep'"; - } - else - { - if ($this->modif[$i] == "batiments") - $calc = "batiment"; - elseif ($this->modif[$i] == "technologies") - $calc = "technolo"; - elseif ($this->modif[$i] == "casernes") - $calc = "casernen"; - elseif ($this->modif[$i] == "terrestres") - $calc = "nomterrn"; - elseif ($this->modif[$i] == "vaisseaux") - $calc = "nomvaisn"; - elseif ($this->modif[$i] == "coeff_bat") - $calc = "coeff"; - - if (!isset(${$calc.'VAR'})) - global ${$calc.'VAR'}; - - $nombr = count(${$calc.'VAR'}); - for($j = 0; $j < $nombr; $j++) - { - $bdd->escape($this->{$this->modif[$i]}[$j]); - $out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modif[$i]}[$j].""; - } - } - } - } - if (!empty($out)) - $plan = $bdd->query("UPDATE $table_planete SET ".implode(', ', $out)." WHERE id = ".$this->id.";"); - - $bdd->deconnexion(); - parent::__destruct(); - } - } - } -?> \ No newline at end of file diff --git a/game/Class/class.bourse.php b/game/Class/class.bourse.php deleted file mode 100644 index 77bccca..0000000 --- a/game/Class/class.bourse.php +++ /dev/null @@ -1,190 +0,0 @@ -connexion(); - $this->bd = $db; - - if (!empty($nom)) { - $this->loadAction($nom, "id"); - if (!empty($user)) $this->loadUser($user); - } - } - - function __destruct(){ - $this->bd->deconnexion(); - } - - function loadAction($nom, $type = "nom"){ - global $table_bourse; - $this->bd->escape($nom); - $act = $this->bd->unique_query("SELECT * FROM $table_bourse WHERE $type = '$nom';"); - if ($act) { - $this->id = $act['id']; - $this->nom = $act['nom']; - $this->metal = $act['metal']; - $this->cristal = $act['cristal']; - } - else erreur('Impossible de trouver cette action !', "red", '?p=bourse'); - } - - function loadUser($user, $type = "id"){ - global $table_user; - $this->bd->escape($user); - $act = $this->bd->unique_query("SELECT id, bourse FROM $table_user WHERE $type = '$user';"); - $this->user = $act['id']; - $this->traitUser($act['bourse']); - } - - function traitUser($start){ - $end = array(); - $start = explode(';', $start); - $cnt = count($start); - for($i = 0; $i < $cnt; $i++){ - $tmp = explode(':', $start[$i]); - if (!empty($tmp[1])) $end[$tmp[0]] = explode(',', $tmp[1]); - else $end[$tmp[0]] = array(); - } - $this->actionsUser = $end; - } - - function prixAchat($nb){ - return array(floor($this->metal * $nb * $this->taxeA), floor($this->cristal * $nb * $this->taxeA)); - } - - function prixVente($nb){ - if ($this->action() < $nb) $nb = $this->action(); - - return array(floor($this->metal * $nb / $this->taxeV), floor($this->cristal * $nb / $this->taxeV)); - } - - function addAction($nb){ - $ret = array(floor($this->metal * $nb * $this->taxeA), floor($this->cristal * $nb * $this->taxeA)); - - $this->metal *= pow(1.1, $nb); - $this->cristal *= pow(1.1, $nb); - - for($i = 0; $i < $nb; $i++){ - $this->actionsUser[$this->id][] = time(); - } - - $this->maj(); - return $ret; - } - - function delAction($nb){ - if ($this->action() < $nb) $nb = $this->action(); - - $ret = array(floor($this->metal * $nb / $this->taxeV), floor($this->cristal * $nb / $this->taxeV)); - - $this->metal /= pow(1.1, $nb); - $this->cristal /= pow(1.1, $nb); - - for($i = 0; $i < $nb; $i++){ - unset($this->actionsUser[$this->id][$i]); - } - - $this->maj(); - return $ret; - } - - function actionIn24Hours(){ - $nb = 0; - if (isset($this->actionsUser[$this->id])) { - $cnt = count($this->actionsUser[$this->id]); - for($i = 0; $i < $cnt; $i++){ - if ($this->actionsUser[$this->id][$i] > time() - 86400) $nb++; - } - } - return $nb; - } - - function action(){ - if (isset($this->actionsUser[$this->id])) return count($this->actionsUser[$this->id]); - else return 0; - - } - - function maj(){ - $this->majBourse(); - $this->majUser(); - $this->fileSave(); - } - - function majBourse(){ - global $table_bourse; - - $this->bd->query("UPDATE $table_bourse SET nom = '".$this->nom."', metal = '".$this->metal."', cristal = '".$this->cristal."' WHERE id = ".$this->id.";"); - } - - function majUser(){ - global $table_user; - - $champ = ''; - foreach($this->actionsUser as $key => $cell) { - if (count($cell) > 0) { - if (empty($champ)) $champ .= $key.':'.implode(',', $cell); - else $champ .= ';'.$key.':'.implode(',', $cell); - } - } - - $this->bd->query("UPDATE $table_user SET bourse = '$champ' WHERE id = ".$this->user.";"); - } - - function delUser($id = ""){ - if (!empty($id)) $this->loadUser($id); - - $champ = ''; - foreach($this->actionsUser as $key => $cell) { - $cnt = count($cell); - if ($cnt > 0) { - $this->loadAction($key, "id"); - $this->delAction($cnt); - } - } - } - - - function fileSave(){ - $fichier = fopen(_FCORE."../game/cache/bourse/".$this->id.".".strftime('%Y%m%d').".bourse",'a+'); - fwrite($fichier, time().';'.$this->metal.';'.$this->cristal."\n"); - fclose($fichier); - } - - - function newGroupe($nom, $metal, $cristal, $description = ""){ - global $table_bourse; - - $this->bd->query("INSERT INTO $table_bourse (nom, metal, cristal, description) VALUES('$nom', '$metal', '$cristal', '$description');"); - } - - function editGroupe($description){ - //TODO toute cette fonction !! - } -} -?> \ No newline at end of file diff --git a/game/Class/class.combat.php b/game/Class/class.combat.php deleted file mode 100644 index 48ee89c..0000000 --- a/game/Class/class.combat.php +++ /dev/null @@ -1,505 +0,0 @@ - 0, 'cristal' => 0, 'hydrogene' => 0); - var $ENdef = array(); - var $Ntour = 0; - var $ATtactique = 0; - var $ENtactique = 0; - var $timestamp = 0; - var $vaisContenu = 0; - var $vaisContenuM = 0; - var $vaisContenuC = 0; - var $vaisContenuH = 0; - var $pillage = array(0, 0, 0); - - var $debriM = 0; - var $debriC = 0; - - /** - * Constructeur - * @param array $flotteAT tableau SQL des vaisseaux envoyés par l'attaquant - * @param array $flotteEN tableau SQL de la planète du défenseur - * @param array $defEN tableau SQL de la planète du défenseur - * - * @return void - * @access public - */ - function Combat($flotteAT, $flotteEN, $defEN, $tableTechno = array(0, 0)) { - include(_FCORE."hb_game/vars.php"); - //Génération des vaisseaux attaquants - for ($i=1 ; $i<=12 ; $i++) { - if ($flotteAT['vaisseau_'.$i] >= 1) { - //Création des groupes - $nbvais = $flotteAT['vaisseau_'.$i]; - $nbgroupes = floor(sqrt(ceil($nbvais/10))); - $nbvaispgroupe = floor($nbvais/$nbgroupes); - $nbrest = $nbvais - $nbvaispgroupe * $nbgroupes; - - if (isset($groupe)) unset($groupe); - $groupe = array(); - for ($j=0 ; $j < $nbgroupes ; $j++) { - if ($j == 0) $groupe[] = array($nbvaispgroupe + $nbrest, $nomvais_bc[$i-1] * (1 + $tableTechno[0]/10), $nomvais_pv[$i-1]); - else $groupe[] = array($nbvaispgroupe, $nomvais_bc[$i-1] * (1 + $tableTechno[0]/10), $nomvais_pv[$i-1]); - } - $this->ATvais[] = array($i, $flotteAT['vaisseau_'.$i], $nbgroupes, $groupe, $nomvais_initiative[$i-1]); - } - } - - //Définition d'autres variables de la classe concernant la flotte - $this->refflotte = $flotteAT['id']; - $this->vaisContenu = $flotteAT['contenu_max']; - $this->vaisContenuM = $flotteAT['contenu_metal']; - $this->vaisContenuC = $flotteAT['contenu_cristal']; - $this->vaisContenuH = $flotteAT['contenu_hydrogene']; - $this->timestamp = $flotteAT['start_time'] + $flotteAT['end_time']; - - //Génération des vaisseaux défenseurs - for ($i=1 ; $i<=12 ; $i++) { - if ($flotteEN['vaisseau_'.$i] >= 1) { - //Création des groupes - $nbvais = $flotteEN['vaisseau_'.$i]; - $nbgroupes = floor(sqrt(ceil($nbvais/10))); - $nbvaispgroupe = floor($nbvais/$nbgroupes); - $nbrest = $nbvais - $nbvaispgroupe * $nbgroupes; - - if (isset($groupe)) unset($groupe); - $groupe = array(); - for ($j=0 ; $j < $nbgroupes ; $j++) { - if ($j == 0) $groupe[] = array($nbvaispgroupe + $nbrest, $nomvais_bc[$i-1] * (1 + $tableTechno[1]/10), $nomvais_pv[$i-1]); - else $groupe[] = array($nbvaispgroupe, $nomvais_bc[$i-1] * (1 + $tableTechno[1]/10), $nomvais_pv[$i-1]); - } - $this->ENvais[] = array($i, $flotteEN['vaisseau_'.$i], $nbgroupes, $groupe, $nomvais_initiative[$i-1]); - } - } - - //Génération des défenses défenseurs - for ($i=1 ; $i<=5 ; $i++) { - if ($defEN['def_'.$i] >= 1) { - //Création des groupes - $nbvais = $defEN['def_'.$i]; - $nbgroupes = floor(sqrt(ceil($nbvais/10))); - $nbvaispgroupe = floor($nbvais/$nbgroupes); - $nbrest = $nbvais - $nbvaispgroupe * $nbgroupes; - - if (isset($groupe)) unset($groupe); - $groupe = array(); - for ($j=0 ; $j < $nbgroupes ; $j++) { - if ($j == 0) $groupe[] = array($nbvaispgroupe + $nbrest, $defense_bc[$i-1] * (1 + $tableTechno[1]/10), $defense_pv[$i-1]); - else $groupe[] = array($nbvaispgroupe, $defense_bc[$i-1] * (1 + $tableTechno[1]/10), $defense_pv[$i-1]); - } - $this->ENdef[] = array($i, $defEN['def_'.$i], $nbgroupes, $groupe, $defense_initiative[$i-1]); - } - } - } - - /** - * Change la tactique de l'attaquant - * @param int $tactique numéro de la tactique choisie - * - * @return void - * @access public - */ - function changerTactiqueAT($tactique) { - $this->ATtactique = ceil($tactique); - } - - /** - * Change la tactique du défenseur - * @param int $tactique numéro de la tactique choisie - * - * @return void - * @access public - */ - function changerTactiqueEN($tactique) { - $this->ENtactique = ceil($tactique); - } - - /** - * Régénére les boucliers - * @param int $pourcentage pourcentage de régénération - * @param bool $attaquant régénére le bouclier de l'attaquant si true, sinon régénrére celui du défenseur - * @param bool $retour si true, renvoie true ou false si !le pourcentage a été consommé ou non, si false, retrourne ne nombre de pourcentage restant - * @param int $blindage niveau de la technologie blindage du joueur - * - * @return float pourcentage non utilisé - * @access public - */ - function regenereBC($pourcentage, $attaquant, $retour = false, $blindage = 0) { - include(_FCORE."hb_game/vars.php"); - if ($attaquant) { - $count = count($this->ATvais); - $enplus = 0; - $norm = 0; - for ($i=0 ; $i<$count ; $i++) { - $type = $this->ATvais[$i][0]-1; - $maxbc = $nomvais_bc[$type] * (1 + $blindage/10); - $ajout = $maxbc*$pourcentage/100; - - $cntbc = count($this->ATvais[$i][3]); - for ($j=0 ; $j<$cntbc ; $j++) { - $norm += $maxbc * $this->ATvais[$i][3][$j][0]; - - if ($this->ATvais[$i][3][$j][1] < $maxbc) { - $this->ATvais[$i][3][$j][1] += $ajout; - } - else $enplus += $ajout * $this->ATvais[$i][3][$j][0]; - if ($this->ATvais[$i][3][$j][1] > $maxbc) { - $enplus += ($this->ATvais[$i][3][$j][1] - $maxbc)*$this->ATvais[$i][3][$j][0]; - $this->ATvais[$i][3][$j][1] = $maxbc; - } - } - } - if ($retour) { - if($norm != 0 && $enplus/$norm == 1) return $pourcentage; - else return false; - } - else return $enplus/$norm; - } - else { - $count = count($this->ENvais); - $enplus = 0; - $norm = 0; - for ($i=0 ; $i<$count ; $i++) { - $type = $this->ENvais[$i][0]-1; - $maxbc = $nomvais_bc[$type] * (1 + $blindage/10); - $ajout = $maxbc*$pourcentage/100; - - $cntbc = count($this->ENvais[$i][3]); - for ($j=0 ; $j<$cntbc ; $j++) { - $norm += $maxbc * $this->ENvais[$i][3][$j][0]; - if ($this->ENvais[$i][3][$j][1] < $maxbc) { - $this->ENvais[$i][3][$j][1] += $ajout; - } - else $enplus += $ajout * $this->ENvais[$i][3][$j][0]; - if ($this->ENvais[$i][3][$j][1] > $maxbc) { - $enplus += ($this->ENvais[$i][3][$j][1] - $maxbc)*$this->ENvais[$i][3][$j][0]; - $this->ENvais[$i][3][$j][1] = $maxbc; - } - } - } - if ($norm != 0) $return = $enplus/$norm; - else $return = 0; - - //Défenses - $count = count($this->ENdef); - $enplus = 0; - $norm = 0; - for ($i=0 ; $i<$count ; $i++) { - $type = $this->ENdef[$i][0]-1; - $maxbc = $defense_bc[$type] * (1 + $blindage/10); - $ajout = $maxbc*$pourcentage/100; - - $cntbc = count($this->ENdef[$i][3]); - for ($j=0 ; $j<$cntbc ; $j++) { - $norm += $maxbc * $this->ENdef[$i][3][$j][0]; - if ($this->ENdef[$i][3][$j][1] < $maxbc) { - $this->ENdef[$i][3][$j][1] += $ajout; - } - else $enplus += $ajout * $this->ENdef[$i][3][$j][0]; - if ($this->ENdef[$i][3][$j][1] > $maxbc) { - $enplus += ($this->ENdef[$i][3][$j][1] - $maxbc)*$this->ENdef[$i][3][$j][0]; - $this->ENdef[$i][3][$j][1] = $maxbc; - } - } - } - if ($norm != 0) $return = $enplus/$norm; - else $return = 0; - if ($retour) { - if($norm != 0 && $enplus/$norm == 1) return $pourcentage; - else return false; - } - else return $return/2; - } - } - - /** - * Calcul la puissance d'attaque disponible - * @param int $pourcentage pourcentage de régénération - * @param bool $attaquant calcul les points de l'attaquant si true, sinon calcul pour le défenseur - * @param int $armement niveau de la technologie armement du joueur - * @param bool $method true pour utiliser la mèthode classique, false pour utiliser la méthode d'Apocalypse Joe - * - * @return int points disponibles - * @access public - */ - function calcAttaque($pourcentage, $attaquant, $armement = 0, $method = false) { - include(_FCORE."hb_game/vars.php"); - if ($method) { - if ($attaquant) { - $puissance = 0; - $count = count($this->ATvais); - for ($i=0 ; $i<$count ; $i++) { - $maxat = $nomvais_at[$this->ATvais[$i][0]-1] * (1 + $armement/10); - $puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1]; - } - return $puissance; - } - else { - $puissance = 0; - $count = count($this->ENvais); - for ($i=0 ; $i<$count ; $i++) { - $maxat = $nomvais_at[$this->ENvais[$i][0]-1] * (1 + $armement/10); - $puissance += $maxat * $pourcentage/100 * $this->ENvais[$i][1]; - } - - //Défenses - $count = count($this->ENdef); - for ($i=0 ; $i<$count ; $i++) { - $maxat = $defense_at[$this->ENdef[$i][0]-1] * (1 + $armement/10); - $puissance += $maxat * $pourcentage/100 * $this->ENdef[$i][1]; - } - return $puissance; - } - } - else { - if ($attaquant) { - //Calcul du pourcentage de chaque vaisseau adverse - $vaisEff = array(); - $nbvais = 0; - $countj = count($this->ENvais); - $countd = count($this->ENdef); - for ($i=0 ; $i<$countj ; $i++) { - $nbvais += $this->ENvais[$i][1]; - } - for ($i=0 ; $i<$countj ; $i++) { - $vaisEff[$this->ENvais[$i][0]] = $this->ENvais[$i][1]/$nbvais; - } - - $puissance = 0; - $count = count($this->ATvais); - for ($i=0 ; $i<$count ; $i++) { - if ($this->ATvais[$i][4] > $this->Ntour) continue; - - $bonus = 0; - for ($j=0 ; $j<$countj ; $j++) { - $bonus += $nomvais_rf[$this->ATvais[$i][0]-1][$this->ENvais[$i][0]-1] * $vaisEff[$this->ENvais[$i][0]]; - } - for ($j=0 ; $j<$countd ; $j++) { - $bonus += 1/$countd; - } - $maxat = $nomvais_at[$this->ATvais[$i][0]-1] * (1 + $armement/10); - $puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1] * $bonus; - } - return $puissance; - } - else { - //Calcul du pourcentage de chaque vaisseau adverse - $vaisEff = array(); - $nbvais = 0; - $countj = count($this->ATvais); - for ($i=0 ; $i<$countj ; $i++) { - $nbvais += $this->ATvais[$i][1]; - } - for ($i=0 ; $i<$countj ; $i++) { - $vaisEff[$this->ATvais[$i][0]] = $this->ATvais[$i][1]/$nbvais; - } - - $puissance = 0; - $count = count($this->ENvais); - for ($i=0 ; $i<$count ; $i++) { - if ($this->ENvais[$i][4] > $this->Ntour) continue; - - $bonus = 0; - for ($j=0 ; $j<$countj ; $j++) { - $bonus += $nomvais_rf[$this->ENvais[$i][0]-1][$this->ATvais[$i][0]-1] * $vaisEff[$this->ATvais[$i][0]]; - } - $maxat = $nomvais_at[$this->ENvais[$i][0]-1] * (1 + $armement/10); - $puissance += $maxat * $pourcentage/100 * $this->ENvais[$i][1] * $bonus; - } - - //Défenses - $count = count($this->ENdef); - for ($i=0 ; $i<$count ; $i++) { - if ($this->ENdef[$i][4] > $this->Ntour) continue; - - $maxat = $defense_at[$this->ENdef[$i][0]-1] * (1 + $armement/10); - $puissance += $maxat * $pourcentage/100 * $this->ENdef[$i][1]; - } - return $puissance; - } - } - } - - /** - * Attaque les vaisseaux adverses - * @param int $points points d'attaque disponible pour l'attaque - * @param bool $attaquant attaque le défenseur si true, sinon attaque l'attaquant - * - * @return void - * @access public - */ - function attaquerVais($points, $attaquant) { - include(_FCORE."hb_game/vars.php"); - if ($attaquant) { - while($points > 0) { - // Calcul du nombre de vaisseaux et défenses à attaquer - $nbvais = 0; - $nbgroupes = 0; - $nb = count($this->ENvais); - for ($i=0 ; $i<$nb ; $i++) { - $nbvais += $this->ENvais[$i][1]; - $nbgroupes += $this->ENvais[$i][2]; - } - $nb = count($this->ENdef); - for ($i=0 ; $i<$nb ; $i++) { - $nbvais += $this->ENdef[$i][1]; - $nbgroupes += $this->ENdef[$i][2]; - } - - //S'il ne reste plus de vaisseaux et de défenses, on arrête la boucle - if ($nbvais <= 0 || $nbgroupes <= 0 || $points <= 0) break; - - //Calcul du nombre de points qui sera enlevé par vaisseau ou défense - $ppv = $points / $nbvais; - $points = 0; - - //On lance l'attaque contre les vaisseaux - for ($j=0 ; $j<$nbgroupes ; $j++){ - $k = rand(0, count($this->ENvais)-1); - $l = rand(0, count($this->ENvais[$k][3])-1); - - $this->ENvais[$k][3][$l][1] -= $ppv; - if ($this->ENvais[$k][3][$l][1] < 0) { - $this->ENvais[$k][3][$l][2] -= abs($this->ENvais[$k][3][$l][1]); - $this->ENvais[$k][3][$l][1] = 0; - if ($this->ENvais[$k][3][$l][2] <= 0) { - $this->debriM += $this->ENvais[$k][3][$l][0] * $nomvais_md[$this->ENvais[$k][0]]; - $this->debriC += $this->ENvais[$k][3][$l][0] * $nomvais_cd[$this->ENvais[$k][0]]; - $this->ENvais[$k][1] -= $this->ENvais[$k][3][$l][0]; - $this->ENvais[$k][2] --; - array_splice($this->ENvais[$k][3], $l, 1); - if (!count($this->ENvais[$k][3])) { - array_splice($this->ENvais, $k, 1); - } - } - } - } - - //On lance l'attaque contre les défenses - for ($j=0 ; $j<$nbgroupes ; $j++){ - $k = rand(0, count($this->ENdef)-1); - $l = rand(0, count($this->ENdef[$k][3])-1); - - $this->ENdef[$k][3][$l][1] -= $ppv; - if ($this->ENdef[$k][3][$l][1] < 0) { - $this->ENdef[$k][3][$l][2] -= abs($this->ENdef[$k][3][$l][1]); - $this->ENdef[$k][3][$l][1] = 0; - if ($this->ENdef[$k][3][$l][2] <= 0) { - $this->debriM += $this->ENdef[$k][3][$l][0] * $nomvais_md[$this->ENdef[$k][0]]; - $this->debriC += $this->ENdef[$k][3][$l][0] * $nomvais_cd[$this->ENdef[$k][0]]; - $this->ENdef[$k][1] -= $this->ENdef[$k][3][$l][0]; - $this->ENdef[$k][2] --; - array_splice($this->ENdef[$k][3], $l, 1); - if (!count($this->ENdef[$k][3])) { - array_splice($this->ENdef, $k, 1); - } - } - } - } - } - return count($this->ENvais) + count($this->ENdef); - } - else { - while($points > 0) { - // Calcul du nombre de vaisseaux et défenses à attaquer - $nbvais = 0; - $nbgroupes = 0; - $nb = count($this->ATvais); - for ($i=0 ; $i<$nb ; $i++) { - $nbvais += $this->ATvais[$i][1]; - $nbgroupes += $this->ATvais[$i][2]; - } - - //S'il ne reste plus de vaisseaux et de défenses, on arrête la boucle - if ($nbvais <= 0 || $nbgroupes <= 0 || $points <= 0) break; - - //Calcul du nombre de points qui sera enlevé par vaisseau ou défense - $ppv = $points / $nbvais; - $points = 0; - - //On lance l'attaque - for ($j=0 ; $j<$nbgroupes ; $j++){ - $k = rand(0, count($this->ATvais)-1); - $l = rand(0, count($this->ATvais[$k][3])-1); - - $this->ATvais[$k][3][$l][1] -= $ppv; - if ($this->ATvais[$k][3][$l][1] < 0) { - $this->ATvais[$k][3][$l][2] -= abs($this->ATvais[$k][3][$l][1]); - $this->ATvais[$k][3][$l][1] = 0; - if ($this->ATvais[$k][3][$l][2] <= 0) { - $this->debriM += $this->ATvais[$k][3][$l][0] * $nomvais_md[$this->ATvais[$k][0]]; - $this->debriC += $this->ATvais[$k][3][$l][0] * $nomvais_cd[$this->ATvais[$k][0]]; - $this->ATvais[$k][1] -= $this->ATvais[$k][3][$l][0]; - $this->ATvais[$k][2] --; - array_splice($this->ATvais[$k][3], $l, 1); - if (!count($this->ATvais[$k][3])) { - array_splice($this->ATvais, $k, 1); - } - } - } - } - } - return count($this->ATvais); - } - } - - function exportAT($pillage = false){ - include(_FCORE."hb_game/vars.php"); - $nb = count($this->ATvais); - $nbvais = 0; $vaisContenu = 0; $vaisseau_1 = 0; $vaisseau_2 = 0; $vaisseau_3 = 0; $vaisseau_4 = 0; $vaisseau_5 = 0; $vaisseau_6 = 0; $vaisseau_7 = 0; $vaisseau_8 = 0; $vaisseau_9 = 0; $vaisseau_10 = 0; $vaisseau_11 = 0; $vaisseau_12 = 0; - for($i=0 ; $i<$nb ; $i++) { - ${'vaisseau_'.$this->ATvais[$i][0]} += $this->ATvais[$i][1]; - $nbvais += $this->ATvais[$i][1]; - $this->vaisContenu += $nomvais_rs[$this->ATvais[$i][0]-1]; - } - $sommeCont = $this->vaisContenuM + $this->vaisContenuC + $this->vaisContenuH; - if ($sommeCont > $this->vaisContenu) { - $retirer = $sommeCont/$this->vaisContenu; - $this->vaisContenuM = floor($this->vaisContenuM/$retirer); - $this->vaisContenuC = floor($this->vaisContenuC/$retirer); - $this->vaisContenuH = floor($this->vaisContenuH/$retirer); - } - if ($pillage) { - $ressplus = pillage($this->ENres['metal'], $this->ENres['cristal'], $this->ENres['hydrogene'], $this->vaisContenu - $this->vaisContenuM - $this->vaisContenuC - $this->vaisContenuH); - - $this->vaisContenuM += $ressplus[0]; - $this->vaisContenuC += $ressplus[1]; - $this->vaisContenuH += $ressplus[2]; - $this->pillage = array($ressplus[0], $ressplus[1], $ressplus[2]); - } - return 'nb_vais = \''.$nbvais.'\', contenu_max = \''.$this->vaisContenu.'\', contenu_metal = \''.$this->vaisContenuM.'\', contenu_cristal = \''.$this->vaisContenuC.'\', contenu_hydrogene = \''.$this->vaisContenuH.'\', vaisseau_1 = \''.$vaisseau_1.'\', vaisseau_2 = \''.$vaisseau_2.'\', vaisseau_3 = \''.$vaisseau_3.'\', vaisseau_4 = \''.$vaisseau_4.'\', vaisseau_5 = \''.$vaisseau_5.'\', vaisseau_6 = \''.$vaisseau_6.'\', vaisseau_7 = \''.$vaisseau_7.'\', vaisseau_8 = \''.$vaisseau_8.'\', vaisseau_9 = \''.$vaisseau_9.'\', vaisseau_10 = \''.$vaisseau_10.'\', vaisseau_11 = \''.$vaisseau_11.'\', vaisseau_12 = \''.$vaisseau_12.'\''; - } - - function pillageSimul($metal, $cristal, $hydrogene){ - $ressplus = pillage($metal, $cristal, $hydrogene, 999999); - $this->pillage = array($ressplus[0], $ressplus[1], $ressplus[2]); - } - - function exportEN(){ - $nb = count($this->ENvais); - $vaisseau_1 = 0; $vaisseau_2 = 0; $vaisseau_3 = 0; $vaisseau_4 = 0; $vaisseau_5 = 0; $vaisseau_6 = 0; $vaisseau_7 = 0; $vaisseau_8 = 0; $vaisseau_9 = 0; $vaisseau_10 = 0; $vaisseau_11 = 0; $vaisseau_12 = 0; - for($i=0 ; $i<$nb ; $i++) { - ${'vaisseau_'.$this->ENvais[$i][0]} += $this->ENvais[$i][1]; - } - $nb = count($this->ENdef); - $def_1 = 0; $def_2 = 0; $def_3 = 0; $def_4 = 0; $def_5 = 0; - for($i=0 ; $i<$nb ; $i++) { - ${'def_'.$this->ENdef[$i][0]} += $this->ENdef[$i][1]; - } - return 'vaisseau_1 = \''.$vaisseau_1.'\', vaisseau_2 = \''.$vaisseau_2.'\', vaisseau_3 = \''.$vaisseau_3.'\', vaisseau_4 = \''.$vaisseau_4.'\', vaisseau_5 = \''.$vaisseau_5.'\', vaisseau_6 = \''.$vaisseau_6.'\', vaisseau_7 = \''.$vaisseau_7.'\', vaisseau_8 = \''.$vaisseau_8.'\', vaisseau_9 = \''.$vaisseau_9.'\', vaisseau_10 = \''.$vaisseau_10.'\', vaisseau_11 = \''.$vaisseau_11.'\', vaisseau_12 = \''.$vaisseau_12.'\', def_1 = \''.$def_1.'\', def_2 = \''.$def_2.'\', def_3 = \''.$def_3.'\', def_4 = \''.$def_4.'\', def_5 = \''.$def_5.'\''; - } -} -?> \ No newline at end of file diff --git a/game/Class/class.file.php b/game/Class/class.file.php deleted file mode 100644 index 940dc83..0000000 --- a/game/Class/class.file.php +++ /dev/null @@ -1,658 +0,0 @@ -file = unserialize($file); - } - - function reajusteVacances($timeVac) - { - if (isset($this->file[0])) - $this->file[0] += time() - $timeVac; - - return serialize($this->file); - } - - /** - * Ajoute $nombre objets $objet dans la file $file - * @param int $file Nom de la file d'attente - * @param int $objet Id de l'objet à ajouter - * @param int $nombre = 1 Nombre d'objet $objet à ajouter à la file - * - * @return int Numéro de l'erreur - * @access public - */ - function file_addObjet($file, $objet, $nombre = 1) - { - $planete = $this; - - switch($file) - { - case "alli_batiments": - $court = "abat"; - $calc = "alli_batiment"; - global ${$calc.'LIMIT'}; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "batiments": - $court = "bat"; - $calc = "batiment"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "technologies": - 1/0; - die('Erreur dans la file d\'attente ! #43, veuillez contacter un administrateur.'); - break; - - case "casernes": - $court = "cas"; - $calc = "casernen"; - $exist = false; - break; - - case "terrestres": - $court = "ter"; - $calc = "nomterrn"; - $exist = false; - break; - - case "vaisseaux": - $court = "vais"; - $calc = "nomvaisn"; - $exist = false; - break; - - default: - return 1; - } - - //On calcul la taille maximale de la file d'attente - if (!empty($this->technologies['techno_inge'])) - { - if (($this->technologies['techno_inge'] &131072) == 131072) $max = 5; - elseif (($this->technologies['techno_inge'] &65536) == 65536) $max = 4; - elseif (($this->technologies['techno_inge'] &32768) == 32768) $max = 3; - else $max = 2; - } - else $max = 3; //Au cas où il n'y ait pas de technologie sur le lieu, on fixe la taille de la file d'attente - - //Load the global variables for the line - global ${$calc}, ${$calc.'CALC'}, ${$calc.'TECH'}; - - //Check the conditions of building - if (empty(${$calc}[$objet]) || !requestDeblok(${$calc.'TECH'}[$objet], $this)) - return 1; - - //Check that we have not overtake the maximum level - if (!empty(${$calc.'LIMIT'}[$objet]) && ${$file}[$objet] >= ${$calc.'LIMIT'}[$objet]) - return 1; - - //Calculate next object's level - $n = $this->{$file}[$objet] + 1; - - //Check that there isn't another object's entreaties yet building - if ($exist) - return 2; - - //Check the sended number, it mustn't be negativ - if ($nombre < 0 && ($file != "batiments" || $nombre < -1)) - return 5; - - //Refresh time if no object in the line - if (count($this->{"file_".$court}) < 2) - $this->{"file_".$court}[0] = time(); - - - if ($nombre > 0) - { - if ($file == "alli_batiments" || $file == "batiments") - { - eval(${$calc.'CALC'}[$objet][0]); - eval(${$calc.'CALC'}[$objet][1]); - eval(${$calc.'CALC'}[$objet][2]); - $d = 0; - } - elseif ($file == "technologies") - { - $a = $b = $c = 0; - $d = $technologiesCALC[$branch][$objet][2]; - } - else - { - $a = ${$calc.'CALC'}[$objet][0]; - $b = ${$calc.'CALC'}[$objet][1]; - $c = ${$calc.'CALC'}[$objet][2]; - $d = 0; - } - - //Apply policy bonus for time and cost - if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) - { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - } - //Apply bonus from technology for the mines - if ($file == "batiments" && $objet < 4 && isset($this->technologies)) - { - if ($this->technologies[0] &262144) - { - $a *= 0.85; - $b *= 0.85; - $c *= 0.85; - } - elseif ($this->technologies[0] &131072) - { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - } - elseif ($this->technologies[0] &65536) - { - $a *= 0.95; - $b *= 0.95; - $c *= 0.95; - } - } - - //Check maximum number unity building on this planet with means - if ($nombre > 1) - { - if ($a) $nombre = min(floor($this->metal/$a), $nombre); - if ($b) $nombre = min(floor($this->cristal/$b), $nombre); - if ($c) $nombre = min(floor($this->hydrogene/$c), $nombre); - if ($d) $nombre = min(floor($this->credits/$d), $nombre); - } - } - else - { - $a = 0; - $b = 0; - $c = 0; - $d = 0; - } - - //Check means on the planet - if ($this->metal < $a * $nombre || $this->cristal < $b * $nombre || $this->hydrogene < $c * $nombre || $this->credits < $d * $nombre) - return 3; - else - { - //Line generate - $nb = count($this->{"file_".$court}); - - //If the last object is similar as this one - if ($file == "technologies" && $max <= count($this->{"file_".$court})) - return 4; //Check height line - elseif ($file == "technologies") - $this->{"file_".$court}[] = array($objet, $branch); - elseif ($nombre > 99999 || ($nb > 1 && $objet == $this->{"file_".$court}[$nb-1][0] && $this->{"file_".$court}[$nb-1][1] + $nombre > 99999)) - erreur('Dépacement de capacité !
Vous ne pouvez pas mettre autant d\'unités en file d\'attente en une seule fois.'); - elseif ($nb > 1 && $objet == $this->{"file_".$court}[$nb-1][0]) - $this->{"file_".$court}[$nb-1][1] += $nombre; - elseif ($max <= count($this->{"file_".$court})) - return 4; //Check height line - else - $this->{"file_".$court}[] = array($objet, $nombre); - - //Update means on the planet after building - $this->metal -= $a * $nombre; - $this->cristal -= $b * $nombre; - $this->hydrogene -= $c * $nombre; - $this->credits -= $d * $nombre; - - if (!in_array("file_".$court, $this->modif)) - $this->modif[] = "file_".$court; - - return 0; - } - } - - /** - * Ajoute à la file d'attente technologique la technologie $technology dans la branche $branch - * @param int $branch Branche technologique dans laquel se trouve la technologie - * @param int $technology ID de la technologie à ajouter - * - * @return int Numéro de l'erreur - * @access public - */ - function file_addTechno($branch, $technology) - { - $planete = $this; - - //Calculate maximum height line - if (!empty($this->technologies['techno_inge'])) - { - if (($this->technologies['techno_inge'] &131072) == 131072) $max = 5; - elseif (($this->technologies['techno_inge'] &65536) == 65536) $max = 4; - elseif (($this->technologies['techno_inge'] &32768) == 32768) $max = 3; - else $max = 2; - } - else $max = 3; - - //Load globals variables - global $technologiesCALC; - - //Check branch and technology - if (empty($technologiesCALC[$branch][$technology])) - return 1; - - //Check search conditions - if (!(($this->technologies[$branch] &$technologiesCALC[$branch][$technology][1]) == $technologiesCALC[$branch][$technology][1] && !($this->technologies[$branch] &$technologiesCALC[$branch][$technology][0] && $this->technologies[$branch] != 0))) - return 1; - - //Check that there isn't another object's entreaties yet building - //TODO - if ($this->file_existTech($branch, $technology)) - return 2; - - //Refresh time if that is the first search - if (count($this->file_tech) < 2) - $this->file_tech[0] = time(); - - //Calculate cost and time - $a = $b = $c = 0; - $d = $technologiesCALC[$branch][$technology][2]; - - //Check means on planet - if ($this->metal < $a || $this->cristal < $b || $this->hydrogene < $c || $this->credits < $d) return 3; - else - { - if ($max <= count($this->file_tech)) - return 4; //Vérification de la taille de la file d'attente - else - $this->file_tech[] = array($technology, $branch); - - //Update means on the planet after start searching - $this->metal -= $a; - $this->cristal -= $b; - $this->hydrogene -= $c; - $this->credits -= $d; - - if (!in_array("file_tech", $this->modif)) - $this->modif[] = "file_tech"; - - return 0; - } - } - - - function file_delObjet($file, $objet, $nombre = 1, $w = 99) - { - $planete = $this; - - switch($file) - { - case "alli_batiments": - $court = "abat"; - $calc = "alli_batiment"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "batiments": - $court = "bat"; - $calc = "batiment"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "technologies": - 1/0; - die('Erreur dans la file d\'attent : #273. Contactez un administrateur.'); - break; - - case "casernes": - $court = "cas"; - $calc = "casernen"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "terrestres": - $court = "ter"; - $calc = "nomterrn"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "vaisseaux": - $court = "vais"; - $calc = "nomvaisn"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - default: - return false; - } - - //Si l'objet n'est pas dans la file d'attente, on annule la suite - if (!$exist) - return 0; - - if ($w == 99) - $w = count($this->{"file_".$court})-1; - - global ${$calc}, ${$calc.'CALC'}; - - for($i = $w; $i > 0; $i--) - { - if($this->{"file_".$court}[$i][0] == $objet) - { - $nombre = min(abs($nombre), $this->{"file_".$court}[$i][1]); - - if($this->{"file_".$court}[$i][1] <= $nombre) - { - unset($this->{"file_".$court}[$i]); - $this->{"file_".$court} = array_merge($this->{"file_".$court}); - if ($i == 1) - $this->{"file_".$court}[0] = time(); - } - else - $this->{"file_".$court}[$i][1] -= $nombre; - - break; - } - } - - //Calcul du prochain niveau de l'objet - $n = $this->{$file}[$objet] + 1; - - - if (!in_array("file_".$court, $this->modif)) - $this->modif[] = "file_".$court; - - if ($nombre > 0) - { - if ($file == "batiments") - { - eval(${$calc.'CALC'}[$objet][0]); - eval(${$calc.'CALC'}[$objet][1]); - eval(${$calc.'CALC'}[$objet][2]); - $d = 0; - } - else - { - $a = ${$calc.'CALC'}[$objet][0]; - $b = ${$calc.'CALC'}[$objet][1]; - $c = ${$calc.'CALC'}[$objet][2]; - $d = 0; - } - - //On applique les bonus politiques aux temps et coûts - if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) - { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - } - - //Mise à jour des ressources de la planète en conséquence à la construction - $this->metal += $a * $nombre; - $this->cristal += $b * $nombre; - $this->hydrogene += $c * $nombre; - $this->credits += $d * $nombre; - } - - return $nombre; - } - - function file_delTechno($id) - { - $planete = $this; - - //Si l'objet n'est pas dans la file d'attente, on annule la suite - //TODO - if (!isset($this->file_tech[$id+1])) - return 0; - else - { - global $technologiesCALC; - //On réinitialise le temps si c'est la première série de la liste - if ($id == 0) - $this->file_tech[0] = time(); - - $d = $technologiesCALC[$this->file_tech[$id+1][1]][$this->file_tech[$id+1][0]][2]; - - unset($this->file_tech[$id+1]); - $this->file_tech = array_merge($this->file_tech); - } - - - if (!in_array("file_tech", $this->modif)) - $this->modif[] = "file_tech"; - - $a = $b = $c = 0; - - //Mise à jour des ressources de la planète en conséquence à la construction - $this->metal += $a; - $this->cristal += $b; - $this->hydrogene += $c; - $this->credits += $d; - - return 1; - } - - /** - * Vérifie l'existance dans la file $file d'attente de $objet - * @param int $objet ID à vérifier - * @param string $file Nom de la file d'attente - * - * @return boolean - * @access public - */ - function file_exist($objet, $file) - { - //On traite le cas d'une file type arbre - if (is_numeric($file)) { - 1/0; - die('A corriger, File d\'attente : #422. Contacter un administrateur'); - } - else { - if (count($this->$file) <= 1) return false; - foreach($this->$file as $key => $bout){ - if ($key == 0) continue; - if($objet == $bout[0]) return true; - } - } - return false; - } - - function file_existTech($branch, $technology) - { - foreach($this->file_tech as $key => $part){ - if ($key == 0) continue; - - if($technology == $part[0] && $branch == $part[1]) return true; - } - - return false; - } - - /** - * Actualise la file $file en terminant les constructions/entraînements. - * @param string $file Nom de la file d'attente - * - * @return boolean - * @access public - */ - function file_ready($file) - { - $planete = $this; - - switch($file) - { - case "alli_batiments": - $court = "abat"; - $calc = "alli_batiment"; - $exist = $this->file_exist($objet, "file_".$court); - break; - - case "batiments": - $court = "bat"; - $calc = "batiment"; - break; - - case "technologies": - die('Erreur dans la file d\'attente : #449. Veuillez contacter un administrateur.'); - break; - - case "casernes": - $court = "cas"; - $calc = "casernen"; - break; - - case "terrestres": - $court = "ter"; - $calc = "nomterrn"; - break; - - case "vaisseaux": - $court = "vais"; - $calc = "nomvaisn"; - break; - - default: - return false; - } - - if (empty($this->{"file_".$court}[0])) - return false; - - //Calcul du temps écoulé depuis le dernier entrainement validé - $tps = time() - $this->{"file_".$court}[0]; - - global ${$calc}, ${$calc.'CALC'}; - - foreach($this->{"file_".$court} as $key => $bout) - { - if ($key == 0) continue; - - if ($bout[1] < 0) $n = $this->{$file}[$bout[0]]; //Extraction du niveau en cours - else $n = $this->{$file}[$bout[0]] + 1; //Extraction du niveau en cours - eval(${$calc.'CALC'}[$bout[0]][3]); //Récupération du temps de construction - - //On applique le bonus de temps des ingénieurs et des centrales informatiques - if ($file == "batiments" && $bout[0] != 11) $sec /= pow(1.23,$this->batiments[11]) + 0.0025*$this->casernes[7]; - - - //Accélération du temps de construction - $sec /= VITESSE; - - if ($bout[1] < 0) - { - $sec *= 0.6; - - if ($sec < $tps) - { - eval(${$calc.'CALC'}[$bout[0]][0]); - eval(${$calc.'CALC'}[$bout[0]][1]); - eval(${$calc.'CALC'}[$bout[0]][2]); - - //On reçoit 70% des ressources en bonus - $this->metal += $a * 0.7; - $this->cristal += $b * 0.7; - $this->hydrogene += $c * 0.7; - - $this->{$file}[$bout[0]]--; - $this->{"file_".$court}[0] += $bout[1] * $sec; - $tps -= $sec; - unset($this->{"file_".$court}[$key]); - - if (!in_array($file, $this->modif)) $this->modif[] = $file; - if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court; - } - } - elseif ($sec * $bout[1] < $tps && $bout[1] > 0) - { - //S'il s'agit d'un silo, on sauvegarde le temps pour utilisation par le script de production - if ($file == "batiments" && $bout[0] == 10) $timestamp_lastSilo = $this->{"file_".$court}[0]; - if ($file == "batiments" && $bout[0] == 0) $timestamp_mineM = $this->{"file_".$court}[0]; - if ($file == "batiments" && $bout[0] == 1) $timestamp_mineC = $this->{"file_".$court}[0]; - if ($file == "batiments" && $bout[0] == 2) $timestamp_mineH = $this->{"file_".$court}[0]; - - $this->{$file}[$bout[0]] += $bout[1]; - $this->{"file_".$court}[0] += $bout[1] * $sec; - $tps -= $bout[1] * $sec; - unset($this->{"file_".$court}[$key]); - - if (!in_array($file, $this->modif)) $this->modif[] = $file; - if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court; - } - elseif ($sec < time() - $this->{"file_".$court}[0] && $bout[1] > 0) - { - $j = floor($tps/$sec); - - $this->{"file_".$court}[$key][1] -= $j; - $this->{$file}[$bout[0]] += $j; - $this->{"file_".$court}[0] += $j * $sec; - $tps -= $j * $sec; - - if (!in_array($file, $this->modif)) $this->modif[] = $file; - if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court; - - //Comme la première attente n'est pas terminée, on stoppe le tout - break; - } - else break; - } - //On actualise seulement s'il y a eu une modification de faite - if (in_array($file, $this->modif)) $this->actualiser(false); - $this->{"file_".$court} = array_merge($this->{"file_".$court}); - } - - function file_readyTechno($file) - { - $planete = $this; - - $court = "tech"; $calc = "technolo"; - - if (empty($this->file_tech[0])) return false; - - //Calcul du temps écoulé depuis le dernier entrainement validé - $tps = time() - $this->file_tech[0]; - - global $technologiesCALC; - - foreach($this->file_tech as $key => $bout) - { - if ($key == 0) continue; - - //Récupération du temps de recherche - $sec = $technologiesCALC[$bout[1]][$bout[0]][3] / (1 + $this->batiments[6] * 0.01); - - //Accélération du temps de construction en fonction de la vitesse du serveur - $sec /= VITESSE; - - if ($sec < $tps) - { - $this->technologies[$bout[1]] |= $technologiesCALC[$bout[1]][$bout[0]][0]; - $this->file_tech[0] += $sec; - $tps -= $sec; - unset($this->file_tech[$key]); - $this->file_tech = array_merge($this->file_tech); - - //La déouverte de technologie est bénéfique pour le moral de la population - if ($this->moral) { - if ($this->politique == 3) $this->setMoral(0.1); //Démocratie : Découvrir une nouvelle technologie a plus d'effet bénéfique sur le moral - else $this->setMoral(0.05); - } - - if (!in_array("technologies", $this->modifUser)) $this->modifUser[] = "technologies"; - if (!in_array("file_tech", $this->modif)) $this->modif[] = "file_tech"; - } - else break; - } - if (in_array("file_tech", $this->modif)) $this->actualiser(false); - } - } -?> \ No newline at end of file diff --git a/game/Class/class.flotte.php b/game/Class/class.flotte.php deleted file mode 100644 index c796d49..0000000 --- a/game/Class/class.flotte.php +++ /dev/null @@ -1,592 +0,0 @@ -connexion(); - $bdd->escape($id); - $flotte = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id = $id;"); - $bdd->query("UPDATE $table_flottes SET last = ".time()." WHERE id = $id;"); //Obtention d'un vérrou de 10 seconde sur la flotte - $bdd->deconnexion(); - if (!empty($flotte)) - { - $this->id_flotte = $flotte["id"]; - $this->nom = $flotte["nom"]; - $this->start_planete = $flotte["start_planete"]; - $this->start_time = $flotte["start_time"]; - $this->end_planete = $flotte["end_planete"]; - $this->end_time = $flotte["end_time"]; - $this->ret_planete = $flotte["ret_planete"]; - $this->ret_time = $flotte["ret_time"]; - $this->tactique = $flotte["tactique"]; - $this->mission = $flotte["mission"]; - $this->vitesse = $flotte["vitesse"]; - $this->statut = $flotte["statut"]; - $this->last = $flotte["last"]; - $this->nb_vais = $flotte["nb_vais"]; - - foreach($nomvaisnVAR as $vais) - $this->vaisseaux[] = $flotte[$vais]; - - $this->contenu = array($flotte["contenu_metal"], $flotte["contenu_cristal"], $flotte["contenu_hydrogene"]); - - $this->calculer(); - } - } - } - - - function calculer() - { - global $nomvais_rs; - - $this->nb_vais = 0; - - //Calcul de la capacité maximale d'embarquement de la flotte - foreach($this->vaisseaux as $key => $vais) - { - $this->nb_vais += $vais; - $this->contenuMax += $nomvais_rs[$key] * $vais; - } - } - - - function load_planete() - { - if (is_numeric($this->start_planete) && !empty($this->start_planete)) - { - global $planete; - //Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée - if ($planete->id == $this->start_planete) - $this->start_planete = $planete; - else - $this->start_planete = new Planete($this->start_planete); - } - if (is_numeric($this->end_planete) && !empty($this->end_planete)) - { - global $planete; - //Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée - if ($planete->id == $this->end_planete) - $this->end_planete = $planete; - else - $this->end_planete = new Planete($this->end_planete); - } - if (is_numeric($this->ret_planete) && !empty($this->ret_planete)) - { - global $planete; - //Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée - if ($planete->id == $this->ret_planete) - $this->ret_planete = $planete; - else - $this->ret_planete = new Planete($this->ret_planete); - } - } - - - function calc_deplacement($start_galaxie, $start_systeme, $start_position, $end_galaxie, $end_systeme, $end_position, $vitesse, $returnArray = false, $returnConso = false) - { - //Si la planète de départ n'est pas chargée, on charge les planètes - if (is_numeric($this->start_planete)) - $this->load_planete(); - global $config, $nomvais_vitesseP, $nomvais_vitesseS, $nomvais_vitesseG, $nomvais_rs; - $this->vitesse = $vitesse; - - //Calcul de la longueur du déplacement - $diff_galaxie = abs($start_galaxie - $end_galaxie); - $diff_systeme = abs($start_systeme - $end_systeme); - $diff_position = abs($start_position - $end_position); - - $diff_centre_position_start = abs(ceil($config['nb_amas']/2) - $start_position); - $diff_centre_systeme_start = abs(ceil($config['nb_systeme']/2) - $start_systeme); - - $diff_centre_position_end = abs(ceil($config['nb_amas']/2) - $end_position); - $diff_centre_systeme_end = abs(ceil($config['nb_systeme']/2) - $end_systeme); - - //Calcul du temps de déplacement pour chaque vaisseau - $temps = array(); $conso = array(0, 0, 0); - foreach($this->vaisseaux as $key => $vais) - { - //S'il n'y a pas de vaisseaux de ce type, on ne calcul pas leur vitesse - if ($vais == 0) - continue; - - //Calcul du temps de déplacement entre planètes - if ($start_systeme == $end_systeme && $start_galaxie == $end_galaxie) - { - $temps[0][$key] = (10/$nomvais_vitesseP[$key]) * (1 + 0.1 * $diff_position); - $temps[1][$key] = $temps[2][$key] = 0; - } - //Calcul du temps de déplacement entre système - elseif ($start_galaxie == $end_galaxie) - { - $temps[0][$key] = (10/$nomvais_vitesseP[$key]) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end)); - $temps[1][$key] = (20/$nomvais_vitesseS[$key]) * (2 + 1 * $diff_systeme); - $temps[2][$key] = 0; - } - //Calcul du temps de déplacement entre galaxies - else - { - $temps[0][$key] = (10/$nomvais_vitesseP[$key]) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end)); - $temps[1][$key] = (20/$nomvais_vitesseS[$key]) * (2 + 1 * ($diff_centre_systeme_start + $diff_centre_systeme_end)); - $temps[2][$key] = (50/$nomvais_vitesseG[$key]) * (2 + 1.5 * $diff_galaxie); - } - - //Calcul du bonus pour le réacteur à combustion - $techR = $this->start_planete->technologies[1]; - if ($techR & 56) - $bonus = 0.7; - elseif ($techR & 24) - $bonus = 0.8; - elseif ($techR & 8) - $bonus = 0.9; - else - $bonus = 1; - $temps[0][$key] *= $bonus * 1/$vitesse; - $conso[0] += $vais * $temps[0][$key] * $bonus / exp($vitesse/5); - - //Calcul du bonus pour le réacteur à fusion - $techR = $this->start_planete->technologies[1]; - if ($techR &448) - $bonus = 0.7; - elseif ($techR &192) - $bonus = 0.8; - elseif ($techR &64) - $bonus = 0.9; - else - $bonus = 1; - $temps[1][$key] *= $bonus * 1/$vitesse; - $conso[1] += $vais * $temps[1][$key] * $bonus / exp($vitesse/7.5); - - //Calcul du bonus pour le réacteur à fusion de type II - $techR = $this->start_planete->technologies[1]; - if ($techR &3584) - $bonus = 0.7; - elseif ($techR &1536) - $bonus = 0.8; - elseif ($techR &512) - $bonus = 0.9; - else - $bonus = 1; - $temps[2][$key] *= $bonus * 1/$vitesse; - $conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10); - } - - if (!isset($this->vaisseaux[4])) - $this->vaisseaux[4] = 0; - if (!isset($this->vaisseaux[5])) - $this->vaisseaux[5] = 0; - - //Si les chasseurs peuvent rentrer dans les cales des vaisseaux, on les enlèves - if ($this->contenuMax - ($this->contenu[0] + $this->contenu[1] + $this->contenu[2]) - ($this->vaisseaux[4] * $nomvais_rs[4] + $this->vaisseaux[5] * $nomvais_rs[5]) >= ($this->vaisseaux[4] + $this->vaisseaux[5]) * 200) - $temps[2][4] = $temps[2][5] = $temps[1][4] = $temps[1][5] = $temps[0][4] = $temps[0][5] = 0; - - //On calcul le temps de déplacement maximal - if ($returnArray) - return $temps; - elseif ($returnConso) - return array(max($temps[0]) + max($temps[1]) + max($temps[2]), ceil($conso[0]+$conso[1]+$conso[2])); - else - return (max($temps[0]) + max($temps[1]) + max($temps[2])); - } - - - function check_mission() - { - //On vérifie qu'un calcul ne soit pas déjà en cours - if ($this->last >= time() - 10) - return false; - elseif ($this->start_time + $this->end_time > time()) - return false; - - if ($this->statut == 0) - { - switch($this->mission) - { - case 0: - return $this->stationner(); - break; - case 1: - return $this->transporter(); - break; - case 2: - return $this->coloniser(); - break; - case 3: - return $this->attaquer(); - break; - case 4: - return $this->recycler(); - break; - case 5: - return $this->espionner(); - break; - } - } - - if ($this->statut == 1 && ($this->ret_time > time() || $this->start_time + $this->end_time * 2 <= time())) - return $this->retourner(); - } - - - function stationner() - { - //On décharge les ressources éventuellement contenue - $this->decharger(); - - //On fait atterir les vaisseaux - foreach ($this->vaisseaux as $key => $vais) - $this->end_planete->vaisseaux[$key] += $vais; - - if (!in_array("vaisseaux", $this->end_planete->modif)) - $this->end_planete->modif[] = "vaisseaux"; - $this->modifFlotte = "DELETE"; - } - - - function transporter() - { - $max = $this->decharger(); - - //Envoie du MP de confirmation au joueur - $send = new Rapport(2, $this->start_planete->id_user, $this->end_planete->id_user, $this->start_time + $this->end_time); - $send->addInfo(array($this->end_planete->nom_planete, $this->end_planete->galaxie, $this->end_planete->ss, $this->end_planete->position), 0); - $send->addInfo($max, 1); - - $this->statut = 1; - if (!in_array('statut', $this->modifFlotte)) - $this->modifFlotte[] = 'statut'; - } - - - function coloniser() - { - //On vérifie que les coordonnées de la planètes sont bien enregistrée - if (empty($this->end_planete) || is_object($this->end_planete) || !preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $this->end_planete)) - { - $this->load_planete(); - file_log("Erreur de colonisation de la planète : ".$this->end_planete." pour le joueur : ".$this->start_planete->id_user, 2); - send_mp($this->start_planete->id_user, "Erreur de colonisation [F#01]", "Une erreur s'est produite lors de la tentative de colonisation de votre flotte, elle a fait demi-tour."); - $this->rappeler(); - } - - //On vérifie que la planète ne soit pas déjà colonisée - global $var___db, $config, $table_planete; - $bdd = new bdd(); - preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $this->end_planete, $position); - $bdd->connexion(); - $p = $bdd->query("SELECT * FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";"); - $bdd->deconnexion(); - - if ($p) - { - $this->load_planete(); - - $rapport = new Rapport(2, $this->start_planete->id_user, 0, $this->start_time + $this->end_time); - $rapport->addInfo(array($position[1], $position[2], $position[3]), 0); - $rapport->addInfo(false, 1); - $rapport->send(); - } - else - { - $this->load_planete(); - - //On crée la planète - $this->end_planete = new Planete(); - $this->end_planete->galaxie = $position[1]; - $this->end_planete->ss = $position[2]; - $this->end_planete->position = $position[3]; - $this->end_planete->creer($this->start_planete->id_user); - - //Rembousement du carburant non utilisé (la colonisation prévois au départ un allé/retour) - $conso = $this->calc_deplacement($this->start_planete->galaxie, $this->start_planete->ss, $this->start_planete->position, $position[1], $position[2], $position[3], $this->vitesse, false, true); - $this->end_planete->hydrogene += $conso[1]; - - //On définit la limite de ressources pour permettre le déchargement de celles contenues dans les vaisseaux - $this->end_planete->cap = 100000; - - //On enlève un vaisseau de colonisation de la liste - $this->vaisseaux[2]--; - - //On fait atterir les vaisseaux et décharger les ressources - $this->decharger(); - $this->atterir(); - - //On envoie un rapport - $rapport = new Rapport(2, $this->start_planete->id_user, 0, $this->start_time + $this->end_time); - $rapport->addInfo(array($position[1], $position[2], $position[3]), 0); - $rapport->addInfo(true, 1); - $rapport->send(); - } - } - - - function recycler() - { - //Si la planète d'arrivé n'est pas chargée, on charge les planètes - if (is_numeric($this->end_planete)) - $this->load_planete(); - - $coeff = ($this->contenuMax - $this->contenu[0] - $this->contenu[1] - $this->contenu[2])/($this->end_planete->debris_met + $this->end_planete->debris_cri); - if ($coeff > 1) - $coeff = 1; - - $a = floor($this->end_planete->debris_met * $coeff); - $b = floor($this->end_planete->debris_cri * $coeff); - - $this->contenu[0] += $a; - $this->contenu[1] += $b; - if (!in_array('contenu', $this->modifFlotte)) - $this->modifFlotte[] = 'contenu'; - - $this->end_planete->debris_met -= $a; - $this->end_planete->debris_cri -= $b; - if (!in_array('debris_met', $this->end_planete->modif)) - $this->end_planete->modif[] = 'debris_met'; - if (!in_array('debris_cri', $this->end_planete->modif)) - $this->end_planete->modif[] = 'debris_cri'; - - //Send link - $rapport = new Rapport(4, $this->start_planete->id_user, 0, $this->start_time + $this->end_time); - $rapport->addInfo($this->end_planete, 0); - $rapport->addInfo(array($a, $b), 1); - $rapport->send(); - - $this->statut = 1; - if (!in_array('statut', $this->modifFlotte)) - $this->modifFlotte[] = 'statut'; - } - - - function espionnage() - { - //Si la planète d'arrivé n'est pas chargée, on charge les planètes - if (is_numeric($this->end_planete)) - $this->load_planete(); - - - - $this->statut = 1; - if (!in_array('statut', $this->modifFlotte)) - $this->modifFlotte[] = 'statut'; - } - - - function decharger() - { - //Si la planète d'arrivé n'est pas chargée, on charge les planètes - if (is_numeric($this->end_planete)) - $this->load_planete(); - $max = array(0, 0, 0); - - //Si on dépasse les capacités, on laisse les ressources en trop dans le cargo - if ($this->end_planete->metal + $this->contenu[0] > $this->end_planete->cap) - { - $max[0] = $this->end_planete->cap - $this->end_planete->metal; - if ($max[0] < 0) $max[0] = 0; - } - else - $max[0] = $this->contenu[0]; - $this->end_planete->metal += $max[0]; - $this->contenu[0] -= $max[0]; - - if ($this->end_planete->cristal + $this->contenu[1] > $this->end_planete->cap) - { - $max[1] = $this->end_planete->cap - $this->end_planete->cristal; - if ($max[1] < 0) $max[1] = 0; - } - else - $max[1] = $this->contenu[1]; - $this->end_planete->cristal += $max[1]; - $this->contenu[1] -= $max[1]; - - if ($this->end_planete->hydrogene + $this->contenu[2] > $this->end_planete->cap) - { - $max[2] = $this->end_planete->cap - $this->end_planete->hydrogene; - if ($max[2] < 0) $max[2] = 0; - } - else - $max[2] = $this->contenu[2]; - $this->end_planete->hydrogene += $max[2]; - $this->contenu[2] -= $max[2]; - - if (!in_array('contenu', $this->modifFlotte)) - $this->modifFlotte[] = 'contenu'; - return $max; - } - - - function atterir($planete = "end_planete") - { - //Si la planète d'arrivé n'est pas chargée, on charge les planètes - if (is_numeric($this->$planete)) - $this->load_planete(); - - if (isset($this->$planete->vaisseaux[0])) - { - foreach ($this->vaisseaux as $key => $vais) - $this->$planete->vaisseaux[$key] += $vais; - } - else - $this->$planete->vaisseaux = $this->vaisseaux; - - if (!in_array("vaisseaux", $this->$planete->modif)) - $this->$planete->modif[] = "vaisseaux"; - - $this->modifFlotte = "DELETE"; - } - - - function rappeler() - { - if ($this->start_time + $this->end_time >= time()) - return false; - else - { - $this->end_time = time() - $this->start_time + 10; - $this->mission = 5; - if (!in_array('mission', $this->modifFlotte)) - $this->modifFlotte[] = 'mission'; - if (!in_array('end_time', $this->modifFlotte)) - $this->modifFlotte[] = 'end_time'; - return true; - } - } - - - function retourner() - { - //Si la planète de départ n'est pas chargée, on charge les planètes - if (is_numeric($this->start_planete)) - $this->load_planete(); - - //Si on a demandé une planète particulière au retour - if (!empty($this->ret_time) && !empty($this->ret_planete) && !is_numeric($this->ret_planete)) - { - foreach($this->vaisseaux as $key => $vais) - $this->ret_planete->vaisseaux[$key] += $vais; - } - //Si le retour se fait sur la planète source - else - { - foreach($this->vaisseaux as $key => $vais) - $this->start_planete->vaisseaux[$key] += $vais; - } - - if (!in_array("vaisseaux", $this->start_planete->modif)) - $this->start_planete->modif[] = "vaisseaux"; - $this->modifFlotte = "DELETE"; - } - - /** - * Destructeur - * - * @return void - * @access public - */ - function __destruct() - { - global $var___db, $config, $table_flottes; - $nb = count($this->modifFlotte); - $out = array(); - $bdd = new bdd(); - $bdd->connexion(); - if ($this->modifFlotte === "DELETE") - $bdd->query("DELETE FROM $table_flottes WHERE id = ".$this->id_flotte.";"); - else - { - if (empty($this->id_flotte)) - { - if ($this->modifFlotte == "INSERT") - { - $out1 = ''; $out2 = ''; - global $nomvaisnVAR; - foreach ($this->vaisseaux as $key => $vais) - { - $out1 .= ', '.$nomvaisnVAR[$key]; - $out2 .= ', '.$vais; - } - $sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_planete, end_time, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom, nb_vais$out1) VALUES ('".$this->start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$this->start_planete->id."', '".$this->end_time."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom."', ".$this->nb_vais."$out2);"; - //var_dump($sql); - $bdd->query($sql); - } - } - elseif(isset($this->modifFlotte[0])) - { - for($i = 0; $i < $nb; $i++) - { - if (!is_array($this->{$this->modifFlotte[$i]})) - { - $bdd->escape($this->{$this->modifFlotte[$i]}); - if (is_int($this->{$this->modifFlotte[$i]}) || is_float($this->{$this->modifFlotte[$i]})) - $out[] .= $this->modifFlotte[$i]." = ".$this->{$this->modifFlotte[$i]}; - else - $out[] .= $this->modifFlotte[$i]." = '".$this->{$this->modifFlotte[$i]}."'"; - } - else { - if ($this->modifFlotte[$i] == "contenu") - $calc = "resso"; - elseif ($this->modifFlotte[$i] == "vaisseaux") - $calc = "nomvaisn"; - - if (!isset(${$calc.'VAR'})) - global ${$calc.'VAR'}; - - $nombr = count(${$calc.'VAR'}); - for($j = 0; $j < $nombr; $j++) - { - $bdd->escape($this->{$this->modifFlotte[$i]}[$j]); - $out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modifFlotte[$i]}[$j]; - } - } - } - if (!empty($out)) - $bdd->query("UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";"); - else - $bdd->query("UPDATE $table_flottes SET last = 0 WHERE id = ".$this->id_flotte.";"); - } - } - $bdd->deconnexion(); - } - } -?> \ No newline at end of file diff --git a/game/Class/class.phpmailer.php b/game/Class/class.phpmailer.php deleted file mode 100644 index 144bf2c..0000000 --- a/game/Class/class.phpmailer.php +++ /dev/null @@ -1,1530 +0,0 @@ -ContentType = "text/html"; - else - $this->ContentType = "text/plain"; - } - - /** - * Sets Mailer to send message using SMTP. - * @return void - */ - function IsSMTP() { - $this->Mailer = "smtp"; - } - - /** - * Sets Mailer to send message using PHP mail() function. - * @return void - */ - function IsMail() { - $this->Mailer = "mail"; - } - - /** - * Sets Mailer to send message using the $Sendmail program. - * @return void - */ - function IsSendmail() { - $this->Mailer = "sendmail"; - } - - /** - * Sets Mailer to send message using the qmail MTA. - * @return void - */ - function IsQmail() { - $this->Sendmail = "/var/qmail/bin/sendmail"; - $this->Mailer = "sendmail"; - } - - - ///////////////////////////////////////////////// - // RECIPIENT METHODS - ///////////////////////////////////////////////// - - /** - * Adds a "To" address. - * @param string $address - * @param string $name - * @return void - */ - function AddAddress($address, $name = "") { - $cur = count($this->to); - $this->to[$cur][0] = trim($address); - $this->to[$cur][1] = $name; - } - - /** - * Adds a "Cc" address. Note: this function works - * with the SMTP mailer on win32, not with the "mail" - * mailer. - * @param string $address - * @param string $name - * @return void - */ - function AddCC($address, $name = "") { - $cur = count($this->cc); - $this->cc[$cur][0] = trim($address); - $this->cc[$cur][1] = $name; - } - - /** - * Adds a "Bcc" address. Note: this function works - * with the SMTP mailer on win32, not with the "mail" - * mailer. - * @param string $address - * @param string $name - * @return void - */ - function AddBCC($address, $name = "") { - $cur = count($this->bcc); - $this->bcc[$cur][0] = trim($address); - $this->bcc[$cur][1] = $name; - } - - /** - * Adds a "Reply-to" address. - * @param string $address - * @param string $name - * @return void - */ - function AddReplyTo($address, $name = "") { - $cur = count($this->ReplyTo); - $this->ReplyTo[$cur][0] = trim($address); - $this->ReplyTo[$cur][1] = $name; - } - - - ///////////////////////////////////////////////// - // MAIL SENDING METHODS - ///////////////////////////////////////////////// - - /** - * Creates message and assigns Mailer. If the message is - * not sent successfully then it returns false. Use the ErrorInfo - * variable to view description of the error. - * @return bool - */ - function Send() { - $header = ""; - $body = ""; - - if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) - { - $this->SetError($this->Lang("provide_address")); - return false; - } - - // Set whether the message is multipart/alternative - if(!empty($this->AltBody)) - $this->ContentType = "multipart/alternative"; - - $this->SetMessageType(); - $header .= $this->CreateHeader(); - $body = $this->CreateBody(); - - if($body == "") { return false; } - - // Choose the mailer - if($this->Mailer == "sendmail") - { - if(!$this->SendmailSend($header, $body)) - return false; - } - elseif($this->Mailer == "mail") - { - if(!$this->MailSend($header, $body)) - return false; - } - elseif($this->Mailer == "smtp") - { - if(!$this->SmtpSend($header, $body)) - return false; - } - else - { - $this->SetError($this->Mailer . $this->Lang("mailer_not_supported")); - return false; - } - - return true; - } - - /** - * Sends mail using the $Sendmail program. - * @access private - * @return bool - */ - function SendmailSend($header, $body) { - if ($this->Sender != "") - $sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender); - else - $sendmail = sprintf("%s -oi -t", $this->Sendmail); - - if(!@$mail = popen($sendmail, "w")) - { - $this->SetError($this->Lang("execute") . $this->Sendmail); - return false; - } - - fputs($mail, $header); - fputs($mail, $body); - - $result = pclose($mail) >> 8 & 0xFF; - if($result != 0) - { - $this->SetError($this->Lang("execute") . $this->Sendmail); - return false; - } - - return true; - } - - /** - * Sends mail using the PHP mail() function. - * @access private - * @return bool - */ - function MailSend($header, $body) { - $to = ""; - for($i = 0; $i < count($this->to); $i++) - { - if($i != 0) { $to .= ", "; } - $to .= $this->to[$i][0]; - } - - if ($this->Sender != "" && strlen(ini_get("safe_mode"))< 1) - { - $old_from = ini_get("sendmail_from"); - ini_set("sendmail_from", $this->Sender); - $params = sprintf("-oi -f %s", $this->Sender); - $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, - $header, $params); - } - else - $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header); - - if (isset($old_from)) - ini_set("sendmail_from", $old_from); - - if(!$rt) - { - $this->SetError($this->Lang("instantiate")); - return false; - } - - return true; - } - - /** - * Sends mail via SMTP using PhpSMTP (Author: - * Chris Ryan). Returns bool. Returns false if there is a - * bad MAIL FROM, RCPT, or DATA input. - * @access private - * @return bool - */ - function SmtpSend($header, $body) { - include_once($this->PluginDir . "class.smtp.php"); - $error = ""; - $bad_rcpt = array(); - - if(!$this->SmtpConnect()) - return false; - - $smtp_from = ($this->Sender == "") ? $this->From : $this->Sender; - if(!$this->smtp->Mail($smtp_from)) - { - $error = $this->Lang("from_failed") . $smtp_from; - $this->SetError($error); - $this->smtp->Reset(); - return false; - } - - // Attempt to send attach all recipients - for($i = 0; $i < count($this->to); $i++) - { - if(!$this->smtp->Recipient($this->to[$i][0])) - $bad_rcpt[] = $this->to[$i][0]; - } - for($i = 0; $i < count($this->cc); $i++) - { - if(!$this->smtp->Recipient($this->cc[$i][0])) - $bad_rcpt[] = $this->cc[$i][0]; - } - for($i = 0; $i < count($this->bcc); $i++) - { - if(!$this->smtp->Recipient($this->bcc[$i][0])) - $bad_rcpt[] = $this->bcc[$i][0]; - } - - if(count($bad_rcpt) > 0) // Create error message - { - for($i = 0; $i < count($bad_rcpt); $i++) - { - if($i != 0) { $error .= ", "; } - $error .= $bad_rcpt[$i]; - } - $error = $this->Lang("recipients_failed") . $error; - $this->SetError($error); - $this->smtp->Reset(); - return false; - } - - if(!$this->smtp->Data($header . $body)) - { - $this->SetError($this->Lang("data_not_accepted")); - $this->smtp->Reset(); - return false; - } - if($this->SMTPKeepAlive == true) - $this->smtp->Reset(); - else - $this->SmtpClose(); - - return true; - } - - /** - * Initiates a connection to an SMTP server. Returns false if the - * operation failed. - * @access private - * @return bool - */ - function SmtpConnect() { - if($this->smtp == NULL) { $this->smtp = new SMTP(); } - - $this->smtp->do_debug = $this->SMTPDebug; - $hosts = explode(";", $this->Host); - $index = 0; - $connection = ($this->smtp->Connected()); - - // Retry while there is no connection - while($index < count($hosts) && $connection == false) - { - if(strstr($hosts[$index], ":")) - list($host, $port) = explode(":", $hosts[$index]); - else - { - $host = $hosts[$index]; - $port = $this->Port; - } - - if($this->smtp->Connect($host, $port, $this->Timeout)) - { - if ($this->Helo != '') - $this->smtp->Hello($this->Helo); - else - $this->smtp->Hello($this->ServerHostname()); - - if($this->SMTPAuth) - { - if(!$this->smtp->Authenticate($this->Username, - $this->Password)) - { - $this->SetError($this->Lang("authenticate")); - $this->smtp->Reset(); - $connection = false; - } - } - $connection = true; - } - $index++; - } - if(!$connection) - $this->SetError($this->Lang("connect_host")); - - return $connection; - } - - /** - * Closes the active SMTP session if one exists. - * @return void - */ - function SmtpClose() { - if($this->smtp != NULL) - { - if($this->smtp->Connected()) - { - $this->smtp->Quit(); - $this->smtp->Close(); - } - } - } - - /** - * Sets the language for all class error messages. Returns false - * if it cannot load the language file. The default language type - * is English. - * @param string $lang_type Type of language (e.g. Portuguese: "br") - * @param string $lang_path Path to the language file directory - * @access public - * @return bool - */ - function SetLanguage($lang_type, $lang_path = "") { - if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) - include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); - else if(file_exists($lang_path.'phpmailer.lang-en.php')) - include($lang_path.'phpmailer.lang-en.php'); - else - { - $this->SetError("Could not load language file"); - return false; - } - $this->language = $PHPMAILER_LANG; - - return true; - } - - ///////////////////////////////////////////////// - // MESSAGE CREATION METHODS - ///////////////////////////////////////////////// - - /** - * Creates recipient headers. - * @access private - * @return string - */ - function AddrAppend($type, $addr) { - $addr_str = $type . ": "; - $addr_str .= $this->AddrFormat($addr[0]); - if(count($addr) > 1) - { - for($i = 1; $i < count($addr); $i++) - $addr_str .= ", " . $this->AddrFormat($addr[$i]); - } - $addr_str .= $this->LE; - - return $addr_str; - } - - /** - * Formats an address correctly. - * @access private - * @return string - */ - function AddrFormat($addr) { - if(empty($addr[1])) - $formatted = $addr[0]; - else - { - $formatted = $this->EncodeHeader($addr[1], 'phrase') . " <" . - $addr[0] . ">"; - } - - return $formatted; - } - - /** - * Wraps message for use with mailers that do not - * automatically perform wrapping and for quoted-printable. - * Original written by philippe. - * @access private - * @return string - */ - function WrapText($message, $length, $qp_mode = false) { - $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; - - $message = $this->FixEOL($message); - if (substr($message, -1) == $this->LE) - $message = substr($message, 0, -1); - - $line = explode($this->LE, $message); - $message = ""; - for ($i=0 ;$i < count($line); $i++) - { - $line_part = explode(" ", $line[$i]); - $buf = ""; - for ($e = 0; $e $length)) - { - $space_left = $length - strlen($buf) - 1; - if ($e != 0) - { - if ($space_left > 20) - { - $len = $space_left; - if (substr($word, $len - 1, 1) == "=") - $len--; - elseif (substr($word, $len - 2, 1) == "=") - $len -= 2; - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= " " . $part; - $message .= $buf . sprintf("=%s", $this->LE); - } - else - { - $message .= $buf . $soft_break; - } - $buf = ""; - } - while (strlen($word) > 0) - { - $len = $length; - if (substr($word, $len - 1, 1) == "=") - $len--; - elseif (substr($word, $len - 2, 1) == "=") - $len -= 2; - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) - $message .= $part . sprintf("=%s", $this->LE); - else - $buf = $part; - } - } - else - { - $buf_o = $buf; - $buf .= ($e == 0) ? $word : (" " . $word); - - if (strlen($buf) > $length and $buf_o != "") - { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - } - $message .= $buf . $this->LE; - } - - return $message; - } - - /** - * Set the body wrapping. - * @access private - * @return void - */ - function SetWordWrap() { - if($this->WordWrap < 1) - return; - - switch($this->message_type) - { - case "alt": - // fall through - case "alt_attachment": - $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->WrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assembles message header. - * @access private - * @return string - */ - function CreateHeader() { - $result = ""; - - // Set the boundaries - $uniq_id = md5(uniqid(time())); - $this->boundary[1] = "b1_" . $uniq_id; - $this->boundary[2] = "b2_" . $uniq_id; - - $result .= $this->Received(); - $result .= $this->HeaderLine("Date", $this->RFCDate()); - if($this->Sender == "") - $result .= $this->HeaderLine("Return-Path", trim($this->From)); - else - $result .= $this->HeaderLine("Return-Path", trim($this->Sender)); - - // To be created automatically by mail() - if($this->Mailer != "mail") - { - if(count($this->to) > 0) - $result .= $this->AddrAppend("To", $this->to); - else if (count($this->cc) == 0) - $result .= $this->HeaderLine("To", "undisclosed-recipients:;"); - if(count($this->cc) > 0) - $result .= $this->AddrAppend("Cc", $this->cc); - } - - $from = array(); - $from[0][0] = trim($this->From); - $from[0][1] = $this->FromName; - $result .= $this->AddrAppend("From", $from); - - // sendmail and mail() extract Bcc from the header before sending - if((($this->Mailer == "sendmail") || ($this->Mailer == "mail")) && (count($this->bcc) > 0)) - $result .= $this->AddrAppend("Bcc", $this->bcc); - - if(count($this->ReplyTo) > 0) - $result .= $this->AddrAppend("Reply-to", $this->ReplyTo); - - // mail() sets the subject itself - if($this->Mailer != "mail") - $result .= $this->HeaderLine("Subject", $this->EncodeHeader(trim($this->Subject))); - - $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); - $result .= $this->HeaderLine("X-Priority", $this->Priority); - $result .= $this->HeaderLine("X-Mailer", "PHPMailer [version " . $this->Version . "]"); - - if($this->ConfirmReadingTo != "") - { - $result .= $this->HeaderLine("Disposition-Notification-To", - "<" . trim($this->ConfirmReadingTo) . ">"); - } - - // Add custom headers - for($index = 0; $index < count($this->CustomHeader); $index++) - { - $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), - $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); - } - $result .= $this->HeaderLine("MIME-Version", "1.0"); - - switch($this->message_type) - { - case "plain": - $result .= $this->HeaderLine("Content-Transfer-Encoding", $this->Encoding); - $result .= sprintf("Content-Type: %s; charset=\"%s\"", - $this->ContentType, $this->CharSet); - break; - case "attachments": - // fall through - case "alt_attachments": - if($this->InlineImageExists()) - { - $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", - "multipart/related", $this->LE, $this->LE, - $this->boundary[1], $this->LE); - } - else - { - $result .= $this->HeaderLine("Content-Type", "multipart/mixed;"); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - } - break; - case "alt": - $result .= $this->HeaderLine("Content-Type", "multipart/alternative;"); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - } - - if($this->Mailer != "mail") - $result .= $this->LE.$this->LE; - - return $result; - } - - /** - * Assembles the message body. Returns an empty string on failure. - * @access private - * @return string - */ - function CreateBody() { - $result = ""; - - $this->SetWordWrap(); - - switch($this->message_type) - { - case "alt": - $result .= $this->GetBoundary($this->boundary[1], "", - "text/plain", ""); - $result .= $this->EncodeString($this->AltBody, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->GetBoundary($this->boundary[1], "", - "text/html", ""); - - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE.$this->LE; - - $result .= $this->EndBoundary($this->boundary[1]); - break; - case "plain": - $result .= $this->EncodeString($this->Body, $this->Encoding); - break; - case "attachments": - $result .= $this->GetBoundary($this->boundary[1], "", "", ""); - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE; - - $result .= $this->AttachAll(); - break; - case "alt_attachments": - $result .= sprintf("--%s%s", $this->boundary[1], $this->LE); - $result .= sprintf("Content-Type: %s;%s" . - "\tboundary=\"%s\"%s", - "multipart/alternative", $this->LE, - $this->boundary[2], $this->LE.$this->LE); - - // Create text body - $result .= $this->GetBoundary($this->boundary[2], "", - "text/plain", "") . $this->LE; - - $result .= $this->EncodeString($this->AltBody, $this->Encoding); - $result .= $this->LE.$this->LE; - - // Create the HTML body - $result .= $this->GetBoundary($this->boundary[2], "", - "text/html", "") . $this->LE; - - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE.$this->LE; - - $result .= $this->EndBoundary($this->boundary[2]); - - $result .= $this->AttachAll(); - break; - } - if($this->IsError()) - $result = ""; - - return $result; - } - - /** - * Returns the start of a message boundary. - * @access private - */ - function GetBoundary($boundary, $charSet, $contentType, $encoding) { - $result = ""; - if($charSet == "") { $charSet = $this->CharSet; } - if($contentType == "") { $contentType = $this->ContentType; } - if($encoding == "") { $encoding = $this->Encoding; } - - $result .= $this->TextLine("--" . $boundary); - $result .= sprintf("Content-Type: %s; charset = \"%s\"", - $contentType, $charSet); - $result .= $this->LE; - $result .= $this->HeaderLine("Content-Transfer-Encoding", $encoding); - $result .= $this->LE; - - return $result; - } - - /** - * Returns the end of a message boundary. - * @access private - */ - function EndBoundary($boundary) { - return $this->LE . "--" . $boundary . "--" . $this->LE; - } - - /** - * Sets the message type. - * @access private - * @return void - */ - function SetMessageType() { - if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) - $this->message_type = "plain"; - else - { - if(count($this->attachment) > 0) - $this->message_type = "attachments"; - if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) - $this->message_type = "alt"; - if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) - $this->message_type = "alt_attachments"; - } - } - - /** - * Returns a formatted header line. - * @access private - * @return string - */ - function HeaderLine($name, $value) { - return $name . ": " . $value . $this->LE; - } - - /** - * Returns a formatted mail line. - * @access private - * @return string - */ - function TextLine($value) { - return $value . $this->LE; - } - - ///////////////////////////////////////////////// - // ATTACHMENT METHODS - ///////////////////////////////////////////////// - - /** - * Adds an attachment from a path on the filesystem. - * Returns false if the file could not be found - * or accessed. - * @param string $path Path to the attachment. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - function AddAttachment($path, $name = "", $encoding = "base64", - $type = "application/octet-stream") { - if(!@is_file($path)) - { - $this->SetError($this->Lang("file_access") . $path); - return false; - } - - $filename = basename($path); - if($name == "") - $name = $filename; - - $cur = count($this->attachment); - $this->attachment[$cur][0] = $path; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $name; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = false; // isStringAttachment - $this->attachment[$cur][6] = "attachment"; - $this->attachment[$cur][7] = 0; - - return true; - } - - /** - * Attaches all fs, string, and binary attachments to the message. - * Returns an empty string on failure. - * @access private - * @return string - */ - function AttachAll() { - // Return text of body - $mime = array(); - - // Add all attachments - for($i = 0; $i < count($this->attachment); $i++) - { - // Check for string attachment - $bString = $this->attachment[$i][5]; - if ($bString) - $string = $this->attachment[$i][0]; - else - $path = $this->attachment[$i][0]; - - $filename = $this->attachment[$i][1]; - $name = $this->attachment[$i][2]; - $encoding = $this->attachment[$i][3]; - $type = $this->attachment[$i][4]; - $disposition = $this->attachment[$i][6]; - $cid = $this->attachment[$i][7]; - - $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); - $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE); - $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); - - if($disposition == "inline") - $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); - - $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", - $disposition, $name, $this->LE.$this->LE); - - // Encode as string attachment - if($bString) - { - $mime[] = $this->EncodeString($string, $encoding); - if($this->IsError()) { return ""; } - $mime[] = $this->LE.$this->LE; - } - else - { - $mime[] = $this->EncodeFile($path, $encoding); - if($this->IsError()) { return ""; } - $mime[] = $this->LE.$this->LE; - } - } - - $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); - - return join("", $mime); - } - - /** - * Encodes attachment in requested format. Returns an - * empty string on failure. - * @access private - * @return string - */ - function EncodeFile ($path, $encoding = "base64") { - if(!@$fd = fopen($path, "rb")) - { - $this->SetError($this->Lang("file_open") . $path); - return ""; - } - $file_buffer = fread($fd, filesize($path)); - $file_buffer = $this->EncodeString($file_buffer, $encoding); - fclose($fd); - - return $file_buffer; - } - - /** - * Encodes string to requested format. Returns an - * empty string on failure. - * @access private - * @return string - */ - function EncodeString ($str, $encoding = "base64") { - $encoded = ""; - switch(strtolower($encoding)) { - case "base64": - // chunk_split is found in PHP >= 3.0.6 - $encoded = chunk_split(base64_encode($str), 76, $this->LE); - break; - case "7bit": - case "8bit": - $encoded = $this->FixEOL($str); - if (substr($encoded, -(strlen($this->LE))) != $this->LE) - $encoded .= $this->LE; - break; - case "binary": - $encoded = $str; - break; - case "quoted-printable": - $encoded = $this->EncodeQP($str); - break; - default: - $this->SetError($this->Lang("encoding") . $encoding); - break; - } - return $encoded; - } - - /** - * Encode a header string to best of Q, B, quoted or none. - * @access private - * @return string - */ - function EncodeHeader ($str, $position = 'text') { - $x = 0; - - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - // Can't use addslashes as we don't know what value has magic_quotes_sybase. - $encoded = addcslashes($str, "\0..\37\177\\\""); - - if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) - return ($encoded); - else - return ("\"$encoded\""); - } - $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - case 'comment': - $x = preg_match_all('/[()"]/', $str, $matches); - // Fall-through - case 'text': - default: - $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - if ($x == 0) - return ($str); - - $maxlen = 75 - 7 - strlen($this->CharSet); - // Try to select the encoding which should produce the shortest output - if (strlen($str)/3 < $x) { - $encoding = 'B'; - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } else { - $encoding = 'Q'; - $encoded = $this->EncodeQ($str, $position); - $encoded = $this->WrapText($encoded, $maxlen, true); - $encoded = str_replace("=".$this->LE, "\n", trim($encoded)); - } - - $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); - $encoded = trim(str_replace("\n", $this->LE, $encoded)); - - return $encoded; - } - - /** - * Encode string to quoted-printable. - * @access private - * @return string - */ - function EncodeQP ($str) { - $encoded = $this->FixEOL($str); - if (substr($encoded, -(strlen($this->LE))) != $this->LE) - $encoded .= $this->LE; - - // Replace every high ascii, control and = characters - $encoded = preg_replace('/([\000-\010\013\014\016-\037\075\177-\377])/e', - "'='.sprintf('%02X', ord('\\1'))", $encoded); - // Replace every spaces and tabs when it's the last character on a line - $encoded = preg_replace("/([\011\040])".$this->LE."/e", - "'='.sprintf('%02X', ord('\\1')).'".$this->LE."'", $encoded); - - // Maximum line length of 76 characters before CRLF (74 + space + '=') - $encoded = $this->WrapText($encoded, 74, true); - - return $encoded; - } - - /** - * Encode string to q encoding. - * @access private - * @return string - */ - function EncodeQ ($str, $position = "text") { - // There should not be any EOL in the string - $encoded = preg_replace("[\r\n]", "", $str); - - switch (strtolower($position)) { - case "phrase": - $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - case "comment": - $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - case "text": - default: - // Replace every high ascii, control =, ? and _ characters - $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', - "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - } - - // Replace every spaces to _ (more readable than =20) - $encoded = str_replace(" ", "_", $encoded); - - return $encoded; - } - - /** - * Adds a string or binary attachment (non-filesystem) to the list. - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * @param string $string String attachment data. - * @param string $filename Name of the attachment. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return void - */ - function AddStringAttachment($string, $filename, $encoding = "base64", - $type = "application/octet-stream") { - // Append to $attachment array - $cur = count($this->attachment); - $this->attachment[$cur][0] = $string; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $filename; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = true; // isString - $this->attachment[$cur][6] = "attachment"; - $this->attachment[$cur][7] = 0; - } - - /** - * Adds an embedded attachment. This can include images, sounds, and - * just about any other document. Make sure to set the $type to an - * image type. For JPEG images use "image/jpeg" and for GIF images - * use "image/gif". - * @param string $path Path to the attachment. - * @param string $cid Content ID of the attachment. Use this to identify - * the Id for accessing the image in an HTML form. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - function AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", - $type = "application/octet-stream") { - - if(!@is_file($path)) - { - $this->SetError($this->Lang("file_access") . $path); - return false; - } - - $filename = basename($path); - if($name == "") - $name = $filename; - - // Append to $attachment array - $cur = count($this->attachment); - $this->attachment[$cur][0] = $path; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $name; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = false; // isStringAttachment - $this->attachment[$cur][6] = "inline"; - $this->attachment[$cur][7] = $cid; - - return true; - } - - /** - * Returns true if an inline attachment is present. - * @access private - * @return bool - */ - function InlineImageExists() { - $result = false; - for($i = 0; $i < count($this->attachment); $i++) - { - if($this->attachment[$i][6] == "inline") - { - $result = true; - break; - } - } - - return $result; - } - - ///////////////////////////////////////////////// - // MESSAGE RESET METHODS - ///////////////////////////////////////////////// - - /** - * Clears all recipients assigned in the TO array. Returns void. - * @return void - */ - function ClearAddresses() { - $this->to = array(); - } - - /** - * Clears all recipients assigned in the CC array. Returns void. - * @return void - */ - function ClearCCs() { - $this->cc = array(); - } - - /** - * Clears all recipients assigned in the BCC array. Returns void. - * @return void - */ - function ClearBCCs() { - $this->bcc = array(); - } - - /** - * Clears all recipients assigned in the ReplyTo array. Returns void. - * @return void - */ - function ClearReplyTos() { - $this->ReplyTo = array(); - } - - /** - * Clears all recipients assigned in the TO, CC and BCC - * array. Returns void. - * @return void - */ - function ClearAllRecipients() { - $this->to = array(); - $this->cc = array(); - $this->bcc = array(); - } - - /** - * Clears all previously set filesystem, string, and binary - * attachments. Returns void. - * @return void - */ - function ClearAttachments() { - $this->attachment = array(); - } - - /** - * Clears all custom headers. Returns void. - * @return void - */ - function ClearCustomHeaders() { - $this->CustomHeader = array(); - } - - - ///////////////////////////////////////////////// - // MISCELLANEOUS METHODS - ///////////////////////////////////////////////// - - /** - * Adds the error message to the error container. - * Returns void. - * @access private - * @return void - */ - function SetError($msg) { - $this->error_count++; - $this->ErrorInfo = $msg; - } - - /** - * Returns the proper RFC 822 formatted date. - * @access private - * @return string - */ - function RFCDate() { - $tz = date("Z"); - $tzs = ($tz < 0) ? "-" : "+"; - $tz = abs($tz); - $tz = ($tz/3600)*100 + ($tz%3600)/60; - $result = sprintf("%s %s%04d", date("D, j M Y H:i:s"), $tzs, $tz); - - return $result; - } - - /** - * Returns Received header for message tracing. - * @access private - * @return string - */ - function Received() { - if ($this->ServerVar('SERVER_NAME') != '') - { - $protocol = ($this->ServerVar('HTTPS') == 'on') ? 'HTTPS' : 'HTTP'; - $remote = $this->ServerVar('REMOTE_HOST'); - if($remote == "") - $remote = 'phpmailer'; - $remote .= ' (['.$this->ServerVar('REMOTE_ADDR').'])'; - } - else - { - $protocol = 'local'; - $remote = $this->ServerVar('USER'); - if($remote == '') - $remote = 'phpmailer'; - } - - $result = sprintf("Received: from %s %s\tby %s " . - "with %s (PHPMailer);%s\t%s%s", $remote, $this->LE, - $this->ServerHostname(), $protocol, $this->LE, - $this->RFCDate(), $this->LE); - - return $result; - } - - /** - * Returns the appropriate server variable. Should work with both - * PHP 4.1.0+ as well as older versions. Returns an empty string - * if nothing is found. - * @access private - * @return mixed - */ - function ServerVar($varName) { - global $HTTP_SERVER_VARS; - global $HTTP_ENV_VARS; - - if(!isset($_SERVER)) - { - $_SERVER = $HTTP_SERVER_VARS; - if(!isset($_SERVER["REMOTE_ADDR"])) - $_SERVER = $HTTP_ENV_VARS; // must be Apache - } - - if(isset($_SERVER[$varName])) - return $_SERVER[$varName]; - else - return ""; - } - - /** - * Returns the server hostname or 'localhost.localdomain' if unknown. - * @access private - * @return string - */ - function ServerHostname() { - if ($this->Hostname != "") - $result = $this->Hostname; - elseif ($this->ServerVar('SERVER_NAME') != "") - $result = $this->ServerVar('SERVER_NAME'); - else - $result = "localhost.localdomain"; - - return $result; - } - - /** - * Returns a message in the appropriate language. - * @access private - * @return string - */ - function Lang($key) { - if(count($this->language) < 1) - $this->SetLanguage("en"); // set the default language - - if(isset($this->language[$key])) - return $this->language[$key]; - else - return "Language string failed to load: " . $key; - } - - /** - * Returns true if an error occurred. - * @return bool - */ - function IsError() { - return ($this->error_count > 0); - } - - /** - * Changes every end of line from CR or LF to CRLF. - * @access private - * @return string - */ - function FixEOL($str) { - $str = str_replace("\r\n", "\n", $str); - $str = str_replace("\r", "\n", $str); - $str = str_replace("\n", $this->LE, $str); - return $str; - } - - /** - * Adds a custom header. - * @return void - */ - function AddCustomHeader($custom_header) { - $this->CustomHeader[] = explode(":", $custom_header, 2); - } -} - -?> \ No newline at end of file diff --git a/game/Class/class.planete.php b/game/Class/class.planete.php deleted file mode 100644 index dd873ca..0000000 --- a/game/Class/class.planete.php +++ /dev/null @@ -1,777 +0,0 @@ -connexion(); - $plan = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = $id;"); - $bdd->deconnexion(); - } - elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $id, $position)) - { - $bdd->connexion(); - $plan = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";"); - $bdd->deconnexion(); - } - else - die('Erreur #04 : Format de recherche de planete incorrect !'); - - if (!empty($plan)) - { - $this->id = $plan["id"]; - parent::User($plan["id_user"]); - $this->galaxie = $plan["galaxie"]; - $this->ss = $plan["ss"]; - $this->position = $plan["position"]; - if (!empty($plan["isolement"])) $this->isolement = unserialize($plan["isolement"]); - else $this->isolement = array(); - $this->nom_planete = $plan["nom_planete"]; - $this->image = $plan["image"]; - $this->cases = $plan["cases"]; - $this->debris_met = $plan["debris_met"]; - $this->debris_cri = $plan["debris_cri"]; - $this->metal = $plan["metal"]; - $this->cristal = $plan["cristal"]; - $this->hydrogene = $plan["hydrogene"]; - $this->population = $plan["population"]; - $this->moral = $plan["moral"]; - $this->timestamp = $plan["timestamp"]; - - foreach($batimentVAR as $bat) - $this->batiments[] = $plan[$bat]; - if (!empty($plan["file_bat"])) - $this->file_bat = unserialize($plan["file_bat"]); - else - $this->file_bat = array(); - - $this->coeff_bat = array($plan["coeff_mine_m"], $plan["coeff_mine_c"], $plan["coeff_mine_h"], $plan["coeff_centrale_s"], $plan["coeff_centrale_f"]); - for($i = 0; $i < 5; $i++) - { - if ($this->coeff_bat[$i] > 1) - $this->coeff_bat[$i] = 1; - elseif ($this->coeff_bat[$i] < 0) - $this->coeff_bat[$i] = 0; - } - - if (!empty($plan["file_tech"])) - $this->file_tech = unserialize($plan["file_tech"]); - else - $this->file_tech = array(); - foreach($casernenVAR as $cas) - $this->casernes[] = $plan[$cas]; - if (!empty($plan["file_cas"])) - $this->file_cas = unserialize($plan["file_cas"]); - else - $this->file_cas = array(); - foreach($nomterrnVAR as $ter) - $this->terrestres[] = $plan[$ter]; - if (!empty($plan["file_ter"])) - $this->file_ter = unserialize($plan["file_ter"]); - else - $this->file_ter = array(); - foreach($nomvaisnVAR as $vais) - $this->vaisseaux[] = $plan[$vais]; - if (!empty($plan["file_vais"])) - $this->file_vais = unserialize($plan["file_vais"]); - else - $this->file_vais = array(); - - //Si une copie de la planète est déjà en cours d'utilisation, on ne modifie rien sur celle là - if (in_array($this->id, $securePlanete)) - $this->modif = array(); - else - { - $securePlanete[] = $this->id; - $this->actualiser($actuFile, $first); - } - - //Calcul de la population logée - $population_max = (pow($this->batiments[12],1.5)+pow($this->batiments[13],2.1))*1000+3000; - - $this->modif = array('metal', 'cristal', 'hydrogene', 'timestamp'); - } - } - } - - /** - * Actualise les ressources de la planète en fonction de la production et termine les files d'attentes. - * - * @return void - * @access public - */ - function actualiser($actuFile = true, $first = false) - { - //Actualisation des files d'attentes - if ($actuFile) - { - $this->file_ready("batiments"); - $this->file_readyTechno("technologies"); - $this->file_ready("casernes"); - $this->file_ready("terrestres"); - $this->file_ready("vaisseaux"); - } - - //Calcul de la capacité de stockage maximale - if (!empty($timestamp_lastSilo)) - { - $this->cap = pow(2, $this->batiments[10]-1) * 100000; - $capnouv = pow(2, $this->batiments[10]) * 100000; - } - else - $this->cap = pow(2, $this->batiments[10]) * 100000; - - //Calcul du temps écoulé depuis la dernière mise à jour de la planète - $temps_ecoule = time() - $this->timestamp; - $ressources = $this->production($temps_ecoule); - if ($this->metal + $ressources[0] < $this->cap) - $this->metal += $ressources[0]; - else - { - //Si les capacité de stockage ont changé depuis la dernière actualisation - if (isset($capnouv)) - { - $ressources = $this->production(time() - $this->timestamp_lastSilo); - if ($this->metal + $ressources[0] < $capnouv) - $this->metal += $ressources[0]; - } - else - { - $this->alert_ressources[0] = true; - $this->metal = $this->cap; - } - } - if ($this->cristal + $ressources[1] < $this->cap) - $this->cristal += $ressources[1]; - else - { - //Si les capacité de stockage ont changé depuis la dernière actualisation - if (isset($capnouv)) - { - $ressources = $this->production(time() - $this->timestamp_lastSilo); - if ($this->cristal + $ressources[1] < $capnouv) - $this->cristal += $ressources[1]; - } - else - { - $this->alert_ressources[1] = true; - $this->cristal = $this->cap; - } - } - if ($this->hydrogene + $ressources[2] < $this->cap) - $this->hydrogene += $ressources[2]; - else - { - //Si les capacité de stockage ont changé depuis la dernière actualisation - if (isset($capnouv)) - { - $ressources = $this->production(time() - $this->timestamp_lastSilo); - if ($this->hydrogene + $ressources[2] < $capnouv) - $this->hydrogene += $ressources[2]; - } - else - { - $this->alert_ressources[2] = true; - $this->hydrogene = $this->cap; - } - } - - //Vérification de la date pour faire les actions journalières - if (date('zya') != date('zya', $this->timestamp)) - { - //On évalue le moral - $this->evalMoral($first); - - //Si la population est à 0, on ajoute des habitants - if ($this->population <= 0) - $this->population = 1000; - - $popPlus = $this->population * 0.0153^max(1, floor((time()-$this->timestamp)/86400)); - - if ($this->politique == 2) - $popPlus *= 1.1; //Communisme : 10 % de population qui arrive en plus. - elseif ($this->politique == 3) - $popPlus *= 1.05; //Démocratie : 5 % de population qui arrive en plus. - - if ($this->technologies[2] & 4) - $popPlus *= 1.15; - elseif ($this->technologies[2] & 2) - $popPlus *= 1.10; - elseif ($this->technologies[2] & 1) - $popPlus *= 1.05; - - $this->population += $popPlus; - $this->credits += ($this->population/100*exp(0.01)*25) + ($this->population*0.01*$this->batiments[15]); //Première partie : production normale; seconde : batiment commercial - $this->modif[] = 'population'; - } - - $this->timestamp = time(); - - - //Calcul du nombre de cases restantes - $this->casesRest = $this->cases; - foreach($this->batiments as $bat) - $this->casesRest -= $bat; - } - - function setMoral($difference) - { - $this->moral += $difference; - - //Ajustement du moral - if ($this->moral > 1) - $this->moral = 1; - elseif ($this->moral < 0) - $this->moral = 0; - - if (!in_array("moral", $this->modif)) - $this->modif[] = "moral"; - } - - function evalMoral($first = false) - { - $evolution = array(); - //Cas de sous-production - if (($this->coeff_bat[0] + $this->coeff_bat[1] + $this->coeff_bat[2])/3 < 0.9) - { - if ($this->politique == 2) - $this->moral -= 0.10; //Communisme : démoralise 2x plus - else - $this->moral -= 0.05; - if (!in_array('moral', $this->modif)) - $this->modif[] = 'moral'; - } - - //Surpopulation - - //Surlogement - - //Effets des batiments loisirs et commerces - $this->moral += 0.0025*$this->batiments[15] + 0.1*$this->batiments[16]; - - //Ajustement du moral en fonction de la politique - if ($this->politique == 1 && $this->moral > 0.7) - $this->moral = 0.7; - - //On vérifie qu'on ne dépasse pas le maximum - if ($this->moral > 1) - $this->moral = 1; - if ($this->moral < 0) - $this->moral = 0; - - //Isolement si besoin - if ($this->moral < 0.1) - { - //On vérifie qu'il ne s'agit pas de la planète mère - global $bdd, $table_planete; - $bdd->connexion(); - $res = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id LIMIT 1;"); - $bdd->deconnexion(); - if ($res['id'] != $this->id) - { - if ($this->moral <= 0.04) - { - if ($this->moral <= 0.01) - $rand = rand(0,4); - else - $rand = rand(0,20); - //Perte de la planète - if ($rand == 1) - { - $bdd->connexion(); - $bdd->query("DELETE FROM $table_planete WHERE id = ".$this->id.";"); - $bdd->deconnexion(); - send_mp($this->id_user, 'Perte de contrôle de '.$this->nom_planete, "Suite à une démoralisation persistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a renversé votre gouvernement en tuant tous vos gouverneurs. Vous perdez donc définitivement le contrôle de cette planète."); - if (!$first) - { - $sess->values['idPlan'] = $res['id']; - erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révolté contre vous. Vous ne contrôlez plus cette planète.'); - } - } - } - elseif ($this->moral <= 0.1) - { - if ($this->moral <= 0.06) - $rand = rand(0,2); - else - $rand = rand(0,10); - //Perte de contrôle temporaire - if ($rand == 1) - { - $debut = time() - rand(0, 3600)*4; - $fin = $debut + 86400; - $this->isolement = array($debut, $fin); - if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement'; - - send_mp($this->id_user, 'Perte de contrôle temporaire de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a pris le contrôle de votre planète. Vous perdez le contrôle de cette planète le temps que vos gouverneurs reprennent le pouvoir."); - if (!$first) - { - $sess->values['idPlan'] = $res['id']; - erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révoltée contre vous. Vous perdez temporairement le contrôle de cette planète.'); - } - } - } - } - } - } - - /** - * Vérifie si la planète est isolée ou non - * - * @return boolean - * @access public - */ - function isolement() - { - $return = false; - - global $var___db, $config, $table_planete; - $bdd = new BDD(); - $bdd->connexion(); - $plan = $bdd->query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id;"); - $bdd->deconnexion(); - - $numP = 0; - foreach ($plan as $key => $p) - { - if ($p['id'] == $this->id) - $numP = $key + 1; - } - - if ($numP >= 11) - { - if (!isset($this->isolement[0]) || (time() > $this->isolement[0] && (!isset($this->isolement[1]) || (time() > $this->isolement[1] && date('dmY') != date('dmY', $this->isolement[0]))))) - { - switch($numP) - { - case 11: - $tps = 2; - break; - case 12: - $tps = 4; - break; - case 13: - $tps = 6; - break; - case 14: - $tps = 8; - break; - case 15: - $tps = 12; - break; - case 16: - $tps = 16; - break; - case 17: - $tps = 20; - break; - default: - $tps = 24; - } - $debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y')); - $fin = $debut + $tps * 3600; - - $this->isolement[0] = $debut; - if (time() > $this->isolement[0]) - $this->isolement[1] = $fin; - if (!in_array('isolement', $this->modif)) - $this->modif[] = 'isolement'; - } - if (isset($this->isolement[1]) && time() < $this->isolement[1]) - $return = true; - } - elseif (!isset($this->isolement[0])) - { - $this->isolement = array(0,0); - if (!in_array('isolement', $this->modif)) - $this->modif[] = 'isolement'; - } - - return $return; - } - - /** - * Calcul les ressources produites en fonction de $temps_ecoule - * @param int $temps_ecoule Temps écoulé depuis la dernière actualisation - * - * @return array - * @access public - */ - function production($temps_ecoule, $retarray = false) - { - //Accélération de la production - $temps_ecoule *= VITESSE; - - //Calcul de la consomation d'énergie - if ($this->batiments[0] > 0) - $energie_m = ceil(exp(0.28*$this->batiments[0])*10); - else - $energie_m = 0; - if ($this->batiments[1] > 0) - $energie_c = ceil(exp(0.28*$this->batiments[1])*10); - else - $energie_c = 0; - if ($this->batiments[2] > 0) - $energie_h = ceil(exp(0.2849*$this->batiments[2])*13); - else - $energie_h = 0; - if ($this->batiments[3] > 0) - $energie_s = ceil(exp(0.28*$this->batiments[3])*22); - else - $energie_s = 0; - if ($this->batiments[4] > 0) - $energie_f = ceil(exp(0.297*$this->batiments[4])*25); - else - $energie_f = 0; - - //Calcul de la consomation d'énergie - $this->energieConso = $energie_m * $this->coeff_bat[0] + $energie_c * $this->coeff_bat[1] + $energie_h * $this->coeff_bat[2]; - $nrjmx = $energie_m + $energie_c + $energie_h; - - //Calcul de la production d'énergie - $this->energie = $energie_s * $this->coeff_bat[3] + $energie_f * $this->coeff_bat[4]; - - if ($this->energieConso == 0) - $coeff = 0; - else - $coeff = $this->energie / $this->energieConso; - - if ($coeff < 0) - $coeff = 0; - elseif ($coeff > 1) - $coeff = 1; - - $Ncoeff = array(); - for($i = 0; $i < 3; $i++) - { - $Ncoeff[$i] = $coeff * $this->coeff_bat[$i]; - if ($Ncoeff[$i] > 1) - $Ncoeff[$i] = 1; - if ($Ncoeff[$i] < $this->coeff_bat[$i] && $this->batiments[$i] != 0) - { - $this->coeff_bat[$i] = $Ncoeff[$i]; - if (!in_array('coeff_bat', $this->modif)) - $this->modif[] = 'coeff_bat'; - } - } - - //Calcul de la consomation d'hydrogène - if ($this->batiments[4] > 0) - $conso_h = ((ceil(pow(1.34,($this->batiments[4]-1))*9)/3600)*$temps_ecoule) * $this->coeff_bat[4]; - else - $conso_h = 0; - - //Calcul des production de ressources - if ($this->batiments[0] <= 0 || $this->batiments[3] <= 0) - $prod_met = 0.011 * $temps_ecoule; - else - $prod_met = ((ceil(pow(1.1, $this->batiments[0]) * 35 * $this->batiments[0]) / 3600) * $temps_ecoule) * $this->coeff_bat[0] * 1.5; - - if ($this->batiments[1] <= 0 || $this->batiments[3] <= 0) - $prod_cri = 0.0055 * $temps_ecoule; - else - $prod_cri = ((ceil(pow(1.1, $this->batiments[1]) * 23 * $this->batiments[1]) / 3600) * $temps_ecoule) * $this->coeff_bat[1] * 1.5; - - if ($this->batiments[2] <= 0) - $prod_hy = 0; - else - $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5; - - //Augmentation de la production en fonction des technologies - if ($this->technologies[0] &4) - { - $prod_met *= 1.15; - $prod_cri *= 1.15; - $prod_hy *= 1.15; - } - elseif ($this->technologies[0] &2) - { - $prod_met *= 1.10; - $prod_cri *= 1.10; - $prod_hy *= 1.10; - } - elseif ($this->technologies[0] &1) - { - $prod_met *= 1.05; - $prod_cri *= 1.05; - $prod_hy *= 1.05; - } - //Rendement métal - if ($this->technologies[0] &64) - $prod_met *= 1.3; - elseif ($this->technologies[0] &32) - $prod_met *= 1.2; - elseif ($this->technologies[0] &16) - $prod_met *= 1.1; - //Rendemant cristal - if ($this->technologies[0] &512) - $prod_cri *= 1.3; - elseif ($this->technologies[0] &256) - $prod_cri *= 1.2; - elseif ($this->technologies[0] &128) - $prod_cri *= 1.1; - //Rendement hydrogène - if ($this->technologies[0] &4096) - $prod_hy *= 1.3; - elseif ($this->technologies[0] &2048) - $prod_hy *= 1.2; - elseif ($this->technologies[0] &1024) - $prod_hy *= 1.1; - - //Augmentation de la production en fonction du moral - if ($this->moral > 0.9) - { - $prod_met *= 1.05; - $prod_cri *= 1.05; - $prod_hy *= 1.05; - } - elseif ($this->moral > 0.75) - { - $prod_met *= 1.02; - $prod_cri *= 1.02; - $prod_hy *= 1.02; - } - elseif ($this->moral < 0.45) - { - $prod_met *= 0.97; - $prod_cri *= 0.97; - $prod_hy *= 0.97; - } - elseif ($this->moral < 0.25) - { - $prod_met *= 0.94; - $prod_cri *= 0.94; - $prod_hy *= 0.94; - } - - //Augmentation de la production en fonction de la politique - if ($this->politique == 2) - { - $prod_met *= 1.10; - $prod_cri *= 1.10; - $prod_hy *= 1.10; - } - - //On enlève la consomation d'hydrogène - $prod_hy -= $conso_h; - - if ($retarray) - return array(array(ceil($this->coeff_bat[0]*100), ceil($this->coeff_bat[1]*100), ceil($this->coeff_bat[2]*100), ceil($this->coeff_bat[3]*100), ceil($this->coeff_bat[4]*100)), array($prod_met, $prod_cri, $prod_hy + $conso_h, $energie_s*$this->coeff_bat[3], $energie_f*$this->coeff_bat[4]), array($energie_m*$this->coeff_bat[0], $energie_c*$this->coeff_bat[1], $energie_h*$this->coeff_bat[2], $conso_h, ($energie_s*$this->coeff_bat[3] + $energie_f*$this->coeff_bat[4])-($energie_m*$this->coeff_bat[0] + $energie_c*$this->coeff_bat[1] + $energie_h*$this->coeff_bat[2]))); - else - return array($prod_met, $prod_cri, $prod_hy); - } - - function creer($id_user) - { - //Définition des paramètres de l'utilisateur pour la planète - $this->id_user = $id_user; - - //Génération du nombre de case et de l'image en fonction de la position dans le système - if ($this->position > MAX_PLANETE*0.75) - { - $this->cases = mt_rand(200,255); - $this->image = mt_rand(1,19); - } - elseif ($this->position > MAX_PLANETE/2) - { - $this->cases = mt_rand(250,300); - $this->image = mt_rand(1,19); - } - elseif ($this->position > MAX_PLANETE/4) - { - $this->cases = mt_rand(175,260); - $this->image = mt_rand(1,19); - } - else - { - $this->cases = mt_rand(150,220); - $this->image = mt_rand(1,19); - } - - //Définition des principaux paramètres de la planète - $this->nom_planete = 'Planète colonisée'; - $this->timestamp = time(); - $this->metal = 1000; - $this->cristal = 700; - $this->hydrogene = 0; - - $this->modif = array("id_user", "nom_planete", "galaxie", "ss", "position", "image", "cases", "timestamp", "metal", "cristal", "hydrogene"); - } - - /** - * Destructeur - * - * @return void - * @access public - */ - function __destruct() - { - if (empty($this->ss) || empty($this->id_user)) - return; - if ($this->id_user == 1) - var_dump($this); - - global $var___db, $config, $table_planete; - if (empty($this->id)) - { - $out1 = array(); $out2 = array(); - $bdd = new bdd(); - $bdd->connexion(); - foreach($this->modif as $modif) - { - if (!is_array($this->{$modif})) - { - $bdd->escape($this->{$modif}); - $out1[] = $modif; - if (is_int($this->{$modif}) || is_float($this->{$modif})) - $out2[] = $this->{$modif}; - else - $out2[] = "'".$this->{$modif}."'"; - } - else - { - if (is_array($this->{$modif}) && $modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") - { - $prep = serialize($this->{$modif}); - $bdd->escape($prep); - $out1[] = $modif; - $out2[] = "'$prep'"; - } - else - { - if ($modif == "batiments") - $calc = "batiment"; - elseif ($modif == "technologies") - $calc = "technolo"; - elseif ($modif == "casernes") - $calc = "casernen"; - elseif ($modif == "terrestres") - $calc = "nomterrn"; - elseif ($modif == "vaisseaux") - $calc = "nomvaisn"; - elseif ($modif == "coeff_bat") - $calc = "coeff"; - - if (!isset(${$calc.'VAR'})) - global ${$calc.'VAR'}; - - foreach($this->{$modif} as $j => $value) - { - $out1[] = ${$calc.'VAR'}[$j]; - $out2[] = $value; - } - } - } - } - $bdd->query("INSERT INTO $table_planete (".implode(', ', $out1).", hash_planete) VALUES (".implode(', ', $out2).", SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))"); - $bdd->deconnexion(); - } - else - { - $nb = count($this->modif); - $out = array(); - $bdd = new bdd(); - $bdd->connexion(); - for($i = 0; $i < $nb; $i++) - { - if ($this->modif[$i] == 'technologies') - $this->modifUser[] = $this->modif[$i]; - elseif (!is_array($this->{$this->modif[$i]})) - { - $bdd->escape($this->{$this->modif[$i]}); - if (is_int($this->{$this->modif[$i]}) || is_float($this->{$this->modif[$i]})) - $out[] = $this->modif[$i]." = ".$this->{$this->modif[$i]}; - else - $out[] = $this->modif[$i]." = '".$this->{$this->modif[$i]}."'"; - } - else - { - if (is_array($this->{$this->modif[$i]}) && $this->modif[$i] != "coeff_bat" && $this->modif[$i] != "vaisseaux" && $this->modif[$i] != "terrestres" && $this->modif[$i] != "casernes" && $this->modif[$i] != "technologies" && $this->modif[$i] != "batiments") - { - $prep = serialize($this->{$this->modif[$i]}); - $bdd->escape($prep); - $out[] = $this->modif[$i]." = '$prep'"; - } - else - { - if ($this->modif[$i] == "batiments") - $calc = "batiment"; - elseif ($this->modif[$i] == "technologies") - $calc = "technolo"; - elseif ($this->modif[$i] == "casernes") - $calc = "casernen"; - elseif ($this->modif[$i] == "terrestres") - $calc = "nomterrn"; - elseif ($this->modif[$i] == "vaisseaux") - $calc = "nomvaisn"; - elseif ($this->modif[$i] == "coeff_bat") - $calc = "coeff"; - - if (!isset(${$calc.'VAR'})) - global ${$calc.'VAR'}; - - $nombr = count(${$calc.'VAR'}); - for($j = 0; $j < $nombr; $j++) - { - $bdd->escape($this->{$this->modif[$i]}[$j]); - $out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modif[$i]}[$j].""; - } - } - } - } - if (!empty($out)) - $plan = $bdd->query("UPDATE $table_planete SET ".implode(', ', $out)." WHERE id = ".$this->id.";"); - - $bdd->deconnexion(); - parent::__destruct(); - } - } - } -?> \ No newline at end of file diff --git a/game/Class/class.rapport.php b/game/Class/class.rapport.php deleted file mode 100644 index e408676..0000000 --- a/game/Class/class.rapport.php +++ /dev/null @@ -1,358 +0,0 @@ -table = $table_mail; - - $this->type = $type; - $this->utilA = $utilA; - $this->utilB = $utilB; - $this->timestamp = $time; - $this->basededonnes = new bdd(); - } - - function addInfo($info, $id){ - $this->var[$id] = $info; - } - - function send(){ - if ($this->type == '3') $this->sendCombat(); - elseif ($this->type == '1') $this->sendTransport(); - elseif ($this->type == '2') $this->sendColonisation(); - elseif ($this->type == '4') $this->sendRecyclage(); - elseif ($this->type == '5') $this->sendEspionnage(); - elseif ($this->type == '6') $this->sendAlliance(); - elseif ($this->type == '7') $this->sendAlliance2(); - } - - function sendEspionnage(){ - global $config; - include_once(_FCORE."../game/function.php"); - $titreA = 'Rapport d\'espionnage de '.$this->var[0]['nom_planete'].' ['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']'; - $rapportA = 'Espionnage de '.trouvNom($this->utilB).' sur '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']

'; - - $race = trouvInfo($this->utilB, 'race'); - $auth_level = 0; - include(_FCORE."../game/noms.php"); - include(_FCORE."../game/vars.php"); - - if (isset($this->var[1]) && $this->var[1] == false) $rapportA .= 'Nos sondes n\'ont pas pu récolter d\'information sur cette planète.'; - else { - $rapportA .= '
Ressources sur la planète :
Métal :'.$this->var[0]['metal'].'
Cristal :'.$this->var[0]['cristal'].'
Hydrogène :'.$this->var[0]['hydrogene'].'

'; - if (isset($this->var[1]) && $this->var[1] == true) { - $rapportA .= ''; - $nbvais = count($nomvaisn); - for($i=1 ; $i<$nbvais ; $i++) { - if ($this->var[0]['vaisseau_'.$i] >= 1) $rapportA .= ''; - } - $rapportA .= '
NombreVaisseaux
'.$this->var[0]['vaisseau_'.$i].''.$nomvaisn[$i-1].'

'; - } - if (isset($this->var[2]) && $this->var[2] == true) { - $rapportA .= ''; - $nbdef = count($nomterrn) - 7; - for($i=1 ; $i<$nbdef ; $i++) { - if ($this->var[0]['def_'.$i] >= 1) $rapportA .= ''; - } - $rapportA .= '
NombreDéfenses
'.$this->var[0]['def_'.$i].''.$nomterrn[$i+7].'

'; - } - if (isset($this->var[3]) && $this->var[3] == true) { - $rapportA .= ''; - $nbbat = count($batiment); - for($i=1 ; $i<$nbbat ; $i++) { - if ($this->var[0][$batimentVAR[$i-1]] >= 1) $rapportA .= ''; - } - $rapportA .= '
NiveauBatiment
'.$this->var[0][$batimentVAR[$i-1]].''.$batiment[$i-1].'

'; - } - if (isset($this->var[4]) && is_array($this->var[4])) { - $rapportA .= ''; - $nbtec = count($technolo); - for($i=1 ; $i<$nbtec ; $i++) { - if ($this->var[4][$technoloVAR[$i-1]] >= 1) $rapportA .= ''; - } - $rapportA .= '
NiveauTechnologie
'.$this->var[4][$technoloVAR[$i-1]].''.$technolo[$i-1].'

'; - } - if (isset($this->var[5]) && is_array($this->var[5])) { - //ISOLEMENT - } - } - - $titreB = 'Rapport de contre-espionnage'; - $rapportB = 'Nous venons d\'apprendre que notre planète : '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].'] a été la cible d\'un espionnage de la part de '.trouvNom($this->utilA); - - $temps = $this->timestamp; - $db = new bdd(); - $db->connexion(); - $db->escape($titreA); - $db->escape($titreB); - $db->escape($rapportA); - $db->escape($rapportB); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')"); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB.", '$titreB', '$rapportB', '$temps')"); - $db->deconnexion(); - } - - function sendTransport(){ - global $config; - include_once(_FCORE."../game/function.php"); - $titre = 'Transport vers '.$this->var[0][0].' ['.$this->var[0][1].':'.$this->var[0][2].':'.$this->var[0][3].']'; - - $race = trouvInfo($this->utilA, 'race'); //TODO A optimiser - include(_FCORE."../game/noms.php"); - $rapportA = 'Vos vaisseaux ont déposé '.$this->var[1][0].' de '.$ressourc[0].', '.$this->var[1][1].' de '.$ressourc[1].' et '.$this->var[1][2].' d\''.$ressourc[2].' sur '.$this->var[0][0].'['.$this->var[0][1].':'.$this->var[0][2].':'.$this->var[0][3].']

'; - - $race = trouvInfo($this->utilB, 'race'); //TODO A optimiser - include(_FCORE."../game/noms.php"); - $rapportB = 'Les vaisseaux de '.trouvNom($this->utilA).' ont déposé '.$this->var[1][0].' de '.$ressourc[0].', '.$this->var[1][1].' de '.$ressourc[1].' et '.$this->var[1][2].' d\''.$ressourc[2].' sur '.$this->var[0][0].'['.$this->var[0][1].':'.$this->var[0][2].':'.$this->var[0][3].']

'; - - $temps = $this->timestamp; - $db = new bdd(); - $db->connexion(); - $db->escape($titre); - $db->escape($rapportA); - $db->escape($rapportB); - - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titre', '$rapportA', '$temps');"); - if ($this->utilA != $this->utilB) $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB.", '$titre', '$rapportB', '$temps');"); - $db->deconnexion(); - } - - function sendColonisation(){ - include_once(_FCORE."../game/function.php"); - $titre = 'Colonisation de ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].']'; - if ($this->var[1]) $rapport = 'Votre vaisseau a atteint la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] et commence la colonisation.'; - else $rapport = 'Nous n\'avons pas pu coloniser la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] car lorsque nous sommes arrivé sur place, elle était déjà colonisée.'; - - $temps = $this->timestamp; - $db = new bdd(); - $db->connexion(); - $db->escape($titre); - $db->escape($rapport); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titre', '$rapport', '$temps')"); - $db->deconnexion(); - } - - function sendRecyclage(){ - global $ressourc; - - $titre = 'Recyclage de '.$this->var[0]->nom_planete.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']'; - $rapport = 'Vos vaisseaux récoltent '.$this->var[1][0].' de '.$ressourc[0].' et '.$this->var[1][1].' de '.$ressourc[1].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']

'; - - $temps = $this->timestamp; - - $db = new bdd(); - $db->connexion(); - $db->escape($titre); - $db->escape($rapport); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titre', '$rapport', '$temps')"); - $db->deconnexion(); - } - - function sendCombat(){ - include(_FCORE."../game/vars.php"); - include_once(_FCORE."../game/function.php"); - require_once(SMARTY_DIR."Smarty.class.php"); - - $rapportA = new Smarty(); - $rapportB = new Smarty(); - - $rapportA->template_dir = _FCORE.'templates/templates/'; - $rapportA->compile_dir = _FCORE.'templates/templates_c/'; - $rapportA->config_dir = _FCORE.'templates/configs/'; - $rapportA->cache_dir = _FCORE.'templates/cache/'; - - $rapportB->template_dir = _FCORE.'templates/templates/'; - $rapportB->compile_dir = _FCORE.'templates/templates_c/'; - $rapportB->config_dir = _FCORE.'templates/configs/'; - $rapportB->cache_dir = _FCORE.'templates/cache/'; - - $this->var[4]['pseudo'] = trouvNom($this->var[4]['id_user']); - $this->var[5]['pseudo'] = trouvNom($this->var[5]['id_user']); - - $rapportA->assign('tour', $this->var[3]); - $rapportA->assign('EN', $this->var[4]); - $rapportA->assign('flotte', $this->var[5]); - $rapportA->assign('vaisseaux1', $this->var[0]); - $rapportA->assign('vaisseaux2', $this->var[1]); - $rapportA->assign('defenses1', $this->var[2]); - $rapportA->assign('vaisseaux3', $this->var[7]); - $rapportA->assign('vaisseaux4', $this->var[8]); - $rapportA->assign('defenses2', $this->var[9]); - - $rapportA->assign('termine', $this->var[6][0]); - $rapportA->assign('attaquantG', $this->var[6][1]); - $rapportA->assign('pillage', $this->var[11]); - - $rapportA->assign('vaisBC', $nomvais_bc); - $rapportA->assign('vaisPV', $nomvais_pv); - $rapportA->assign('defBC', $defense_bc); - $rapportA->assign('defPV', $defense_pv); - $rapportA->assign('nextTour', $this->var[10]); - - $race = trouvInfo($this->utilA, 'race'); - include(_FCORE."../game/noms.php"); - $rapportA->assign('ressources', $ressourc); - $rapportA->assign('nomvaisAT', $nomvaisa); - - $race = trouvInfo($this->var[4]['id_user'], 'race'); - include(_FCORE."../game/noms.php"); - $rapportA->assign('nomvaisEN', $nomvaisa); - array_splice($nomterra, 0, 8); - $rapportA->assign('nomdefEN', $nomterra); - - $rapportA = $rapportA->fetch('game/ATrapport_combat.tpl'); - - - $rapportB->assign('tour', $this->var[3]); - $rapportB->assign('EN', $this->var[4]); - $rapportB->assign('flotte', $this->var[5]); - $rapportB->assign('vaisseaux1', $this->var[0]); - $rapportB->assign('vaisseaux2', $this->var[1]); - $rapportB->assign('defenses1', $this->var[2]); - $rapportB->assign('vaisseaux3', $this->var[7]); - $rapportB->assign('vaisseaux4', $this->var[8]); - $rapportB->assign('defenses2', $this->var[9]); - - $rapportB->assign('termine', $this->var[6][0]); - $rapportB->assign('attaquantG', $this->var[6][1]); - $rapportB->assign('matchnul', $this->var[6][2]); - $rapportB->assign('pillage', $this->var[11]); - - $rapportB->assign('vaisBC', $nomvais_bc); - $rapportB->assign('vaisPV', $nomvais_pv); - $rapportB->assign('defBC', $defense_bc); - $rapportB->assign('defPV', $defense_pv); - $rapportB->assign('nextTour', $this->var[10]); - - $race = trouvInfo($this->utilA, 'race'); - include(_FCORE."../game/noms.php"); - $rapportB->assign('ressources', $ressourc); - $rapportB->assign('nomvaisAT', $nomvaisa); - - $race = trouvInfo($this->var[4]['id_user'], 'race'); - include(_FCORE."../game/noms.php"); - $rapportB->assign('nomvaisEN', $nomvaisa); - array_splice($nomterra, 0, 8); - $rapportB->assign('nomdefEN', $nomterra); - - $rapportB = $rapportB->fetch('game/ENrapport_combat.tpl'); - - - $titreA = 'Combat contre '.$this->var[4]['pseudo']; - $titreB = 'Combat contre '.$this->var[5]['pseudo']; - $temps = $this->timestamp; - $db = new bdd(); - $db->connexion(); - $db->escape($titreA); - $db->escape($titreB); - $db->escape($rapportA); - $db->escape($rapportB); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')"); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB."', '$titreB', '$rapportB', '$temps')"); - $db->deconnexion(); - } - - function show(){ - include(_FCORE."../game/vars.php"); - include_once(_FCORE."../game/function.php"); - require_once(SMARTY_DIR."Smarty.class.php"); - - $rapportA = new Smarty(); - - $rapportA->template_dir = _FCORE.'templates/templates/'; - $rapportA->compile_dir = _FCORE.'templates/templates_c/'; - $rapportA->config_dir = _FCORE.'templates/configs/'; - $rapportA->cache_dir = _FCORE.'templates/cache/'; - - $rapportA->assign('tour', $this->var[3]); - $rapportA->assign('EN', $this->var[4]); - $rapportA->assign('flotte', $this->var[5]); - $rapportA->assign('vaisseaux1', $this->var[0]); - $rapportA->assign('vaisseaux2', $this->var[1]); - $rapportA->assign('defenses1', $this->var[2]); - $rapportA->assign('vaisseaux3', $this->var[7]); - $rapportA->assign('vaisseaux4', $this->var[8]); - $rapportA->assign('defenses2', $this->var[9]); - - $rapportA->assign('termine', $this->var[6][0]); - $rapportA->assign('attaquantG', $this->var[6][1]); - $rapportA->assign('pillage', $this->var[11]); - $rapportA->assign('debris', $this->var[12]); - $rapportA->assign('infoPLUS', $this->var[14]); - //$rapportA->assign('infoPLUS2', $this->var[15]); - - $rapportA->assign('page', 'simulation'); - $rapportA->assign('enligne', $this->var[13][0]); - $rapportA->assign('infos', $this->var[13][1]); - $rapportA->assign('nbinfos', $this->var[13][2]); - $rapportA->assign('count', $this->var[13][3]); - $rapportA->assign('version', $this->var[13][4]); - $rapportA->assign('tpsdejeu', $this->var[13][5]); - - $rapportA->assign('vaisBC', $nomvais_bc); - $rapportA->assign('vaisPV', $nomvais_pv); - $rapportA->assign('defBC', $defense_bc); - $rapportA->assign('defPV', $defense_pv); - $rapportA->assign('nextTour', $this->var[10]); - - $race = trouvInfo($this->utilA, 'race'); - include(_FCORE."../game/noms.php"); - $rapportA->assign('ressources', $ressourc); - $rapportA->assign('nomvaisAT', $nomvaisa); - $rapportA->assign('nomvaisEN', $nomvaisa); - array_splice($nomterra, 0, 8); - $rapportA->assign('nomdefEN', $nomterra); - $rapportA->assign('race', $race); - - return $rapportA->fetch('game/SIMrapport_combat.tpl'); - return $rapportA; - } - - function sendAlliance(){ - include_once(_FCORE."../game/function.php"); - $titreA = 'Déclaration officielle de votre alliance !'; - $rapportA = 'Félicitations, votre alliance a recueilli suffisament de signature, sa déclaration est maintenant officielle !

Vous pouvez dès maintenant administrer votre alliance en vous rendant sur la page Alliance.'; - - $temps = $this->timestamp; - - $db = new bdd(); - $db->connexion(); - $db->escape($titreA); - $db->escape($rapportA); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')"); - $db->deconnexion(); - } - - function sendAlliance2(){ - include_once(_FCORE."../game/function.php"); - $titreA = 'Fondation de votre alliance !'; - $rapportA = 'Pour terminer la création de votre alliance, trouvez 4 joueurs de cette galaxie sans alliance pour leur faire signer votre traité de fondation d\'alliance.

Lien de signature : http://'.$_SERVER['HTTP_HOST'].'/?p=alliances&q=signer&i='.$this->var[0].''; - - $temps = $this->timestamp; - - $db = new bdd(); - $db->connexion(); - $db->escape($titreA); - $db->escape($rapportA); - $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')"); - $db->deconnexion(); - } -} -?> \ No newline at end of file diff --git a/game/Class/class.smtp.php b/game/Class/class.smtp.php deleted file mode 100644 index c92b127..0000000 --- a/game/Class/class.smtp.php +++ /dev/null @@ -1,1039 +0,0 @@ -smtp_conn = 0; - $this->error = null; - $this->helo_rply = null; - - $this->do_debug = 0; - } - - /************************************************************* - * CONNECTION FUNCTIONS * - ***********************************************************/ - - /** - * Connect to the server specified on the port specified. - * If the port is not specified use the default SMTP_PORT. - * If tval is specified then a connection will try and be - * established with the server for that number of seconds. - * If tval is not specified the default is 30 seconds to - * try on the connection. - * - * SMTP CODE SUCCESS: 220 - * SMTP CODE FAILURE: 421 - * @access public - * @return bool - */ - function Connect($host,$port=0,$tval=30) { - # set the error val to null so there is no confusion - $this->error = null; - - # make sure we are __not__ connected - if($this->connected()) { - # ok we are connected! what should we do? - # for now we will just give an error saying we - # are already connected - $this->error = - array("error" => "Already connected to a server"); - return false; - } - - if(empty($port)) { - $port = $this->SMTP_PORT; - } - - #connect to the smtp server - @$this->smtp_conn = fsockopen($host, # the host of the server - $port, # the port to use - $errno, # error number if any - $errstr, # error message if any - $tval); # give up after ? secs - # verify we connected properly - if(empty($this->smtp_conn)) { - $this->error = array("error" => "Failed to connect to server", - "errno" => $errno, - "errstr" => $errstr); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": $errstr ($errno)" . $this->CRLF; - } - return false; - } - - # sometimes the SMTP server takes a little longer to respond - # so we will give it a longer timeout for the first read - // Windows still does not have support for this timeout function - if(substr(PHP_OS, 0, 3) != "WIN") - socket_set_timeout($this->smtp_conn, $tval, 0); - - # get any announcement stuff - $announce = $this->get_lines(); - - # set the timeout of any socket functions at 1/10 of a second - //if(function_exists("socket_set_timeout")) - // socket_set_timeout($this->smtp_conn, 0, 100000); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce; - } - - return true; - } - - /** - * Performs SMTP authentication. Must be run after running the - * Hello() method. Returns true if successfully authenticated. - * @access public - * @return bool - */ - function Authenticate($username, $password) { - // Start authentication - fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "AUTH not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - // Send encoded username - fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "Username not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - // Send encoded password - fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 235) { - $this->error = - array("error" => "Password not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return true; - } - - /** - * Returns true if connected to a server otherwise false - * @access private - * @return bool - */ - function Connected() { - if(!empty($this->smtp_conn)) { - $sock_status = socket_get_status($this->smtp_conn); - if($sock_status["eof"]) { - # hmm this is an odd situation... the socket is - # valid but we aren't connected anymore - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE:" . $this->CRLF . - "EOF caught while checking if connected"; - } - $this->Close(); - return false; - } - return true; # everything looks good - } - return false; - } - - /** - * Closes the socket and cleans up the state of the class. - * It is not considered good to use this function without - * first trying to use QUIT. - * @access public - * @return void - */ - function Close() { - $this->error = null; # so there is no confusion - $this->helo_rply = null; - if(!empty($this->smtp_conn)) { - # close the connection and cleanup - fclose($this->smtp_conn); - $this->smtp_conn = 0; - } - } - - - /*************************************************************** - * SMTP COMMANDS * - *************************************************************/ - - /** - * Issues a data command and sends the msg_data to the server - * finializing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be - * on a single line followed by a with the message headers - * and the message body being seperated by and additional . - * - * Implements rfc 821: DATA - * - * SMTP CODE INTERMEDIATE: 354 - * [data] - * . - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 552,554,451,452 - * SMTP CODE FAILURE: 451,554 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - function Data($msg_data) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Data() without being connected"); - return false; - } - - fputs($this->smtp_conn,"DATA" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 354) { - $this->error = - array("error" => "DATA command not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - # the server is ready to accept data! - # according to rfc 821 we should not send more than 1000 - # including the CRLF - # characters on a single line so we will break the data up - # into lines by \r and/or \n then if needed we will break - # each of those into smaller lines to fit within the limit. - # in addition we will be looking for lines that start with - # a period '.' and append and additional period '.' to that - # line. NOTE: this does not count towards are limit. - - # normalize the line breaks so we know the explode works - $msg_data = str_replace("\r\n","\n",$msg_data); - $msg_data = str_replace("\r","\n",$msg_data); - $lines = explode("\n",$msg_data); - - # we need to find a good way to determine is headers are - # in the msg_data or if it is a straight msg body - # currently I'm assuming rfc 822 definitions of msg headers - # and if the first field of the first line (':' sperated) - # does not contain a space then it _should_ be a header - # and we can process all lines before a blank "" line as - # headers. - $field = substr($lines[0],0,strpos($lines[0],":")); - $in_headers = false; - if(!empty($field) && !strstr($field," ")) { - $in_headers = true; - } - - $max_line_length = 998; # used below; set here for ease in change - - while(list(,$line) = @each($lines)) { - $lines_out = null; - if($line == "" && $in_headers) { - $in_headers = false; - } - # ok we need to break this line up into several - # smaller lines - while(strlen($line) > $max_line_length) { - $pos = strrpos(substr($line,0,$max_line_length)," "); - $lines_out[] = substr($line,0,$pos); - $line = substr($line,$pos + 1); - # if we are processing headers we need to - # add a LWSP-char to the front of the new line - # rfc 822 on long msg headers - if($in_headers) { - $line = "\t" . $line; - } - } - $lines_out[] = $line; - - # now send the lines to the server - while(list(,$line_out) = @each($lines_out)) { - if(strlen($line_out) > 0) - { - if(substr($line_out, 0, 1) == ".") { - $line_out = "." . $line_out; - } - } - fputs($this->smtp_conn,$line_out . $this->CRLF); - } - } - - # ok all the message data has been sent so lets get this - # over with aleady - fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "DATA not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Expand takes the name and asks the server to list all the - * people who are members of the _list_. Expand will return - * back and array of the result or false if an error occurs. - * Each value in the array returned has the format of: - * [ ] - * The definition of is defined in rfc 821 - * - * Implements rfc 821: EXPN - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 550 - * SMTP CODE ERROR : 500,501,502,504,421 - * @access public - * @return string array - */ - function Expand($name) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Expand() without being connected"); - return false; - } - - fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "EXPN not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - # parse the reply and place in our array to return to user - $entries = explode($this->CRLF,$rply); - while(list(,$l) = @each($entries)) { - $list[] = substr($l,4); - } - - return $list; - } - - /** - * Sends the HELO command to the smtp server. - * This makes sure that we and the server are in - * the same known state. - * - * Implements from rfc 821: HELO - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 501, 504, 421 - * @access public - * @return bool - */ - function Hello($host="") { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Hello() without being connected"); - return false; - } - - # if a hostname for the HELO wasn't specified determine - # a suitable one to send - if(empty($host)) { - # we need to determine some sort of appopiate default - # to send to the server - $host = "localhost"; - } - - // Send extended hello first (RFC 2821) - if(!$this->SendHello("EHLO", $host)) - { - if(!$this->SendHello("HELO", $host)) - return false; - } - - return true; - } - - /** - * Sends a HELO/EHLO command. - * @access private - * @return bool - */ - function SendHello($hello, $host) { - fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => $hello . " not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - $this->helo_rply = $rply; - - return true; - } - - /** - * Gets help information on the keyword specified. If the keyword - * is not specified then returns generic help, ussually contianing - * A list of keywords that help is available on. This function - * returns the results back to the user. It is up to the user to - * handle the returned data. If an error occurs then false is - * returned with $this->error set appropiately. - * - * Implements rfc 821: HELP [ ] - * - * SMTP CODE SUCCESS: 211,214 - * SMTP CODE ERROR : 500,501,502,504,421 - * @access public - * @return string - */ - function Help($keyword="") { - $this->error = null; # to avoid confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Help() without being connected"); - return false; - } - - $extra = ""; - if(!empty($keyword)) { - $extra = " " . $keyword; - } - - fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 211 && $code != 214) { - $this->error = - array("error" => "HELP not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return $rply; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. - * - * Implements rfc 821: MAIL FROM: - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,421 - * @access public - * @return bool - */ - function Mail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Mail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "MAIL not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the command NOOP to the SMTP server. - * - * Implements from rfc 821: NOOP - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 421 - * @access public - * @return bool - */ - function Noop() { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Noop() without being connected"); - return false; - } - - fputs($this->smtp_conn,"NOOP" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "NOOP not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the quit command to the server and then closes the socket - * if there is no error or the $close_on_error argument is true. - * - * Implements from rfc 821: QUIT - * - * SMTP CODE SUCCESS: 221 - * SMTP CODE ERROR : 500 - * @access public - * @return bool - */ - function Quit($close_on_error=true) { - $this->error = null; # so there is no confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Quit() without being connected"); - return false; - } - - # send the quit command to the server - fputs($this->smtp_conn,"quit" . $this->CRLF); - - # get any good-bye messages - $byemsg = $this->get_lines(); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg; - } - - $rval = true; - $e = null; - - $code = substr($byemsg,0,3); - if($code != 221) { - # use e as a tmp var cause Close will overwrite $this->error - $e = array("error" => "SMTP server rejected quit command", - "smtp_code" => $code, - "smtp_rply" => substr($byemsg,4)); - $rval = false; - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $e["error"] . ": " . - $byemsg . $this->CRLF; - } - } - - if(empty($e) || $close_on_error) { - $this->Close(); - } - - return $rval; - } - - /** - * Sends the command RCPT to the SMTP server with the TO: argument of $to. - * Returns true if the recipient was accepted false if it was rejected. - * - * Implements from rfc 821: RCPT TO: - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,552,553,450,451,452 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - function Recipient($to) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Recipient() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "RCPT not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the RSET command to abort and transaction that is - * currently in progress. Returns true if successful false - * otherwise. - * - * Implements rfc 821: RSET - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500,501,504,421 - * @access public - * @return bool - */ - function Reset() { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Reset() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RSET" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "RSET failed", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in. - * - * Implements rfc 821: SEND FROM: - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function Send($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Send() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SEND not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in and send them an email. - * - * Implements rfc 821: SAML FROM: - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function SendAndMail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendAndMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SAML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in or mail it to them if they are not. - * - * Implements rfc 821: SOML FROM: - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function SendOrMail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendOrMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SOML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * This is an optional command for SMTP that this class does not - * support. This method is here to make the RFC821 Definition - * complete for this class and __may__ be implimented in the future - * - * Implements from rfc 821: TURN - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 502 - * SMTP CODE ERROR : 500, 503 - * @access public - * @return bool - */ - function Turn() { - $this->error = array("error" => "This method, TURN, of the SMTP ". - "is not implemented"); - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF; - } - return false; - } - - /** - * Verifies that the name is recognized by the server. - * Returns false if the name could not be verified otherwise - * the response from the server is returned. - * - * Implements rfc 821: VRFY - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,553 - * SMTP CODE ERROR : 500,501,502,421 - * @access public - * @return int - */ - function Verify($name) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Verify() without being connected"); - return false; - } - - fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "VRFY failed on name '$name'", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return $rply; - } - - /******************************************************************* - * INTERNAL FUNCTIONS * - ******************************************************************/ - - /** - * Read in as many lines as possible - * either before eof or socket timeout occurs on the operation. - * With SMTP we can tell if we have more lines to read if the - * 4th character is '-' symbol. If it is a space then we don't - * need to read anything else. - * @access private - * @return string - */ - function get_lines() { - $data = ""; - while($str = fgets($this->smtp_conn,515)) { - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data was \"$data\"" . - $this->CRLF; - echo "SMTP -> get_lines(): \$str is \"$str\"" . - $this->CRLF; - } - $data .= $str; - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF; - } - # if the 4th character is a space then we are done reading - # so just break the loop - if(substr($str,3,1) == " ") { break; } - } - return $data; - } - -} - - -?> \ No newline at end of file diff --git a/game/Class/class.surface.php b/game/Class/class.surface.php deleted file mode 100644 index 2b65478..0000000 --- a/game/Class/class.surface.php +++ /dev/null @@ -1,30 +0,0 @@ - \ No newline at end of file diff --git a/game/Class/class.tinyplanete.php b/game/Class/class.tinyplanete.php deleted file mode 100644 index 9d034f9..0000000 --- a/game/Class/class.tinyplanete.php +++ /dev/null @@ -1,47 +0,0 @@ -connexion(); - $plan = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = $id;"); - $bdd->deconnexion(); - } - elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $id, $position)) { - $bdd->connexion(); - $plan = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";"); - $bdd->deconnexion(); - } - else die('Erreur #04 : Format de recherche de planete incorrect !'); - - if (!empty($plan)) { - $this->id = $plan["id"]; - $this->galaxie = $plan["galaxie"]; - $this->ss = $plan["ss"]; - $this->position = $plan["position"]; - $this->nom_planete = $plan["nom_planete"]; - } - } - } -} -?> \ No newline at end of file diff --git a/game/Class/class.user.php b/game/Class/class.user.php deleted file mode 100644 index a8a9f59..0000000 --- a/game/Class/class.user.php +++ /dev/null @@ -1,137 +0,0 @@ -connexion(); - $bdd->escape($id); - $user = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id;"); - $bdd->deconnexion(); - if (!empty($user)) { - $this->id_user = $user["id"]; - $this->pseudo = $user["pseudo"]; - $this->auth_level = $user["auth_level"]; - $this->race = $user["race"]; - $this->mv = $user["mv"]; - $this->id_alliance = $user["id_alliance"]; - $this->id_grade_alliance = $user["id_grade_alliance"]; - $this->mail = $user["mail"]; - $this->envoyerMail = $user["envoyerMail"]; - $this->last_visite = $user["last_visite"]; - $this->points = $user["points"]; - $this->place_points = $user["place_points"]; - $this->credits = $user["credits"]; - $this->politique = $user["politique"]; - $this->politique_lastchange = $user["politique_lastchange"]; - if (!empty($user["amis"])) $this->amis = unserialize($user["amis"]); - else $this->amis = array(); - if (!empty($user["destinationsFavoris"])) $this->destinationsFavoris = unserialize($user["destinationsFavoris"]); - else $this->destinationsFavoris = array(); - $this->combatAT_tactique = $user["combatAT_tactique"]; - $this->combatDE_tactique = $user["combatDE_tactique"]; - - foreach($technologiesVAR as $tech){ - $this->technologies[] = $user[$tech]; - } - } - else die('Erreur #01 : Utilisateur recherché introuvable dans la base de données. Contactez le support technique ('.$config['mail_support'].') au plus vite en précisant le code d\'erreur.'); - } - } - - /** - * Destructeur - * - * @return void - * @access public - */ - function __destruct(){ - global $var___db, $config, $table_user; - $out = array(); - $bdd = new bdd(); - $bdd->connexion(); - foreach($this->modifUser as $key => $modif) - { - if (!is_array($this->{$modif})) - { - $bdd->escape($this->{$modif}); - if (is_int($this->{$modif}) || is_float($this->{$modif})) $out[] .= $modif." = ".$this->{$modif}; - else $out[] .= $modif." = '".$this->{$modif}."'"; - } - else - { - if (ereg('file', $modif)) - { - $prep = implode(';', $this->{$modif}); - $bdd->escape($prep); - $out[] .= $modif." = '$prep'"; - } - else - { - if ($modif == "batiments") - $calc = "batiment"; - elseif ($modif == "technologies") - $calc = "technologies"; - elseif ($modif == "casernes") - $calc = "casernen"; - elseif ($modif == "terrestres") - $calc = "nomterrn"; - elseif ($modif == "vaisseaux") - $calc = "nomvaisn"; - - if (!isset(${$calc.'VAR'})) - global ${$calc.'VAR'}; - - $nombr = count(${$calc.'VAR'}); - for($j = 0; $j < $nombr; $j++){ - $bdd->escape($this->{$modif}[$j]); - $out[] .= ${$calc.'VAR'}[$j]." = ".$this->{$modif}[$j]; - } - } - } - } - if (!empty($out)) - $plan = $bdd->query("UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";"); - $bdd->deconnexion(); - } -} -?> \ No newline at end of file diff --git a/game/Class/phpmailer.lang-fr.php b/game/Class/phpmailer.lang-fr.php deleted file mode 100644 index a2e8dce..0000000 --- a/game/Class/phpmailer.lang-fr.php +++ /dev/null @@ -1,23 +0,0 @@ - \ No newline at end of file diff --git a/game/bourse/AAAAAcovenant.png b/game/bourse/AAAAAcovenant.png deleted file mode 100644 index 1756a14..0000000 Binary files a/game/bourse/AAAAAcovenant.png and /dev/null differ diff --git a/game/bourse/AAAAcovenant.png b/game/bourse/AAAAcovenant.png deleted file mode 100644 index c58d640..0000000 Binary files a/game/bourse/AAAAcovenant.png and /dev/null differ diff --git a/game/bourse/AAAcovenant.png b/game/bourse/AAAcovenant.png deleted file mode 100644 index e5895b9..0000000 Binary files a/game/bourse/AAAcovenant.png and /dev/null differ diff --git a/game/bourse/AAcovenant.png b/game/bourse/AAcovenant.png deleted file mode 100644 index 78dd6b2..0000000 Binary files a/game/bourse/AAcovenant.png and /dev/null differ diff --git a/game/bourse/Acovenant.png b/game/bourse/Acovenant.png deleted file mode 100644 index 299779e..0000000 Binary files a/game/bourse/Acovenant.png and /dev/null differ diff --git a/game/bourse/Copie de humain.png b/game/bourse/Copie de humain.png deleted file mode 100644 index 8322414..0000000 Binary files a/game/bourse/Copie de humain.png and /dev/null differ diff --git a/game/bourse/covenant.png b/game/bourse/covenant.png deleted file mode 100644 index fc54c2a..0000000 Binary files a/game/bourse/covenant.png and /dev/null differ diff --git a/game/bourse/humain.png b/game/bourse/humain.png deleted file mode 100644 index b5dab07..0000000 Binary files a/game/bourse/humain.png and /dev/null differ diff --git a/game/cache/bourse/1.20080913.bourse b/game/cache/bourse/1.20080913.bourse deleted file mode 100644 index 158c7e0..0000000 --- a/game/cache/bourse/1.20080913.bourse +++ /dev/null @@ -1,2 +0,0 @@ -1221316749;1331.143;1331.143 -1221316774;1610.6794;1610.6794 diff --git a/game/cache/bourse/1.20080914.bourse b/game/cache/bourse/1.20080914.bourse deleted file mode 100644 index c2bc61a..0000000 --- a/game/cache/bourse/1.20080914.bourse +++ /dev/null @@ -1,15 +0,0 @@ -1221402158;1000;1000 -1221402254;1000;1000 -1221402262;1000;1000 -1221402322;1000;1000 -1221404739;550;550 -1221404761;500;500 -1221404767;550;550 -1221406975;550;550 -1221406979;550;550 -1221406986;550;550 -1221406992;550;550 -1221407024;550;550 -1221407024;550;550 -1221407062;500;500 -1221407083;500;500 diff --git a/game/cache/bourse/1.20080916.bourse b/game/cache/bourse/1.20080916.bourse deleted file mode 100644 index b50367e..0000000 --- a/game/cache/bourse/1.20080916.bourse +++ /dev/null @@ -1 +0,0 @@ -1221598960;1898.7429747;1898.7429747 diff --git a/game/cache/bourse/1.20080917.bourse b/game/cache/bourse/1.20080917.bourse deleted file mode 100644 index a9b24da..0000000 --- a/game/cache/bourse/1.20080917.bourse +++ /dev/null @@ -1,7 +0,0 @@ -1221679648;2779.945234;2779.945234 -1221679655;3057.945;3057.945 -1221679893;1898.74635985;1898.74635985 -1221679912;3057.9558625;3057.9558625 -1221679977;1898.75256906;1898.75256906 -1221687726;3057.9558625;3057.9558625 -1221687741;1178.97595734;1178.97595734 diff --git a/game/cache/bourse/1.20080918.bourse b/game/cache/bourse/1.20080918.bourse deleted file mode 100644 index 2182692..0000000 --- a/game/cache/bourse/1.20080918.bourse +++ /dev/null @@ -1 +0,0 @@ -1221859873;1296.878;1296.878 diff --git a/game/cache/bourse/1.20080919.bourse b/game/cache/bourse/1.20080919.bourse deleted file mode 100644 index 2182692..0000000 --- a/game/cache/bourse/1.20080919.bourse +++ /dev/null @@ -1 +0,0 @@ -1221859873;1296.878;1296.878 diff --git a/game/cache/bourse/1.20080920.bourse b/game/cache/bourse/1.20080920.bourse deleted file mode 100644 index ebbcc22..0000000 --- a/game/cache/bourse/1.20080920.bourse +++ /dev/null @@ -1,6 +0,0 @@ -1221866953;2088.6382088;2088.6382088 -1221929547;2297.504;2297.504 -1221929552;2088.63636364;2088.63636364 -1221929578;3057.977824;3057.977824 -1221933324;3363.778;3363.778 -1221933340;4924.910298;4924.910298 diff --git a/game/cache/bourse/1.20080921.bourse b/game/cache/bourse/1.20080921.bourse deleted file mode 100644 index b3074a8..0000000 --- a/game/cache/bourse/1.20080921.bourse +++ /dev/null @@ -1,5 +0,0 @@ -1221949772;4477.19090909;4477.19090909 -1221949838;4924.909;4924.909 -1221949862;4070.17355372;4070.17355372 -1221949874;4924.9057;4924.9057 -1221949881;4070.17355372;4070.17355372 diff --git a/game/cache/bourse/1.20080922.bourse b/game/cache/bourse/1.20080922.bourse deleted file mode 100644 index b3074a8..0000000 --- a/game/cache/bourse/1.20080922.bourse +++ /dev/null @@ -1,5 +0,0 @@ -1221949772;4477.19090909;4477.19090909 -1221949838;4924.909;4924.909 -1221949862;4070.17355372;4070.17355372 -1221949874;4924.9057;4924.9057 -1221949881;4070.17355372;4070.17355372 diff --git a/game/cache/bourse/1.20081104.bourse b/game/cache/bourse/1.20081104.bourse deleted file mode 100644 index 3e010aa..0000000 --- a/game/cache/bourse/1.20081104.bourse +++ /dev/null @@ -1 +0,0 @@ -1225821369;2594.0162468;2594.0162468 diff --git a/game/cache/bourse/2.20080915.bourse b/game/cache/bourse/2.20080915.bourse deleted file mode 100644 index c4ff52f..0000000 --- a/game/cache/bourse/2.20080915.bourse +++ /dev/null @@ -1,4 +0,0 @@ -1221438807;805.255;805.255 -1221462454;974.35855;974.35855 -1221462476;1071.7949;1071.7949 -1221463711;1178.969;1178.969 diff --git a/game/cache/bourse/2.20080920.bourse b/game/cache/bourse/2.20080920.bourse deleted file mode 100644 index ebbcc22..0000000 --- a/game/cache/bourse/2.20080920.bourse +++ /dev/null @@ -1,6 +0,0 @@ -1221866953;2088.6382088;2088.6382088 -1221929547;2297.504;2297.504 -1221929552;2088.63636364;2088.63636364 -1221929578;3057.977824;3057.977824 -1221933324;3363.778;3363.778 -1221933340;4924.910298;4924.910298 diff --git a/game/cache/bourse/3.20081104.bourse b/game/cache/bourse/3.20081104.bourse deleted file mode 100644 index 60f4c9c..0000000 --- a/game/cache/bourse/3.20081104.bourse +++ /dev/null @@ -1 +0,0 @@ -1225821382;161.051239669;161.051239669 diff --git a/game/cache/bourse/Copie de 1.20080915.bourse b/game/cache/bourse/Copie de 1.20080915.bourse deleted file mode 100644 index c4ff52f..0000000 --- a/game/cache/bourse/Copie de 1.20080915.bourse +++ /dev/null @@ -1,4 +0,0 @@ -1221438807;805.255;805.255 -1221462454;974.35855;974.35855 -1221462476;1071.7949;1071.7949 -1221463711;1178.969;1178.969 diff --git a/game/cache/inline.cache b/game/cache/inline.cache deleted file mode 100644 index 56a6051..0000000 --- a/game/cache/inline.cache +++ /dev/null @@ -1 +0,0 @@ -1 \ No newline at end of file diff --git a/game/cache/nbcovie.cache b/game/cache/nbcovie.cache deleted file mode 100644 index da2d398..0000000 --- a/game/cache/nbcovie.cache +++ /dev/null @@ -1 +0,0 @@ -14 \ No newline at end of file diff --git a/game/cache/nbhumain.cache b/game/cache/nbhumain.cache deleted file mode 100644 index 19c7bdb..0000000 --- a/game/cache/nbhumain.cache +++ /dev/null @@ -1 +0,0 @@ -16 \ No newline at end of file diff --git a/game/cache/signatures/2..sign b/game/cache/signatures/2..sign deleted file mode 100644 index 7f020b4..0000000 Binary files a/game/cache/signatures/2..sign and /dev/null differ diff --git a/game/cache/signatures/6..sign b/game/cache/signatures/6..sign deleted file mode 100644 index 1e35054..0000000 Binary files a/game/cache/signatures/6..sign and /dev/null differ diff --git a/game/cache/signatures/8..sign b/game/cache/signatures/8..sign deleted file mode 100644 index fc37f11..0000000 Binary files a/game/cache/signatures/8..sign and /dev/null differ diff --git a/game/cron/bourse.php b/game/cron/bourse.php deleted file mode 100644 index 846b76d..0000000 --- a/game/cron/bourse.php +++ /dev/null @@ -1,10 +0,0 @@ -
Début des taches de la bourse ; il est : '.date('d/m/Y H:i:s'); - -$bdd->connexion(); -$bdd->query("UPDATE $table_bourse SET metalAnc = metal, cristalAnc = cristal"); -$bdd->deconnexion(); - -print '
Fin des taches de la bourse ; il est : '.date('d/m/Y H:i:s').'
'; -?> \ No newline at end of file diff --git a/game/cron/class.planete.php b/game/cron/class.planete.php deleted file mode 100644 index c57f319..0000000 --- a/game/cron/class.planete.php +++ /dev/null @@ -1,98 +0,0 @@ -id = $plan["id"]; - $this->metal = $plan["metal"]; - $this->cristal = $plan["cristal"]; - $this->hydrogene = $plan["hydrogene"]; - - foreach($batimentVAR as $bat){ - $this->batiments[] = $plan[$bat]; - } - foreach($casernenVAR as $cas){ - $this->casernes[] = $plan[$cas]; - } - foreach($nomterrnVAR as $ter){ - $this->terrestres[] = $plan[$ter]; - } - foreach($nomvaisnVAR as $vais){ - $this->vaisseaux[] = $plan[$vais]; - } - } - - function calculerBatiments(){ - global $batimentCALC; - $pointsbat = 0; - $planete = $this; - - foreach($this->batiments as $k => $n){ - eval($batimentCALC[$k][0]); - eval($batimentCALC[$k][1]); - eval($batimentCALC[$k][2]); - $pointsbat += $a + $b + $c; - } - - return $pointsbat; - } - - function calculerCasernes(){ - global $casernenCALC; - $pointscas = 0; - - foreach($this->casernes as $k => $n){ - $pointscas += ($casernenCALC[$k][0] + $casernenCALC[$k][1] + $casernenCALC[$k][2]) * $n; - } - - return $pointscas; - } - - function calculerTerrestres(){ - global $nomterrnCALC; - $pointster = 0; - - foreach($this->terrestres as $k => $n){ - $pointster += ($nomterrnCALC[$k][0] + $nomterrnCALC[$k][1] + $nomterrnCALC[$k][2]) * $n; - } - - return $pointster; - } - - function calculerVaisseaux(){ - global $nomvaisnCALC; - $pointsvai = 0; - - foreach($this->vaisseaux as $k => $n){ - $pointsvai += ($nomvaisnCALC[$k][0] + $nomvaisnCALC[$k][1] + $nomvaisnCALC[$k][2]) * $n; - } - - return $pointsvai; - } -} -?> \ No newline at end of file diff --git a/game/cron/class.user.php b/game/cron/class.user.php deleted file mode 100644 index 53ecf15..0000000 --- a/game/cron/class.user.php +++ /dev/null @@ -1,48 +0,0 @@ -id_user = $user["id"]; - $this->credits = $user["credits"]; - - foreach($technoloVAR as $tech){ - $this->technologies[] = $user[$tech]; - } - } - - function calculerTechnologies(){ - global $technoloCALC; - $pointstech = 0; - $planete = $this; - - foreach($this->batiments as $k => $n){ - eval($technoloCALC[$k][0]); - eval($technoloCALC[$k][1]); - eval($technoloCALC[$k][2]); - $pointstech += $a + $b + $c; - } - - return $pointstech; - } -} -?> \ No newline at end of file diff --git a/game/cron/classement.php b/game/cron/classement.php deleted file mode 100644 index a779d8f..0000000 --- a/game/cron/classement.php +++ /dev/null @@ -1,81 +0,0 @@ -connexion(); -$bdd->query("TRUNCATE TABLE $table_classement;"); -$users = $bdd->query("SELECT * FROM $table_user;"); -$bdd->deconnexion(); - -foreach($users as $queryUser){ - $id_user = $queryUser['id']; - $pointsbat = 0; - $pointsterr = 0; - $pointsvais = 0; - - $bdd->connexion(); - $planetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user;"); - $bdd->deconnexion(); - - //Calcul des points par planète - if (!empty($planetes)) { - foreach($planetes as $planete){ - $plan = new Planete($planete, $queryUser); - $pointsbat += $plan->calculerBatiments(); - $pointsterr += $plan->calculerTerrestres(); - $pointsvais += $plan->calculerVaisseaux(); - } - } - - //Calcul des points du joueur - $pointstech = $plan->calculerTechnologies(); - - //Division par 1000 - $pointstech /= 1000; - $pointsvais /= 1000; - $pointsterr /= 1000; - $pointsbat /= 1000; - - //Calcul des points totaux - $points = $pointsbat + $pointsterr + $pointsvais + $pointstech; - - //Mise à jour des points pour le joueur - $bdd->connexion(); - $bdd->query("UPDATE $table_user SET points = $points, batiments = $pointsbat, recherches = $pointstech, flotte = $pointsvais, terrestre = $pointsterr WHERE id = $id_user;"); - if ($queryUser['auth_level'] < 2 && $queryUser['mv'] < 2) $bdd->query("INSERT INTO $table_classement (id_user, pseudo, points, flottes, terrestres, recherches, batiments) VALUES ($id_user, '".$queryUser['pseudo']."', $points, $pointsvais, $pointsterr, $pointstech, $pointsbat);"); - $bdd->deconnexion(); -} - -$p = 0; -$bdd->connexion(); -$classement = $bdd->query("SELECT U.id, U.auth_level FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id ORDER BY C.points DESC;"); - -foreach($classement as $ligne){ - if ($ligne['auth_level'] < 2) { - $p++; - $bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$ligne['id']); - } - else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$ligne['id']); -} - -$bdd->deconnexion(); -//*/ -print '
Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s'); - -//Classement Alliances -$bdd->connexion(); -$bdd->query("TRUNCATE TABLE $table_classement_alliances;"); -$alliances = $bdd->query("SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points)/SUM(U.id) AS points, SUM(U.batiments)/SUM(U.id) AS batiments, SUM(U.recherches)/SUM(U.id) AS recherches, SUM(U.flotte)/SUM(U.id) AS flotte, SUM(U.terrestre)/SUM(U.id) AS terrestre FROM $table_user U GROUP BY U.id_alliance;"); -foreach($alliances as $alliance){ - if ($alliance['id_alliance'] != 0) $bdd->query("INSERT INTO $table_classement_alliances (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestres) VALUES (".$alliance['id_alliance'].", ".$alliance['nombre'].", ".$alliance['points'].", ".$alliance['batiments'].", ".$alliance['recherches'].", ".$alliance['flotte'].", ".$alliance['terrestre'].");"); -} -$bdd->deconnexion(); - -print '
Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s'); - -?> \ No newline at end of file diff --git a/game/cron/inactifs.php b/game/cron/inactifs.php deleted file mode 100644 index 532d466..0000000 --- a/game/cron/inactifs.php +++ /dev/null @@ -1,37 +0,0 @@ -
Début de la gestion des joueurs inactifs ; il est : '.date('d/m/Y H:i:s'); - -$limite1 = time() - 10 * 86400; -$limite2 = $limite1 + 86400; -$limiteS = time() - 20 * 86400; -$bdd->connexion(); -$utils = $bdd->query("SELECT id, pseudo, mail FROM $table_user WHERE last_visite < $limite1 AND last_visite > $limite2 AND mv = 0;"); -$utils['nombre'] = $bdd->num_rows; -var_dump($utils); -for($i = 0; $i < $utils['nombre']; $i++){ - send_mail($utils[$i]['mail'], "Compte de jeu inactif", 'Halo-Battle :: Compte de jeu inactif

Bonjour '.$utils[$i]['pseudo'].',
Cela fait plus d\'une semaine que vous ne vous êtes pas connecté au jeu Halo-Battle.
Pour que vos planètes et vos vaisseaux soient concervés, pensez à mettre votre compte en mode vacances avant qu\'il ne soit définitivement supprimé de nos serveurs.

A bientôt dans Halo-Battle,
Le staff

'); - print '
Envoie d\'un mail au joueur inactif '.$utils[$i]['pseudo']; -} - -$utils = $bdd->query("SELECT id, pseudo, mail FROM $table_user WHERE last_visite < $limiteS AND mv = 0;"); -$utils['nombre'] = $bdd->num_rows; -var_dump($utils); -for($i = 0; $i < $utils['nombre']; $i++){ - send_mail($utils[$i]['mail'], "Compte de jeu supprime", 'Halo-Battle :: Suppression de votre compte

Bonjour '.$utils[$i]['pseudo'].',
Cela fait plus de deux semaines que vous ne vous êtes pas connecté au jeu Halo-Battle.
Votre compte ainsi que toutes les données personnelles vous concernant viennent d\'être supprimées de notre serveur de jeu, ainsi, vous ne recevrez plus de courriels de notre part.

A bientôt dans Halo-Battle,
Le staff

'); - //send_mail($utils[$i]['mail'], "Re: Compte de jeu supprimé", 'Halo-Battle :: Suppression de votre compte

Bonjour '.$utils[$i]['pseudo'].',
Vous avez reçu il y a quelques minutes un courriel indiquant la suppression de votre compte de jeu. Cet e-mail n\'était en fait qu\'un simple test effectué par nos serveur afin de tester le script de gestion des joueurs inactifs (dont vous faites parti).

D\'ici la semaine prochaine, il sera mis en application et votre compte risquera d\'être supprimé. Vous pouvez donc toujours profiter de votre compte avant qu\'il ne soit supprimé réellement ;)

A bientôt dans Halo-Battle,
Le staff

'); - $bdd->query("DELETE FROM $table_flottes WHERE id_user = ".$utils[$i]['id']); -//TODO vérifier la suppression desactions du joueur -// $action = new Bourse(); -// $action->delUser($utils[$i]['id']); -//TODO Ajouter CASCADE !! pour supprimer les combats avec les flottes - $bdd->query("DELETE FROM $table_planete WHERE id_user = ".$utils[$i]['id']); - $bdd->query("DELETE FROM $table_user WHERE id = ".$utils[$i]['id']); - $bdd->query("DELETE FROM $table_mail WHERE destinataire = ".$utils[$i]['pseudo']); - $bdd->query("DELETE FROM $table_mail WHERE expediteur = ".$utils[$i]['pseudo']); - print '
Envoie d\'un mail et suppression du joueur inactif '.$utils[$i]['pseudo']; -} -$bdd->deconnexion(); - -print '
Fin de la gestion des joueurs inactifs ; il est : '.date('d/m/Y H:i:s').'
'; -?> \ No newline at end of file diff --git a/game/cron/optimize.php b/game/cron/optimize.php deleted file mode 100644 index 645a561..0000000 --- a/game/cron/optimize.php +++ /dev/null @@ -1,15 +0,0 @@ -connexion(); -$chapeau->db(); - -$chapeau->query("OPTIMIZE TABLE `alliances` , `alliances_attente` , `alliances_chat` , `alliances_creation` , `alliances_grade` , `banni` , `bug` , `classement` , `flottes` , `flottes_combats` , `historique` , `infoshead` , `mail` , `planete` , `registre_identification` , `securite_identification` , `sessions` , `user` , `user_inscriptions` , `version`; -TRUNCATE TABLE `registre_identification`;"); - -$chapeau->deconnexion(); -?> \ No newline at end of file diff --git a/game/cron/sauvebdd.php b/game/cron/sauvebdd.php deleted file mode 100644 index 333bfed..0000000 --- a/game/cron/sauvebdd.php +++ /dev/null @@ -1,119 +0,0 @@ -
Début de la sauvegarde de la base de données ; il est : '.date('d/m/Y H:i:s'); - -if(!is_writable(_FCORE."backup/")) print 'dossier backup non accessible en ecriture ! Impossible de faire la sauvegarde de la base de données'; -else { - function dumpTable($fp, $nomtable) { - global $config; - include(_FCORE."../game/tables.php"); - $bdd = new bdd(); - - if (!function_exists('gzopen')) $fwrite = 'fwrite'; - else $fwrite = 'gzwrite'; - - $fwrite($fp, "-- Données de la table $nomtable\n\n"); - $bdd->connexion(); - $nomtable = ${'table_'.$nomtable}; - $res = $bdd->query('SELECT * FROM '.$nomtable.';'); - $bdd->deconnexion(); - - for($i = 0; $i < $bdd->num_rows; $i++){ - $strFieldsNames = ''; - $strFieldsValues = ''; - - foreach ($res[$i] as $field_name => $field_value){ - if ($strFieldsNames) $strFieldsNames .= ', '; - $strFieldsNames .= "$field_name"; - - if($strFieldsValues) $strFieldsValues .= ', '; - $strFieldsValues .= "'" . addslashes($field_value) . "'"; - } - $fwrite($fp, 'INSERT INTO '.$nomtable.' ('.$strFieldsNames.') VALUES ('.$strFieldsValues.");\n"); - } - $fwrite($fp, "\n\n"); - } - - function dumpTableXML($fp, $nomtable) { - global $config; - include(_FCORE."../game/tables.php"); - $bdd = new bdd(); - $bdd->connexion(); - $nomtable = ${'table_'.$nomtable}; - $res = $bdd->query('SELECT * FROM '.$nomtable.';'); - $bdd->deconnexion(); - - fwrite($fp, "\n"); - for($i = 0; $i < $bdd->num_rows; $i++){ - if (isset($res[$i]['id'])) $extend = ' id="'.$res[$i]['id'].'"'; - else $extend = ''; - - fwrite($fp, "\t\n"); - foreach ($res[$i] as $field_name => $field_value){ - if ($nomtable == 'user' && $field_name == "mdp_var") continue; - fwrite($fp, "\t\t<$field_name>".str_replace('<', '$#lt;', utf8_encode(html_entity_decode($field_value)))."\n"); - } - fwrite($fp, "\t\n"); - } - fwrite($fp, "
\n"); - } - - //Création du fichier de destination - $fname = _FCORE."backup/".date('Y-m-d H-i-s'); - if (true || !function_exists('gzopen')) { - $fp = fopen($fname.'.sql', 'w+'); - $ext = 'sql'; - $fwrite = 'fwrite'; - } - else { - $fp = gzopen($fname.'.gz', 'w+'); - $ext = 'gz'; - $fwrite = 'gzwrite'; - } - $fpx = fopen($fname.'.xml', 'w+'); - - if ($fp) { - $fwrite($fp, "-- Utilitaire de sauvegarde de base de données de HB\n-- Sauvegarde du ".date('d/m/Y H:i:s')."\n-- Version du jeu : ".$config['version']."\n\n"); - fwrite($fpx, ''."\n\n\n"); - - //Liste des tables à sauvegarder - $list = array('alliances', 'alliances_attente', 'alliances_chat', 'alliances_creation', 'alliances_grade', 'flottes', 'flottes_combats', 'planete', 'user'); - - foreach($list as $table) { - dumpTable($fp, $table); - dumpTableXML($fpx, $table); - } - fwrite($fpx, ''); - } - - if (!function_exists('gzopen')) fclose($fp); - else gzclose($fp); - - // TODO tester l'envoie de mail !! - if (@$envoyer_mail) { - require_once(_FCORE."../game/Class/class.phpmailer.php"); - - $mail = new PHPmailer(); - $mail->SetLanguage('fr', _FCORE."../game/Class/"); - $mail->IsSMTP(); - $mail->Host='s-fr.com'; - $mail->From='no-reply@halo-battle.s-fr.com'; - $mail->FromName='Halo-Battle'; - $mail->SMTPAuth=true; - $mail->Username='no-reply@halo-battle.s-fr.com'; - $mail->Password='hD3e2nXu'; - - $mail->AddAddress('sauv@gmail.com'); - $mail->AddReplyTo('no-reply@halo-battle.s-fr.com'); - $mail->Subject = 'Sauvegarde du '.date('d/m/Y à H:i:s'); - $mail->Body = 'Utilitaire de sauvegarde de base de données de HB version '.$config['version']; - $mail->AddAttachment($fname.'.'.$ext); - - $return = $mail->Send(); - $mail->SmtpClose(); - } - -} -print '
Fin de la sauvegarde de la base de données ; il est : '.date('d/m/Y H:i:s').'
'; -?> \ No newline at end of file diff --git a/game/cron/suppr_joueurs.php b/game/cron/suppr_joueurs.php deleted file mode 100644 index 8b6297e..0000000 --- a/game/cron/suppr_joueurs.php +++ /dev/null @@ -1,27 +0,0 @@ -
Début de la suppression des joueurs ; il est : '.date('d/m/Y H:i:s'); - -require(_FCORE."../game/Class/class.bourse.php"); - -$bdd->connexion(); -$utils = $bdd->query("SELECT id, pseudo, bourse FROM $table_user WHERE mv = -1;"); -$utils['nombre'] = $bdd->num_rows; -for($i = 0; $i < $utils['nombre']; $i++){ -//TODO vérifier la suppression desactions du joueur - $action = new Bourse(); - $action->delUser($utils[$i]['id']); - - $bdd->query("DELETE FROM $table_flottes WHERE id_user = ".$utils[$i]['id']); -//TODO Ajouter CASCADE !! pour supprimer les combats avec les flottes - $bdd->query("DELETE FROM $table_planete WHERE id_user = ".$utils[$i]['id']); - $bdd->query("DELETE FROM $table_user WHERE id = ".$utils[$i]['id']); - $bdd->query("DELETE FROM $table_mail WHERE destinataire = ".$utils[$i]['pseudo']); - $bdd->query("DELETE FROM $table_mail WHERE expediteur = ".$utils[$i]['pseudo']); - print '
Supression de l\'utilisateur '.$utils[$i]['pseudo']; -} -$bdd->query("UPDATE $table_user SET mv = -1 WHERE mv = -2;"); -$bdd->deconnexion(); - -print '
Fin de la suppression des joueurs ; il est : '.date('d/m/Y H:i:s').'
'; -?> \ No newline at end of file diff --git a/game/fermerServeur.php b/game/fermerServeur.php deleted file mode 100644 index 844e896..0000000 --- a/game/fermerServeur.php +++ /dev/null @@ -1,23 +0,0 @@ -level) || $sess->level < 5)) { - switch($config['stnb']){ - case 1: - $titre = 'Serveur en maintenance'; - $contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.

Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire l\'annonce officielle de cette maintenance sur le forum du jeu.

Merci de votre compréhension'; - break; - case 2: - $titre = 'Serveur en maintenance'; - $contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.

Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire la HB Weekly Update sur le forum du jeu.

Merci de votre compréhension'; - break; - case 3: - $titre = 'Serveur en maintenance'; - $contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.

Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire le ChangeLog de Mantis.

Merci de votre compréhension'; - break; - } - - $template->assign('titre', $titre); - $template->assign('texte', $contenu); - $template->display('cms/maj.tpl'); - exit; -} -?> \ No newline at end of file diff --git a/game/flottes.php b/game/flottes.php deleted file mode 100644 index 7195da0..0000000 --- a/game/flottes.php +++ /dev/null @@ -1,17 +0,0 @@ -connexion(); -$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE (id_user = ".$planete->id_user." OR end_planete = ".$planete->id.") AND last < ".(time()-10).";"); -$bdd->deconnexion(); - -if ($flottes) { - foreach($flottes as $flotte) { - $flotte = new Flotte($flotte['id']); - $flotte->check_mission(); - } -} - -//Par sécurité, on ferme la dernière classe Flotte inutile -unset($flotte); -?> \ No newline at end of file diff --git a/game/function.php b/game/function.php deleted file mode 100644 index 883a94f..0000000 --- a/game/function.php +++ /dev/null @@ -1,350 +0,0 @@ -connexion(); - $resultat = $base->unique_query("SELECT pseudo FROM $table_user WHERE id = $id_user;"); - $base->deconnexion(); - return $resultat['pseudo']; -} - -function linkNom($id_user){ - if (is_numeric($id_user)) $nom = trouvNom($id_user); - else $id_user = trouvId($id_user); - return ''.$nom.''; -} - -function trouvId($nom){ - global $table_user; - $base = new bdd(); - $base->connexion(); - $resultat = $base->unique_query("SELECT id FROM $table_user WHERE pseudo = '$nom';"); - $base->deconnexion(); - return $resultat['id']; -} - -function trouvInfo($id_user, $info){ - global $table_user; - $base = new bdd(); - $base->connexion(); - $resultat = $base->unique_query("SELECT $info FROM $table_user WHERE id = $id_user;"); - $base->deconnexion(); - return $resultat[$info]; -} - -function affTemp($secondes){ - $heures = intval($secondes/3600); - $minutes = intval($secondes/60-($heures*60)); - if ($minutes < 10) $minutes = '0'.$minutes; - $seconde = $secondes-($heures*3600)-($minutes*60); - if ($seconde < 10) $seconde = '0'.$seconde; - - return $heures.':'.$minutes.':'.$seconde; -} - -function separerNombres($nombre) { - return number_format($nombre, 0, ',', ' '); -} - -function sec($time) { - $output = ''; - $tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1'); - foreach ($tab as $key => $value) { - $compteur = 0; - while ($time > ($value-1)) { - $time = $time - $value; - $compteur++; - } - if ($compteur != 0) { - $output .= $compteur.' '.$key; - if ($compteur > 1) $output .= 's'; - if ($value != 1) $output .= ' '; - } - } - if (empty($output)) return 'Instantané'; - else return $output; -} - -function readDeblok($tableau, $queryPlanete){ - global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR; - if ($tableau == '0') return 'Débloqué'; - else { - $return = ''; - foreach ($tableau as $ligne){ - if (!(array_search($ligne[1], $batimentVAR) === false)) { - $x = array_search($ligne[1], $batimentVAR); - $var = 'batiments'; - } - elseif (!(array_search($ligne[1], $technologiesVAR) === false)) { - $x = array_search($ligne[1], $technologiesVAR); - $var = 'technologies'; - } - elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) { - $x = array_search($ligne[1], $casernenVAR); - $var = 'casernes'; - } - elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) { - $x = array_search($ligne[1], $nomterrnVAR); - $var = 'terrestres'; - } - elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) { - $x = array_search($ligne[1], $nomvaisnVAR); - $var = 'vaisseaux'; - } - else return '#Error'; - - if (isset($var) && $var == 'technologies') { - if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return .= ''.$ligne[0].' ('.$var.')
'; - else $return .= $ligne[0].' ('.$var.')
'; - } - elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return .= ''.$ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')
'; - elseif (isset($var) && $queryPlanete->{$var}[$x] >= $ligne[2]) $return .= $ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')
'; - } - if (empty($return)) return 'Débloqué'; - else return $return; - } -} - -function requestDeblok($tableau, $queryPlanete){ - global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR; - if ($tableau == '0') return true; - else { - $return = true; - foreach ($tableau as $ligne){ - if (!(array_search($ligne[1], $batimentVAR) === false)) { - $x = array_search($ligne[1], $batimentVAR); - $var = 'batiments'; - } - elseif (!(array_search($ligne[1], $technologiesVAR) === false)) { - $x = array_search($ligne[1], $technologiesVAR); - $var = 'technologies'; - } - elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) { - $x = array_search($ligne[1], $casernenVAR); - $var = 'casernes'; - } - elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) { - $x = array_search($ligne[1], $nomterrnVAR); - $var = 'terrestres'; - } - elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) { - $x = array_search($ligne[1], $nomvaisnVAR); - $var = 'vaisseaux'; - } - else return false; - - if (isset($var) && $var == 'technologies') { - if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return = false; - } - elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return = false; - } - return $return; - } -} - -function txtmission($mission){ - if ($mission == 0) return 'Stationner'; - elseif ($mission == 1) return 'Transporter'; - elseif ($mission == 2) return 'Coloniser'; - elseif ($mission == 3) return 'Attaquer'; - elseif ($mission == 4) return 'Recycler'; - elseif ($mission == 5) return 'Espionner'; - elseif ($mission == 6) return 'Retour'; - else return 'Erreur'; -} - -function txtTactique($tactique){ - switch($tactique){ - case 1: return '1'; break; - case 2: return '2'; break; - case 3: return '3'; break; - case 4: return '4'; break; - case 5: return '5'; break; - case 6: return '6'; break; - case 7: return '7'; break; - case 8: return '8'; break; - case 9: return '9'; break; - case 10: return '10'; break; - case 11: return '11'; break; - case 12: return '12'; break; - case 13: return '13'; break; - case 14: return '14'; break; - case 15: return '15'; break; - case 16: return '16'; break; - case 17: return '17'; break; - case 18: return '18'; break; - case 19: return '19'; break; - case 20: return '20'; break; - case 21: return '21'; break; - default: return 'autre'; break; - } -} - -function tactique($tactique){ - switch($tactique){ - case 1: return array(1,0,12,false); break; - case 2: return array(2,88,12,false); break; - case 3: return array(3,75,25,false); break; - case 4: return array(4,63,37,false); break; - case 5: return array(5,50,50,false); break; - case 6: return array(6,37,63,false); break; - case 7: return array(7,25,75,false); break; - case 8: return array(8,12,88,false); break; - case 9: return array(9,12,88,true); break; - case 10: return array(10,25,75,true); break; - case 11: return array(11,37,63,true); break; - case 12: return array(12,50,50,true); break; - case 13: return array(13,63,37,true); break; - case 14: return array(14,75,25,true); break; - case 15: return array(15,75,26,true); break; - case 16: return array(16,75,27,true); break; - case 17: return array(17,75,28,true); break; - case 18: return array(18,75,29,true); break; - case 19: return array(19,75,30,true); break; - case 20: return array(20,75,31,true); break; - case 21: return array(21,75,32,true); break; - default: return array(1,0,10,false); break; - } -} - -function pillage($metal, $cristal, $hydrogene, $vfm){ - $Qm = $metal / $vfm; - $Qc = $cristal / $vfm; - $Qh = $hydrogene / $vfm; - - $somme = $Qm + $Qc + $Qh; - - if ($somme < 2) { - $Fm = $metal / 2; - $Fc = $cristal / 2; - $Fh = $hydrogene / 2; - } - else { - $Fm = $Qm / $somme * $vfm; - $Fc = $Qc / $somme * $vfm; - $Fh = $Qh / $somme * $vfm; - } - - return array(floor($Fm), floor($Fc), floor($Fh)); -} - -function vais_tempsDeplacement($start_galaxie,$start_ss,$start_position,$end_galaxie,$end_ss,$end_position,$vitesse,$coefvitesse = 1,$preparation = 0,$chauffe = 0) { - if ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0 && $end_position-$start_position == 0) $temps = 0; - elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0 && $chauffe == 0) $temps = $preparation+abs($end_position-$start_position)*$vitesse/12; - elseif ($end_galaxie-$start_galaxie == 0 && $chauffe == 0) $temps = $preparation+abs($end_ss-$start_ss)*$vitesse; - elseif ($chauffe == 0) $temps = $preparation+abs($end_galaxie-$start_galaxie)*$vitesse*300; - elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0) $temps = $preparation+abs($end_position-$start_position)*($vitesse*2)/12+$preparation; - /*elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss <= $chauffe) $temps = abs($end_ss-$start_ss)*(($vitesse/$chauffe)*($chauffe-abs($end_ss-$start_ss))+$vitesse)+$preparation; - elseif ($end_galaxie-$start_galaxie == 0) $temps = $vitesse*abs($end_ss-$start_ss)+$vitesse*10+$preparation;*/ - elseif ($end_galaxie-$start_galaxie == 0) $temps = (abs($end_ss-$start_ss)*(($vitesse/$chauffe)*((abs($chauffe-abs($end_ss-$start_ss))+($chauffe-abs($end_ss-$start_ss)))/2)+$vitesse))+(20-(abs($chauffe-abs($end_ss-$start_ss))+($chauffe-abs($end_ss-$start_ss)))/2)*54+$preparation; - else $temps = (($vitesse/$chauffe)*($chauffe-abs($end_galaxie-$start_galaxie))+$vitesse)*300+108+$preparation; - - return $temps/$coefvitesse; -} - -function vaisTempsdeplacement($start_amas, $start_ss, $start_pos, $end_amas,$end_ss, $end_pos, $vitessevaisseaux, $vitesseflotte=100) { - if($end_amas - $start_amas != 0) return (10+(35000/$vitesseFlotte*sqrt(abs($end_amas-$start_amas)*20000000/$vitesseVaisseaux))); - elseif($end_ss-$start_ss != 0) return (10+(35000/$vitesseFlotte*sqrt(2700000+abs($end_ss-$start_ss)*95000/$vitessevais))); - elseif($end_pos-$start_pos != 0) return (10+(35000/$vitesseFlotte*sqrt((abs($end_pos-$start_pos)*5000/$vitessevais)))); - else return (10+(35000/$vitesseFlotte-sqrt(5000/$vitesseVais))); -} - - -function vais_conso($tempsDeplacement,$nbvais = 1){ - return intval($tempsDeplacement*$nbvais/20); -} - -function send_mail($admail, $sujet, $corps){ - require_once(_FCORE."../game/Class/class.phpmailer.php"); - - $mail = new PHPmailer(); - $mail->SetLanguage('fr', _FCORE."../game/Class/"); - $mail->IsSMTP(); - $mail->IsHTML(true); - $mail->Host='s-fr.com'; - $mail->From='no-reply@halo-battle.s-fr.com'; - $mail->FromName='Halo-Battle'; - $mail->SMTPAuth=true; - $mail->Username='no-reply@halo-battle.s-fr.com'; - $mail->Password='hD3e2nXu'; - - $mail->AddAddress($admail); - $mail->AddReplyTo('no-reply@halo-battle.s-fr.com'); - $mail->Subject = $sujet; - $mail->Body = $corps; - - $return = $mail->Send(); - $mail->SmtpClose(); - - return $return; -} - -function send_mailHTML($admail, $sujet, $corps){ - require_once(_FCORE."../game/Class/class.phpmailer.php"); - - $mail = new PHPmailer(); - $mail->SetLanguage('fr', _FCORE."../game/Class/"); - $mail->IsSMTP(); - $mail->IsHTML(true); - $mail->Host='s-fr.com'; - $mail->From='no-reply@halo-battle.s-fr.com'; - $mail->FromName='Halo-Battle'; - $mail->SMTPAuth=true; - $mail->Username='no-reply@halo-battle.s-fr.com'; - $mail->Password='hD3e2nXu'; - - $mail->AddAddress($admail); - $mail->AddReplyTo('no-reply@halo-battle.s-fr.com'); - $mail->Subject = 'Halo-Battle :: '.$sujet; - $mail->Body = 'Halo-Battle :: '.$sujet.'

'.$corps.'

A bientôt dans Halo-Battle,
Le staff

'; - - $return = $mail->Send(); - $mail->SmtpClose(); - - return $return; -} - -function erreur($message, $color = "red", $lien = "", $temps = 2500){ - global $template; - $template->assign('message', $message); - //if (!empty($lien)) $template->assign('script',''); - $template->assign('couleur',$color); - $template->display('game/erreur.tpl'); - exit; -} - -function send_mp($joueur, $titre, $message, $type = 0, $emetteur = 0){ - global $table_mail, $bdd; - $temps = time(); - if (!is_numeric($joueur)) $joueur = trouvId($joueur); - if (!is_numeric($emetteur)) $emetteur = trouvId($emetteur); - if (!empty($joueur)) { - $bdd->connexion(); - $bdd->escape($joueur); - $bdd->escape($titre); - $bdd->escape($message); - $bdd->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', '$temps');"); - $bdd->deconnexion(); - } -} - -function nameLink($id, $type){ - global $race; - require(_FCORE."../game/noms.php"); - - if ($type == "technologie") return ''.$technolo[$id].''; -} - -function mdp($nom, $mdp, $alea = false){ - if (empty($alea)) { - $alea = random(1024); - return array(hash_var(cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea)), $alea); - } - else return hash_var(cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea)); -} - -function redirection($url){ - header('Location: '.$url); - print ''; -} -?> \ No newline at end of file diff --git a/game/jeu/Copie de bourse.php b/game/jeu/Copie de bourse.php deleted file mode 100644 index d845a5f..0000000 --- a/game/jeu/Copie de bourse.php +++ /dev/null @@ -1,128 +0,0 @@ -= 0 && date('w') != 0 && date('w') != 6 && $queryUser['auth_level'] < 3) - erreur('La bourse est actuellement fermée !
Réouverture à 7h00', "orange"); -else*/if ($queryPlanetes[0]['id'] != $planete->id) - erreur('Vous devez être sur votre planète mère pour utiliser la bourse.'); -else { - $a = gpc('a'); - $v = gpc('v'); - $nb = gpc('a'.$a.$v, 'post'); - if ($nb < 0) erreur("Vous ne pouvez pas acheter ou vendre un nombre négatif d'action !", "red", "?p=bourse"); - if (!empty($a) && is_numeric($nb)) { - $action = new Bourse($a, $id_user); - $poss24 = $action->actionIn24Hours(); - if ($poss24 + $nb > MAX_ACTION_PAR_JOUR) erreur('Vous ne pouvez pas acheter plus de 5 mêmes actions dans les mêmes 24h.'); - $ressources = $action->prixAchat($nb); - if ($ressources[0] > $planete->metal || $ressources[1] > $planete->cristal) erreur('Vous n\'avez pas assez de ressources pour acheter '.$nb.' actions.'); - $action->addAction($nb); - $planete->metal -= $ressources[0]; - $planete->cristal -= $ressources[1]; - - header('Location: ?p=bourse&d='.$a); - exit; - } - elseif (!empty($v) && is_numeric($nb)) { - $action = new Bourse($v, $id_user); - $ressources = $action->delAction($nb); - $planete->metal += $ressources[0]; - $planete->cristal += $ressources[1]; - - header('Location: ?p=bourse&d='.$v); - exit; - } - elseif (gpc('e') && $planete->auth_level >= 3) { - $e = gpc('e'); - if (isset($_POST['nomaction']) && isset($_POST['descaction'])) { - $nom = gpc('nomaction', 'post'); - $description = gpc('descaction', 'post'); - $bdd->connexion(); - $bdd->escape($nom); - $bdd->escape($description); - $bdd->escape($e); - $bdd->query("UPDATE $table_bourse SET description = '$description', nom = '$nom' WHERE id = $e;"); - $bdd->deconnexion(); - } - elseif (isset($_POST['prixAM']) && isset($_POST['prixAC'])) { - $prixAM = gpc('prixAM', 'post'); - $prixAC = gpc('prixAC', 'post'); - $bdd->connexion(); - $bdd->escape($prixAM); - $bdd->escape($prixAC); - $bdd->escape($e); - $bdd->query("UPDATE $table_bourse SET metal = $prixAM, cristal = $prixAC WHERE id = $e;"); - $bdd->deconnexion(); - } - elseif (isset($_POST['newsaction'])) { - $news = gpc('newsaction', 'post'); - $time = time(); - $bdd->connexion(); - $bdd->escape($news); - $bdd->escape($e); - $bdd->query("UPDATE $table_bourse SET news = '$news', timeDesc = '$time' WHERE id = $e;"); - $bdd->deconnexion(); - } - - header('Location: ?p=bourse&d='.$e); - exit; - } - elseif (gpc('c') == "new" && $planete->auth_level >= 3 && is_numeric(gpc('prixAM', 'post')) && is_numeric(gpc('prixAC', 'post'))) { - if (isset($_POST['nomaction']) && isset($_POST['descaction'])) { - $nom = gpc('nomaction', 'post'); - $description = gpc('descaction', 'post'); - $prixAM = gpc('prixAM', 'post'); - $prixAC = gpc('prixAC', 'post'); - $news = gpc('newsaction', 'post'); - $time = time(); - $bdd->connexion(); - $bdd->escape($nom); - $bdd->escape($description); - $bdd->escape($prixAM); - $bdd->escape($prixAC); - $bdd->escape($news); - if (!empty($news)) $bdd->query("INSERT INTO $table_bourse (nom, description, news, timeDesc, metal, cristal) VALUES ('$nom', '$description', '$news', '$time', '$prixAM', '$prixAC');"); - else $bdd->query("INSERT INTO $table_bourse (nom, description, metal, cristal) VALUES ('$nom', '$description', '$prixAM', '$prixAC');"); - $bdd->deconnexion(); - } - - header('Location: ?p=bourse'); - exit; - } - elseif ($d = gpc('d')) { - $action = new Bourse($d, $id_user); - $template->assign('taxeA', $action->taxeA); - $template->assign('taxeV', $action->taxeV); - $template->assign('poss', $action->action()); - $template->assign('poss24', $action->actionIn24Hours()); - $action = null; - - $bdd->connexion(); - $bdd->escape($d); - $bourse = $bdd->unique_query("SELECT id, nom, description, news, metal, cristal, (metal/metalAnc-1)*100 AS evolution FROM $table_bourse WHERE id = $d;"); - $bdd->deconnexion(); - - if ($bourse) { - $page = 'bourseDetails'; - $template->assign('bourse', $bourse); - } - else erreur('Cette action n\'existe pas !', "red", '?p=bourse'); - } - else { - $bdd->connexion(); - $infos = $bdd->query("SELECT id, nom, news AS description FROM $table_bourse WHERE news != '' ORDER BY timeDesc DESC LIMIT 7;"); - $bourse = $bdd->query("SELECT id, nom, metal, cristal, (metal/metalAnc-1)*100 AS evolution FROM $table_bourse;"); - $bdd->deconnexion(); - - $page = 'bourse'; - $template->assign('bourse', $bourse); - $template->assign('infos', $infos); - } -} -?> \ No newline at end of file diff --git a/game/jeu/accueil.php b/game/jeu/accueil.php deleted file mode 100644 index 6370957..0000000 --- a/game/jeu/accueil.php +++ /dev/null @@ -1,34 +0,0 @@ -connexion(); -$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$planete->id_alliance."';"); - -//On regarde si le joueur a une flotte en vue -$radar = array(); -$nbPlan = count($queryPlanetes); -$detect = $planete->technologies[1]*1800; -/*for($i = 0; $i < $nbPlan; $i++){ - $end_galaxie = $queryPlanetes[$i]['galaxie']; - $end_ss = $queryPlanetes[$i]['ss']; - $end_position = $queryPlanetes[$i]['position']; - $radar[] = array($bdd->query("SELECT F.mission, F.start_galaxie, F.start_ss, F.start_position, F.start_time, F.end_time, F.start_time + F.end_time - ".time()." AS arrive_time, P.nom_planete, U.pseudo FROM $table_flottes F INNER JOIN $table_planete P ON P.galaxie = F.start_galaxie AND P.ss = F.start_ss AND P.position = F.start_position INNER JOIN $table_user U ON U.id = P.id_user WHERE F.effectue != '1' AND F.end_galaxie = '$end_galaxie' AND F.end_ss = '$end_ss' AND F.end_position = '$end_position' AND F.id_user != $id_user AND F.start_time + F.end_time - ".time()." <= $detect;"), array($queryPlanetes[$i]['nom_planete'], $queryPlanetes[$i]['galaxie'], $queryPlanetes[$i]['ss'], $queryPlanetes[$i]['position'])); -}*/ - -$bdd->deconnexion(); - -if (SURFACE == "planete") { - //Affichage des informations sur la planète - $diametre = separerNombres($planete->cases * 92); - $Classpoints = separerNombres($planete->points); - $template->assign('diametre',$diametre); - $template->assign('points',$Classpoints); -} - -$template->assign('mail', $queryMail); -$template->assign('radar',$radar); -$template->assign('alliance', $alli); -?> \ No newline at end of file diff --git a/game/jeu/admin/accueil.php b/game/jeu/admin/accueil.php deleted file mode 100644 index da1d8e5..0000000 --- a/game/jeu/admin/accueil.php +++ /dev/null @@ -1,15 +0,0 @@ -connexion(); -$mail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_ope_mail WHERE statut = 0;"); -$pilori = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_user WHERE mv > 1;"); -$news = $bdd->query("SELECT * FROM $table_ope_news ORDER BY id ASC LIMIT 3;"); -$bdd->deconnexion(); - -$template->assign('nbMail', $mail['nombre']); -$template->assign('nbPilori', $pilori['nombre']); -$template->assign('news', $news); -?> \ No newline at end of file diff --git a/game/jeu/admin/bandeau.php b/game/jeu/admin/bandeau.php deleted file mode 100644 index 2d76610..0000000 --- a/game/jeu/admin/bandeau.php +++ /dev/null @@ -1,60 +0,0 @@ -assign('linkpage', 'bandeau'); - -if (!empty($_GET['i']) && $_GET['i'] == 'add') { - if (!empty($_POST['texte']) && isset($_POST['color'])) { - $texte = $_POST['texte']; - $color = $_POST['color']; - $chapeau->connexion(); - $chapeau->escape($texte); - $chapeau->escape($color); - $chapeau->query("INSERT INTO $table_infoshead (texte, color) VALUES ('$texte', '$color');"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=bandeau'); - exit; - } - $template->assign('id', 'add'); - $pagea = 'bandeau_add'; -} -elseif (!empty($_GET['i'])) { - $id = $_GET['i']; - if (!empty($_POST['texte']) && isset($_POST['color'])) { - $texte = $_POST['texte']; - $color = $_POST['color']; - $chapeau->connexion(); - $chapeau->escape($texte); - $chapeau->escape($color); - $chapeau->query("UPDATE $table_infoshead SET texte = '$texte', color = '$color' WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=bandeau'); - exit; - } - $chapeau->connexion(); - $req = $chapeau->unique_query("SELECT * FROM $table_infoshead WHERE id = '$id';"); - $chapeau->deconnexion(); - $template->assign('mod', $req); - $template->assign('id', $id); - $pagea = 'bandeau_add'; -} -elseif (!empty($_GET['d'])) { - $id = $_GET['d']; - $chapeau->connexion(); - $chapeau->query("DELETE FROM $table_infoshead WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=bandeau'); - exit; -} -else { - $chapeau->connexion(); - $req = $chapeau->query("SELECT * FROM $table_infoshead ORDER BY id ASC;"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); -} -?> diff --git a/game/jeu/admin/demarrage.php b/game/jeu/admin/demarrage.php deleted file mode 100644 index d3161c1..0000000 --- a/game/jeu/admin/demarrage.php +++ /dev/null @@ -1,64 +0,0 @@ -assign('linkpage', 'demarrage'); - -if (!empty($_GET['i']) && $_GET['i'] == 'add') { - if (!empty($_POST['contenu']) && isset($_POST['titre'])) { - $titre = gpc('titre', 'post'); - $contenu = gpc('contenu', 'post'); - $chapeau->connexion(); - $chapeau->escape($titre); - $chapeau->escape($contenu); - $time = time(); - $chapeau->query("INSERT INTO $table_messages_demarrage (titre, contenu, time) VALUES ('$titre', '$contenu', $time);"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=demarrage'); - exit; - } - $template->assign('id', 'add'); - $pagea = 'demarrage_add'; -} -elseif (!empty($_GET['i'])) { - $id = $_GET['i']; - if (!empty($_POST['contenu']) && isset($_POST['titre'])) { - $titre = gpc('titre', 'post'); - $texte = gpc('contenu', 'post'); - $chapeau->connexion(); - $chapeau->escape($titre); - $chapeau->escape($texte); - $time = time(); - $reset = gpc('reset', 'post'); - if (!empty($reset)) $chapeau->query("UPDATE $table_messages_demarrage SET contenu = '$texte', titre = '$titre', time = $time WHERE id = '$id';"); - else $chapeau->query("UPDATE $table_messages_demarrage SET contenu = '$texte', titre = '$titre' WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=demarrage'); - exit; - } - $chapeau->connexion(); - $req = $chapeau->unique_query("SELECT * FROM $table_messages_demarrage WHERE id = '$id';"); - $chapeau->deconnexion(); - $template->assign('mod', $req); - $template->assign('id', $id); - $pagea = 'demarrage_add'; -} -elseif (!empty($_GET['d'])) { - $id = $_GET['d']; - $chapeau->connexion(); - $chapeau->query("DELETE FROM $table_messages_demarrage WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=demarrage'); - exit; -} -else { - $chapeau->connexion(); - $req = $chapeau->query("SELECT * FROM $table_messages_demarrage;"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); -} -?> \ No newline at end of file diff --git a/game/jeu/admin/flottes.php b/game/jeu/admin/flottes.php deleted file mode 100644 index 302ae29..0000000 --- a/game/jeu/admin/flottes.php +++ /dev/null @@ -1,21 +0,0 @@ -connexion(); -$req = mysql_query("SELECT * FROM `$table_flottes` ORDER BY `start_time` DESC"); -$tableau = array(); -while($resultat = mysql_fetch_array($req)) { - $user_source = infoPlan($resultat['end_galaxie'], $resultat['end_ss'], $resultat['end_position'], 'id_user'); - if ($resultat['contenu_metal'] + $resultat['contenu_cristal'] + $resultat['contenu_hydrogene'] >= $_GET['ceil']) $color = 'FF0000'; - elseif ($user_source != $resultat['id_user']) $color = 'DFBF00'; - else $color = false; - $tableau[] = array(trouvNom($user_source), trouvNom($resultat['id_user']), infoPlan($resultat['start_galaxie'], $resultat['start_ss'], $resultat['start_position'], 'nom_planete'), '['.$resultat['start_galaxie'].':'.$resultat['start_ss'].':'.$resultat['start_position'].']', infoPlan($resultat['end_galaxie'], $resultat['end_ss'], $resultat['end_position'], 'nom_planete'), '['.$resultat['end_galaxie'].':'.$resultat['end_ss'].':'.$resultat['end_position'].']', $resultat['start_time'], ''.$resultat['nb_vais'].'', $resultat['vitesse'], $resultat['contenu_metal'], $resultat['contenu_cristal'], $resultat['contenu_hydrogene'], $color); -} - -$template->assign('flottes', $tableau); -?> \ No newline at end of file diff --git a/game/jeu/admin/inscription.php b/game/jeu/admin/inscription.php deleted file mode 100644 index 4b89cfe..0000000 --- a/game/jeu/admin/inscription.php +++ /dev/null @@ -1,14 +0,0 @@ -
L\'inscription doit avoir lieu par vous même en raison des procédures de sécurités !', "white"); - } - else erreur('Mot de passe incorrect !'); -} -?> \ No newline at end of file diff --git a/game/jeu/admin/ip.php b/game/jeu/admin/ip.php deleted file mode 100644 index 65543e3..0000000 --- a/game/jeu/admin/ip.php +++ /dev/null @@ -1,36 +0,0 @@ -connexion(); -$page = gpc('v'); -if (empty($page) || !is_numeric($page)) $page = 0; - -$act = gpc('act'); -if ($act == 'multiok') $chapeau->query("UPDATE $table_user SET multi = '1' WHERE id = ".$_GET['util'].";"); - -if (isset($_GET['ip'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE ip = '".$_GET['ip']."' ORDER BY ip ASC;"); -elseif (isset($_GET['util']) && isset($_GET['comp'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = ".$_GET['util']." OR id_util = ".$_GET['comp']." ORDER BY ip ASC;"); -elseif (isset($_GET['util'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = '".$_GET['util']."' ORDER BY ip ASC;"); -elseif (isset($_GET['tri'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id ORDER BY ".$_GET['tri']." ASC;"); -else $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE R.time > '$timelimit 00:00:00' ORDER BY R.ip ASC LIMIT ".($page*75).",75;"); -//SELECT last_ip,COUNT(*) FROM user GROUP BY last_ip HAVING COUNT(*)>1 -$nbpage = $chapeau->unique_query("SELECT COUNT(id) AS nb FROM $table_registre_identification WHERE time > '$timelimit 00:00:00';"); -$chapeau->deconnexion(); - -$anc = array('ip' => 0, 'id_util' => 0); -$tableau = array(); -while($resultat = mysql_fetch_array($req)) { - if ($resultat['mv'] == 3) $color = 'DFBF00'; - elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'EE66EE'; - elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'FF0000'; - else $color = false; - $tableau[] = array($resultat['ip'], 'absent pour plus de rapidité'/*gethostbyaddr($resultat['ip'])*/, $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color); - $anc = $resultat; -} -$template->assign('ips', $tableau); -$template->assign('numpage', $page); -$template->assign('nbpage', floor($nbpage['nb']/75)); -?> \ No newline at end of file diff --git a/game/jeu/admin/joueur.php b/game/jeu/admin/joueur.php deleted file mode 100644 index dbbc804..0000000 --- a/game/jeu/admin/joueur.php +++ /dev/null @@ -1,52 +0,0 @@ -assign('linkpage', 'vjoueurs'); - -if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') { - $pagea = 'print_key'; - $id_plan = $_GET['id']; - $key = $_GET['key']; - $chapeau->connexion(); - $chapeau->escape($id_plan); - $chapeau->escape($key); - $reqJ = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '$id_plan';"); - $req = $chapeau->unique_query("DESCRIBE $table_user $key;"); - $chapeau->deconnexion(); - $template->assign('tableau', $reqJ); - $template->assign('type', explode('(', $req['Type'])); - $template->assign('idPlan', $id_plan); - $template->assign('key', $_GET['key']); -} -elseif (!empty($_GET['id'])) { - $id_plan = $_GET['id']; - if (isset($_POST['key']) && isset($_POST['mod'])) { - $key = $_POST['key']; - $mod = $_POST['mod']; - $chapeau->connexion(); - $chapeau->escape($mod); - $chapeau->escape($id_plan); - $chapeau->query("UPDATE $table_user SET $key = '$mod' WHERE id = '$id_plan';"); - $chapeau->deconnexion(); - } - $chapeau->connexion(); - $req = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '$id_plan';"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); - $template->assign('idPlan', $id_plan); -} -elseif (!empty($_GET['name'])) { - $name = $_GET['name']; - $chapeau->connexion(); - $chapeau->escape($name); - $req = $chapeau->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';"); - $chapeau->deconnexion(); - header('Location: admin.php?p=vjoueurs&id='.$req['id']); - exit; -} -else { - $pagea = 'print_choixU'; -} -?> \ No newline at end of file diff --git a/game/jeu/admin/mail.php b/game/jeu/admin/mail.php deleted file mode 100644 index f3dbe50..0000000 --- a/game/jeu/admin/mail.php +++ /dev/null @@ -1,49 +0,0 @@ -assign('linkpage', 'courrier'); - -if (!empty($_GET['w']) || !empty($_GET['x'])) { - if (!empty($_GET['w'])) $id = $_GET['w']; - else $id = $_GET['x']; - $chapeau->connexion(); - $chapeau->escape($id); - $req = $chapeau->unique_query("SELECT $table_user.pseudo, $table_ope_mail.statut, $table_ope_mail.time, $table_ope_mail.titre, $table_ope_mail.contenu, $table_ope_mail.id FROM $table_ope_mail INNER JOIN $table_user ON $table_user.id = $table_ope_mail.id_user WHERE $table_ope_mail.id = '$id';"); - if ($req['statut'] >= 6) $chapeau->query("UPDATE $table_ope_mail SET statut = '0' WHERE id = '$id';"); - else $chapeau->query("UPDATE $table_ope_mail SET statut = statut + 1 WHERE id = '$id';"); - $chapeau->deconnexion(); - - if (isset($_GET['x'])) header('Location: admin.php?p=courrier&v='.$id); - else header('Location: admin.php?p=courrier'); - exit; -} -elseif (!empty($_GET['v'])) { - $id = $_GET['v']; - $chapeau->connexion(); - $chapeau->escape($id); - $req = $chapeau->unique_query("SELECT $table_user.pseudo, $table_ope_mail.statut, $table_ope_mail.time, $table_ope_mail.titre, $table_ope_mail.contenu, $table_ope_mail.id FROM $table_ope_mail INNER JOIN $table_user ON $table_user.id = $table_ope_mail.id_user WHERE $table_ope_mail.id = '$id';"); - $chapeau->deconnexion(); - - $template->assign('req', $req); - $template->assign('id', $id); - $pagea = 'mail_view'; -} -elseif (!empty($_GET['d']) && $sess->level >= 5) { - $id = $_GET['d']; - $chapeau->connexion(); - $chapeau->escape($id); - $chapeau->query("DELETE FROM $table_ope_mail WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=courrier'); - exit; -} -else { - $chapeau->connexion(); - $req = $chapeau->query("SELECT $table_user.pseudo, $table_ope_mail.statut, $table_ope_mail.time, $table_ope_mail.titre, $table_ope_mail.contenu, $table_ope_mail.id FROM $table_ope_mail INNER JOIN $table_user ON $table_user.id = $table_ope_mail.id_user ORDER BY $table_ope_mail.time DESC;"); - $chapeau->connexion(); - $template->assign('mails', $req); -} -?> \ No newline at end of file diff --git a/game/jeu/admin/planete.php b/game/jeu/admin/planete.php deleted file mode 100644 index a8b9dbf..0000000 --- a/game/jeu/admin/planete.php +++ /dev/null @@ -1,65 +0,0 @@ -assign('linkpage', 'vplanetes'); - -if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete') { - $id_plan = $_GET['id']; - $chapeau->connexion(); - $chapeau->query("UPDATE $table_planete SET hash_planete = SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)) WHERE id = $id_plan;"); - - $req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); - $template->assign('idPlan', $id_plan); -} -elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') { - $pagea = 'print_key'; - $id_plan = $_GET['id']; - $key = $_GET['key']; - $chapeau->connexion(); - $chapeau->escape($id_plan); - $chapeau->escape($key); - $reqp = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = '$id_plan';"); - $req = $chapeau->unique_query("DESCRIBE $table_planete $key;"); - $chapeau->deconnexion(); - $template->assign('tableau', $reqp); - $template->assign('type', explode('(', $req['Type'])); - $template->assign('idPlan', $id_plan); - $template->assign('key', $_GET['key']); -} -elseif (!empty($_GET['id'])) { - $id_plan = $_GET['id']; - if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id') { - $key = $_POST['key']; - $mod = $_POST['mod']; - $chapeau->connexion(); - $chapeau->escape($mod); - $chapeau->query("UPDATE $table_planete SET $key = '$mod' WHERE id = $id_plan;"); - $chapeau->deconnexion(); - } - $chapeau->connexion(); - $req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); - $template->assign('idPlan', $id_plan); -} -elseif (isset($_GET['amas']) && isset($_GET['ss']) && !empty($_GET['pos'])) { - $amas = $_GET['amas']; - $ss = $_GET['ss']; - $pos = $_GET['pos']; - $chapeau->connexion(); - $chapeau->escape($amas); - $chapeau->escape($ss); - $chapeau->escape($pos); - $req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$amas' AND ss = '$ss' AND position = '$pos';"); - $chapeau->deconnexion(); - header('Location: admin.php?p=vplanetes&id='.$req['id']); - exit; -} -else { - $pagea = 'print_choixP'; -} -?> \ No newline at end of file diff --git a/game/jeu/admin/prendre_controle.php b/game/jeu/admin/prendre_controle.php deleted file mode 100644 index 9058ceb..0000000 --- a/game/jeu/admin/prendre_controle.php +++ /dev/null @@ -1,42 +0,0 @@ -assign('linkpage', 'cjoueurs'); - -if ($sess->level >= 5 && !empty($_GET['id'])) { - $name = $_GET['id']; - $chapeau->connexion(); - $chapeau->escape($name); - $req = $chapeau->unique_query("SELECT id, pseudo, auth_level FROM $table_user WHERE id = '$name';"); - $chapeau->deconnexion(); - if ($req['auth_level'] >= $sess->level) { - $template->assign('message', 'Vous ne pouvez pas prendre le contrôle de cet utilisateur !'); - } - else { - $chapeau->connexion(); - $reqPl = $chapeau->unique_query("SELECT id, nom_planete FROM $table_planete WHERE id_user = '".$req['id']."' LIMIT 1;"); - $chapeau->deconnexion(); - - if (empty($sess->values['souscontrole'])) $sess->values['souscontrole'] = array($sess->values['id'], $sess->values['idPlan']); - $sess->values['id'] = $req['id']; - $sess->values['idPlan'] = $reqPl['id']; - $sess->put(); - - $template->assign('message', 'Vous contrôlez maintenant le joueur '.$req['pseudo'].'.
Planète '.$reqPl['nom_planete'].' sélectionnée !'); - } -} -elseif (!empty($_GET['name'])) { - $name = $_GET['name']; - $chapeau->connexion(); - $chapeau->escape($name); - $req = $chapeau->unique_query("SELECT id FROM $table_user WHERE pseudo = '$name';"); - $chapeau->deconnexion(); - header('Location: admin.php?p=cjoueurs&id='.$req['id']); - exit; -} -else { - $pagea = 'print_choixU'; -} -?> \ No newline at end of file diff --git a/game/jeu/admin/rapport.php b/game/jeu/admin/rapport.php deleted file mode 100644 index 9c9d537..0000000 --- a/game/jeu/admin/rapport.php +++ /dev/null @@ -1,26 +0,0 @@ -assign('linkpage', 'vrapports'); - -if (!empty($_GET['name'])) { - $id_user = $_GET['name']; - $chapeau->connexion(); - $req = $chapeau->query("SELECT * FROM $table_mail WHERE destinataire = '$id_user' AND expediteur = '' ORDER BY temps DESC;"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); - $template->assign('idPlan', $id_user); -} -elseif (!empty($_GET['id'])) { - $chapeau->connexion(); - $req = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '".mysql_real_escape_string($_GET['id'])."';"); - $chapeau->deconnexion(); - header('Location: admin.php?p=vrapports&name='.$req['pseudo']); - exit; -} -else { - $pagea = 'print_choixU'; -} -?> \ No newline at end of file diff --git a/game/jeu/admin/sanction_joueur.php b/game/jeu/admin/sanction_joueur.php deleted file mode 100644 index e993a36..0000000 --- a/game/jeu/admin/sanction_joueur.php +++ /dev/null @@ -1,42 +0,0 @@ -assign('linkpage', 'sjoueurs'); - -if (!empty($_GET['id']) && !empty($_GET['sanc']) && (!empty($_GET['raisonmv']) || $_GET['sanc'] < 0)) { - $raisonmv = $_GET['raisonmv']; - $id_plan = $_GET['id']; - $chapeau->connexion(); - $chapeau->escape($raisonmv); - $chapeau->escape($id_plan); - - if ($_GET['sanc'] == 'definitif' || $_GET['sanc'] == 'définitif' || $_GET['sanc'] == 'd') { - $chapeau->query("UPDATE $table_user SET mv = '3', raisonmv = '$raisonmv', operateurmv = '$id_user' WHERE id = '$id_plan';"); - $chapeau->deconnexion(); - - $template->assign('message', 'Le joueur a été banni définitivement !'); - } - else { - $sanc = $_GET['sanc']; - $time = time() + $_GET['sanc'] * 86400 - 259200; - $chapeau->query("UPDATE $table_user SET mv = '2', last_visite = '$time', raisonmv = '$raisonmv', operateurmv = '$id_user' WHERE id = '$id_plan';"); - $chapeau->deconnexion(); - - $template->assign('message', 'Le joueur a été placé en mode vacances !'); - } -} -elseif (!empty($_GET['name']) && !empty($_GET['sanc']) && isset($_GET['raisonmv'])) { - $name = $_GET['name']; - $chapeau->connexion(); - $chapeau->escape($name); - $req = $chapeau->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';"); - $chapeau->deconnexion(); - header('Location: admin.php?p=sjoueurs&sanc='.$_GET['sanc'].'&raisonmv='.$_GET['raisonmv'].'&id='.$req['id']); - exit; -} -else { - $pagea = 'sanctionU_choix'; -} -?> \ No newline at end of file diff --git a/game/jeu/admin/supprimer_joueur.php b/game/jeu/admin/supprimer_joueur.php deleted file mode 100644 index 5438852..0000000 --- a/game/jeu/admin/supprimer_joueur.php +++ /dev/null @@ -1,42 +0,0 @@ -assign('linkpage', 'djoueurs'); - -if ($sess->level >= 5 && !empty($_GET['id'])) { - $id = $_GET['id']; - $chapeau->connexion(); - $chapeau->escape($id); - $req = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '$id';"); - $chapeau->deconnexion(); - if ($req) { - $nom = trouvNom($id); - $chapeau->connexion(); - $chapeau->escape($nom); - $chapeau->query("DELETE FROM $table_mail WHERE destinataire = '$nom';"); - $chapeau->query("DELETE FROM $table_user WHERE id = '$id';"); - $chapeau->query("DELETE FROM $table_flottes WHERE id_user = '$id';"); - $chapeau->query("DELETE FROM $table_planete WHERE id_user = '$id';"); - $chapeau->deconnexion(); - $template->assign('message', 'Le joueur a été supprimé du jeu ainsi que toutes les données le concernant !'); - } - else { - $chapeau->deconnexion(); - $template->assign('message', 'Le joueur n\'a pas été trouvé !'); - } -} -elseif (!empty($_GET['name'])) { - $name = $_GET['name']; - $chapeau->connexion(); - $chapeau->escape($name); - $req = $chapeau->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';"); - $chapeau->deconnexion(); - header('Location: admin.php?p=djoueurs&id='.$req['id']); - exit; -} -else { - $pagea = 'print_choixU'; -} -?> \ No newline at end of file diff --git a/game/jeu/admin/version.php b/game/jeu/admin/version.php deleted file mode 100644 index 807aade..0000000 --- a/game/jeu/admin/version.php +++ /dev/null @@ -1,63 +0,0 @@ -assign('linkpage', 'version'); - -if (!empty($_GET['i']) && $_GET['i'] == 'add' && $sess->level >= 7) { - if (!empty($_POST['version']) && !empty($_POST['contenu'])) { - $version = $_POST['version']; - $contenu = $_POST['contenu']; - $temps = time(); - $nom_user = trouvNom($id_user); - $chapeau->connexion(); - $chapeau->escape($version); - $chapeau->escape($contenu); - $chapeau->query("INSERT INTO $table_version (version, contenu, temps, pseudo) VALUES ('$version', '$contenu', '$temps', '$nom_user');"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=version'); - exit; - } - $template->assign('id', 'add'); - $pagea = 'version_add'; -} -elseif (!empty($_GET['i'])) { - $id = $_GET['i']; - if (!empty($_POST['version']) && !empty($_POST['contenu'])) { - $version = $_POST['version']; - $contenu = $_POST['contenu']; - $chapeau->connexion(); - $chapeau->escape($version); - $chapeau->escape($contenu); - $chapeau->query("UPDATE $table_version SET version = '$version', contenu = '$contenu' WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=version'); - exit; - } - $chapeau->connexion(); - $req = $chapeau->unique_query("SELECT * FROM $table_version WHERE id = '$id';"); - $chapeau->deconnexion(); - $template->assign('mod', $req); - $template->assign('id', $id); - $pagea = 'version_add'; -} -elseif (!empty($_GET['d']) && $sess->values['auth_level'] >= 7) { - $id = $_GET['d']; - $chapeau->connexion(); - $chapeau->escape($id); - $chapeau->query("DELETE FROM $table_version WHERE id = '$id';"); - $chapeau->deconnexion(); - - header('Location: admin.php?p=version'); - exit; -} -else { - $chapeau->connexion(); - $req = $chapeau->query("SELECT * FROM $table_version ORDER BY temps DESC;"); - $chapeau->deconnexion(); - $template->assign('tableau', $req); -} -?> \ No newline at end of file diff --git a/game/jeu/aide.php b/game/jeu/aide.php deleted file mode 100644 index 6942cc2..0000000 --- a/game/jeu/aide.php +++ /dev/null @@ -1,20 +0,0 @@ - \ No newline at end of file diff --git a/game/jeu/alliances.php b/game/jeu/alliances.php deleted file mode 100644 index f115123..0000000 --- a/game/jeu/alliances.php +++ /dev/null @@ -1,628 +0,0 @@ -connexion(); -if (!empty($planete->id_alliance) && $planete->id_grade_alliance != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) { - //On détermine les accès du joueur - if ($alliance['fondateur'] == $id_user) - $access = array( - 'fondateur' => 1, - 'chat' => 1, - 'grades' => 1, - 'membre' => 1, - 'ecriture' => 1, - 'alliance' => 1 - ); - elseif ($planete->id_grade_alliance != 0) { - $bdd->connexion(); - $grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$planete->id_grade_alliance.";"); - $bdd->deconnexion(); - $access = array( - 'fondateur' => 0, - 'chat' => $grade['gest_chat'], - 'grades' => $grade['gest_rang'], - 'membre' => $grade['gest_membre'], - 'ecriture' => $grade['gest_ecriture'], - 'alliance' => $grade['gest_admin'] - ); - } - else - $access = array( - 'fondateur' => 0, - 'chat' => 0, - 'grades' => 0, - 'membre' => 0, - 'ecriture' => 0, - 'alliance' => 0 - ); - $template->assign('access', $access); - - //Visionnage des pages de l'alliance - if (!isset($_GET['q'])) $_GET['q'] = ''; - //Pages d'administration - if ($_GET['q'] == 'adm_chat' && $access['chat']) { - if (!empty($_GET['i'])) { - $i = floor($_GET['i']); - $alliId = $alliance['id']; - $bdd->connexion(); - $bdd->escape($i); - $bdd->query("DELETE FROM $table_alliances_chat WHERE id = $i AND id_alliance = $alliId;"); - $bdd->deconnexion(); - header('Location: ?p=alliances&q=adm_chat#chat'); - exit; - } - $page = 'alliance_adm_chat'; - $alliId = $alliance['id']; - $bdd->connexion(); - $chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = $alliId ORDER BY id DESC LIMIT 50;"); - $bdd->deconnexion(); - for($i = 0; $i < $bdd->num_rows ; $i++){ - $chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']); - } - $template->assign('chat', $chat); - - } - elseif ($_GET['q'] == 'adm_grades' && $access['membre']) { - if (isset($_GET['a']) && $_GET['a'] == 'add') { - if (!empty($_POST['nom']) && isset($_POST['description'])) { - $nom = $_POST['nom']; - $description = $_POST['description']; - - if (!empty($_POST['id'])) { - $id = $_POST['id']; - $bdd->connexion(); - $bdd->escape($id); - $bdd->escape($nom); - $bdd->escape($description); - @$bdd->query("UPDATE $table_alliances_grade SET nom = '$nom', description = '$description', gest_chat = ".ceil($_POST['gest_chat']).", gest_rang = ".ceil($_POST['gest_rang']).", gest_membre = ".ceil($_POST['gest_membre']).", gest_ecriture = ".ceil($_POST['gest_ecriture']).", gest_admin = ".ceil($_POST['gest_alliance'])." WHERE id = $id AND id_alliance = ".$alliance['id'].";"); - $bdd->deconnexion(); - } - else { - $bdd->connexion(); - $bdd->escape($nom); - $bdd->escape($description); - @$bdd->query("INSERT INTO $table_alliances_grade (id_alliance, nom, description, gest_chat, gest_rang, gest_membre, gest_ecriture, gest_admin) VALUES (".$alliance['id'].", '$nom', '$description', ".ceil($_POST['gest_chat']).", ".ceil($_POST['gest_rang']).", ".ceil($_POST['gest_membre']).", ".ceil($_POST['gest_ecriture']).", ".ceil($_POST['gest_alliance']).");"); - $bdd->deconnexion(); - } - header('Location: ?p=alliances&q=adm_grades'); - exit; - } - $page = 'alliance_adm_grades_add'; - } - elseif (!empty($_GET['i']) && isset($_GET['a']) && $_GET['a'] == 'del') { - $i = gpc('i'); - $bdd->connexion(); - $bdd->escape($i); - $mod = $bdd->unique_query("DELETE FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";"); - $bdd->deconnexion(); - - header('Location: ?p=alliances&q=adm_grades'); - exit; - } - elseif (!empty($_GET['i'])) { - $page = 'alliance_adm_grades_add'; - $i = $_GET['i']; - $bdd->connexion(); - $bdd->escape($i); - $mod = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";"); - $bdd->deconnexion(); - $template->assign('mod', $mod); - } - else { - $page = 'alliance_adm_grades'; - $alliId = $alliance['id']; - $bdd->connexion(); - $grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = $alliId ORDER BY nom ASC;"); - $bdd->deconnexion(); - $template->assign('grades', $grades); - } - } - elseif ($_GET['q'] == 'adm_ecrits' && $access['ecriture']) { - if (isset($_GET['t']) && $_GET['t'] == 'presentation') $mod = 'presentation'; - else $mod = 'interne'; - if (!empty($_POST['type']) && isset($_POST['textarea'])) { - $mod = $_POST['type']; - $text = $_POST['textarea']; - $alliId = $alliance['id']; - $bdd->connexion(); - $bdd->escape($text); - $bdd->escape($mod); - $bdd->query("UPDATE $table_alliances SET $mod = '$text' WHERE id = $alliId;"); - $bdd->deconnexion(); - header('Location: ?p=alliances&q=adm_ecrits&t='.$mod); - exit; - } - $page = 'alliance_adm_ecritures'; - $template->assign('alliance', $alliance); - $template->assign('mod', $mod); - } - elseif ($_GET['q'] == 'adm_mp' && $access['membre']) { - if (!empty($_POST['textarea'])) { - $titre = $_POST['titre']; - $texte = $_POST['textarea']; - $expediteur = '['.$alliance['tag'].'] '.trouvNom($id_user).''; - $alliId = $alliance['id']; - $bdd->connexion(); - $bdd->escape($titre); - $bdd->escape($texte); - $bdd->escape($expediteur); - $membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = $alliId;"); - $bdd->deconnexion(); - $temps = time(); - foreach($membres as $membre){ - send_mp($membre['id'], $titre, $texte, 1, $id_user); - } - erreur('Le message privé a été communiqué à tous les joueurs de l\'alliance.', "green", '?p=alliances'); - } - $page = 'alliance_adm_mpmass'; - } - elseif ($_GET['q'] == 'adm_emprunt' && $access['membre']) { - $u = gpc('u'); - $a = gpc('a'); - if (!empty($a) && is_numeric($a)) { - $bdd->escape($a); - $demande = $bdd->unique_query("SELECT * FROM $table_alliances_emprunt WHERE id=$a"); - if ($bdd->query("UPDATE $table_alliances SET metal = metal - ".$demande['metal'].", cristal = cristal - ".$demande['cristal'].", hydrogene = hydrogene - ".$demande['hydrogene']." WHERE id = ".$alliance['id'].";") == NULL) { - $bdd->query("UPDATE $table_planete SET metal = metal + ".$demande['metal'].", cristal = cristal + ".$demande['cristal'].", hydrogene = hydrogene + ".$demande['hydrogene']." WHERE id_user = ".$demande['id_user']." LIMIT 1;"); - $bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $a;"); - send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été acceptée par l\'alliance.
Vous recevez '.$demande['metal'].' '.$ressourc[0].', '.$demande['cristal'].' '.$ressourc[1].', '.$demande['hydrogene'].' '.$ressourc[2].'.'); - - header('Location: ?p=alliances&q=adm_emprunt'); - exit; - } - else erreur('Impossible d\'accepter la demande de financement pour le moment.'); - } - elseif (!empty($u) && is_numeric($u)) { - $bdd->escape($u); - $demande = $bdd->unique_query("SELECT id_user FROM $table_alliances_emprunt WHERE id=$u"); - $bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $u;"); - send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été refusée par l\'alliance.'); - - header('Location: ?p=alliances&q=adm_emprunt'); - exit; - } - $demandes = $bdd->query("SELECT E.id, E.raison, E.metal, E.cristal, E.hydrogene, U.pseudo FROM $table_alliances_emprunt E INNER JOIN $table_user U ON U.id = E.id_user WHERE E.id_alliance = ".$alliance['id'].";"); - $template->assign('demandes', $demandes); - - $alliance['metalS'] = separerNombres($alliance['metal']); - $alliance['cristalS'] = separerNombres($alliance['cristal']); - $alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']); - $template->assign('alliance', $alliance); - $page = 'alliance_adm_emprunt'; - } - elseif ($_GET['q'] == 'adm_alliance' && $access['alliance']) { - $recharg = false; - if (isset($_POST['defcon']) && isset($_POST['defcon_txt']) && isset($_POST['etat_inscription']) && isset($_POST['image']) && isset($_POST['url'])) { - $defcon = $_POST['defcon']; - $defcon_txt = $_POST['defcon_txt']; - $etat_inscription = $_POST['etat_inscription']; - $image = $_POST['image']; - $url = $_POST['url']; - $alliId = $alliance['id']; - $bdd->connexion(); - $bdd->escape($defcon); - $bdd->escape($defcon_txt); - $bdd->escape($etat_inscription); - $bdd->escape($image); - $bdd->escape($url); - $bdd->query("UPDATE $table_alliances SET defcon = '$defcon', defcon_txt = '$defcon_txt', etat_inscription = '$etat_inscription', image = '$image', url = '$url' WHERE id = '$alliId';"); - $bdd->deconnexion(); - $recharg = true; - } - if (isset($_POST['fondateur']) && $alliance['fondateur'] == $id_user && isset($_POST['pswd_admin'])) { - $bdd->connexion(); - $queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;"); - $bdd->deconnexion(); - if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && empty($sess->values['forcealli'])) { - $sess->values['forcealli'] = true; - $sess->put(); - $template->assign('message','Êtes-vous sûr de vouloir dissoudre cette alliance ?
Pour confirmer la dissolution de l\'alliance, rechargez cette page.'); - $template->assign('couleur','orange'); - $template->display('game/erreur.tpl'); - exit; - } - elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) { - $alliId = $alliance['id']; - $bdd->connexion(); - $bdd->query("DELETE FROM $table_alliances WHERE id = '$alliId';"); - $membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = '$alliId';"); - $nbeff = $bdd->num_rows; - foreach($membres as $membre){ - $bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '".$membre['id']."' AND id_alliance = '$alliId';"); - } - $bdd->deconnexion(); - erreur('L\'alliance a été dissoute avec succès.', 'green'); - } - elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin'])) { - erreur('Impossible de dissoudre l\'alliance : mot de passe incorrect.', "red", "?p=alliances&q=adm_alliance", 3000); - } - $fondateur = $_POST['fondateur']; - $bdd->connexion(); - $bdd->escape($fondateur); - $bdd->query("UPDATE $table_alliances SET fondateur = '$fondateur' WHERE id = '".$alliance['id']."'"); - $bdd->deconnexion(); - $recharg = true; - } - if ($recharg) { - header('Location: ?p=alliances&q=adm_alliance'); - exit; - } - $page = 'alliance_adm_admin'; - $niveaux = array('Niveau 1', 'Niveau 2', 'Niveau 3', 'Niveau 4', 'Niveau 5'); - $niveauxi = array('1', '2', '3', '4', '5'); - $template->assign('niveaux', $niveaux); - $template->assign('niveauxi', $niveauxi); - $etatinscript = array('Ouvertes', 'Fermées'); - $etatinscripti = array('1', '0'); - $template->assign('etatinscript', $etatinscript); - $template->assign('etatinscripti', $etatinscripti); - $bdd->connexion(); - $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';"); - $bdd->deconnexion(); - $membre = array(); - $membrei = array(); - foreach($membres as $membrex){ - $membre[] = $membrex['pseudo']; - $membrei[] = $membrex['id']; - } - $template->assign('membres', $membre); - $template->assign('membresi', $membrei); - $template->assign('alliance', $alliance); - } - elseif ($_GET['q'] == 'adm_membres' && $access['membre']) { - if (!empty($_POST['user']) && isset($_POST['grade'])) { - $user = floor($_POST['user']); - $grade = floor($_POST['grade']); - $bdd->connexion(); - $bdd->escape($grade); - $bdd->escape($user); - $bdd->query("UPDATE $table_user SET id_grade_alliance = '".$grade."' WHERE id = '".$user."' AND id_alliance = '".$alliance['id']."';"); - $bdd->deconnexion(); - } - elseif (!empty($_GET['u'])) { - $user = floor($_GET['u']); - $bdd->connexion(); - $bdd->escape($user); - $bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$user."' AND id_alliance = '".$alliance['id']."';"); - $bdd->deconnexion(); - send_mp($user, '['.strtoupper($alliance['tag']).'] Renvoie de l\'alliance', 'Vous venez d\'être renvoyé de votre alliance.'); - } - elseif (!empty($_GET['accept'])) { - $user = floor($_GET['accept']); - $bdd->connexion(); - $bdd->escape($user); - $verif = $bdd->unique_query("SELECT * FROM $table_alliances_attente WHERE id_alliance = ".$alliance['id']." AND id_membre = $user;"); - if ($verif) { - $bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '".$alliance['id']."' WHERE id = '".$user."' AND id_alliance = '0';"); - $bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = '$user';"); - send_mp($user, '['.strtoupper($alliance['tag']).'] Bienvenue dans l\'alliance '.$alliance['nom'], 'L\'alliance '.$alliance['nom'].' a accepté votre demande d\'intégration.
Félicitations !'); - } - $bdd->deconnexion(); - } - elseif (!empty($_GET['refus'])) { - $user = floor($_GET['refus']); - $bdd->connexion(); - $bdd->escape($user); - $bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = $user AND id_alliance = ".$alliance['id'].";"); - $bdd->deconnexion(); - send_mp($user, 'Refus de candidature pour '.$alliance['nom'], 'L\'alliance '.$alliance['nom'].' a rejeté votre demande d\'intégration.'); - } - $page = 'alliance_adm_membres'; - $bdd->connexion(); - $grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = ".$alliance['id']." ORDER BY nom ASC;"); - $bdd->deconnexion(); - $grade = array(); $gradei = array(); - foreach($grades as $gradex){ - $grade[] = $gradex['nom']; - $gradei[] = $gradex['id']; - } - $template->assign('grades', $grade); - $template->assign('gradei', $gradei); - $bdd->connexion(); - $membres = $bdd->query("SELECT pseudo, race, last_visite, id, id_grade_alliance FROM $table_user WHERE id_alliance = ".$alliance['id'].";"); - $candidats = $bdd->query("SELECT A.message, A.timestamp, A.id_membre, U.pseudo AS pseudo_membre FROM $table_alliances_attente A WHERE id_alliance = ".$alliance['id']." INNER JOIN $table_user U ON U.id = A.id_membre ORDER BY timestamp ASC;"); - $bdd->deconnexion(); - $template->assign('membres', $membres); - $template->assign('candidats', $candidats); - $template->assign('alliance', $alliance); - } - elseif ($_GET['q'] == 'liste') { - $page = 'alliance_liste'; - $bdd->connexion(); - if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."' ORDER BY place_points ASC;"); - else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';"); - foreach($membres as $membre){ - $grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membre['id_grade_alliance']."';"); - $membre['grade_alliance'] = $grade['nom']; - } - $bdd->deconnexion(); - $template->assign('membres', $membres); - } - elseif ($_GET['q'] == 'chat') { - if (isset($_POST['msg'])) { - $message = $_POST['msg']; - $bdd->connexion(); - $bdd->escape($message); - if (!empty($message)) $bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$alliance['id'].", $id_user, ".time().", '$message')"); - $bdd->deconnexion(); - header('Location: ?p=alliances&q=chat#chat'); - exit; - } - $page = 'alliance_chat'; - //Chat - $bdd->connexion(); - $chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30"); - $bdd->deconnexion(); - foreach($chat as $lign){ - $lign['emetteur'] = trouvNom($lign['emetteur']); - $lign['message'] = bbcode(htmlspecialchars($lign['message'])); - } - $template->assign('chat', $chat); - } - elseif ($_GET['q'] == 'quit_alliance' && gpc('a') == sha1('ç§'.date('AWGzO').$alliance['id'])) { - $bdd->connexion(); - $bdd->escape($user); - $bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$id_user."' AND id_alliance = '".$alliance['id']."';"); - $bdd->deconnexion(); - send_mp($id_user, '['.strtoupper($alliance['tag']).'] Vous quittez l\'alliance', 'Vous venez de quitter votre alliance.'); - send_mp($alliance['fondateur'], '['.strtoupper($alliance['tag']).'] '.trouvNom($id_user).' quitte l\'alliance', linkNom($id_user).'vient de quitter votre alliance.'); - - $template->assign('message','Vous avez quitté votre alliance.'); - $template->assign('couleur','green'); - $template->display('game/erreur.tpl'); - exit; - } - elseif ($_GET['q'] == 'donner') { - $page = 'alliance_donner'; - $metalD = gpc('metal', 'post'); if (!is_numeric($metalD)) $metalD = 0; - $cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0; - $hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0; - if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) { - if ($planete->metal > $metalD && $planete->cristal > $cristalD && $planete->hydrogene > $hydrogeneD) { - $bdd->escape($metalD); - $bdd->escape($cristalD); - $bdd->escape($hydrogeneD); - $bdd->query("UPDATE $table_alliances SET metal = metal + $metalD, cristal = cristal + $cristalD, hydrogene = hydrogene + $hydrogeneD WHERE id = ".$alliance['id'].";"); - $planete->metal -= $metalD; - $planete->cristal -= $cristalD; - $planete->hydrogene -= $hydrogeneD; - - header('Location: ?p=alliances'); - exit; - } - else { - erreur('Vous n\'avez pas assez de ressources sur cette planète pour donner autant à votre alliance.'); - } - } - } - elseif ($_GET['q'] == 'emprunt') { - $bdd->query("SELECT id FROM $table_alliances_emprunt WHERE id_user = $id_user AND id_alliance = ".$alliance['id'].";"); - if ($bdd->num_rows > 0) { - erreur('Vous avez déjà une demande de financement en cours, vous ne pouvez pas en faire une nouvelle', "red", '?p=alliances'); - } - $page = 'alliance_emprunt'; - $metalD = gpc('metal', 'post'); if (!is_numeric($metalD)) $metalD = 0; - $cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0; - $hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0; - $raison = gpc('raison', 'post'); - if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) { - if ($alliance['metal']-$metalD >= 0 && $alliance['cristal']-$cristalD >= 0 && $alliance['hydrogene']-$hydrogeneD >= 0) { - $bdd->escape($metalD); - $bdd->escape($cristalD); - $bdd->escape($hydrogeneD); - $bdd->escape($raison); - $bdd->query("INSERT INTO $table_alliances_emprunt (id_alliance, id_user, raison, metal, cristal, hydrogene) VALUES (".$alliance['id'].", $id_user, '$raison', $metalD, $cristalD, $hydrogeneD);"); - - erreur('Votre demande a été enregistrée avec succès.', "green", '?p=alliances'); - } - else { - erreur('Vous n\'avez pas assez de ressources sur cette planète pour donner autant à votre alliance.'); - } - } - - $alliance['metalS'] = separerNombres($alliance['metal']); - $alliance['cristalS'] = separerNombres($alliance['cristal']); - $alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']); - $template->assign('alliance', $alliance); - $template->assign('scripth', ''); - } - else { - $page = 'alliance_accueil'; - $alliance['presentation'] = bbcode(htmlspecialchars($alliance['presentation']),1); - $alliance['texte_interne'] = bbcode(htmlspecialchars($alliance['texte_interne']),1); - - $alliance['metal'] = separerNombres($alliance['metal']); - $alliance['cristal'] = separerNombres($alliance['cristal']); - $alliance['hydrogene'] = separerNombres($alliance['hydrogene']); - - $template->assign('alliance', $alliance); - $template->assign('quitalliance', sha1('ç§'.date('AWGzO').$alliance['id'])); - $bdd->connexion(); - $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";"); - $bdd->deconnexion(); - $template->assign('nbmembre', $bdd->num_rows); - if (!isset($grade)) $template->assign('grade', 0); - else $template->assign('grade', $grade); - - //Chat - $bdd->connexion(); - $chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30;"); - $bdd->deconnexion(); - for($i = 0; $i < $bdd->num_rows ; $i++){ - $chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']); - $chat[$i]['message'] = htmlspecialchars($chat[$i]['message']); - } - $template->assign('chat', $chat); - } -} -elseif (!empty($planete->id_alliance) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) { - $bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id = $id_user;"); - header('Location: ?p=alliances'); - exit; -} -//Si le joueur n'est membre d'aucune alliance -else { - if (!isset($_GET['q'])) $_GET['q'] = ''; - if ($_GET['q'] == 'search' && !empty($_POST['by']) && isset($_POST['search'])) { - $page = 'alliance_nm_search'; - - $by = $_POST['by']; - $search = $_POST['search']; - - $bdd->connexion(); - $bdd->escape($by); - $bdd->escape($search); - $recherche = $bdd->query("SELECT * FROM $table_alliances WHERE $by LIKE '%$search%' ORDER BY nom ASC;"); - $bdd->deconnexion(); - $template->assign('recherches', $recherche); - } - elseif ($_GET['q'] == 'liste' && !empty($_GET['i'])) { - $page = 'alliance_liste'; - $id = $_GET['i']; - $bdd->connexion(); - $bdd->escape($id); - if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $id ORDER BY place_points DESC;"); - else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $id;"); - $nb = $bdd->num_rows; - for ($i = 0; $i < $nb; $i++) { - $grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$membres[$i]['id_grade_alliance'].";"); - $membres[$i]['grade_alliance'] = $grade['nom']; - } - $bdd->deconnexion(); - $template->assign('membres', $membres); - $template->assign('i', $_GET['i']); - } - elseif ($_GET['q'] == 'view' && !empty($_GET['i'])) { - $id = $_GET['i']; - $bdd->connexion(); - $bdd->escape($id); - $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;"); - if ($alliance) { - $page = 'alliance_nm_view'; - $alliance['presentation'] = bbcode(htmlspecialchars($alliance['presentation']),1); - $template->assign('alliance', $alliance); - $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";"); - $bdd->deconnexion(); - $template->assign('nbmembre', $bdd->num_rows); - } - else { - $bdd->deconnexion(); - erreur('Impossible de trouver cette alliance !'); - } - } - elseif ($_GET['q'] == 'postuler' && !empty($_GET['i'])) { - $id = $_GET['i']; - $bdd->connexion(); - $bdd->escape($id); - $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;"); - if (!empty($_POST['message'])) { - $message = $_POST['message']; - $bdd->escape($message); - $bdd->query("INSERT INTO $table_alliances_attente (id_alliance, id_membre, timestamp, message, ) VALUES (NULL, ".$alliance['id'].", ".$id_user.", '".time()."', '$message');"); - $bdd->deconnexion(); - erreur('Votre candidature a été envoyée avec succès à l\'alliance : '.$alliance['nom'], "green"); - } - $bdd->deconnexion(); - $template->assign('alliance', $alliance); - $template->assign('alliancei', $id); - $page = 'alliance_nm_postuler'; - } - elseif ($_GET['q'] == 'signer' && !empty($_GET['i'])) { - $lien = $_GET['i']; - $bdd->connexion(); - $bdd->escape($lien); - $alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE lien = '$lien';"); - $bdd->deconnexion(); - if ($alliance) { - if (empty($alliance['signatures'])) $signataires = array(); - else $signataires = explode(';', $alliance['signatures']); - if ($alliance['fondateur'] == $id_user || in_array($id_user, $signataires)) erreur('Vous avez déjà signé pour cette alliance.', "red", "?p=alliances&q=signer", 3500); - else { - //Si c'est la 4ème signature, on crée l'alliance - if (count($signataires) >= 3) { - $tag = $alliance['tag']; - $nom = $alliance['nom']; - $bdd->connexion(); - $bdd->escape($tag); - $bdd->escape($nom); - $bdd->query("INSERT INTO $table_alliances (tag, nom, fondateur, presentation, texte_interne, url, image, etat_inscription, defcon, defcon_txt) VALUES ('$tag', '$nom', '".$alliance['fondateur']."', 'A faire', 'A faire', '', '', 1, 1, '');"); - $bdd->query("DELETE FROM $table_alliances_creation WHERE lien = '$lien';"); - - $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE nom = '".$alliance['nom']."' AND fondateur = '".$alliance['fondateur']."';"); - $bdd->deconnexion(); - - file_log("Création de l'alliance : ".$alliance['nom']." par ".$id_user." (fondateur : ".$alliance['fondateur'].") après validation de 4 signatures : ".implode(', ', $signataires).$id_user); - - //On envoie un message au fondateur de l'alliance - $rapport = new Rapport(6, $alliance['fondateur'], 0, time()); - $rapport->send(); - - $nbsign = count($signataires); - $id_alli = $alliance['id']; - $fondateur = $alliance['fondateur']; - $bdd->connexion(); - for ($i=0 ; $i<$nbsign ; $i++) { - $sign = $signataires[$i]; - $bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$sign';"); - } - $bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$id_user';"); - $bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$fondateur';"); - $bdd->deconnexion(); - - erreur('Votre signature a bien été ajoutée à la déclaration de l\'alliance.
L\'alliance a désormais suffisament de signature pour être créée !', "green"); - } - else { - $signataires[] = $id_user; - $signataires = implode(';', $signataires); - $bdd->connexion(); - $bdd->query("UPDATE $table_alliances_creation SET signatures = '$signataires' WHERE lien = '$lien';"); - $bdd->query("UPDATE $table_user SET id_alliance = 'c".$alliance['id']."' WHERE id = '$id_user';"); - $bdd->deconnexion(); - erreur('Votre signature a bien été ajoutée à la déclaration de l\'alliance.', "green"); - } - } - } - else erreur('Impossible de trouver l\'alliance !', "red", "?p=alliances&q=signer"); - } - elseif ($_GET['q'] == 'fonder') { - if (!empty($_POST['nom']) && !empty($_POST['tag'])) { - - $nom = htmlentities($_POST['nom']); - $tag = htmlentities($_POST['tag']); - - if (strlen($nom) < 5) erreur('Le nom d\'alliance que vous avez choisit est trop court.', "red", "?p=alliances&q=fonder", 3500); - elseif (strlen($nom) > 25) erreur('Le nom d\'alliance que vous avez choisit est trop long.', "red", "?p=alliances&q=fonder", 3500); - elseif (strlen($tag) > 5) erreur('Le tag d\'alliance que vous avez choisit est trop long.', "red", "?p=alliances&q=fonder", 3500); - elseif (strlen($tag) < 3) erreur('Le tag d\'alliance que vous avez choisit est trop court.', "red", "?p=alliances&q=fonder", 3500); - elseif (ereg('\'', $tag) || ereg('\'', $nom)) erreur('Le nom d\'alliance ou le tag que vous avez choisit contient des caractères non autorisé.', "red", "?p=alliances&q=fonder", 3500); - $bdd->connexion(); - $bdd->escape($nom); - $bdd->escape($tag); - - $test = $bdd->query("SELECT * FROM $table_alliances WHERE nom = '$nom' AND tag = '$tag';"); - $test2 = $bdd->query("SELECT * FROM $table_alliances_creation WHERE nom = '$nom' AND tag = '$tag';"); - $bdd->deconnexion(); - if ($test || $test2) erreur('Le nom ou le tag que vous avez choisit est déjà utilisé par une alliance.', "red", "?p=alliances&q=fonder", 3500); - else { - $lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$id_user.rand()); - $bdd->connexion(); - $bdd->query("INSERT INTO $table_alliances_creation (lien, tag, nom, fondateur, signatures) VALUES ('$lien' ,'$tag', '$nom', '$id_user', '');"); - $bdd->deconnexion(); - - $rapport = new Rapport(7, $id_user, 0, time()); - $rapport->addInfo($lien, 0); - $rapport->send(); - - erreur('Votre alliance a bien été créée.
Il ne vous reste plus qu\'à trouver au moins 4 signatures pour finir la création de votre alliance.

Le lien permettant à vos quatres personnes de signer est http://'.$_SERVER['HTTP_HOST'].'?p=alliances&q=signer&i='.$lien.'', "green"); - } - } - $page = 'alliance_nm_fonder'; - } - else { - $page = 'alliance_nm_accueil'; - } -} -?> \ No newline at end of file diff --git a/game/jeu/amis.php b/game/jeu/amis.php deleted file mode 100644 index a3c0fda..0000000 --- a/game/jeu/amis.php +++ /dev/null @@ -1,57 +0,0 @@ -amis, $d); - unset($planete->amis[$f[0]]); - $bdd->connexion(); - $bdd->query("UPDATE $table_user SET amis = '".serialize($planete->amis)."' WHERE id = $id_user;"); - $bdd->deconnexion(); - } - header('Location: ?p=amis'); - exit; -} -//Ajout d'un ami dans la liste -elseif (!empty($nom)) { - $bdd->connexion(); - $plan = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$nom';"); - if ($plan) { - if (in_array($plan['id'], $planete->amis)) { - $bdd->deconnexion(); - erreur('Ce joueur est déjà dans votre liste d\'amis.', "red", "?p=amis", 2000); - } - $planete->amis[] = $plan['id']; - $bdd->query("UPDATE $table_user SET amis = '".serialize($planete->amis)."' WHERE id = $id_user;"); - } - else { - $bdd->deconnexion(); - erreur('Joueur introuvable.', "red", "?p=amis", 2000); - } - $bdd->deconnexion(); - - header('Location: ?p=amis'); - exit; -} -//Affichage de la liste d'amis -else { - $page = 'amis'; - - $destins = array(); - $bdd->connexion(); - foreach($planete->amis as $ami){ - $res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";"); - if ($res != false) { - $destins[] = array($ami, $res['pseudo'], md5(date('GA').'@'.$ami)); - } - } - $bdd->deconnexion(); - $template->assign('destins', $destins); -} -?> \ No newline at end of file diff --git a/game/jeu/arbre.php b/game/jeu/arbre.php deleted file mode 100644 index 21fc592..0000000 --- a/game/jeu/arbre.php +++ /dev/null @@ -1,73 +0,0 @@ -assign('defaut',$_GET['q']); -if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) $_GET['r'] = $planete->race; - -$race = $_GET['r']; -if ($race != $planete->race) include(_FCORE."../game/noms.php"); -$template->assign('raceAff', $race); - -$TEMP_batiments = array(); -$nb = count($batiment); -for ($id=0 ; $id<$nb ; $id++) { - if (!empty($batiment[$id])) $TEMP_batiments[] = array( - 'id' => $id, - 'nom' => $batiment[$id], - 'niveau' => $planete->batiments[$id], - 'etat' => readDeblok($batimentTECH[$id], $planete) - ); -} -$template->assign('batiments',$TEMP_batiments); - -$TEMP_technologies = array(); -$nb = count($technolo); -for ($id=0 ; $id<$nb ; $id++) { - if (!empty($technolo[$id])) $TEMP_technologies[] = array( - 'id' => $id, - 'nom' => $technolo[$id], - 'niveau' => $planete->technologies[$id], - 'etat' => readDeblok($technoloTECH[$id], $planete) - ); -} -$template->assign('technologies',$TEMP_technologies); - -$TEMP_terrestre = array(); -$nb=count($casernen); -for ($id=0 ; $id<$nb ; $id++) { - if (!empty($casernen[$id])) $TEMP_terrestre[] = array( - 'id' => $id, - 'nom' => $casernen[$id], - 'niveau' => $planete->casernes[$id], - 'etat' => readDeblok($casernenTECH[$id], $planete) - ); -} -$template->assign('caserne',$TEMP_terrestre); - -$TEMP_terrestre = array(); -$nb=count($nomterrn); -for ($id=0 ; $id<$nb ; $id++) { - if (!empty($nomterrn[$id])) $TEMP_terrestre[] = array( - 'id' => $id, - 'nom' => $nomterrn[$id], - 'niveau' => $planete->terrestres[$id], - 'etat' => readDeblok($nomterrnTECH[$id], $planete) - ); -} -$template->assign('unites',$TEMP_terrestre); - -$TEMP_vaisseaux = array(); -$nb=count($nomvaisn); -for ($id=0 ; $id<$nb ; $id++) { - if (!empty($nomvaisn[$id])) $TEMP_vaisseaux[] = array( - 'id' => $id, - 'nom' => $nomvaisn[$id], - 'niveau' => $planete->vaisseaux[$id], - 'etat' => readDeblok($nomvaisnTECH[$id], $planete) - ); -} -$template->assign('vaisseaux',$TEMP_vaisseaux); -?> \ No newline at end of file diff --git a/game/jeu/avertmulti.php b/game/jeu/avertmulti.php deleted file mode 100644 index 840be4d..0000000 --- a/game/jeu/avertmulti.php +++ /dev/null @@ -1,22 +0,0 @@ -assign('titreP', '! ATTENTION AU MULTICOMPTE !'); - -$bdd->connexion(); -$multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util"); -$bdd->deconnexion(); - -$cnt = count($multi); -$joueurs = ''; -for($i = 0; $i < $cnt; $i++){ - if ($multi[$i]['id_util'] == $id_user) continue; - - if ($joueurs != '') $joueurs .= ', '.$multi[$i]['pseudo']; - else $joueurs = $multi[$i]['pseudo']; - -} - -$template->assign('contenu', '
Nous avons détecté que plus d\'un compte s\'est connecté sur cette adresse IP.
Pour ne pas être considéré comme multi-compte, évitez toute interraction avec '.$joueurs.'

Si vous êtes plusieurs dans la même famille à jouer à Halo-Battle dans cette galaxie, vous devez impérativement prendre contact avec un opérateur afin que vos comptes ne soient pas considérés comme du multi-compte.

Si vous vous connectez depuis un lieu public (cybercafé, aéroport, hôtel, wifi public, ...), vous pouvez prévenir les opérateurs de la galaxie afin que cette connexion ne soit pas considérée comme du multi-compte.

Pour plus d\'informations, reportez-vous au chapitre Comptes des régles du jeu.
'); -?> \ No newline at end of file diff --git a/game/jeu/batiments.php b/game/jeu/batiments.php deleted file mode 100644 index 2f7d87e..0000000 --- a/game/jeu/batiments.php +++ /dev/null @@ -1,156 +0,0 @@ -casesRest - count($planete->file_bat) + 1 <= 0) erreur('Vous n\'avez plus de place sur votre planète.', "red", "?p=batiments", 3500); - //On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche - if($_GET['c'] == 6 && !empty($planete->file_tech[1])) erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !'); - - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addObjet("batiments", intval(gpc('c'))); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.'); break; - case 2: erreur('Ce bâtiment est déjà en file d\'attente !'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !'); break; - case 4: erreur('File d\'attente pleine !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=batiments'); exit; - } - } - //Lancement d'une déconstruction - if (isset($_GET['d'])) { - //Si l'on ne possède pas de batiment, erreur - if ($planete->batiments[intval(gpc('d'))] <= 0) erreur('Vous ne pouvez pas démolir un batiment que vous ne possédez pas !'); - - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addObjet("batiments", intval(gpc('d')), -1); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.'); break; - case 2: erreur('Ce bâtiment est déjà en file d\'attente !'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !'); break; - case 4: erreur('File d\'attente pleine !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=batiments'); exit; - } - } - //Annulation d'une nouvelle construction - if (isset($_GET['a']) && isset($batiment[$_GET['a']])) { - $i = intval(gpc('a')); - //Vérification de la présence du batiment dans la file d'attente - if($planete->file_exist($i, 'file_bat')) { - $planete->file_delObjet("batiments", $i); - header('Location: ?p=batiments'); - exit; - } - } - //Règler la production à la châine -/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) { - if($_GET['r']) $file->chaine = false; - else $file->chaine = true; - $export = mysql_real_escape_string(serialize($file)); - mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';"); - header('Location: ?p=batiments'); - exit; - }*/ - - //Calcul du bonus de construction des mines en fonction des technologies - if ($planete->technologies[0] &262144) - { - $bonusMine_a = 0.85; - $bonusMine_b = 0.85; - $bonusMine_c = 0.85; - } - elseif ($planete->technologies[0] &131072) - { - $bonusMine_a = 0.9; - $bonusMine_b = 0.9; - $bonusMine_c = 0.9; - } - elseif ($planete->technologies[0] &65536) - { - $bonusMine_a = 0.95; - $bonusMine_b = 0.95; - $bonusMine_c = 0.95; - } - else - { - $bonusMine_a = 1; - $bonusMine_b = 1; - $bonusMine_c = 1; - } - - foreach($planete->batiments as $i => $PLbatiment) { - //Si l'on est pas sur la planète mère, on désactive le laboratoire - if ($i == 6 && $queryPlanetes[0]['id'] != $planete->id) continue; - - $tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false; - if ($PLbatiment > 0) $niveau = $PLbatiment; else $niveau = 0; - $n = $PLbatiment + 1; - eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]); - if ($planete->file_exist($i, 'file_bat')) $enFile = true; else $enFile = false; - - if ($i < 4) - { - $a *= $bonusMine_a; - $b *= $bonusMine_b; - $c *= $bonusMine_c; - } - - //On applique le bonus de temps des ingénieurs et des centrales informatiques - if ($i != 11) $sec /= pow(1.23,$planete->batiments[11]) + 0.0025*$planete->casernes[7]; - - //On applique les bonus de test - $sec /= VITESSE; - - if (!empty($batiment[$i]) && requestDeblok($batimentTECH[$i], $planete)) $TEMP_batiments[] = - array( - 'image' => $batimeni[$i], - 'nom' => $batiment[$i], - 'niveau' => $niveau, - 'description' => $batimede[$i], - 'descriptione' => addslashes($batimede[$i]), - 'nec_metal' => $a, - 'nec_cristal' => $b, - 'nec_hydrogene' => $c, - 'nec_metalS' => separerNombres($a), - 'nec_cristalS' => separerNombres($b), - 'nec_hydrogeneS' => separerNombres($c), - 'temps' => sec($sec), - 'num' => $i, - 'enfile' => $enFile, - 'maq_metal' => ceil($a - $planete->metal), - 'maq_cristal' => ceil($b - $planete->cristal), - 'maq_hydrogene' => ceil($c - $planete->hydrogene) - ); - } - $template->assign('batiments', $TEMP_batiments); - $template->assign('chaine', $planete->batiments); - $nbfile = count($planete->file_bat) - 1; - - if ($nbfile == 1) $template->assign('Pchaine', true); - else $template->assign('Pchaine', false); - if ($nbfile == 0) $template->assign('Vchaine', true); - else $template->assign('Vchaine', false); - - $file = array(); - foreach ($planete->file_bat as $key => $bout){ - if ($key == 0) continue; - - $n = $planete->batiments[$bout[0]] + 1; - eval($batimentCALC[$bout[0]][3]); - if ($bout[0] != 11) $sec /= pow(1.23,$planete->batiments[11]) + 0.0025*$planete->casernes[7]; - if ($bout[1] < 0) $sec *= 0.6; - if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_bat[0])), $batiment[$bout[0]]); - else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $batiment[$bout[0]]); - } - - $template->assign('file', $file); -?> \ No newline at end of file diff --git a/game/jeu/bourse.php b/game/jeu/bourse.php deleted file mode 100644 index 241f9ae..0000000 --- a/game/jeu/bourse.php +++ /dev/null @@ -1,87 +0,0 @@ - 99999999) erreur("Nombre de ressources invalide !"); - - if ($a == 0) $var = 'metal'; - elseif ($a == 1) $var = 'cristal'; - elseif ($a == 2) $var = 'hydrogene'; - - $bdd->connexion(); - $action = $bdd->unique_query("SELECT dispo, graph FROM $table_bourse_ressources WHERE id = $a;"); - $bdd->deconnexion(); - - //On vérifie que la bourse ait suffisament de ressources à distribuer : - if ($action['dispo'] <= $nb) erreur("Il n'y a pas assez de ressources dans la galaxie pour que vous puissiez en acheter autant."); - - //On vérifie qu'il reste suffisamment de place dans les silos du joueur - if ($planete->cap < $planete->$var + $nb) $nb = $planete->cap - $planete->$var; - if ($nb <= 0) erreur("Vous n'avez pas assez de place pour stocker ces ressources !"); - - $prix = ceil(pow($action['dispo'], -0.1) * $nb * 1.07)/10; - - //On vérifie que le joueur ait assez de crédits pour acheter - if ($prix <= $planete->credits) { - $planete->credits -= $prix; - $planete->$var += $nb; - - if (empty($action['graph'])) $action['graph'] = array(); - else $action['graph'] = unserialize($action['graph']); - $action['graph'][date('w')] = $action['dispo']; - $graph = serialize($action['graph']); - - $bdd->connexion(); - $bdd->escape($graph); - $bdd->query("UPDATE $table_bourse_ressources SET dispo = dispo - $nb, graph = '$graph' WHERE id = $a;"); - $bdd->deconnexion(); - } - else erreur("Vous n'avez pas assez de crédits pour faire cet achat !"); -} -elseif(is_numeric($v) && is_numeric(gpc('a'.$v, 'post'))){ - $nb = gpc('a'.$v, 'post'); - if ($nb <= 0 || $nb > 99999999) erreur("Nombre de ressources invalide !"); - - if ($v == 0) $var = 'metal'; - elseif ($v == 1) $var = 'cristal'; - elseif ($v == 2) $var = 'hydrogene'; - - //On vérifie que le joueur ait assez de ressources pour vendre, sinon, on ajuste à son maximum - if ($nb > $planete->$var) $nb = $planete->$var; - - $bdd->connexion(); - $action = $bdd->unique_query("SELECT dispo, graph FROM $table_bourse_ressources WHERE id = $v;"); - $bdd->deconnexion(); - - $prix = ceil(pow($action['dispo'], -0.1) * $nb * 0.9)/10; - $planete->credits += $prix; - $planete->$var -= $nb; - - if (empty($action['graph'])) $action['graph'] = array(); - else $action['graph'] = unserialize($action['graph']); - $action['graph'][date('w')] = $action['dispo']; - $graph = serialize($action['graph']); - - $bdd->connexion(); - $bdd->escape($graph); - $bdd->query("UPDATE $table_bourse_ressources SET dispo = dispo + $nb, graph = '$graph' WHERE id = $v;"); - $bdd->deconnexion(); -} - -$bdd->connexion(); -$bourse = $bdd->query("SELECT id, dispo FROM $table_bourse_ressources;"); -$bdd->deconnexion(); - -foreach($bourse as $key => $action){ - $bourse[$key]['prix'] = pow($action['dispo'], -0.1) * 200; - $bourse[$key]['prixV'] = $bourse[$key]['prix'] * 0.9; - $bourse[$key]['prixA'] = $bourse[$key]['prix'] * 1.07; -} - -$page = 'bourse_ressources'; -$template->assign('bourse', $bourse); -?> \ No newline at end of file diff --git a/game/jeu/bugs.php b/game/jeu/bugs.php deleted file mode 100644 index 4490201..0000000 --- a/game/jeu/bugs.php +++ /dev/null @@ -1,38 +0,0 @@ -pseudo; - $time = time(); - - $bdd->connexion(); - $bdd->escape($pages); - $bdd->escape($description); - $bdd->query("INSERT INTO $table_bug (pseudo, temps, page, description) VALUES('$pseudo', '$time', '$pages', '$description');"); - $bdd->deconnexion(); - header('Location: ?p=bugs'); - exit; -} -elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->level > 2) { - $i = $_GET['i']; - $bdd->connexion(); - $bdd->escape($i); - $bdd->query("DELETE FROM $table_bug WHERE id = $i;"); - $bdd->deconnexion(); - header('Location: ?p=bugs'); - exit; -} - -$bdd->connexion(); -$bugs = $bdd->query("SELECT id, pseudo, temps, page, description FROM $table_bug ORDER BY id DESC"); -$bdd->deconnexion(); -$TEMP_bugs = array(); -for ($i = 0; $i < $bdd->num_rows; $i++) { - $TEMP_bugs[] = array(''.$bugs[$i]['pseudo'].'', date("d/m/y h:m:s", $bugs[$i]['temps']), $bugs[$i]['page'], nl2br(htmlspecialchars(str_replace('\\\'', '\'', $bugs[$i]['description']))), $bugs[$i]['id']); -} -$template->assign('bugs', $TEMP_bugs); -?> \ No newline at end of file diff --git a/game/jeu/carte.php b/game/jeu/carte.php deleted file mode 100644 index e9e1db8..0000000 --- a/game/jeu/carte.php +++ /dev/null @@ -1,80 +0,0 @@ -galaxie; - -if ($planete->auth_level >= 5 && $g <= 0) $g = 0; -elseif ($g < 1) $g = 1; -if ($g > MAX_AMAS) $g = 1; - -if (isset($_GET['ss'])) $s = floor($_GET['ss']); -else $s = $planete->ss; - -if ($s < 1) $s = 1; -if ($s > MAX_SYSTEME) $s = MAX_SYSTEME; - -if ($s == 1 && $g > 1) { - $Gmu = $g - 1; - $Smu = MAX_SYSTEME; -} -elseif ($s == 1) { - $Gmu = 15; - $Smu = MAX_SYSTEME; -} -else { - $Gmu = $g; - $Smu = $s - 1; -} -if ($s == MAX_SYSTEME) { - $Gpu = $g + 1; - $Spu = 1; -} -else { - $Gpu = $g; - $Spu = $s + 1; -} - -//Erreur au cas où la zone soit trop lointaine par rapport au niveau de la technologie -//if (($planete->technologies[1] < 1 && ($g != $planete->galaxie || $s != $planete->ss)) || ($planete->technologies[1] < 2 && $g != $planete->galaxie)) -// erreur('Pour afficher cette zone de la carte spatiale, vous devez plus développer votre technologie '); - -$TEMP_carte = array(); -for ($i = 1; $i <= MAX_PLANETE; $i++) { - if ($s%5 == 2 && $i == ceil(MAX_PLANETE/2)) { - $bdd->connexion(); - $bdd->escape($g); - $bdd->escape($s); - $d = $bdd->unique_query("SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM $table_alliances WHERE galaxie = $g AND ss = $s;"); - $bdd->deconnexion(); - if($d) { - if ($d['race'] == 'covenant') $ra = '(c)'; - elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)'; - else $ra = '(h)'; - - $TEMP_carte[] = array('A', $d['nom_asteroide'], $d['debris_met'], $d['debris_cri'], $ra, $d['nom'], 'Message', $d['tag']);//, $eA['tag']); - } - else { - $TEMP_carte[] = array('A'); - } - } - $bdd->connexion(); - $bdd->escape($g); - $bdd->escape($s); - $resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;"); - if($resultat) { - $d = $bdd->unique_query("SELECT P.nom_planete, P.image, P.debris_met, P.debris_cri, U.pseudo, U.race, U.politique, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE P.galaxie = $g AND P.ss = $s AND P.position = $i;"); - $bdd->deconnexion(); - - $TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $d['race'], $d['pseudo'], $d['tag'], $d['image'], $d['politique']); - } - else { - $bdd->deconnexion(); - $TEMP_carte[] = array($i); - } -} -$template->assign('carte',$TEMP_carte); -$template->assign('position',array($g, $s, $Gpu, $Spu, $Gmu, $Smu)); -?> \ No newline at end of file diff --git a/game/jeu/caserne.php b/game/jeu/caserne.php deleted file mode 100644 index f044c64..0000000 --- a/game/jeu/caserne.php +++ /dev/null @@ -1,104 +0,0 @@ -batiments[9] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[9]), "red", '?p=batiments', 4000); - -$TEMP_batiments = array(); - -//Lancement d'une nouvelle construction -if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) { - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addObjet("casernes", intval(gpc('v')), $nbv); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break; - case 4: erreur('File d\'attente pleine !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=caserne'); exit; - } -} -//Annulation d'une nouvelle construction -if (isset($_GET['a'])) { - $i = intval(gpc('a')); - $n = intval(gpc('n')); - if (empty($n)) $n = 1; - $w = intval(gpc('w')); - if (empty($w) && !$w === 0) $w = 99; - else $w++; - //Vérification de la présence de l'unité dans la file d'attente - if($planete->file_exist($i, 'file_cas')) { - $planete->file_delObjet("casernes", $i, $n, $w); - header('Location: ?p=caserne'); - exit; - } -} -//Règler la production à la châine -/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) { - if($_GET['r']) $file->chaine = false; - else $file->chaine = true; - $export = mysql_real_escape_string(serialize($file)); - mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';"); - header('Location: ?p=batiments'); - exit; - }*/ - -foreach($planete->casernes as $i => $PLcaserne) { - $a = $casernenCALC[$i][0]; $b = $casernenCALC[$i][1]; $c = $casernenCALC[$i][2]; eval($casernenCALC[$i][3]); - if ($planete->file_exist($i, 'file_cas')) $enFile = true; - else $enFile = false; - $nombre = $PLcaserne; - - //On applique les bonus politiques aux temps et coûts - if ($planete->politique == 1) { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - $sec *= 0.9; - } - - //On applique les bonus de test - $sec /= VITESSE; - - if (!empty($casernen[$i]) && requestDeblok($casernenTECH[$i], $planete)) $TEMP_batiments[] = - array( - 'image' => $casernei[$i], - 'nom' => $casernen[$i], - 'nombre' => $nombre, - 'description' => $casernde[$i], - 'descriptione' => addslashes($casernde[$i]), - 'nec_metal' => $a, - 'nec_cristal' => $b, - 'nec_hydrogene' => $c, - 'nec_metalS' => separerNombres($a), - 'nec_cristalS' => separerNombres($b), - 'nec_hydrogeneS' => separerNombres($c), - 'temps' => sec($sec), - 'num' => $i - ); -} -$template->assign('unites', $TEMP_batiments); -$template->assign('chaine', $planete->casernes); -$nbfile = count($planete->file_cas) - 1; - -if ($nbfile == 1) $template->assign('Pchaine', true); -else $template->assign('Pchaine', false); -if ($nbfile <= 0) $template->assign('Vchaine', true); -else $template->assign('Vchaine', false); - - -$file = array(); -foreach ($planete->file_cas as $key => $bout){ - if ($key == 0) continue; - - $n = $planete->casernes[$bout[0]] + 1; - eval($casernenCALC[$bout[0]][3]); - if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_cas[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $casernen[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_cas[0]))); - else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $casernen[$bout[0]]); -} - -$template->assign('file', $file); -?> \ No newline at end of file diff --git a/game/jeu/chantierspatial.php b/game/jeu/chantierspatial.php deleted file mode 100644 index 74ac755..0000000 --- a/game/jeu/chantierspatial.php +++ /dev/null @@ -1,101 +0,0 @@ -batiments[8] <= 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[8]), "red", '?p=batiments', 4000); - -$TEMP_batiments = array(); - -//Lancement d'une nouvelle construction -if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) { - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addObjet("vaisseaux", intval(gpc('v')), $nbv); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break; - case 4: erreur('File d\'attente pleine !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=chantierspatial'); exit; - } -} -//Annulation d'une nouvelle construction -if (isset($_GET['a'])) { - $i = intval(gpc('a')); - $n = intval(gpc('n')); - if (empty($n)) $n = 1; - $w = intval(gpc('w')); - if (empty($w) && !$w === 0) $w = 99; - else $w++; - //Vérification de la présence du batiment dans la file d'attente - if($planete->file_exist($i, 'file_vais')) { - $planete->file_delObjet("vaisseaux", $i, $n, $w); - header('Location: ?p=chantierspatial'); - exit; - } -} -//Règler la production à la châine -/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) { - if($_GET['r']) $file->chaine = false; - else $file->chaine = true; - $export = mysql_real_escape_string(serialize($file)); - mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';"); - header('Location: ?p=batiments'); - exit; - }*/ - -foreach($planete->vaisseaux as $i => $PLvaisseaux) { - $a = $nomvaisnCALC[$i][0]; $b = $nomvaisnCALC[$i][1]; $c = $nomvaisnCALC[$i][2]; eval($nomvaisnCALC[$i][3]); - if ($planete->file_exist($i, 'file_vais')) $enFile = true; - else $enFile = false; - $nombre = $PLvaisseaux; - - //On applique les bonus politiques aux temps et coûts - if ($planete->politique == 1) { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - $sec *= 0.9; - } - - //On applique les bonus de test - $sec /= VITESSE; - - if (!empty($nomvaisn[$i]) && requestDeblok($nomvaisnTECH[$i], $planete)) $TEMP_batiments[] = - array( - 'image' => $nomvaisi[$i], - 'nom' => $nomvaisn[$i], - 'nombre' => $nombre, - 'description' => $nomvaisd[$i], - 'descriptione' => addslashes($nomvaisd[$i]), - 'nec_metal' => $a, - 'nec_cristal' => $b, - 'nec_hydrogene' => $c, - 'nec_metalS' => separerNombres($a), - 'nec_cristalS' => separerNombres($b), - 'nec_hydrogeneS' => separerNombres($c), - 'temps' => sec($sec), - 'num' => $i - ); -} -$template->assign('vaisseaux', $TEMP_batiments); -$template->assign('chaine', $planete->vaisseaux); -$nbfile = count($planete->file_vais) - 1; - -if ($nbfile == 1) $template->assign('Pchaine', true); -else $template->assign('Pchaine', false); -if ($nbfile <= 0) $template->assign('Vchaine', true); -else $template->assign('Vchaine', false); - -$file = array(); -foreach ($planete->file_vais as $key => $bout){ - if ($key == 0) continue; - $n = $planete->vaisseaux[$bout[0]] + 1; - eval($nomvaisnCALC[$bout[0]][3]); - if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_vais[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomvaisn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_vais[0]))); - else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomvaisn[$bout[0]]); -} -$template->assign('file', $file); -?> \ No newline at end of file diff --git a/game/jeu/chantierterrestre.php b/game/jeu/chantierterrestre.php deleted file mode 100644 index e1fabea..0000000 --- a/game/jeu/chantierterrestre.php +++ /dev/null @@ -1,100 +0,0 @@ -batiments[7] <= 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[7]), "red", '?p=batiments', 4000); - -$TEMP_batiments = array(); - -//Lancement d'une nouvelle construction -if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) { - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addObjet("terrestres", intval(gpc('v')), $nbv); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break; - case 4: erreur('File d\'attente pleine !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=chantierterrestre'); exit; - } -} -//Annulation d'une nouvelle construction -if (isset($_GET['a'])) { - $i = intval(gpc('a')); - $n = intval(gpc('n')); - if (empty($n)) $n = 1; - $w = intval(gpc('w')); - if (empty($w) && !$w === 0) $w = 99; - else $w++; - //Vérification de la présence du batiment dans la file d'attente - if($planete->file_exist($i, 'file_ter')) { - $planete->file_delObjet("terrestres", $i, $n, $w); - header('Location: ?p=chantierterrestre'); - exit; - } -} -//Règler la production à la châine -/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) { - if($_GET['r']) $file->chaine = false; - else $file->chaine = true; - $export = mysql_real_escape_string(serialize($file)); - mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';"); - header('Location: ?p=batiments'); - exit; - }*/ -foreach($planete->terrestres as $i => $PLterrestres) { - $a = $nomterrnCALC[$i][0]; $b = $nomterrnCALC[$i][1]; $c = $nomterrnCALC[$i][2]; eval($nomterrnCALC[$i][3]); - if ($planete->file_exist($i, 'file_ter')) $enFile = true; - else $enFile = false; - $nombre = $PLterrestres; - - //On applique les bonus politiques aux temps et coûts - if ($planete->politique == 1) { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - $sec *= 0.9; - } - - //On applique les bonus de test - $sec /= VITESSE; - - if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && !$nomterrnCALC[$i][4]) $TEMP_batiments[] = - array( - 'image' => $nomterri[$i], - 'nom' => $nomterrn[$i], - 'nombre' => $nombre, - 'description' => $nomterde[$i], - 'descriptione' => addslashes($nomterde[$i]), - 'nec_metal' => $a, - 'nec_cristal' => $b, - 'nec_hydrogene' => $c, - 'nec_metalS' => separerNombres($a), - 'nec_cristalS' => separerNombres($b), - 'nec_hydrogeneS' => separerNombres($c), - 'temps' => sec($sec), - 'num' => $i - ); -} -$template->assign('unites', $TEMP_batiments); -$template->assign('chaine', $planete->terrestres); -$nbfile = count($planete->file_ter) - 1; - -if ($nbfile == 1) $template->assign('Pchaine', true); -else $template->assign('Pchaine', false); -if ($nbfile <= 0) $template->assign('Vchaine', true); -else $template->assign('Vchaine', false); - -$file = array(); -foreach ($planete->file_ter as $key => $bout){ - if ($key == 0) continue; - $n = $planete->terrestres[$bout[0]] + 1; - eval($nomterrnCALC[$bout[0]][3]); - if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0]))); - else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomterrn[$bout[0]]); -} -$template->assign('file', $file); -?> \ No newline at end of file diff --git a/game/jeu/classement.php b/game/jeu/classement.php deleted file mode 100644 index dfd24a8..0000000 --- a/game/jeu/classement.php +++ /dev/null @@ -1,118 +0,0 @@ - 0) $pageClassement = $q; -else $pageClassement = 1; - -//Type de classement -$t = gpc('t'); -switch($t){ - case '0': - $TypeSearch = false; - break; - default: - $TypeSearch = true; -} -$template->assign('t', $TypeSearch); - -//Catégorie du classement -$e = gpc('e'); -switch($e){ - case 'batiment': - $export = 'batiments'; - break; - case 'flotte': - $export = 'flottes'; - break; - case 'recherches': - $export = 'recherches'; - break; - default: - $export = 'points'; -} -$template->assign('export', $export); - -//Nombre de joueurs par page -$n = gpc('n'); -if (is_numeric($n) && $n > 0) $nbppage = $n; -else $nbppage = 100; - -$pageClassementN = $pageClassement - 1; - -$nbpages = ceil(($nbhumain['humains']+$nbcovie['covenants'])/$nbppage); -if ($pageClassement > $nbpages) $pageClassement = $nbpages; - -$TEMP_pages = ''; -$template->assign('q', $TEMP_pages); - -$plage_debut = $nbppage * $pageClassementN; -$plage_fin = $nbppage * ($pageClassementN + 1); -if ($TypeSearch) { - $bdd->connexion(); - $data = $bdd->query("SELECT C.".$export.", C.nbr_membres, A.tag FROM $table_classement_alliances C JOIN $table_alliances A ON 1 = A.id ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;"); - $bdd->deconnexion(); - - $j = ($pageClassement-1)*$nbppage; - - $TEMP_classement = array(); - if ($data) { - foreach($data as $lign){ - $j++; - $TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0); - } - } - else erreur('Classement non disponible.'); - - $template->assign('places', $TEMP_classement); -} -else { - $bdd->connexion(); - $data = $bdd->query("SELECT C.$export, U.pseudo, U.race, A.tag, A.nom FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;"); - $bdd->deconnexion(); - $nbres = $bdd->num_rows; - - $j = ($pageClassement-1)*$nbppage; - - $TEMP_classement = array(); - if ($data) { - foreach($data as $lign){ - $j++; - $TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export])); - } - } - else erreur('Classement non disponible.'); - - $template->assign('places', $TEMP_classement); -} - -/* -if (isset($_GET['t']) && $_GET['t'] == '1') -{ - $bdd->connexion(); - $result = $bdd->query("SELECT tag, nbr_membres, ".$export.", points_".$export."_by_members FROM classement_alliances ORDER BY $export DESC LIMIT $pageClassementN OFFSET $nbppage;"); - $bdd->deconnexion(); - $nbres = $bdd->num_rows; - - $TEMP_classement = array(); - $i = ($pageClassement-1)*$nbppage; - - $template->assign('export', $export); - - for ($i=0; $i<$nbres; $i++) { - $i++; - $TEMP_classement[] = array($i, $data['tag'], $data['nbr_membres'],separerNombres($data[$export]),separerNombres($data["points_".$export."_by_members"])); - } - - $template->assign('places', $TEMP_classement); -} -*/ -?> \ No newline at end of file diff --git a/game/jeu/conditions.php b/game/jeu/conditions.php deleted file mode 100644 index 94a54b9..0000000 --- a/game/jeu/conditions.php +++ /dev/null @@ -1,160 +0,0 @@ -assign('contenu',' -

Conditions générales pour le site Halo-Battle.s-fr.com

-
-
-Halo, Bungie et Microsoft sont des marques et logos déposés par Microsoft Corporation.
-Tous droits réservés Copyright © 2006-2007
-halo-battle.s-fr.com Tous droits reservés.
-
-Le site d\'halo-battle.s-fr.com demande à tous les utilisateurs du jeu de lire et d\'accepter les Conditions Générales énoncées ci-dessous avant de s\'inscrire.
-
-
-Ces Conditions Générales d\'Utilisation ont été publiées le 23/04/2008 et sont applicables à partir du 30/04/2008.
-
-
-I. Services
-II. Adhésion
-III. Protections des données
-IV. Responsabilité
-V. Contenu / responsabilité envers le contenu
-VI. Actions prohibées
-VII. Restrictions
-VIII. Droits de société concernant les comptes
-IX. Modification des Conditions Générales
-X. Loi applicable
-
-

I. Services


-

1 - Conditions de participation


- -Pour participer à Halo-Battle, l\'utilisateur doit accepter les Conditions Générales. Ces Conditions Générales sont principalement, mais non exclusivement, portées sur les services proposés par la présence en ligne de Halo-Battle.s-fr.com
- -

2 - Responsabilité


- -Halo-Battle.s-fr.com est toujours attentif au bon fonctionnement de toutes les prestations qu\'il propose. Néanmoins, certaines desdites prestations peuvent ne pas être disponibles pour des circonstances indépendantes de notre volonté. Pour cette raison, l\'utilisateur ne peut avoir de halo-battle.s-fr.com ne peut être tenu pour responsable du mauvais fonctionnement du serveur ou pour un défaut de programmation. Les exemples précités ne sont pas exclusifs d\'autres possibilités.
- -

II. Adhésion


- -

1 - Conditions d\'adhésion


-L\'adhésion commence à partir de l\'enregistrement d\'un compte sur le jeu ou le forum. L\'adresse e-mail utilisée pour cet enregistrement doit être valide. halo-battle.s-fr.com se réserve le droit de vérifier cette validité à n\'importe quel moment.
-Les utilisateurs reconnaissent disposer d\'une expérience suffisante en matière d\'utilisation d\'Internet et des fonctionnalités de communication électronique qui y sont liées.
-Les utilisateurs du site de halo-battle.s-fr.com sont tenus de s\'assurer de la compatibilité de leur logiciel de navigation avec le site de Halo-Battle.s-fr.com.
- -

2 - Résiliation par l\'utilisateur


-L\'adhésion peut être résiliée par l\'utilisateur par le biais de l\'effacement du compte. Cet effacement peut être retardé pour des questions d\'ordre technique. La gestion des informations concernant les données personnelles du compte est relatif au chapitre 3 des conditions générales d\'utilisation.
- -

3 - Résiliation par Halo-Battle.s-fr.com


-L\'utilisateur ne peut participer à la gestion des services proposés par Halo-Battle.s-fr.com. A ce titre, l\'équipe du jeu se réserve le droit d\'effacer ou de bloquer le compte de l\'utilisateur, en cas de violation des Conditions Générales, sans que cela ne soit exclusif d\'autres possibilités.
-L\'effacement du compte est décidé par l\'ensemble de l\'équipe. Les quelconques revendications concernant un effacement de compte peuvent être portées auprès de l\'équipe du jeu. Il ne peut y avoir de revendications légales concernant la clotûre du compte.
- -

III. Protections des données


- -

1 - Droit d\'accès aux données


-Conformément à la loi du 7 janvier 1978, vous disposez d\'un droit d\'accès, de rectification, de vérification et de suppression relatif aux données vous concernant.
-Il vous suffit pour ce faire d\'adresser une demande par e-mail à contact@halo-battle.s-fr.com, Halo-Battle.s-fr.com modifiera et mettra ses informations à jour en conséquent.
- -

2 - Stockage des données personnelles


-Halo-Battle.s-fr.com se réserve le droit de stocker les données personnelles des utilisateurs dans le but de contrôler le respect des règles, des Conditions Générales et des dispositions législatives par lesdits utilisateurs. Les données personnelles concernées peuvent être les adresse IP par connexion, la méthode, l\'heure et les durées de connections, l\'adresse e-mail fournie lors de la création du compte ainsi que, le cas échéant, les données personnelles fournies volontairement par l\'utilisateur par le biais de son profil. Sur les forums, les données personnelles des profils des utilisateurs sont conservées.
- -

3 - Communication et utilisation des données


-Halo-Battle.s-fr.com se réserve le droit, en conformité avec les dispositions du droit français concernant la protection des données personnelles et toutes dispositions législatives applicables, de divulguer les données personnelles aux autorités, qui les requièrent en vue de protéger les intérêts des sociétés ou les éventuels manquements aux dispositions légales concernant la protection des données. - -

4 - Opposition


-L\'utilisateur peut s\'opposer au stockage de ses données personnelles à tout moment. La participation aux jeux nécessitant le stockage de ces données personnelles, le(s) compte(s) de l\'utilisateur sera(ont) supprimé(s) le plus rapidement possible en fonction des contraintes techniques.
- -

IV. Responsabilité


- -Halo-Battle.s-fr.com n\'est pas responsable pour les dommages, quelle qu\'en soit la gravité, causés par l\'utilisation du jeu Halo-Battle. halo-battle.s-fr.com rappelle aux joueurs que l\'utilisation excessive des jeux informatiques peut causer de sévères troubles physiques.
- -

V. Contenu / responsabilité envers le contenu


- -

1 - Utilisation de la plateforme des utilisateurs


-Halo-Battle.s-fr.com fournit une plateforme qui permet à l\'utilisateur de communiquer avec chacun des autres utilisateurs. L\'utilisateur est responsable du contenu de ses propos : les propos pornographiques, xénophobes, insultants ou à contenu illégaux ne sont pas autorisés et relèvent de la responsabilité de leur auteur. En cas de violation, Halo-Battle.s-fr.com se réserve le droit d\'effacer ou de bloquer le compte de l\'utilisateur fautif et de l\'interdire d\'accès sur l\'ensemble des services proposés par l\'équipe. Ces sanctions ne sont pas exclusives d\'éventuelles poursuites judiciaires et/ou pénales.
- -

2 - Dommages internes au contenu


-L\'utilisateur du site est conscient du fait qu\'Internet n\'est pas un média parfaitement protégé et qu\'une sécurité totale quant au respect de la vie privée ne peut être garantie. Par conséquent, halo-battle.s-fr.com ne sera en aucune manière responsable des dommages éventuels subis par l\'utilisateur du site à la suite de l\'introduction par ce dernier d\'informations confidentielles ou délicates.
- -

3 - Engagement de Halo-Battle.s-fr.com


-halo-battle.s-fr.com s\'engage à mettre en oeuvre tous les moyens raisonnables à sa disposition en vue de permettre aux utilisateurs une utilisation optimale des services proposés. halo-battle.s-fr.com n\'est en conséquence tenue qu\'à une obligation de moyen, et en aucun cas à une obligation de résultat.
- -halo-battle.s-fr.com ne peut être tenu pour responsable des conséquences de circonstances indépendantes de sa volonté telles que les grèves, lock-out, guerres, intempéries, etc., les défaillances des systèmes informatiques ou des moyens de communication, ou de tout autre événement constitutif d\'un cas de force majeure.
- -

4 - Mise à disposition des informations


-halo-battle.s-fr.com assure la mise à disposition via ce site d\'informations correctes et actualisées et se réserve donc le droit de modifier à tout moment le contenu du site. Toutefois, halo-battle.s-fr.com n\'est en aucun cas responsable des dommages causés à la suite de données éventuellement incorrectes, non actualisées ou incomplètes communiquées via le site.
- -Les utilisateurs du site de halo-battle.s-fr.com s\'engagent à avertir immédiatement l\'équipe de toute utilisation frauduleuse du site de halo-battle.s-fr.com et à ne pas chercher à nuire à l\'intégrité ou au fonctionnement du site.
- -

5 - Liens


-halo-battle.s-fr.com n\'a aucun pouvoir de vérification et de contrôle quant à la création de liens vers des sites extérieurs et quant au contenu des dits sites, que ces sites soient marchands ou non.
- -Les propriétaires des sites consultés à partir du site de Halo-Battle.s-fr.com sont, notamment, seuls responsables du respect de l\'ensemble des réglementations s\'appliquant dans le cadre des prestations offertes en ligne, et notamment, des lois et règlements relatifs à la vente à distance, la protection du consommateur, la publicité mensongère ou trompeuse, les prix, la conformité des produits, etc.
- -Aussi, l\'utilisateur accepte que son choix d\'accéder à un autre site, par l\'intermédiaire d\'un lien hypertexte s\'effectue à ses risques et périls.
- -En conséquence, tout préjudice direct ou indirect résultant de l\'accès à un site relié par un lien hypertexte ne peut engager la responsabilité de Halo-Battle.s-fr.com
- -

VI. Actions prohibées


- -

1 - Actions de manipulations


-L\'utilisateur n\'a le droit d\'utiliser, un quelconque programme, mécanisme ou logiciel qui pourrait interférer avec les fonctions et/ou le développement du jeu. L\'utilisateur n\'a pas de le droit d\'effectuer une quelconque action qui causerait un ralentissement excessif des capacités techniques du site. L\'utilisateur n\'a pas le droit de bloquer, modifier ou reformuler le contenu créé par l\'équipe de dévellopement du projet.
- -

2 - Programmes prohibés


-Il est interdit de visualiser une quelconque partie du jeu avec un autre programme que les navigateurs Internet prévus à cet effet. Sont visés, tous autres programmes, en particulier ceux connus sous la dénomination de bots (sans que cette appellation soit exclusive), ainsi que tous -outils permettant de simuler, remplacer ou de suppléer le navigateur -internet. De la même manière, sont visés les scripts et les programmes -partiellement ou totalement automatiques qui peuvent procurer un -avantage par rapport aux autres utilisateurs. Les fonctions de -rafraîchissement automatique ("auto-refresh") et autres mécanismes -intégrés dans les navigateurs Internet sont également visés en tant -qu\'actions automatiques. L\'intégralité de ces mécanismes, sans que cela -soit exclusif d\'autres possibilités, est interdit. Le fait de bloquer la -publicité soit intentionnellement soit par le biais d\'un bloqueur de -pop-up voire par le biais d\'un module intégré aux navigateurs Internet -est sans conséquence sur cette interdiction. Les seules exceptions -possibles nécessitent la permission expresse de l\'équipe de Halo-Battle.s-fr.com
- -

4 - Connexion directe


-La connexion au compte de l\'utilisateur est uniquement permise par le -biais de la page d\'accueil du jeu. L\'ouverture automatique ou -automatisée, est interdite, que la page d\'accueil soit affichée ou non.
- -

VII. Restrictions


- -

1 - Nombre maximum de comptes


-Chaque utilisateur n\'est autorisé qu\'à utiliser un compte par univers. -Sont dénommés "Multis" les utilisateurs qui n\'agissent pas en accord -avec cette règle. Les "Multis" sont susceptibles de voir leurs comptes -effacés ou bloqués sans avertissement préalable.
- -

2 - Règles


-Les particularités sont visées par les règles du jeu. Tous les -utilisateurs sont soumis à ces dispositions.
- -

3 - Blocages


-L\'utilisateur peut être bloqué de manière temporaire ou définitive. Le -blocage peut être valable sur une partie ou la totalité des services -proposés par Halo-Battle.s-fr.com
- -

VIII. Droits de société concernant les comptes


- -

1 - Généralités


-L\'ensemble des comptes, incluant les ressources, unités, etc, sont des objets virtuels du jeu. L\'utilisateur n\'a pas la propriété ou tout autre type de droits sur le compte. L\'ensemble des droits sont de la propriété de Bungie et Microsoft Corporation. Aucun droit, en particulier ceux concernant l\'exploitation, ne peut être conféré à l\'utilisateur.
- -

2 - Interdiction d\'exploitation


-Il est interdit de contracter avec une tierce partie un quelconque accord concernant le transfert, l\'utilisation ou le stockage des comptes ou des données personnelles. Il est particulièrement interdit de vendre les comptes ou les ressources, voire de faire un quelconque profit en quittant son compte ou ses ressources au profit d\'un tiers. Les mêmes interdictions sont valables pour les données personnelles et les droits d\'utilisation. La violation de ces règles ou de tout autre droit de Bungie et Microsoft Corporation, particulièrement celles concernant le copyright, sera transmise aux autorités et sanctionnée par des poursuites judiciaires et/ou pénales.
- -

3 - Exceptions


-Il est permis de transférer les comptes de manière gratuite, ainsi que d\'échanger des ressources dans les limites permises par les règles du jeu.
- -

IX. Modification des Conditions Générales


- -Halo-Battle.s-fr.com se réserve le droit de modifier ou d\'étendre les Conditions Générales et les autres dispositions à tout moment. Cette modification ou extension sera publiée au minimum deux semaines avant l\'effectivité des changements.
- -

X. Loi applicable


-La législation française est appliquée en cas de recours légal.
-
'); -?> \ No newline at end of file diff --git a/game/jeu/connexion.php b/game/jeu/connexion.php deleted file mode 100644 index 296c923..0000000 --- a/game/jeu/connexion.php +++ /dev/null @@ -1,189 +0,0 @@ -assign('message','Nom d\'utilisateur ou mot de passe incorrect.

'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - elseif (hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j').$_SERVER["HTTP_USER_AGENT"].$_SERVER["REMOTE_ADDR"]) != $HB_auth && hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j', time()-300)) != $HB_auth) { - $template->assign('message','Impossible d\'authentifier la connexion !

Si le problème perciste, contactez un administrateur.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - else { - $ipe = $_SERVER['REMOTE_ADDR']; - $bdd->connexion(); - $bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ipe';"); - if ($bruteforce['nombre'] >= 10) { - $fichier = fopen(_FCORE."ban.xlist",'a+'); - fwrite($fichier, $_SERVER['REMOTE_ADDR']."\n\r"); - fclose($fichier); - } - $bdd->escape($HB_login); - if (!$var = $bdd->unique_query("SELECT mdp_var, mdp FROM $table_user WHERE pseudo = '$HB_login';")) { - if (isset($bruteforce['nombre'])) $bdd->query("UPDATE securite_identification SET nombre = nombre + 1 WHERE ip = '$ipe';"); - else $bdd->query("INSERT INTO securite_identification VALUES ('$ipe', '1', '".time()."');"); - $bdd->deconnexion(); - $template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.'); - $template->assign('couleur','red'); - $template->assign('script',''); - $template->display('cms/erreur.tpl'); - exit; - } - $bdd->deconnexion(); - - $HB_password = mdp($HB_login, $HB_password, $var['mdp_var']); - - $time = time(); - $ip = $_SERVER["REMOTE_ADDR"]; - $bdd->connexion(); - $bdd->escape($HB_password); - - //Limiter le nombre de personnes en ligne simutanément - if ($enligne['enligne'] > 1500) { - $template->assign('message','Il y a actuellement trop de monde connecté sur Halo-Battle. Pour permettre aux joueurs une navigation convenable, nous vous remercions de revenir plus tard.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - - $resultat = $bdd->unique_query("SELECT id, race, mv, last_visite, auth_level, raisonmv FROM $table_user WHERE pseudo = '$HB_login' AND mdp = '$HB_password';"); - if ($resultat) { - $id = $resultat['id']; - $reqPlan = $bdd->query("SELECT id, file_bat, file_tech, file_cas, file_vais, file_ter, timestamp FROM $table_planete WHERE id_user = '$id' ORDER BY id ASC;"); - $resultatP = $reqPlan[0]; - $race = $resultat['race']; - - if (!$reqPlan) { - $bdd->deconnexion(); - - $template->assign('message','Impossible de trouver votre planète !'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - - if ($resultat['mv'] > 0) { - if (($resultat['last_visite'] + 259200 > time() || $resultat['mv'] == 3) && $resultat['auth_level'] < 2) { - if ($resultat['mv'] == 3) $template->assign('message','Vous êtes définitivement banni de cette galaxie pour '.$resultat['raisonmv'].'. Vous ne pouvez plus vous reconnecter sur votre compte'); - elseif ($resultat['mv'] == 2) $template->assign('message','Un opérateur a placé votre compte en mode vacances pour '.$resultat['raisonmv'].'. Vous ne pouvez pas vous reconnecter sur votre compte avant le
'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200)); - else $template->assign('message','Vous ne pouvez pas sortir du mode vacances avant le
'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200)); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - - $bdd->query("UPDATE $table_user SET mv = '0' WHERE id = '$id';"); - $bdd->query("UPDATE $table_planete SET timestamp = '".time()."' WHERE id_user = '$id';"); - $bdd->deconnexion(); - - //On fait repartir à 0 les files d'attente - include_once(_FCORE."../game/vars.php"); - include_once(_FCORE."../game/Class/class.file.php"); - include_once(_FCORE."../game/Class/class.user.php"); - include_once(_FCORE."../game/Class/class.planete.php"); - foreach ($reqPlan as $plan){ - if (!empty($plan['file_bat'])) { - $file = new File($plan['file_bat']); - $fileBat = $file->reajusteVacances($plan['timestamp']); - } - else $fileBat = ''; - if (!empty($plan['file_tech'])) { - $file = new File($plan['file_tech']); - $fileTech = $file->reajusteVacances($plan['timestamp']); - } - else $fileTech = ''; - if (!empty($plan['file_cas'])) { - $file = new File($plan['file_cas']); - $fileCas = $file->reajusteVacances($plan['timestamp']); - } - else $fileCas = ''; - if (!empty($plan['file_vais'])) { - $file = new File($plan['file_vais']); - $fileVais = $file->reajusteVacances($plan['timestamp']); - } - else $fileVais = ''; - if (!empty($plan['file_ter'])) { - $file = new File($plan['file_ter']); - $fileTer = $file->reajusteVacances($plan['timestamp']); - } - else $fileTer = ''; - - $idPlan = $plan['id']; - $bdd->connexion(); - $bdd->escape($fileBat); - $bdd->escape($fileTech); - $bdd->escape($fileCas); - $bdd->escape($fileVais); - $bdd->escape($fileTer); - $bdd->query("UPDATE $table_planete SET file_bat = '$fileBat', file_tech = '$fileTech', file_cas = '$fileCas', file_vais = '$fileVais', file_ter = '$fileTer' WHERE id = $idPlan;"); - $bdd->deconnexion(); - - //On met à jour la planète pour tout le reste - $plan = new Planete($plan['id'], true); - } - } - //On met à jour toutes les planètes si le nombre de joueurs n'est pas trop important - elseif ($enligne['enligne'] > 400) { - include_once(_FCORE."../game/vars.php"); - include_once(_FCORE."../game/Class/class.file.php"); - include_once(_FCORE."../game/Class/class.user.php"); - include_once(_FCORE."../game/Class/class.planete.php"); - - foreach ($reqPlan as $plan){ - $plan = new Planete($plan['id'], true); - } - } - - $plan = null; - - $bdd->connexion(); - $bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = $id;"); - $bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES (".$id.",'".$ip."');"); - $multi = $bdd->unique_query("SELECT COUNT(*) FROM $table_registre_identification WHERE ip = '$ip' GROUP BY ip, id_util;"); - $message = $bdd->unique_query("SELECT time FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;"); - $bdd->deconnexion(); - - $sess->values['connected'] = TRUE; - $sess->values['id'] = $resultat['id']; - $sess->values['race'] = $resultat['race']; - $sess->values['idPlan'] = $resultatP['id']; - $sess->values['idAsteroide'] = 0; - - //Si on détecte le multi-compte, on interdit l'accès au panneau d'admin - if (empty($multi)) $sess->level = 1; - else $sess->level = $resultat['auth_level'] + 1; - $sess->put($resultat['id']); - - if ($message['time'] > $resultat['last_visite']) redirection('./'.$config['first_page'].'?p=demarrage'); - elseif (empty($multi)) redirection('./'.$config['first_page'].'?p=avertmulti'); - else redirection('./'.$config['first_page'].'?p=accueil'); - exit; - } - else { - $bdd->deconnexion(); - - $template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.'); - $template->assign('couleur','red'); - $template->assign('script',''); - $template->display('cms/erreur.tpl'); - exit; - } - } - } -?> \ No newline at end of file diff --git a/game/jeu/defenses.php b/game/jeu/defenses.php deleted file mode 100644 index 59f24e6..0000000 --- a/game/jeu/defenses.php +++ /dev/null @@ -1,100 +0,0 @@ -batiments[7] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[7]), "red", '?p=batiments', 4000); - -$TEMP_batiments = array(); -$nbstop = count($nomterrn); - -//Lancement d'une nouvelle construction -if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) { - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addObjet("terrestres", intval(gpc('v')), $nbv); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=defenses'); exit; - } -} -//Annulation d'une nouvelle construction -if (isset($_GET['a'])) { - $i = intval(gpc('a')); - $n = intval(gpc('n')); - if (empty($n)) $n = 1; - $w = intval(gpc('w')); - if (empty($w) && !$w === 0) $w = 99; - else $w++; - //Vérification de la présence du batiment dans la file d'attente - if($planete->file_exist($i, 'file_ter')) { - $planete->file_delObjet("terrestres", $i, $n, $w); - header('Location: ?p=defenses'); - exit; - } -} -//Règler la production à la châine -/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) { - if($_GET['r']) $file->chaine = false; - else $file->chaine = true; - $export = mysql_real_escape_string(serialize($file)); - mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';"); - header('Location: ?p=batiments'); - exit; - }*/ -foreach($planete->terrestres as $i => $PLterrestres) { - $a = $nomterrnCALC[$i][0]; $b = $nomterrnCALC[$i][1]; $c = $nomterrnCALC[$i][2]; eval($nomterrnCALC[$i][3]); - if ($planete->file_exist($i, 'file_ter')) $enFile = true; - else $enFile = false; - $nombre = $PLterrestres; - - //On applique les bonus politiques aux temps et coûts - if ($planete->politique == 1) { - $a *= 0.9; - $b *= 0.9; - $c *= 0.9; - $sec *= 0.9; - } - - //On applique les bonus de test - $sec /= VITESSE; - - if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && $nomterrnCALC[$i][4]) $TEMP_batiments[] = - array( - 'image' => $nomterri[$i], - 'nom' => $nomterrn[$i], - 'nombre' => $nombre, - 'description' => $nomterde[$i], - 'descriptione' => addslashes($nomterde[$i]), - 'nec_metal' => $a, - 'nec_cristal' => $b, - 'nec_hydrogene' => $c, - 'nec_metalS' => separerNombres($a), - 'nec_cristalS' => separerNombres($b), - 'nec_hydrogeneS' => separerNombres($c), - 'temps' => sec($sec), - 'num' => $i - ); -} -$template->assign('unites', $TEMP_batiments); -$template->assign('chaine', $planete->terrestres); -$nbfile = count($planete->file_ter) - 1; - -if ($nbfile == 1) $template->assign('Pchaine', true); -else $template->assign('Pchaine', false); -if ($nbfile <= 0) $template->assign('Vchaine', true); -else $template->assign('Vchaine', false); - -$file = array(); -foreach ($planete->file_ter as $key => $bout){ - if ($key == 0) continue; - $n = $planete->terrestres[$bout[0]] + 1; - eval($nomterrnCALC[$bout[0]][3]); - if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0]))); - else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomterrn[$bout[0]]); -} -$template->assign('file', $file); -?> \ No newline at end of file diff --git a/game/jeu/demarrage.php b/game/jeu/demarrage.php deleted file mode 100644 index c3446c9..0000000 --- a/game/jeu/demarrage.php +++ /dev/null @@ -1,10 +0,0 @@ -connexion(); -$message = $bdd->unique_query("SELECT * FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;"); -$bdd->deconnexion(); -$titre = $message['titre']; -$template->assign('contenu', '

'.bbcode(nl2br($message['contenu']), 1).'

Continuer

'); -?> \ No newline at end of file diff --git a/game/jeu/description.php b/game/jeu/description.php deleted file mode 100644 index b620092..0000000 --- a/game/jeu/description.php +++ /dev/null @@ -1,175 +0,0 @@ -race; -$race = $_GET['r']; -if ($race != $planete->race) include(_FCORE."../game/noms.php"); -$template->assign('raceAff', $race); - -if (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($batiment[$_GET['b']])) { - $template->assign('type', 'batiments'); - $t = $_GET['b']; - $template->assign('t', $t); - $template->assign('image', $batimeni[$t]); - $template->assign('nom', $batiment[$t]); - $template->assign('niveau', $planete->batiments[$t]); - $template->assign('description', $batimede[$t]); - $template->assign('tableau_prod', tableauProd($t, $planete->batiments[$t])); - - $n = $planete->batiments[$t] + 1; - $a = 0; $b = 0; $c = 0; $sec = 0; - eval($batimentCALC[$t][0]); - eval($batimentCALC[$t][1]); - eval($batimentCALC[$t][2]); - eval($batimentCALC[$t][3]); - $template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE))); - - $template->assign('etat', readDeblok($batimentTECH[$t], $planete)); -} -elseif (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($technolo[$_GET['t']])) { - $template->assign('type', 'technologies'); - $t = $_GET['t']; - $template->assign('image', $technoli[$t]); - $template->assign('nom', $technolo[$t]); - $template->assign('niveau', $planete->technologies[$t]); - $template->assign('description', $technode[$t]); - - $n = $planete->technologies[$t] + 1; - $a = 0; $b = 0; $c = 0; $sec = 0; - eval($technoloCALC[$t][0]); - eval($technoloCALC[$t][1]); - eval($technoloCALC[$t][2]); - eval($technoloCALC[$t][3]); - $template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE))); - - $template->assign('etat', readDeblok($technoloTECH[$t], $planete)); -} -elseif (isset($_GET['v']) && is_numeric($_GET['v']) && !empty($nomvaisn[$_GET['v']])) { - $template->assign('type', 'vaisseaux'); - $t = $_GET['v']; - $template->assign('image', $nomvaisi[$t]); - $template->assign('nom', $nomvaisn[$t]); - $template->assign('niveau', $planete->vaisseaux[$t]); - $template->assign('description', $nomvaisd[$t]); - - $n = $planete->vaisseaux[$t] + 1; - $a = $nomvaisnCALC[$t][0]; $b = $nomvaisnCALC[$t][1]; $c = $nomvaisnCALC[$t][2]; $sec = 0; - eval($nomvaisnCALC[$t][3]); - $template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE))); - - $template->assign('etat', readDeblok($nomvaisnTECH[$t], $planete)); - $template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t])); -} -elseif (isset($_GET['d']) && is_numeric($_GET['d']) && $_GET['d'] < count($nomterrn)) { - $template->assign('type', 'terrestre'); - $t = $_GET['d']; - $template->assign('image', $nomterri[$t]); - $template->assign('nom', $nomterrn[$t]); - $template->assign('niveau', $planete->terrestres[$t]); - $template->assign('description', $nomterde[$t]); - - $n = $planete->terrestres[$t] + 1; - $a = $nomterrnCALC[$t][0]; $b = $nomterrnCALC[$t][1]; $c = $nomterrnCALC[$t][2]; $sec = 0; - eval($nomterrnCALC[$t][3]); - $template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE))); - - $template->assign('etat', readDeblok($nomterrnTECH[$t], $planete)); - if ($t-8 >= 0) { - $t -= 8; - $template->assign('caract', array($defense_at[$t], $defense_bc[$t], $defense_pv[$t])); - } -} -elseif (isset($_GET['c']) && is_numeric($_GET['c']) && !empty($casernen[$_GET['c']])) { - $template->assign('type', 'caserne'); - $t = $_GET['c']; - $template->assign('image', $casernei[$t]); - $template->assign('nom', $casernen[$t]); - $template->assign('niveau', $planete->casernes[$t]); - $template->assign('description', $casernde[$t]); - - $n = $planete->casernes[$t] + 1; - $a = $casernenCALC[$t][0]; $b = $casernenCALC[$t][1]; $c = $casernenCALC[$t][2]; $sec = 0; - eval($casernenCALC[$t][3]); - $template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE))); - - $template->assign('etat', readDeblok($casernenTECH[$t], $planete)); - if ($t-8 >= 0) { - $t -= 8; - $template->assign('caract', array('!!', '!!', '!!')); - } -} -else { - header('Location: ?p=accueil'); -} -?> \ No newline at end of file diff --git a/game/jeu/destinrapid.php b/game/jeu/destinrapid.php deleted file mode 100644 index 96991f8..0000000 --- a/game/jeu/destinrapid.php +++ /dev/null @@ -1,59 +0,0 @@ -destinationsFavoris, $d); - unset($planete->destinationsFavoris[$f[0]]); - $bdd->connexion(); - $bdd->query("UPDATE $table_user SET destinationsFavoris = '".serialize($planete->destinationsFavoris)."' WHERE id = $id_user;"); - $bdd->deconnexion(); - } - header('Location: ?p=destinationsrapides'); - exit; -} -//Ajout d'une destination rapide -elseif (!empty($amas) && !empty($ss) && !empty($pos)) { - $bdd->connexion(); - $plan = $bdd->unique_query("SELECT id FROM $table_planete WHERE galaxie = $amas AND ss = $ss AND position = $pos;"); - if ($plan) { - if (in_array($plan['id'], $planete->destinationsFavoris)) { - $bdd->deconnexion(); - erreur('Cette planète est déjà dans vos destinations rapides.', "red", '?p=destinationsrapides'); - } - $planete->destinationsFavoris[] = $plan['id']; - $bdd->query("UPDATE $table_user SET destinationsFavoris = '".serialize($planete->destinationsFavoris)."' WHERE id = $id_user;"); - } - else { - $bdd->deconnexion(); - erreur('Impossible d\'ajouter cette planète, elle n\'est pas habitée !', "red", '?p=destinationsrapides'); - } - $bdd->deconnexion(); - - header('Location: ?p=destinationsrapides'); - exit; -} -//Affichage de la liste des destinations rapides -else { - $page = 'destinsrapid'; - - $destins = array(); - $bdd->connexion(); - foreach($planete->destinationsFavoris as $fav){ - $res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav.";"); - if ($res != false) { - $destins[] = array($fav, $res['nom_planete'], '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']', md5(date('AG').'@'.$fav)); - } - } - $bdd->deconnexion(); - $template->assign('destins', $destins); -} -?> \ No newline at end of file diff --git a/game/jeu/envoyer.php b/game/jeu/envoyer.php deleted file mode 100644 index 6db9b8b..0000000 --- a/game/jeu/envoyer.php +++ /dev/null @@ -1,52 +0,0 @@ - 9999) erreur('Le contenu de votre message est trop long. Limite : 9 999 caractères.'); - $bdd->connexion(); - $bdd->escape($message); - $bdd->escape($objet); - $bdd->escape($pseudo); - - $introuv = array(); - for($i = 0; $i < $nbutil; $i++){ - $util = trim($utils[$i]); - if (empty($util)) continue; - $bdd->escape($util); - if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) { - $bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", '$id_user', '$objet', '$message', '$time');"); - if ($env["envoyerMail"] >= 1 && !empty($env["mail"])) send_mail($env["mail"], 'Nouveau message privé', 'Bonjour '.$env["pseudo"].',

Un nouveau message privé vous a été envoyé dans la galaxie '.$config['serveur_name']); - } - else $introuv[] = htmlentities($util); - } - $bdd->deconnexion(); - if (!empty($introuv[0])) erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.
Les autres ont bien reçu votre message.', "red", '?p=envoyer'); - else erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie'); -} - - $amis = array(); - $amisn = array(); - $bdd->connexion(); - foreach($planete->amis as $ami) { - $res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";"); - if ($res != false) { - $amis[] = $res['pseudo']; - $amisn[] = $ami; - } - } - $bdd->deconnexion(); - $template->assign('amis', $amis); - $template->assign('amisn', $amisn); - -if (isset($_GET['d'])) $template->assign('destinataire', gpc('d')); -if (isset($_GET['o'])) $template->assign('objet', gpc('o')); -?> \ No newline at end of file diff --git a/game/jeu/flotte.php b/game/jeu/flotte.php deleted file mode 100644 index 9745e6d..0000000 --- a/game/jeu/flotte.php +++ /dev/null @@ -1,321 +0,0 @@ -connexion(); - $bdd->escape($end_galaxie); - $bdd->escape($end_ss); - $bdd->escape($end_pos); - $bdd->escape($mission); - $bdd->escape($tactique); - $bdd->escape($EBmetal); - $bdd->escape($EBcristal); - $bdd->escape($EBhydrogene); - $bdd->escape($vitesse); - $resultat = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = '$id_user'"); - $bdd->deconnexion(); - $nbr = $resultat['cnt']; - - //Vérification du code anti-bots - /*if (!isset($sess->values['flcds']) || gpc('cds', 'post') != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.
Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4000); - //Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées - else*/if ($mission == 3 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, consultez le forum.', "red", '?p=flotte', 5000); - //Vérification que la destination ne soit pas en dehors de la galaxie - elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->level < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte'); - //Vérification que le nombre de slots ne soit pas dépassé - elseif ($nbr > ceil(count($queryPlanetes)/2 + 1)) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte'); - //On vérifie la mission - elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte'); - //Si la mission est d'attaquer, on vérifie la tactique - elseif ($mission == 3 && !(($tactique == 1 && $planete->technologies[3] & 4096) || ($tactique == 2 && $planete->technologies[3] & 8192) || ($tactique == 3 && $planete->technologies[3] & 16384) || $tactique == 0)) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte'); - //On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes - elseif ($mission == 5 && $sess->values['vais'][6] <= 0 && $sess->values['vais'][13] <= 0) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte'); - //On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation - elseif ($mission == 2 && $sess->values['vais'][2] <= 0) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte'); - //On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs - elseif ($mission == 4 && $sess->values['vais'][3] <= 0) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte'); - //On vérifie que l'on possède assez de ressources - elseif ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene)) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte'); - //On vérifie que l'on n'envoie pas des ressources négatives - elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000); - //On vérifie la vitesse du vaisseau - elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 1) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte'); - else { - //On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes - $cnt = count($multi); - if ($cnt > 1 && $mission == 1) { - for($i = 0; $i < $cnt; $i++){ - if ($multi[$i]['id_util'] == $resultat['id_user']) erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).'); - } - } - - $bdd->connexion(); - $resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';"); - $bdd->deconnexion(); - - //Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances - if ($mission == 3) { - //Récupération de l'ID du joueur cible - $rech_user = $resultat['id_user']; - $bdd->connexion(); - $resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = '$rech_user';"); - $bdd->deconnexion(); - if ($resultatu['mv'] > 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!! - elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000); - elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte'); - elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte'); - } - elseif ($mission == 1 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000); - elseif ($mission == 2 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000); - elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000); - elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) { - $sess->values['forceFlotte'] = true; - $sess->put(); - erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].
Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange"); - } - - if (!isset($sess->values['vais']) || !is_array($sess->values['vais'])) erreur('Erreur lors de la création de la flotte, absence de données des vaisseaux', "red", '?p=flotte'); - else { - //Envoie de la flotte - $flotte = new flotte(); - - $sauv = $planete->vaisseaux; //Sauvegarde du contenu de la flotte avant lancement - $nbVais = 0; - foreach ($sess->values['vais'] as $key => $vaisseau){ - if ($vaisseau > 0) { - if ($vaisseau > $planete->vaisseaux[$key]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte'); - else $nbVais += $vaisseau; - } - elseif ($vaisseau < 0) $vaisseau = 0; - - $flotte->vaisseaux[$key] = $vaisseau; - $sauv[$key] -= $vaisseau; - } - - if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte'); - elseif (!isset($sess->values['flnbvais']) || $sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :

Calcul du nombre de vaisseaux incorrect !

Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4500); - - $flotte->nom = gpc('nomflotte', 'post'); - $flotte->mission = $mission; - $flotte->start_planete = $planete; - $flotte->start_time = time(); - - //On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation) - if ($mission == 2) $flotte->end_planete = $end_galaxie.':'.$end_ss.':'.$end_pos; - else $flotte->end_planete = $resultat['id']; - - $calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse, false, true); - $flotte->end_time = $calc[0]; - $conso = $calc[1]; - - //On double la consomation si on fait un aller-retour - if ($mission == 1 || $mission == 2 || $mission == 4 || $mission == 5) $conso *= 2; - - //On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie ainsi que de ressources sur la planète - $flotte->calculer(); - if ($flotte->contenuMax < $EBmetal + $EBcristal + $EBhydrogene + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500); - elseif ($planete->metal < $EBmetal || $planete->cristal < $EBcristal || $planete->hydrogene < $EBhydrogene + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500); - else { - //if ($mission == 3) $flotte->tactique = gpc('tactique', 'post'); - $flotte->contenu = array($EBmetal, $EBcristal, $EBhydrogene); - $flotte->modifFlotte = "INSERT"; - - //On actualise la planète - $planete->metal -= $EBmetal; - $planete->cristal -= $EBcristal; - $planete->hydrogene -= floor($EBhydrogene + $conso); - $planete->vaisseaux = $sauv; - if (!in_array('vaisseaux', $planete->modif)) $planete->modif[] = 'vaisseaux'; - - unset($flotte); - unset($sess->values['vais']); - $sess->put(); - - erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000); - } - } - } -} -elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12']) || !empty($_POST['v13'])) { - $nombreVaisseau = 0; - foreach ($planete->vaisseaux as $key => $vaisseau){ - $v = gpc('v'.$key, 'post'); - if (!is_numeric($v)) $v = 0; - else $v = (int)abs($v); - - if ($vaisseau < $v) { - erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte'); - } - - $sess->values['vais'][$key] = $v; - $nombreVaisseau += $v; - } - //On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau - if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte'); - - //On enregistre les paramètres en session - $sess->values['flnbvais'] = $nombreVaisseau; - $sess->values['forceFlotte'] = false; - - //Génération de la liste de mission possible avec les vaisseaux de la flotte - $missions = array("Stationner", "Transporter"); - if ($sess->values['vais'][2]) $missions[2] = "Coloniser"; - if ($planete->technologies[7] & 16) $missions[3] = "Attaquer"; - if ($sess->values['vais'][3]) $missions[4] = "Recycler"; - if ($sess->values['vais'][4] || $sess->values['vais'][13]) $missions[5] = "Espionner"; - $template->assign('missions', $missions); - - //On enregistre les modification de la session - $sess->values['fltime'] = time(); - $sess->put(); - - $page = 'flotte2'; - $template->assign('scripth', ''); - $template->assign('script', ''); - - //TODO Ajouter les destinations favorites + Colonies - $favoris = array(); - $favorisC = array(); - include_once(_FCORE."../game/Class/class.tinyplanete.php"); - foreach ($planete->destinationsFavoris as $fav) - { - $fav_Planete = new TinyPlanete($fav); - if (!empty($fav_Planete->nom_planete)) $favoris[$fav_Planete->id] = $fav_Planete->nom_planete; - else $favoris[$fav_Planete->id] = '['.$fav_Planete->galaxie.':'.$fav_Planete->ss.':'.$fav_Planete->position.']'; - } - foreach ($queryPlanetes as $fav) - { - if (!empty($fav['nom_planete'])) $favorisC[$fav['id']] = $fav['nom_planete']; - else $favorisC[$fav['id']] = '['.$fav['galaxie'].':'.$fav['ss'].':'.$fav['position'].']'; - } - $template->assign('favoris', $favoris); - $template->assign('favorisColonies', $favorisC); -} -//Affichage du détail d'une flotte -elseif (!empty($_GET['n'])) { - $idN = ceil(gpc('n')); - - $flotteN = new Flotte($idN); - $flotteN->load_planete(); - - if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500); - else { - //Annulation de la mission - if (isset($_GET['a']) && isset($sess->values['ret_fleet']) && $_GET['a'] == $sess->values['ret_fleet']) { - //Calcul du temps passé depuis le lancement de la flotte - $tpsDD = time() - $flotteN->start_time; - if ($flotteN->mission == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500); - elseif ($flotteN->end_time > $tpsDD) { - $bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = '$tpsDD', end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = '$id_user' AND id = '$idN';"); - header('Location: ?p=flotte&n='.$idN); - exit; - } - else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500); - } - - $sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻'); - $sess->put(); - - $template->assign('ret_fleet', $sess->values['ret_fleet']); - $template->assign('flotte', $flotteN); - $template->assign('nomvais', $nomvaisa); - $page = 'flotten'; - } -} -//Affichage de la page générale -else { - //Mise à jour des tactiques par défaut - $attaque = gpc('attaque', 'post'); - $defense = gpc('defense', 'post'); - if (is_numeric($attaque) && is_numeric($defense)) { - $chang = false; - if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0)) { - $planete->combatAT_tactique = $attaque; - if (!in_array('combatAT_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatAT_tactique'; - $chang = true; - } - if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0)) { - $planete->combatDE_tactique = $defense; - if (!in_array('combatDE_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatDE_tactique'; - $chang = true; - } - - if ($chang) erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100); - } - - //Affichage des flottes en cours dans la galaxie - $bdd->connexion(); - $flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';"); - $bdd->deconnexion(); - $nbr = $bdd->num_rows; - - $TEMP_flottesEC = array(); - if ($flottes) { - foreach ($flottes as $flotte){ - if ($flotte['mission'] != 1 && ($flotte['mission'] != 2 || $flotte['statut'] == '1') && $flotte['mission'] != 0) { - $planete_retour = new Planete($flotte['start_planete']); - $retour = $planete_retour->galaxie.':'.$planete_retour->ss.':'.$planete_retour->position; - $Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']); - } - /*elseif ($flotte['mission'] == 1) { - $retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position']; - if (empty($flotte['ret_time'])) $Hretour = '-'; - else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']); - }*/ - else { - $retour = '-'; - $Hretour = '-'; - } - - $end_planete = new Planete($flotte['end_planete']); - - if ($flotte['mission'] == 2) { - preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $flotte['end_planete'], $position); - $TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], ' ['.$position[1].':'.$position[2].':'.$position[3].']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour); - } - else $TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $end_planete->nom_planete.' ['.$end_planete->galaxie.':'.$end_planete->ss.':'.$end_planete->position.']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour); - } - } - $template->assign('flottesEC', $TEMP_flottesEC); - - //Affichage des vaisseaux disponible à l'envoie - $TEMP_vaisseaux = array(); - foreach ($planete->vaisseaux as $key => $vaisseau){ - //On affiche uniquement les vaisseaux que l'on possède hormis la station spatiale - if ($vaisseau > 0) $TEMP_vaisseaux[] = array($nomvaisn[$key], separerNombres($vaisseau), $vaisseau, $key); - } - $template->assign('vaisseaux', $TEMP_vaisseaux); - - //Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin - if ($nbr <= ceil(count($queryPlanetes)/2 + 1)) $template->assign('action', ''); - else $template->assign('action', 'Nombre de flottes maximum simultanées atteint'); - - $template->assign('nbflotte', $nbr); - $template->assign('nbflottemax', ceil(count($queryPlanetes)/2 + 1)); - - //Modification des tactiques - $tactiques = array('1'); - $attaqueT = 0; - $defenseT = 0; - if ($planete->technologies[3] & 4096) $tactiques[] = '2'; - if ($planete->technologies[3] & 8192) $tactiques[] = '3'; - if ($planete->technologies[3] & 16384) $tactiques[] = '4'; - - $template->assign('tactiques', $tactiques); - - $page = 'flotte1'; -} -?> \ No newline at end of file diff --git a/game/jeu/flotteANC.php b/game/jeu/flotteANC.php deleted file mode 100644 index ffb0fb0..0000000 --- a/game/jeu/flotteANC.php +++ /dev/null @@ -1,374 +0,0 @@ -connexion(); - $bdd->escape($end_galaxie); - $bdd->escape($end_ss); - $bdd->escape($end_pos); - $bdd->escape($mission); - $bdd->escape($tactique); - $bdd->escape($EBmetal); - $bdd->escape($EBcristal); - $bdd->escape($EBhydrogene); - $bdd->escape($vitesse); - $resultat = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = '$id_user'"); - $nbr = $bdd->num_rows; - - //Vérification du code anti-bots - if ($_POST['cds'] != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.
Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4000); - //Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées - elseif ($mission == 1 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, consultez le forum.', "red", '?p=flotte', 5000); - //Vérification que la destination ne soit pas en dehors de la galaxie - elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->values['auth_level'] < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte'); - //Vérification que le nombre de slots ne soit pas dépassé - elseif ($nbr > $queryUser['informatique']) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte'); - //On vérifie la mission - elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte'); - //Si la mission est d'attaquer, on vérifie la tactique - elseif ($mission == 1 && $tactique > $queryUser['tactique']) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte'); - //On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes - elseif ($mission == 5 && (!isset($sess->values['vais'][4]) || $sess->values['vais'][4] < 0)) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte'); - //On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation - elseif ($mission == 3 && (!isset($sess->values['vais'][3]) || $sess->values['vais'][3] < 0)) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte'); - //On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs - elseif ($mission == 4 && (!isset($sess->values['vais'][5]) || $sess->values['vais'][5] < 0)) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte'); - //On vérifie que l'on possède assez de ressources - elseif ((!empty($EBmetal) && !$EBmetal > $queryPlanete['metal']) || (!empty($EBcristal) && !$EBcristal > $queryPlanete['cristal']) || (!empty($EBhydrogene) && !$EBhydrogene > $queryPlanete['hydrogene'])) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte'); - //On vérifie que l'on n'envoie pas des ressources négatives - elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000); - //On vérifie la vitesse du vaisseau - elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte'); - else { - $resultat = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';"); - - //On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes - $cnt = count($multi); - if ($cnt > 1 && $mission == 2) { - for($i = 0; $i < $cnt; $i++){ - if ($multi[$i]['id_util'] == $resultat['id_user']) erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).'); - } - } - - //Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances - if ($mission == 1) { - //Récupération de l'ID du joueur cible - $rech_user = $resultat['id_user']; - $resultatu = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$rech_user';"); - if ($resultatu['mv'] != 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); - elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000); - elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte'); - elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte'); - } - elseif ($mission == 2 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000); - elseif ($mission == 3 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000); - elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000); - elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) { - $sess->values['forceFlotte'] = true; - $sess->put(); - erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].
Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange"); - } - - //Création de la flotte - $req = ''; - $reqb = ''; - $reqPlan = ''; - $nbVais = ''; - $nbI = count($nomvaisa); - for ($i=1 ; $i<=$nbI ; $i++) { - if (!empty($sess->values['vais'][$i])) { - if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte'); - else { - $req .= "'".$sess->values['vais'][$i]."', "; - $reqb .= "vaisseau_$i, "; - if (!empty($reqPlan)) $reqPlan .= ', '; - $reqPlan .= "vaisseau_$i = vaisseau_$i - '".$sess->values['vais'][$i]."'"; - $nbVais += $sess->values['vais'][$i]; - } - } - } - if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte'); - elseif ($sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :

Calcul du nombre de vaisseaux incorrect !

Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4500); - else { - //Envoie de la flotte - $nom = $_POST['nomflotte']; - $bdd->escape($nom); - - $start_time = time(); - $start_galaxie = $queryPlanete['galaxie']; - $start_ss = $queryPlanete['ss']; - $start_pos = $queryPlanete['position']; - - $end_time = vais_tempsDeplacement($start_galaxie, $start_ss, $start_pos, $end_galaxie, $end_ss, $end_pos, $sess->values['flvitesse'], $vitesse, $sess->values['flpreparation'], $sess->values['flchauffe']); - if ($end_time <= 0) { - $end_time = 454; - } - - //On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie - $conso = vais_conso($end_time, $nbVais)*$vitesse/45*2; - $contenu_metal = $_POST['metal']; $bdd->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal; - $contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal; - $contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso; - $contenu_max = $sess->values['flcontenu']; - if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500); - elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500); - else { - if ($mission == 1) { - $tactiqueAT = $_POST['tactique']; - $bdd->escape($tactiqueAT); - $tactiqueEN = $resultatu['tactique']; - $bdd->escape($tactiqueEN); - } - else { - $tactiqueAT = 0; - $tactiqueEN = 0; - } - - $bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ($id_user, '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');"); - $bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;"); - $bdd->deconnexion(); - - unset($sess->values['vais']); - $sess->put(); - - erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000); - } - } - } -} -elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12'])) { - $nombreVaisseau = 0; - for ($i=1 ; $i<=12 ; $i++) { - if (!isset($_POST['v'.$i]) || !is_numeric($_POST['v'.$i]) || $_POST['v'.$i] != abs(floor($_POST['v'.$i]))) $_POST['v'.$i] = 0; - if ($_POST['v'.$i] >= 0 && $i != 11) { - $sess->values['vais'][$i] = $_POST['v'.$i]; - $nombreVaisseau += $_POST['v'.$i]; - //Si on indique un nombre de vaisseaux supérieur au nombre présent sur la planète - if ($_POST['v'.$i] > $queryPlanete['vaisseau_'.$i]) erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte'); - } - } - $sess->values['flnbvais'] = $nombreVaisseau; - $sess->values['forceFlotte'] = false; - - //On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau - if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte'); - - //On ajoute des missions supplémentaire suivant les vaisseaux envoyés - $lvltactique = $queryUser['tactique']; - $actionsupp = ''; - if ($lvltactique >= 1) $actionsupp .= ''; - if ($_POST['v3'] >= 1) $actionsupp .= ''; - if ($_POST['v5'] >= 1) $actionsupp .= ''; - if ($_POST['v4'] >= 1) $actionsupp .= ''; - $template->assign('actionsupp', $actionsupp); - - // Définition des paramètres de la flotte - $AvaisType = array(); $AvaisVitesseC = array(); $AvaisVitesseL = array(); $AvaisPrepC = array(); $AvaisPrepL = array(); $AvaisChauffe = array(); $AvaisContenu = 0; - for ($i=1 ; $i<=12 ; $i++) { - $AvaisType[] = $i; - $AvaisVitesseC[] = $nomvais_dc[$i-1]; - $AvaisVitesseL[] = $nomvais_dl[$i-1]; - $AvaisContenu += $nomvais_rs[$i-1] * $_POST['v'.$i]; - $AvaisPrepC[] = $nomvais_pdc[$i-1].' '; - $AvaisPrepL[] = $nomvais_pdl[$i-1].' '; - $AvaisChauffe[] = $nomvais_cdl[$i-1].' '; - } - if(min($AvaisVitesseL) != 0) { - $sess->values['flvitesse'] = max($AvaisVitesseL); - $sess->values['flpreparation'] = max($AvaisPrepL); - $sess->values['flchauffe'] = max($AvaisChauffe); - } - else { - $sess->values['flvitesse'] = max($AvaisVitesseC); - $sess->values['flpreparation'] = max($AvaisPrepC); - $sess->values['flchauffe'] = 0; - } - $sess->values['fltime'] = time(); - $sess->values['flcontenu'] = $AvaisContenu; - - //On enregistre les modification de la session - $sess->put(); - - $page = 'flotte2'; - $template->assign('scripth', ''); - $template->assign('script', ''); - $fav = explode(';', $queryUser['destinationsFavoris']); - $cntfav = count($fav); - $favoris = array(); - $favorisn = array(); - $bdd->connexion(); - for($i = 0; $i < $cntfav; $i++){ - $res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";"); - if ($res != false) { - if (!empty($res['nom_planete'])) $favoris[] = $res['nom_planete']; - else $favoris[] = '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']'; - $favorisn[] = $fav[$i]; - } - } - $bdd->deconnexion(); - $template->assign('favoris', $favoris); - $template->assign('favorisn', $favorisn); - $favorisC = array(); - $favorisnC = array(); - $cntfav = count($queryPlanetes); - for($i = 0; $i < $cntfav; $i++){ - if (!empty($queryPlanetes[$i]['nom_planete'])) $favorisC[] = $queryPlanetes[$i]['nom_planete']; - else $favorisC[] = '['.$queryPlanetes[$i]['galaxie'].':'.$queryPlanetes[$i]['ss'].':'.$queryPlanetes[$i]['position'].']'; - $favorisnC[] = $queryPlanetes[$i]['id']; - } - $template->assign('favorisColonies', $favorisC); - $template->assign('favorisnColonies', $favorisnC); -} -elseif (!empty($_GET['n'])) { - $idN = ceil($_GET['n']); - $bdd->connexion(); - $bdd->escape($idN); - $resultat = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' AND id = '$idN'"); - if (isset($_GET['a']) && isset($sess->values['ret_fleet']) && $_GET['a'] == $sess->values['ret_fleet']) { - //Calcul du temps passé depuis le lancement de la flotte - $tpsDD = time() - $resultat['start_time']; - if ($resultat['mission'] == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500); - elseif ($resultat['end_time'] > $tpsDD) { - $bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = '$tpsDD', end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = '$id_user' AND id = '$idN';"); - header('Location: ?p=flotte&n='.$idN); - exit; - } - else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500); - } - - $page = 'flotten'; - if ($bdd->num_rows <= 0) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500); - else { - $attaque = gpc('attaque', 'post'); - $nom = gpc('nomflotte', 'post'); - if (!empty($nom)) { - $bdd->escape($nom); - $bdd->unique_query("UPDATE $table_flottes SET nom = '$nom' WHERE id_user = $id_user AND id = '$idN' LIMIT 1;"); - $resultat['nom'] = $nom; - } - if (!empty($attaque) && is_numeric($attaque)) { - if ($attaque <= $queryUser['tactique']) { - $bdd->escape($attaque); - $bdd->query("UPDATE $table_flottes SET tactiqueAT = $attaque WHERE id_user = $id_user AND id = '$idN';"); - $bdd->deconnexion(); - erreur('Tactique mise à jour avec succès.', 'green', '?p=flotte&n='.$idN, 1100); - } - else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte&n='.$idN); - } - $bdd->deconnexion(); - $resultat['contenu_metalF'] = separerNombres($resultat['contenu_metal']); - $resultat['contenu_cristalF'] = separerNombres($resultat['contenu_cristal']); - $resultat['contenu_hydrogeneF'] = separerNombres($resultat['contenu_hydrogene']); - $resultat['contenu_maxF'] = separerNombres($resultat['contenu_max']); - $resultat['missionF'] = txtmission($resultat['mission']); - $resultat['tactiqueAtDef'] = txtTactique($queryUser['combatAT_tactique']); - $resultat['tactiqueF'] = txtTactique($resultat['tactiqueAT']); - $resultat['end_timeT'] = $resultat['start_time'] + $resultat['end_time']; - - $sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻'); - $sess->put(); - - $template->assign('ret_fleet', $sess->values['ret_fleet']); - $template->assign('flotte', $resultat); - $template->assign('nomvais', $nomvaisa); - $template->assign('n', $idN); - - $tactiques = array(); - $tactiquesn = array(); - $attaqueT = 0; - for($i=1 ; $i<=$queryUser['tactique'] ; $i++) { - if ($i == $resultat['tactiqueAT']) $attaqueT = $i; - $tactiques[] = txtTactique($i); - $tactiquesn[] = $i; - } - $template->assign('tactiques', $tactiques); - $template->assign('tactiquesn', $tactiquesn); - $template->assign('attselect', $attaqueT); - } -} -else { - //Mise à jour des tactiques par défaut - $attaque = gpc('attaque', 'post'); - $defense = gpc('defense', 'post'); - if (!empty($attaque) && !empty($defense) && is_numeric($attaque) && is_numeric($defense)) { - if ($attaque <= $queryUser['tactique'] && $defense <= $queryUser['tactique']) { - $bdd->connexion(); - $bdd->escape($attaque); - $bdd->escape($defense); - $bdd->query("UPDATE $table_user SET combatAT_tactique = $attaque, combatDE_tactique = $defense WHERE id = '$id_user';"); - $bdd->deconnexion(); - erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100); - } - else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte'); - } - - $page = 'flotte1'; - $bdd->connexion(); - $resultat = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';"); - $bdd->deconnexion(); - $nbr = $bdd->num_rows; - $TEMP_flottesEC = array(); - for ($i=0 ; $i<$nbr ; $i++) { - if ($resultat[$i]['mission'] != 1 && ($resultat[$i]['mission'] != 3 || $resultat[$i]['effectue'] == '1' || $resultat[$i]['nb_vais'] >= 1) && $resultat[$i]['mission'] != 0) { - $retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position']; - $Hretour = date('d/m H:i:s',$resultat[$i]['start_time']+2*$resultat[$i]['end_time']); - } - elseif ($resultat[$i]['mission'] == 1) { - $retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position']; - if (empty($resultat[$i]['ret_time'])) $Hretour = '-'; - else $Hretour = date('d/m H:i:s',$resultat[$i]['ret_time']+$resultat[$i]['end_time']); - } - else { - $retour = '-'; - $Hretour = '-'; - } - $TEMP_flottesEC[] = array($resultat[$i]['id'], $resultat[$i]['nom'], txtmission($resultat[$i]['mission']), $resultat[$i]['nb_vais'], $resultat[$i]['end_galaxie'].':'.$resultat[$i]['end_ss'].':'.$resultat[$i]['end_position'], date('d/m H:i:s',$resultat[$i]['start_time']+$resultat[$i]['end_time']), $retour, $Hretour); - } - $template->assign('flottesEC', $TEMP_flottesEC); - - $TEMP_vaisseaux = array(); - $j=0; - for ($i=1 ; $i<=12 ; $i++) { - if ($queryPlanete['vaisseau_'.$i] > 0 && $i != 11) { - $j++; - $TEMP_vaisseaux[] = array($nomvaisn[$i-1], separerNombres($queryPlanete['vaisseau_'.$i]), $queryPlanete['vaisseau_'.$i], $i); - } - } - $template->assign('vaisseaux', $TEMP_vaisseaux); - - $trez = $queryUser["informatique"] + 1; - if ($nbr < $trez) $template->assign('action', ''); - else $template->assign('action', 'Nombre de flottes maximum simultanées atteint'); - - $template->assign('nbflotte', $nbr); - $template->assign('nbflottemax', $trez); - - //Modification des tactiques - $tactiques = array(); - $tactiquesn = array(); - $attaqueT = 0; - $defenseT = 0; - for($i=1 ; $i<=$queryUser['tactique'] ; $i++) { - if ($i == $queryUser['combatAT_tactique']) $attaqueT = $i; - if ($i == $queryUser['combatDE_tactique']) $defenseT = $i; - $tactiques[] = txtTactique($i); - $tactiquesn[] = $i; - } - $template->assign('tactiques', $tactiques); - $template->assign('tactiquesn', $tactiquesn); - $template->assign('attselect', $attaqueT); - $template->assign('defselect', $defenseT); -} -?> \ No newline at end of file diff --git a/game/jeu/gestion.php b/game/jeu/gestion.php deleted file mode 100644 index f58b1e8..0000000 --- a/game/jeu/gestion.php +++ /dev/null @@ -1,39 +0,0 @@ -assign('planeteEC', array( - 'id' => $planete->id, - 'metal' => $planete->metal, - 'cristal' => $planete->cristal, - 'hydrogene' => $planete->hydrogene, - 'energie' => $planete->energie, - 'population' => $planete->population, - ) -); - -$politique = gpc('politique', 'post'); -if (is_numeric($politique)) { - //On annule le changement politique si le dernier a eu lieu dans la semaine. - if ($planete->politique_lastchange > time() - 604800) erreur("La population de votre empire planètaire vient d'entrer dans une phase de révolution contre le changement de régime.
Pour ne pas perdre votre place au sommet de l'empire, le système politique n'a pas été changé."); - if (($planete->technologies[3] & 2048 && ($politique == 3 || $politique == 2 || $politique == 1) || $politique == 0) && $planete->politique != $politique) { - $planete->politique = $politique; - $planete->politique_lastchange = time(); - $planete->modifUser[] = "politique"; - $planete->modifUser[] = "politique_lastchange"; - erreur("Le changement politique a bien été pris en compte par la population de vos différentes planètes.", "green"); - } - elseif ($planete->politique == $politique) erreur("Ce système politique est actuellement en vigueur.", "orange"); - else erreur("Impossible de choisir ce système politique !"); -} - -$politiques = array('Anarchie'); -if ($planete->technologies[3] & 2048) { - $politiques[] = 'Fascisme (Mouvement Frieden)'; - $politiques[] = 'Communisme (Mouvement Koslovic)'; - $politiques[] = 'Démocratie (Administration coloniale)'; -} -$template->assign('politiques', $politiques); -$template->assign('moraldetails', $politiques); -?> \ No newline at end of file diff --git a/game/jeu/laboratoire.php b/game/jeu/laboratoire.php deleted file mode 100644 index 3f21082..0000000 --- a/game/jeu/laboratoire.php +++ /dev/null @@ -1,160 +0,0 @@ -id) - erreur('Vous devez être sur votre planète mère pour faire des recherches dans le laboratoire.'); - -//Vérification que le joueur ait bien un labo avant d'afficher la page -if ($planete->batiments[6] <= 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[6]), "red", '?p=batiments', 4000); - -//Lancement d'une nouvelle recherche -if (isset($_GET['t']) && isset($_GET['f']) ) { - //On annule la recherche si le labo est en construction - if ($planete->file_exist(6, 'file_bat')) erreur('Votre laboratoire est en travaux, vous ne pouvez pas faire de recherches pour le moment !'); - - //Récupération des erreurs de la mise en file d'attente pour traitement - $construction = $planete->file_addTechno(intval(gpc('f')), intval(gpc('t'))); - - switch($construction){ - case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour effectuer cette recherche.'); break; - case 2: erreur('Cette technologie est déjà en file d\'attente !'); break; - case 3: erreur('Vous n\'avez pas les ressources nécessaire pour effectuer cette recherche !'); break; - case 4: erreur('File d\'attente pleine !'); break; - case 5: erreur('Le nombre d\'objets est négatif !'); break; - default: header('Location: ?p=laboratoire'); exit; - } -} - -//Annulation d'une nouvelle construction -if (isset($_GET['a'])) { - $i = intval(gpc('a')); - //Vérification de la présence du batiment dans la file d'attente - if(!empty($planete->file_tech[$i+1])) { - $planete->file_delTechno($i); - header('Location: ?p=laboratoire'); - exit; - } -} - -//Affichage des technologies -$TEMP_technologies = array(); -foreach ($planete->technologies as $key => $technologie){ - foreach ($technologiesCALC[$key] as $i => $calc){ - //On affiche uniquement les technologies - if (($technologie & $calc[1]) == $calc[1] && !($technologie & $calc[0] && $technologie != 0)) { - if ($planete->file_existTech($key, $i)) $enFile = true; - else $enFile = false; - - //On applique les bonus de test - $calc[3] /= VITESSE; - $calc[3] /= (1 + $planete->batiments[6] * 0.005); - - $TEMP_technologies[] = - array( - 'image' => $planete->race=='humain'?'../humain_na.jpg':'../covenant_na.jpg', - 'nom' => $technolo[$key][$i], - 'niveau' => '0', - 'description' => 'Technologie de '.$technologiesVAR[$key].' ; numéro : '.$calc[0].'
Résultat : '.((int)($technologie & $calc[1]).' | '.$calc[1].' | '.$technologie), - 'nec_metal' => 0, - 'nec_cristal' => 0, - 'nec_hydrogene' => 0, - 'nec_credits' => $calc[2], - 'nec_metalS' => 0, - 'nec_cristalS' => 0, - 'nec_hydrogeneS' => 0, - 'temps' => sec($calc[3]), - 'num' => $i, - 'file' => $key, - 'enfile' => $enFile, - 'maq_metal' => 0, - 'maq_cristal' => 0, - 'maq_hydrogene' => 0 - ); - } - } -} -$template->assign('recherches', $TEMP_technologies); - -//Affichage de la file d'attente -$nbfile = count($planete->file_tech)-1; -if ($nbfile == 1) $template->assign('Pchaine', true); -else $template->assign('Pchaine', false); -if ($nbfile <= 0) $template->assign('Vchaine', true); -else $template->assign('Vchaine', false); -$file = array(); -foreach ($planete->file_tech as $key => $tech_infile){ - if ($key == 0) continue; - - $sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3] / (1 + $planete->batiments[6] * 0.01); - if ($key == 1) $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE - (time() - $planete->file_tech[0])), $technolo[$tech_infile[1]][$tech_infile[0]]); - else $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE), $technolo[$tech_infile[1]][$tech_infile[0]]); -} - -$template->assign('file', $file); - -/* -exit; - -$nbstop = count($technolo); - - - -//Règler la production à la châine -/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) { - if($_GET['r']) $file->chaine = false; - else $file->chaine = true; - $export = mysql_real_escape_string(serialize($file)); - mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';"); - header('Location: ?p=batiments'); - exit; - }*/ -/* -for ($i=0 ; $i<$nbstop ; $i++) { - $tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false; - if ($planete->technologies[$i] > 0) $niveau = $planete->technologies[$i]; else $niveau = 0; - $n = $planete->technologies[$i] + 1; eval($technoloCALC[$i][0]); eval($technoloCALC[$i][1]); eval($technoloCALC[$i][2]); eval($technoloCALC[$i][3]); - if ($planete->file_exist($i, 'file_tech')) $enFile = true; - if (!empty($technolo[$i]) && requestDeblok($technoloTECH[$i], $planete)) $TEMP_batiments[] = - array( - 'image' => $technoli[$i], - 'nom' => $technolo[$i], - 'niveau' => $niveau, - 'description' => $technode[$i], - 'descriptione' => addslashes($technode[$i]), - 'nec_metal' => $a, - 'nec_cristal' => $b, - 'nec_hydrogene' => $c, - 'nec_metalS' => separerNombres($a), - 'nec_cristalS' => separerNombres($b), - 'nec_hydrogeneS' => separerNombres($c), - 'temps' => sec($sec), - 'num' => $i, - 'enfile' => $enFile, - 'maq_metal' => ceil($a - $planete->metal), - 'maq_cristal' => ceil($b - $planete->cristal), - 'maq_hydrogene' => ceil($c - $planete->hydrogene) - ); -} -$template->assign('recherches', $TEMP_batiments); -$template->assign('chaine', $planete->technologies); -$nbfile = count($planete->file_tech) - 1; - -if ($nbfile == 1) $template->assign('Pchaine', true); -else $template->assign('Pchaine', false); -if ($nbfile == 0) $template->assign('Vchaine', true); -else $template->assign('Vchaine', false); - -$file = array(); -for ($i=1 ; $i <= $nbfile ; $i++) { - $file_unit = explode(',', $planete->file_tech[$i]); - $n = $planete->technologies[$file_unit[0]] + 1; - eval($technoloCALC[$file_unit[0]][3]); - if ($i == 1) $file[] = array($file_unit[0], $file_unit[1], ceil($sec - (time() - $planete->file_tech[0])), $technolo[$file_unit[0]]); - else $file[] = array($file_unit[0], $file_unit[1], ceil($sec), $technolo[$file_unit[0]]); -} - -$template->assign('file', $file);*/ -?> \ No newline at end of file diff --git a/game/jeu/logout.php b/game/jeu/logout.php deleted file mode 100644 index 4833987..0000000 --- a/game/jeu/logout.php +++ /dev/null @@ -1,15 +0,0 @@ -values['connected'] = FALSE; -$sess->close(); - -if (!empty($HB_login)) { - header('Location: '.$_SERVER["REQUEST_URI"]); - exit; -} -else { - header('Location: ./'.$config['first_page']); - exit; -} -?> \ No newline at end of file diff --git a/game/jeu/marche.php b/game/jeu/marche.php deleted file mode 100644 index 55c3709..0000000 --- a/game/jeu/marche.php +++ /dev/null @@ -1,87 +0,0 @@ - 99999999) erreur("Nombre de ressources invalide !"); - - if ($a == 0) $var = 'metal'; - elseif ($a == 1) $var = 'cristal'; - elseif ($a == 2) $var = 'hydrogene'; - - $bdd->connexion(); - $action = $bdd->unique_query("SELECT dispo, graph FROM $table_bourse_ressources WHERE id = $a;"); - $bdd->deconnexion(); - - //On vérifie que la bourse ait suffisament de ressources à distribuer : - if ($action['dispo'] <= $nb) erreur("Il n'y a pas assez de ressources dans la galaxie pour que vous puissiez en acheter autant."); - - //On vérifie qu'il reste suffisamment de place dans les silos du joueur - if ($planete->cap < $planete->$var + $nb) $nb = $planete->cap - $planete->$var; - if ($nb <= 0) erreur("Vous n'avez pas assez de place pour stocker ces ressources !"); - - $prix = ceil(pow($action['dispo'], -0.1) * $nb * 2.20)/10; - - //On vérifie que le joueur ait assez de crédits pour acheter - if ($prix <= $planete->credits) { - $planete->credits -= $prix; - $planete->$var += $nb; - - if (empty($action['graph'])) $action['graph'] = array(); - else $action['graph'] = unserialize($action['graph']); - $action['graph'][date('w')] = $action['dispo']; - $graph = serialize($action['graph']); - - $bdd->connexion(); - $bdd->escape($graph); - $bdd->query("UPDATE $table_bourse_ressources SET dispo = dispo - $nb, graph = '$graph' WHERE id = $a;"); - $bdd->deconnexion(); - } - else erreur("Vous n'avez pas assez de crédits pour faire cet achat !"); -} -elseif(is_numeric($v) && is_numeric(gpc('a'.$v, 'post'))){ - $nb = gpc('a'.$v, 'post'); - if ($nb <= 1000 || $nb > 99999999) erreur("Nombre de ressources invalide !
Vous pouvez vendre au minimum 1000 ressources !"); - - if ($v == 0) $var = 'metal'; - elseif ($v == 1) $var = 'cristal'; - elseif ($v == 2) $var = 'hydrogene'; - - //On vérifie que le joueur ait assez de ressources pour vendre, sinon, on ajuste à son maximum - if ($nb > $planete->$var) $nb = $planete->$var; - - $bdd->connexion(); - $action = $bdd->unique_query("SELECT dispo, graph FROM $table_bourse_ressources WHERE id = $v;"); - $bdd->deconnexion(); - - $prix = ceil(pow($action['dispo'], -0.1) * $nb * 1.8)/10; - $planete->credits += $prix; - $planete->$var -= $nb; - - if (empty($action['graph'])) $action['graph'] = array(); - else $action['graph'] = unserialize($action['graph']); - $action['graph'][date('w')] = $action['dispo']; - $graph = serialize($action['graph']); - - $bdd->connexion(); - $bdd->escape($graph); - $bdd->query("UPDATE $table_bourse_ressources SET dispo = dispo + $nb, graph = '$graph' WHERE id = $v;"); - $bdd->deconnexion(); -} - -$bdd->connexion(); -$bourse = $bdd->query("SELECT id, dispo FROM $table_bourse_ressources;"); -$bdd->deconnexion(); - -foreach($bourse as $key => $action){ - $bourse[$key]['prix'] = pow($action['dispo'], -0.1) * 200; - $bourse[$key]['prixV'] = $bourse[$key]['prix'] * 0.9; - $bourse[$key]['prixA'] = $bourse[$key]['prix'] * 1.07; -} - -$page = 'bourse_ressources'; -$template->assign('bourse', $bourse); -?> \ No newline at end of file diff --git a/game/jeu/messagerie.php b/game/jeu/messagerie.php deleted file mode 100644 index bc5589e..0000000 --- a/game/jeu/messagerie.php +++ /dev/null @@ -1,80 +0,0 @@ -values['souscontrole'][0])) erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.'); - -if (isset($_POST['IM'])) { - $stop = false; - for($i=1 ; $i<=$_POST['IM'] ; $i++) { - if (!empty($_POST['m'.$i])) { - $mes = $_POST['m'.$i]; - $bdd->connexion(); - $bdd->query("DELETE FROM $table_mail WHERE destinataire = $id_user AND id = '$mes';"); - $bdd->deconnexion(); - $stop = true; - } - } - if ($stop) { header('Location: ?p=messagerie'); exit; } -} -if (isset($_POST['IR'])) { - $stop = false; - for($i=1 ; $i<=$_POST['IR'] ; $i++) { - if (!empty($_POST['r'.$i])) { - $mes = $_POST['r'.$i]; - $bdd->connexion(); - $bdd->query("UPDATE $table_mail SET vu='s' WHERE destinataire = $id_user AND id = '$mes';"); - $bdd->deconnexion(); - $stop = true; - } - } - if ($stop) { header('Location: ?p=messagerie'); exit; } -} - -if (gpc('avertir')) { - $id = gpc('avertir'); - $bdd->connexion(); - $bdd->escape($id); - $bdd->query("UPDATE $table_mail SET statut = 1 WHERE destinataire = $id_user AND id = $id;"); - if ($bdd->affected()) erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie'); - else erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie'); - $bdd->deconnexion(); -} - -$bdd->connexion(); -$messcomp = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC;"); -$nbmax = $bdd->num_rows; - -$result = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;"); - -if ($planete->auth_level >= 3 && $nbmax > $bdd->num_rows) $result = $messcomp; -elseif ($nbmax > $bdd->num_rows) $template->assign('avertissement', '

Vous avez des messages en attente de réception. Libérez de la place dans votre messagerie pour les afficher.

'); - -$TEMP_messages = array(); -$i=0; -$nbc = count($result); -for ($i=0 ; $i < $nbc ; $i++) { - $TEMP_messages[] = array($result[$i]['sujet'], date("d/m/y H:i:s", $result[$i]['temps']), $result[$i]['expediteur'], bbcode($result[$i]['contenu']), $i+1, $result[$i]['id']); -} -$template->assign('messages', $TEMP_messages); -$template->assign('IM', $i); - - -$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = $id_user AND expediteur = false AND vu != 's' ORDER BY id DESC;"); -$nbres = $bdd->num_rows; -$TEMP_rapport = array(); -for($i = 0; $i < $nbres; $i++){ - $TEMP_rapport[] = array($data[$i]['sujet'], date("d/m/y H:i:s", $data[$i]['temps']), 0, bbcode($data[$i]['contenu']), $i+1, $data[$i]['id']); -} -$template->assign('rapports', $TEMP_rapport); -$template->assign('IR', $i); -$template->assign('script', ''); - -$bdd->query("UPDATE $table_mail SET vu = '0' WHERE destinataire = $id_user AND vu != 's'"); -$bdd->deconnexion(); -?> \ No newline at end of file diff --git a/game/jeu/njoueur.php b/game/jeu/njoueur.php deleted file mode 100644 index 2cd8882..0000000 --- a/game/jeu/njoueur.php +++ /dev/null @@ -1,153 +0,0 @@ -connexion(); - $base->db(); - - $base->escape($pseudo); - $base->escape($mdp); - $base->escape($race); - $base->escape($mail); - $base->escape($ti); - - $base->query("SELECT id FROM $table_user WHERE pseudo = '$pseudo';"); - if ($base->num_rows) { - $template->assign('message','Votre compte est déjà créé sur ce serveur !'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - - //Création de l'utilisateur - $base->query("INSERT INTO $table_user (pseudo, mdp, mdp_var, race, mail, last_ip, time_inscription, credits) VALUES ('$pseudo', '$mdp', '$alea', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."', 1000);"); - - //Création des bases de la planète - $image = mt_rand(1,19); - $cases = 225; - $queryUser = $base->unique_query("SELECT * FROM $table_user WHERE pseudo = '$pseudo';"); - if (empty($queryUser)) { - $template->assign('message','Une erreur est survenue lors de la création de votre compte sur le serveur.

Si le problème persiste, contactez un administrateur.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - $id_user = $queryUser['id']; - $time = time(); - - //Recherche d'une planète disponible - if (empty($_GET['placement'])) { - $planete_trouvee = false; - while (!$planete_trouvee) { - $galaxie = mt_rand(1, MAX_AMAS); - $ss = mt_rand(1, MAX_SYSTEME); - $pos = mt_rand(1, MAX_PLANETE); - - //Test pour savoir si la planète est déjà habitée - $base->query("SELECT id FROM $table_planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$pos'"); - if($base->num_rows) $planete_trouvee = false; - else $planete_trouvee = true; - } - - $base->query("INSERT INTO $table_planete (id_user, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hash_planete) VALUES ('$id_user', 'Planète mère', '$galaxie', '$ss', '$pos', '$image', '$cases', '$time', '1000', '700', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))"); - } - else { - $placement = $_GET["placement"]; - $base->escape($placement); - $placement_joueur = $base->unique_query("SELECT * FROM $table_user WHERE pseudo = '$placement';"); - if (!$placement_joueur && !isset($sess->values['forceInscript'])) { - $sess->values['forceInscript'] = true; - $sess->put(); - $template->assign('message','Le joueur à côté duquel vous souhaitez être placé n\'est pas encore ou plus inscrit sur ce serveur.

Si vous ne souhaitez plus être placé à ses côtés, rechargez la page.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - if (!isset($sess->values['forceInscript'])) { - $placement_planetes = $base->query("SELECT * FROM $table_planete WHERE id_user = '".$placement_joueur["id"]."'"); - $planete_trouvee = false; - $decale = 0; - while (!$planete_trouvee) { - for($i = 0; $i < $base->num_rows ; $i++){ - $galaxie = $placement_planetes[$i]['galaxie']; - $ss = $placement_planetes[$i]['ss'] + $decale; - if ($ss >= MAX_SYSTEME) break; - for ($j = 1; $j <= MAX_PLANETE ; $j++) { - $base->query("SELECT * FROM $table_planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$j'"); - if(!$base->num_rows) { - $planete_trouvee = true; - $blk_galaxie = $galaxie; - $blk_ss = $ss; - $blk_pos = $j; - break; - } - } - if ($planete_trouvee) break; - } - $decale++; - if ($ss >= MAX_SYSTEME) break; - } - - if (!$planete_trouvee) $impplac = true; - } - - if (!$planete_trouvee || ($planete_trouvee && !empty($sess->values['forceInscript']))) { - while (!$planete_trouvee) { - $blk_galaxie = mt_rand(1, MAX_AMAS); - $blk_ss = mt_rand(1, MAX_SYSTEME); - $blk_pos = mt_rand(1, MAX_PLANETE); - - //Test pour savoir si la planète est déjà habitée - $base->query("SELECT id FROM $table_planete WHERE galaxie='$blk_galaxie' AND ss='$blk_ss' AND position='$blk_pos'"); - if($base->num_rows) $planete_trouvee = false; - else $planete_trouvee = true; - } - } - $base->query("INSERT INTO $table_planete (id_user, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hash_planete) VALUES ('$id_user', 'Planète mère', '$blk_galaxie', '$blk_ss', '$blk_pos', '$image', '$cases', '$time', '1000', '700', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))"); - } - $base->deconnexion(); - - if (!empty($impplac)) { - $template->assign('message','Impossible de trouver une planète proche du joueur près duquel vous vouliez être placé.
Vous avez été placé aléatoirement.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - else { - $template->assign('message','Vous pouvez maintenant vous connecter sur ce serveur !'); - $template->assign('script',''); - $template->assign('couleur','green'); - $template->display('cms/erreur.tpl'); - exit; - } - } - else { - $template->assign('message','Impossible d\'authentifier votre inscription !

Si le problème persiste, contactez un administrateur.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } - } - else { - $template->assign('message','Impossible de terminer votre inscription, il manque des données !

Si le problème persiste, contactez un administrateur.'); - $template->assign('couleur','red'); - $template->display('cms/erreur.tpl'); - exit; - } -} -else header('Location: ./'); -?> \ No newline at end of file diff --git a/game/jeu/operateur.php b/game/jeu/operateur.php deleted file mode 100644 index 93423ec..0000000 --- a/game/jeu/operateur.php +++ /dev/null @@ -1,70 +0,0 @@ -connexion(); - $bdd->escape($titre); - $bdd->escape($description); - $bdd->query("INSERT INTO $table_ope_mail (id_user, titre, contenu, time) VALUES ('$id_user', '$titre', '$description', '$time');"); - $bdd->deconnexion(); - erreur('Votre demande à bien été transmise aux opérateurs de la galaxie.
Une réponse vous sera donnée dans les plus brefs délais.', "green"); -} -elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->level > 4) { - $titre = $_POST['O_titre']; - $description = $_POST['O_description']; - - $bdd->connexion(); - $bdd->escape($titre); - $bdd->escape($description); - $bdd->query("INSERT INTO $table_ope_faq (titre, contenu, ordre) VALUES ('$titre', '$description', 100);"); - $bdd->deconnexion(); - header('Location: ?p=operateur'); - exit; -} -elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->level > 4) { - $i = $_GET['i']; - $bdd->connexion(); - $bdd->escape($i); - $bdd->query("UPDATE $table_ope_faq SET ordre = ordre - 1 WHERE id = '$i' LIMIT 1;"); - $bdd->deconnexion(); - header('Location: ?p=operateur'); - exit; -} -elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->level > 4) { - $i = $_GET['i']; - $bdd->connexion(); - $bdd->escape($i); - $bdd->query("UPDATE $table_ope_faq SET ordre = ordre + 1 WHERE id = '$i' LIMIT 1;"); - $bdd->deconnexion(); - header('Location: ?p=operateur'); - exit; -} -elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->level > 4) { - $i = $_GET['i']; - $bdd->connexion(); - $bdd->escape($i); - $bdd->query("DELETE FROM $table_ope_faq WHERE id = '$i' LIMIT 1;"); - $bdd->deconnexion(); - header('Location: ?p=operateur'); - exit; -} - -$bdd->connexion(); -$operateurs = $bdd->query("SELECT * FROM $table_user WHERE auth_level > 2 ORDER BY auth_level ASC;"); -$questions = $bdd->query("SELECT * FROM $table_ope_faq ORDER BY ordre ASC;"); -$bdd->deconnexion(); - -$template->assign('operateurs', $operateurs); - -$TEMP_questions = array(); -for ($i = 0; $i < $bdd->num_rows; $i++) { - $TEMP_questions[] = array($questions[$i]['titre'], bbcode(nl2br(htmlspecialchars($questions[$i]['contenu']))), $questions[$i]['id']); -} -$template->assign('questions', $TEMP_questions); -?> \ No newline at end of file diff --git a/game/jeu/options.php b/game/jeu/options.php deleted file mode 100644 index f6a0d79..0000000 --- a/game/jeu/options.php +++ /dev/null @@ -1,94 +0,0 @@ -assign('page',$page); - $template->assign('titre',$titre); - -$pseudo = $planete->pseudo; -$mailUtil = $planete->mail; -$bdd->connexion(); -$queryUser = $bdd->unique_query("SELECT mdp, mdp_var FROM $table_user WHERE id = $id_user;"); -$bdd->deconnexion(); -$mdp = $queryUser['mdp']; -$mdp_var = $queryUser['mdp_var']; - -if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) { - $bdd->connexion(); - $bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'"); - if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000); - - $bdd->query("UPDATE user SET mv = 1 WHERE id = '$id_user'"); - $bdd->deconnexion(); - $sess->values['connected'] = FALSE; - $sess->put(); - - erreur('Le mode vacances est maintenant actif sur votre compte.

Vous pourez vous reconnecter sur votre compte à partir de
'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'

Bonnes vacances !', "green", '?index', 10000); -} -elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) { - $bdd->connexion(); - $bdd->query("UPDATE user SET mv = -2 WHERE id = $id_user"); - $bdd->deconnexion(); - - erreur('Votre compte sera supprimé le
'.strftime("%A %d %B à %H:%M", mktime(5,0,0,date('n',time()+86400*2),date('d',time()+86400*2),date('y',time()+86400*2))).'.', "green"); -} -if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') { - if (isset($_POST['mdp_anc']) && isset($_POST['mdp_nouv']) && isset($_POST['mdp_conf']) && !empty($_POST['mdp_anc']) && !empty($_POST['mdp_nouv']) && !empty($_POST['mdp_conf'])) { - if(mdp($pseudo, gpc('mdp_anc', 'post'), $mdp_var) == $mdp) { - if ($_POST['mdp_nouv'] == $_POST['mdp_conf']) { - $password = mdp($pseudo, gpc('mdp_nouv', 'post'), $mdp_var); - $auth = sha1($password); - - $bdd->connexion(); - $bdd->escape($password); - $bdd->query("UPDATE user SET mdpNOUV = '$password' WHERE id = '$id_user'"); - $bdd->deconnexion(); - - if(!send_mail($mailUtil, 'Halo-Battle :: Activation de votre nouveau mot de passe', 'Halo-Battle :: Activation de votre nouveau mot de passe

Bonjour '.trouvNom($id_user).',
Vous recevez ce mail suite à votre demande de changement de mot de passe. Ce dernier entrera en vigueur une fois que vous aurez validé ce changement en cliquant via ce lien :
http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'
Notez que pour que le mot de passe soit changé, il faut que vous soyer connecté sur votre compte.

A bientôt dans Halo-Battle,
Le staff

')) erreur('Erreur lors de l\'envoie du courriel de confirmation !

Si le problème perciste, contactez un administrateur.'); - else erreur('Un courriel vient d\'être envoyé à '.$mailUtil.'. Le mot de passe ne sera modifié qu\'après avoir cliqué sur le lien d\'activation contenu dans ce courriel.', "green"); - $mail->SmtpClose(); - unset($mail); - } - else erreur('Le nouveau mot de passe que vous avez entré ne correspond pas à sa confirmation.', "red", '?p=options', 3500); - } - else erreur('L\'ancien mot de passe que vous avez tapé n\'est pas correct.', "red", '?p=options', 3500); - } - else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options'); -} -elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') { - if (isset($_POST['mdp_mail']) && mdp($pseudo, gpc('mdp_mail', 'post'), $mdp_var) == $mdp) { - if (isset($_POST['mail']) && !empty($_POST['mail'])) { - $Nmail = gpc('mail', 'post'); - if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $Nmail)) { - $bdd->connexion(); - $bdd->escape($Nmail); - $result = $bdd->query("SELECT mail FROM user WHERE mail = '$Nmail'"); - if($result) { - $bdd->deconnexion(); - erreur('Vous ne pouvez pas utiliser cette adresse mail, elle est déjà utilisée par un autre utilisateur.', "red", '?p=options'); - } - else { - $auth = sha1($Nmail); - $bdd->query("UPDATE user SET mailNOUV = '$Nmail' WHERE id = '$id_user'"); - $bdd->deconnexion(); - - //On envoie le mail de confirmation - if(!send_mail($Nmail, 'Halo-Battle :: Activation de votre nouvelle adresse électronique', 'Halo-Battle :: Activation de votre nouvelle adresse électronique

Bonjour,
Vous recevez ce mail suite à votre demande de changement d\'adresse électronique. Cette dernière entrera en vigueur une fois que vous aurez validé ce changement en cliquant via ce lien :
http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'
Notez que pour que l\'adresse soit changée, il faut que vous soyer connecté sur votre compte.

A bientôt dans Halo-Battle,
Le staff

')) erreur('Erreur lors de l\'envoie du courriel de confirmation !

'.$mail->ErrorInfo.'

Si le problème perciste, contactez un administrateur.'); - else erreur('Un courriel vient d\'être envoyé à '.$Nmail.'. L\'adresse électronique ne sera modifié qu\'après avoir cliqué sur le lien d\'activation contenu dans ce courriel.', "green"); - $mail->SmtpClose(); - unset($mail); - } - } - else erreur('L\'adresse électronique que vous avez tapée n\'est pas valide.', "red", '?p=options'); - } - else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options'); - } - else erreur('Mot de passe incorrect.', "red", '?p=options'); -} - -$sess->values['idvac'] = sha1(rand(123456789,9876543210).'ß‘}☻'.time()); -$sess->put(); - -$template->assign('mail',$planete->mail); -$template->assign('idvac',$sess->values['idvac']); -?> \ No newline at end of file diff --git a/game/jeu/options_change.php b/game/jeu/options_change.php deleted file mode 100644 index 93383fe..0000000 --- a/game/jeu/options_change.php +++ /dev/null @@ -1,25 +0,0 @@ -connexion(); - $queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;"); - $bdd->deconnexion(); - - if (!empty($queryUser['mdpNOUV']) && !empty($queryUser['mdpNOUV']) && sha1($queryUser['mdpNOUV']) == $_GET['auth']) { - $bdd->connexion(); - $bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '', mailNOUV = '' WHERE id = '$id_user';"); - $bdd->deconnexion(); - erreur('Votre nouveau mot de passe est en place.', "green"); - } - elseif (!empty($queryUser['mailNOUV']) && !empty($queryUser['mailNOUV']) && sha1($queryUser['mailNOUV']) == $_GET['auth']) { - $bdd->connexion(); - $bdd->query("UPDATE user SET mail = mailNOUV, mailNOUV = '', mdpNOUV = '' WHERE id = '$id_user';"); - $bdd->deconnexion(); - erreur('Votre nouvelle adresse électronique est en place.', "green"); - } - else erreur('Impossible d\'authentifier le lien !'); -} -else erreur('Le lien est incomplet !'); -?> \ No newline at end of file diff --git a/game/jeu/pilori.php b/game/jeu/pilori.php deleted file mode 100644 index f684a00..0000000 --- a/game/jeu/pilori.php +++ /dev/null @@ -1,12 +0,0 @@ -values['connected'])) $page = 'pilori'; -else $page = '../cms/pilori'; -$titre = 'Pilori de la galaxie'; - -$bdd->connexion(); -$pilori = $bdd->query("SELECT U.pseudo, U.operateurmv, 0 AS mail, U.mv, U.raisonmv, U.last_visite FROM $table_user U WHERE U.mv > 1 AND U.operateurmv = 0 UNION SELECT U.pseudo, O.pseudo AS operateurmv, O.mail, U.mv, U.raisonmv, U.last_visite FROM $table_user U INNER JOIN $table_user O ON U.operateurmv = O.id WHERE U.mv > 1;"); -$bdd->deconnexion(); - -$template->assign('joueurs', $pilori); -?> \ No newline at end of file diff --git a/game/jeu/regles.php b/game/jeu/regles.php deleted file mode 100644 index 05e6b9d..0000000 --- a/game/jeu/regles.php +++ /dev/null @@ -1,124 +0,0 @@ -assign('contenu','

Règles de Halo-Battle

-Préambule : tous les joueurs ayant créé un compte de jeu, et l'utilisant ou non, s'engagent à avoir lu et à respecter les règles de Halo-Battle dans leur intégralité. Si l'une des règles énoncées ci-dessous est transgressée, merci de vous référer au chapitre des infractions afin de connaître toutes les modalités relatives aux punitions encourues.
-
-Ce règlement peut être l'objet d'une modification, partielle ou totale, et il est du ressort du joueur de se tenir informé de toute modification quelle qu'elle soit. Toute modification sera publiée sur le forum avec sa date de mise en application, avant de se trouver effective au sein du jeu.
-
-Ces règles du jeu ont été publiées le 14/04/2008 et rentrent en vigueur à partir du 24/04/2008 -
-
Plan des règles : -
-
I. Comportement -
II. Comptes -
III. Commerce et ressources -
IV. Mercenariat -
V. Guerre -
VI. Bash -
VII. Alliances -
VIII. Sanctions -


-

I. Comportement


-

1 - Comportement général


- -- La convivialité et le respect des autres joueurs sont de rigueur. Par conséquent, les propos injurieux, racistes, xénophobes, pornographiques et antisémites sont prohibés. Tous les outils de communications utilisés pour et par Halo-Battle sont soumis à cette règle (jeu, forum et IRC).
-- L'utilisation de pseudo et/ou nom de planète en rapport direct avec des propos racistes, xénophobes, pornographiques ou encore antisémites est totalement prohibé. Il en va de même pour toute revendication politique, religieuse ou ayant un rapport avec l'actualité (une certaine liberté peut être tolérée mais ceci reste à l'appréciation du staff).
-- Les menaces sortant du cadre du jeu ne seront pas tolérées et lourdement sanctionnées par les opérateurs. Elles pourront de plus faire l'objet de poursuites judiciaires de la part de la personne concernée devant les juridictions compétentes.
-- Utiliser le bouton Signaler pour signaler un message qui ne contient pas d'insultes ou qui n'enfreint pas les règles du jeu est interdit. Le signalement de message ne doit servir qu'à informer les opérateurs d'infractions aux règles du jeu et à rien d'autre.
-- Le spam, les insultes et les messages à contenus offensants sont interdits, de même que tout contenu xénophobe, antisémite ou raciste.
-- Toute manoeuvre visant à exploiter le règlement à son avantage, ou à le contourner sciemment, est interdite.
- -

2 - Bugusing


- -- Tout bug trouvé doit être immédiatement signalé au staff de Halo-Battle.
-- Il est totalement prohibé d'exploiter un bug à son avantage.
-- Toute action visant à paralyser d'une quelconque manière le compte d'un autre joueur est absolument interdit.
-- Ne pas signaler un bug découvert est passible de bannissement.
- -

II. Comptes


- -

1 - Les comptes de jeu


- -- Les comptes restent la propriété de Halo-Battle ; par conséquent, ils ne peuvent faire l'objet d'une vente ou faire office de monnaie d'échange.
-- Un compte ne peut être joué que par une seule et même personne physique dans une seule et même galaxie (sauf cas relatif à la surveillance de compte).
-- La langue utilisée dans Halo-Battle est le français ; toutefois, seul l'anglais est toléré pour les personnes ne sachant pas ou peu le parler.
- -

2 - Multicomptes


- -- Jouer plus d'un compte par galaxie est strictement interdit.
-- Pour les joueurs jouant depuis un lieu commun (famille, collocation, écoles, lieux de travail...) il est impératif de prévenir l'opérateur de votre galaxie.
-- Aucune interaction, directe ou non, entre comptes de joueurs se connectant régulièrement de lieux communs n'est autorisée.
-- Pour les joueurs d'une même famille, faire partie d'une même alliance est toléré. Dans ce cas précit, merci d'en avertir l'opérateur de votre galaxie. Toute exploitation abusive de cette autorisation sera sévérement sanctionnée.
-- La règle de la surveillance de compte et le partage de compte s'appliquent normalement : même connecté du même lieu, chaque joueur n'est autorisé à surveiller ou jouer que son propre compte.
- -

3 - Surveillance de compte


- -- Toute surveillance de compte doit être obligatoirement signalée à l'opérateur de votre galaxie. Le propriétaire du-dit compte doit indiquer quel compte va être surveillé, donner la durée exacte de la surveillance, et donner le pseudonyme du surveillant. Il n'est pas nécessaire d'attendre une réponse de l'opérateur pour pouvoir commencer la surveillance du compte.
-- Une seule et même personne ne peut surveiller qu'un seul compte à la fois. Aucun délais minimum n'est exigé entre la surveillance de deux comptes différents. Les surveillances de comptes ne peuvent faire l'objet d'aucune rémunération.
-- Le surveillant ainsi que le joueur qui fait surveiller son compte sont responsables des actions faites via un compte durant une surveillance.
-- Le surveillant peut effectuer n'importe quelle opération sur la ou les planètes du propriétaire durant la surveillance. Est néanmoins interdit le transfert de ressources vers des planètes appartenant à un joueur autre. L'activation du mode vacances est également autorisé.
-- La surveillance du compte prend fin lorsque le propriétaire du compte se reconnecte à celui-ci, ou que le délai de surveillance a expiré. Dans ce cas précit, le surveillant est tenu de ne plus s'en occuper et de faire passer obligatoirement le compte en mode vacances.
- -

4 - Don de compte


- -- Tout changement de compte doit être au préalable signalé à un opérateur. Tout changement sans l'intervention de l'opérateur sera sanctionné.
-- Le propriétaire du mail permanent du compte est tenu d'envoyer un mail informatif aux opérateurs en précisant le pseudonyme du repreneur et le futur mail permanent du compte.
-- L'opérateur modifiera lui-même le mail permanent du compte et informera le donneur et le repreneur que le compte est cédé.
-- Le repreneur peut se connecter au compte dès qu'il en reçoit l'autorisation par l'opérateur, et peut alors changer l'adresse dynamique, le pseudonyme et le mot de passe du compte.
-- Une fois que le repreneur s'est connecté sur le compte, il est strictement interdit au donneur de s'y reconnecter.
-- La même règle s'applique dans le cas d'un échange de comptes entre deux joueurs d'une même galaxie.
-- Aucun don de compte ne peut faire l'objet d'une transaction monétaire.
- -

III. Commerce et ressources


- -- Les joueurs sont libres de commercer comme ils l'entendent, tant que leurs transactions ne se trouvent pas en infraction avec le réglement.
-- Le commerce doit prendre la forme d'un arrangement entre les différents joueurs. Chaque joueur engage sa propre responsabilité lors de la transaction de ressources. Par conséquent, dans le cas de vols, d'arnaques ou de toute autre forme crapuleuse de négociation, il ne peut y avoir de recours auprès d'un opérateur.
-- Il est interdit d'exercer une pression ou de s'acharner sur un joueur dans le but de lui soutirer ses ressources (sauf si les motifs sont valables, comme dans le cas d'une guerre déclarée).
-- L'envoie de ressources à des joueurs plus haut classés que soi doit être motivé par des motifs valables. Si l'opérateur juge l'action outrancière, des réparations de dommages peuvent être demandées au joueur bénéficiaire des ressources.
-- Les transactions de ressources ne peuvent faire l'objet d'une transaction monétaire réelle.
- -

IV. Mercenariat


- -- Le mercenariat est autorisé. Ces contrats rétribuent un joueur ou une alliance en fonction de services rendus.
-- Un contrat de mercenariat doit prendre la forme d'un arrangement entre les différents joueurs et ceux-ci y engagent leur responsabilité propre. Par conséquent, il ne peut y avoir de recours auprès d'un opérateur si, par exemple, le contrat n'est pas exécuté, ou n'est pas rémunéré.
-- Toute mission de mercenariat est possible, tant qu'elle n'interfère pas avec le présent réglement.
-- Un contrat de mercenariat ne peut être rémunéré par des unités monétaires réelles.
- -

V. Guerre


- -- Une guerre ne peut être déclarée que contre une alliance ou un joueur sans alliance. Ainsi il est possible de déclarer la guerre à une alliance entière ou à joueur qui n'a pas d'alliance, mais pas à un seul joueur d'une alliance ou à quelques joueurs d'une alliance.
-- Il n'est pas nécessaire de motiver la décision ou de prévenir l'alliance agressée pour déclarer une guerre.
-- Il est obligatoire de déclarer officiellement une guerre sur le forum, dans la section appropriée, dans les 24 heures qui suivent l'agression. Les joueurs sont libres de formuler les objectifs et les conditions de fin de la guerre.
-- Il est strictement interdit d'établir des objectifs portant atteinte aux libertés fondamentales dont disposent les joueurs, comme la suppression d'un compte, l'interdiction de jouer, suppression de colonies ou d'unités, etc...
-- En cas de guerre, le bash n'est pas interdit.
-- Les joueurs sont libres de mener leurs campagnes militaires comme ils l'entendent, pourvu que cela n'entre pas en conflit avec le règlement.
-- Une guerre prend fin lorsque les belligérants trouvent un accord. Ils devront le signaler obligatoirement, comme pour la déclaration de guerre.
- -

VI. Bash


- -- Le bash est relatif à l'attaque à outrance de planètes particulières. Attaquer une planète plus de quatre fois en 24 heures est par conséquent interdit.
-- La règle du bash s'applique aux joueurs actifs et inactifs.
-- En cas de guerre, le bash est autorisé.
- -

VII. Alliances


- -- Toute alliance possède le privilège de se constituer comme elle l'entend.
-- Toute alliance peut recruter autant de joueurs qu'elle le souhaite.
-- Les alliances mixtes sont autorisées ; cependant, une race dominante doit y être représentée et les joueurs de la race opposée ne doivent pas s'y trouver en trop grand nombre sous peine de sanction.
-- Toute alliance peut recruter autant de joueurs qu'elle le souhaite.
-- Toute alliance peut signer autant de pactes qu'elle le souhaite.
-- Toute alliance a le droit de se donner comme mission celle qu'elle entend.
-- Il est strictement interdit de copier totalement ou en partie, les textes, images, etc, créés par les joueurs des différentes alliances déjà existantes. Les alliances fondées sur le principe du CSNU ou de l'Alliance ne sont pas concernées par la clause du plagiat de nom. Pour pouvoir recopier l'un des éléments se trouvant dans une alliance, il est nécessaire d'avoir une autorisation écrite de ou des auteurs vous autorisant à y procéder sous peine de sanctions.
-- Tout recrutement dans les autres alliances déjà existantes est formellement interdit.
- -

VIII. Sanctions


- -- En cas de non respect de ce règlement, les opérateurs du jeu infligeront un blocage pouvant aller de un jour, à un blocage définitif selon la gravité de la faute, ainsi qu'en cas de récidive.
-- Chaque bannissement est mentionné dans le pilori du jeu. Par ailleurs, le staff de Halo-Battle se réserve le droit de prendre à l'encontre des joueurs toute autre sanction.
-- En cas de réclamation, merci d'envoyer un mail à l'un des opérateurs en précisant votre pseudonyme ingame et votre galaxie.
-- Toute manoeuvre visant à faire bloquer délibérément un adversaire est interdite et pourra être sanctionnée par l'opérateur.
-
'); -?> \ No newline at end of file diff --git a/game/jeu/rename.php b/game/jeu/rename.php deleted file mode 100644 index 9a0e101..0000000 --- a/game/jeu/rename.php +++ /dev/null @@ -1,44 +0,0 @@ -nom_planete); - -if (isset($_POST['planete'])) { - $nouvNom = trim(str_replace(' ', ' ', $_POST['planete'])); - if (empty($nouvNom)) erreur('Vous n\'avez indiqué aucun nom de planète.', "red", '?p=rename'); - elseif (limite($nouvNom, 18)) erreur('Le nom de votre planète est trop long.', "red", '?p=rename'); - elseif (ereg('staf', strtolower($nouvNom)) && $sess->level < 4) erreur('Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !', "red", '?p=rename'); - else { - $bdd->connexion(); - $bdd->escape($nouvNom); - $bdd->unique_query("UPDATE $table_planete SET nom_planete = '$nouvNom' WHERE id_user = $id_user AND id = $idPlan;"); - $bdd->deconnexion(); - header('Location: ?p=accueil'); - exit; - //erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil'); - } -} -elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['abandon'] && !empty($idPlan) && $idPlan == $_GET['i']) { - $galaxie = $planete->galaxie; $ss = $planete->ss; $position = $planete->position; $bdd->connexion(); - $bdd->query("DELETE FROM $table_planete WHERE id_user = $id_user AND id = $idPlan AND galaxie = $galaxie AND ss = $ss AND position = $position LIMIT 1;"); - $bdd->query("DELETE FROM $table_flottes WHERE id_user = $id_user AND start_galaxie = $galaxie AND start_ss = $ss AND start_position = $position;"); - - $req = $bdd->unique_query("SELECT * FROM $table_planete WHERE id_user = $id_user LIMIT 1;"); - $bdd->deconnexion(); - $sess->values['abandon'] = 0; - unset($sess->values['abandon']); - $sess->values['idPlan'] = $req['id']; - $sess->put($planete->id_user); - - erreur('Cette planète n\'est désormais plus sous votre contrôle.', "green", '?p=accueil'); -} - -$bdd->connexion(); -$reqnb = $bdd->unique_query("SELECT COUNT(id) AS total FROM $table_planete WHERE id_user = $id_user;"); -$bdd->deconnexion(); - if ($reqnb['total'] > 1) $hashA = md5(rand(123456789,9876543210)); - else $hashA = false; -$sess->values['abandon'] = $hashA; -$sess->put($planete->id_user); -$template->assign('abandonH', $hashA); -?> \ No newline at end of file diff --git a/game/jeu/ressources.php b/game/jeu/ressources.php deleted file mode 100644 index 15814ed..0000000 --- a/game/jeu/ressources.php +++ /dev/null @@ -1,30 +0,0 @@ -coeff_bat[0] = floor($_POST['coeff_metal'])/100; - if (isset($_POST['coeff_cristal'])) $planete->coeff_bat[1] = floor($_POST['coeff_cristal'])/100; - if (isset($_POST['coeff_hydrogene'])) $planete->coeff_bat[2] = floor($_POST['coeff_hydrogene'])/100; - $planete->coeff_bat[3] = floor($_POST['coeff_cs'])/100; - if (isset($_POST['coeff_ce'])) $planete->coeff_bat[4] = floor($_POST['coeff_ce'])/100; - if (!in_array('coeff_bat', $planete->modif)) $planete->modif[] = 'coeff_bat'; - - header('Location: ?p=ressources'); - exit; -} - -$template->assign('nombat', $batiment); - -$tablo = $planete->production(3600, true); - -$template->assign('ressources_prod', $tablo[1]); -$template->assign('ressources_conso', $tablo[2]); -$template->assign('ressources_coef', $tablo[0]); -$template->assign('ressources_silo', array($planete->batiments[10], pow(2, $planete->batiments[10]) * 100000)); -$template->assign('ressources_toto', array($tablo[1][2] - $tablo[2][3], '(0)')); - -$template->assign('ressources_tab', array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)); -?> \ No newline at end of file diff --git a/game/jeu/secours.php b/game/jeu/secours.php deleted file mode 100644 index aea99fa..0000000 --- a/game/jeu/secours.php +++ /dev/null @@ -1,18 +0,0 @@ -assign('date',strftime("%A %d %B %Y %H:%M")); -$template->assign('datehb',str_replace('.','',strftime("/%a %d %b %Y/%H%M %S"))); - -$template->assign('link', array_map('url', $config['link'])); -$template->assign('servers_name', $config['server_name']); -$template->assign('server_url', $config['server_url']); -$template->display('cms/secours.tpl'); - -exit; -?> \ No newline at end of file diff --git a/game/jeu/simulateur.php b/game/jeu/simulateur.php deleted file mode 100644 index 39b5e87..0000000 --- a/game/jeu/simulateur.php +++ /dev/null @@ -1,142 +0,0 @@ - 0, - "contenu_max" => 999999, - "contenu_metal" => 0, - "contenu_cristal" => 0, - "contenu_hydrogene" => 0, - "start_time" => 0, - "end_time" => 0, - "mission" => 1, - "id_user" => $id_user, - "effectue" => 0, - "vaisseau_1" => $_POST['ATvais_1'], - "vaisseau_2" => $_POST['ATvais_2'], - "vaisseau_3" => $_POST['ATvais_3'], - "vaisseau_4" => $_POST['ATvais_4'], - "vaisseau_5" => $_POST['ATvais_5'], - "vaisseau_6" => $_POST['ATvais_6'], - "vaisseau_7" => $_POST['ATvais_7'], - "vaisseau_8" => $_POST['ATvais_8'], - "vaisseau_9" => $_POST['ATvais_9'], - "vaisseau_10" => $_POST['ATvais_10'], - "vaisseau_11" => 0, - "vaisseau_12" => $_POST['ATvais_12'] -); -$queryEN = array( - "debris_met" => 0, - "debris_cri" => 0, - "metal" => $_POST['ENmetal'], - "cristal" => $_POST['ENcristal'], - "hydrogene" => $_POST['ENhydrogene'], - "def_1" => $_POST['ENdef_1'], - "def_2" => $_POST['ENdef_2'], - "def_3" => $_POST['ENdef_3'], - "def_4" => $_POST['ENdef_4'], - "def_5" => $_POST['ENdef_5'], - "vaisseau_1" => $_POST['ENvais_1'], - "vaisseau_2" => $_POST['ENvais_2'], - "vaisseau_3" => $_POST['ENvais_3'], - "vaisseau_4" => $_POST['ENvais_4'], - "vaisseau_5" => $_POST['ENvais_5'], - "vaisseau_6" => $_POST['ENvais_6'], - "vaisseau_7" => $_POST['ENvais_7'], - "vaisseau_8" => $_POST['ENvais_8'], - "vaisseau_9" => $_POST['ENvais_9'], - "vaisseau_10" => $_POST['ENvais_10'], - "vaisseau_11" => $_POST['ENvais_11'], - "vaisseau_12" => $_POST['ENvais_12'] -); - require_once(_FCORE."hb_game/Class/class.combat.php"); - require_once(_FCORE."hb_game/Class/class.rapport.php"); - - //On génére un nouveau combat - $combat = new Combat($queryFlottes[$i], $queryEN, $queryEN, array($_POST['ATblind'], $_POST['ENblind'])); - $combat->changerTactiqueAT($_POST['ATtactique']); - $combat->changerTactiqueEN($_POST['ENtactique']); - $rapport = new Rapport(1, $queryFlottes[$i]['id_user'], 0, time()); - $rapport->addInfo($combat->ATvais, 0); - $rapport->addInfo($combat->ENvais, 1); - $rapport->addInfo($combat->ENdef, 2); - $rapport->addInfo($queryEN, 4); - $rapport->addInfo($queryFlottes[$i], 5); - $rapport->addInfo(array(false, false), 6); - - while(!$rapport->var[6][0]) { - if (!empty($_POST['maxtour']) && $combat->Ntour >= $_POST['maxtour']) break; - $combat->Ntour++; - - //Récupération des paramètres de la tactique de l'attaquant - $arraytactique = tactique($combat->ATtactique); - //On régénére les boucliers de l'attaquant et on calcul l'attaque de l'attaquant - $ATattaque = $combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], true, !$arraytactique[3], $_POST['ATblind']), true, $_POST['ATarme']); - - //Récupération des paramètres de la tactique du défenseur - $arraytactique = tactique($combat->ENtactique); - //On régénére les boucliers de l'attaquant et on calcul l'attaque de l'attaquant - $ENattaque = $combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], false, !$arraytactique[3], $_POST['ENblind']), false, $_POST['ENarme']); - - //On lance l'attaque - @$ATresult = $combat->attaquerVais($ATattaque, true); - @$ENresult = $combat->attaquerVais($ENattaque, false); - - if (!$ATresult && $ENresult) { //Attaquant vainqueur - $combat->ENres['metal'] = $queryEN['metal']; - $combat->ENres['cristal'] = $queryEN['cristal']; - $combat->ENres['hydrogene'] = $queryEN['hydrogene']; - - $exportAT = $combat->exportAT(true); $ret_time = $combat->timestamp; - $exportEN = $combat->exportEN(); $pillm = $combat->pillage[0]; $pillc = $combat->pillage[1]; $pillh = $combat->pillage[2]; - $rapport->addInfo(array(true, true, false), 6); - } - elseif ($ATresult && !$ENresult) { //Défenseur vainqueur - $exportEN = $combat->exportEN(); - $rapport->addInfo(array(true, false, false), 6); - } - elseif (!$ATresult && !$ENresult) { //Match nul - $exportEN = $combat->exportEN(); - $rapport->addInfo(array(true, false, true), 6); - } - elseif ($combat->Ntour >= 250) { //Match nul - $exportEN = $combat->exportEN(); - $rapport->addInfo(array(true, false, true), 6); - } - else $rapport->addInfo(array(false, false, false), 6); - - $rapport->addInfo($combat->ATvais, 7); - $rapport->addInfo($combat->ENvais, 8); - $rapport->addInfo($combat->ENdef, 9); - - //Prévision du prochain tour - $combat->timestamp += 300; - $rapport->addInfo($combat->timestamp, 10); - $rapport->addInfo($combat->pillage, 11); - $rapport->addInfo($ATattaque.' vs '.$ENattaque, 14); - } - $rapport->addInfo($combat->Ntour, 3); - $debriM = $combat->debriM; - $debriC = $combat->debriC; - - $rapport->addInfo(array($debriM, $debriC), 12); - $rapport->addInfo(array($enligne, $infos, count($infos)-1, array('humains' => $nbhumain, 'covenants' => $nbcovie, 'serveurs' => 'cette'), $config['version'], $min.' min'), 13); - - $template->assign('page', 'simulateur_combat'); - $template = $rapport->show(); - print $template; - echo("\n"); - exit; -} -else { - $template->assign('nomvais', $nomvaisn); - $template->assign('technolo', $technolo); - array_splice($nomterra, 0, 8); - $template->assign('nomdef', $nomterra); - $template->assign('nomressourc', $ressourc); -} -?> \ No newline at end of file diff --git a/game/jeu/util.php b/game/jeu/util.php deleted file mode 100644 index 9403811..0000000 --- a/game/jeu/util.php +++ /dev/null @@ -1,17 +0,0 @@ -connexion(); -$bdd->escape($u); -$detailsUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $u;"); -$bdd->deconnexion(); - -if (!empty($detailsUser)) { - $template->assign('userD', $detailsUser); -} -else erreur('Joueur introuvable !'); -?> \ No newline at end of file diff --git a/game/jeu/version.php b/game/jeu/version.php deleted file mode 100644 index e87ab26..0000000 --- a/game/jeu/version.php +++ /dev/null @@ -1,15 +0,0 @@ -connexion(); -$data = $bdd->query("SELECT * FROM $table_version ORDER BY id DESC"); -$bdd->deconnexion(); - -$TEMP_versions = array(); -for($i = 0; $i < $bdd->num_rows; $i++){ - $TEMP_versions[] = array('numero' => $data[$i]['version'], 'date' => date("d/m/y", $data[$i]['temps']), 'description' => nl2br(str_replace('
', '', $data[$i]['contenu']))); -} -$template->assign('versions', $TEMP_versions); -?> \ No newline at end of file diff --git a/game/jeu/~flotte.php b/game/jeu/~flotte.php deleted file mode 100644 index 4f507c9..0000000 --- a/game/jeu/~flotte.php +++ /dev/null @@ -1,304 +0,0 @@ -connexion(); - $bdd->escape($end_galaxie); - $bdd->escape($end_ss); - $bdd->escape($end_pos); - $bdd->escape($mission); - $bdd->escape($tactique); - $bdd->escape($EBmetal); - $bdd->escape($EBcristal); - $bdd->escape($EBhydrogene); - $bdd->escape($vitesse); - $resultat = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = '$id_user'"); - $bdd->deconnexion(); - $nbr = $resultat['cnt']; - - //Vérification du code anti-bots - /*if (!isset($sess->values['flcds']) || gpc('cds', 'post') != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.
Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4000); - //Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées - else*/if ($mission == 3 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, consultez le forum.', "red", '?p=flotte', 5000); - //Vérification que la destination ne soit pas en dehors de la galaxie - elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->level < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte'); - //Vérification que le nombre de slots ne soit pas dépassé - elseif ($nbr > ceil(count($queryPlanetes)/2 + 1)) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte'); - //On vérifie la mission - elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte'); - //Si la mission est d'attaquer, on vérifie la tactique - elseif ($mission == 3 && !(($tactique == 1 && $planete->technologies[3] & 4096) || ($tactique == 2 && $planete->technologies[3] & 8192) || ($tactique == 3 && $planete->technologies[3] & 16384) || $tactique == 0)) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte'); - //On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes - elseif ($mission == 5 && $sess->values['vais'][6] <= 0 && $sess->values['vais'][13] <= 0) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte'); - //On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation - elseif ($mission == 2 && $sess->values['vais'][2] <= 0) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte'); - //On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs - elseif ($mission == 4 && $sess->values['vais'][3] <= 0) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte'); - //On vérifie que l'on possède assez de ressources - elseif ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene)) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte'); - //On vérifie que l'on n'envoie pas des ressources négatives - elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000); - //On vérifie la vitesse du vaisseau - elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 1) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte'); - else { - //On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes - $cnt = count($multi); - if ($cnt > 1 && $mission == 1) { - for($i = 0; $i < $cnt; $i++){ - if ($multi[$i]['id_util'] == $resultat['id_user']) erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).'); - } - } - - $bdd->connexion(); - $resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';"); - $bdd->deconnexion(); - - //Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances - if ($mission == 3) { - //Récupération de l'ID du joueur cible - $rech_user = $resultat['id_user']; - $bdd->connexion(); - $resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = '$rech_user';"); - $bdd->deconnexion(); - if ($resultatu['mv'] > 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!! - elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000); - elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte'); - elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte'); - } - elseif ($mission == 1 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000); - elseif ($mission == 2 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000); - elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000); - elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) { - $sess->values['forceFlotte'] = true; - $sess->put(); - erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].
Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange"); - } - - if (!isset($sess->values['vais']) || !is_array($sess->values['vais'])) erreur('Erreur lors de la création de la flotte, absence de données des vaisseaux', "red", '?p=flotte'); - else { - //Envoie de la flotte - $flotte = new flotte(); - - $sauv = $planete->vaisseaux; //Sauvegarde du contenu de la flotte avant lancement - $nbVais = 0; - foreach ($sess->values['vais'] as $key => $vaisseau){ - if ($vaisseau > 0) { - if ($vaisseau > $planete->vaisseaux[$key]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte'); - else $nbVais += $vaisseau; - } - elseif ($vaisseau < 0) $vaisseau = 0; - - $flotte->vaisseaux[$key] = $vaisseau; - $sauv[$key] -= $vaisseau; - } - - if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte'); - elseif (!isset($sess->values['flnbvais']) || $sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :

Calcul du nombre de vaisseaux incorrect !

Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4500); - - $flotte->nom = gpc('nomflotte', 'post'); - $flotte->mission = $mission; - $flotte->start_planete = $planete; - $flotte->start_time = time(); - - //On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation) - if ($mission == 2) $flotte->end_planete = $end_galaxie.':'.$end_ss.':'.$end_pos; - else $flotte->end_planete = $resultat['id']; - - $calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse, false, true); - $flotte->end_time = $calc[0]; - $conso = $calc[1]; - - //On double la consomation si on fait un aller-retour - if ($mission == 1 || $mission == 2 || $mission == 4 || $mission == 5) $conso *= 2; - - //On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie ainsi que de ressources sur la planète - $flotte->calculer(); - if ($flotte->contenuMax < ceil(gpc('metal', 'post')) + ceil(gpc('cristal', 'post')) + ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500); - elseif ($planete->metal < ceil(gpc('metal', 'post')) || $planete->cristal < ceil(gpc('cristal', 'post')) || $planete->hydrogene < ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500); - else { - //if ($mission == 3) $flotte->tactique = gpc('tactique', 'post'); - $flotte->contenu = array(floor(gpc('metal', 'post')), floor(gpc('cristal', 'post')), floor(gpc('hydrogene', 'post'))); - $flotte->modifFlotte = "INSERT"; - - //On actualise la planète - $planete->metal -= floor(gpc('metal', 'post')); - $planete->cristal -= floor(gpc('cristal', 'post')); - $planete->hydrogene -= floor(gpc('hydrogene', 'post') + $conso); - $planete->vaisseaux = $sauv; - if (!in_array('vaisseaux', $planete->modif)) $planete->modif[] = 'vaisseaux'; - - unset($flotte); - unset($sess->values['vais']); - $sess->put(); - - erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000); - } - } - } -} -elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12']) || !empty($_POST['v13'])) { - $nombreVaisseau = 0; - foreach ($planete->vaisseaux as $key => $vaisseau){ - $v = gpc('v'.$key, 'post'); - if (!is_numeric($v)) $v = 0; - else $v = (int)abs($v); - - if ($vaisseau < $v) { - erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte'); - } - - $sess->values['vais'][$key] = $v; - $nombreVaisseau += $v; - } - //On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau - if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte'); - - //On enregistre les paramètres en session - $sess->values['flnbvais'] = $nombreVaisseau; - $sess->values['forceFlotte'] = false; - - //Génération de la liste de mission possible avec les vaisseaux de la flotte - $missions = array("Stationner", "Transporter"); - if ($sess->values['vais'][2]) $missions[2] = "Coloniser"; - if ($planete->technologies[7] & 16) $missions[3] = "Attaquer"; - if ($sess->values['vais'][3]) $missions[4] = "Recycler"; - if ($sess->values['vais'][3] || $sess->values['vais'][3]) $missions[5] = "Espionner"; - $template->assign('missions', $missions); - - //On enregistre les modification de la session - $sess->values['fltime'] = time(); - $sess->put(); - - $page = 'flotte2'; - $template->assign('scripth', ''); - $template->assign('script', ''); - - //TODO Ajouter les destinations favorites + Colonies -} -//Affichage du détail d'une flotte -elseif (!empty($_GET['n'])) { - $idN = ceil(gpc('n')); - - $flotteN = new Flotte($idN); - $flotteN->load_planete(); - - if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500); - else { - //Annulation de la mission - if (isset($_GET['a']) && isset($sess->values['ret_fleet']) && $_GET['a'] == $sess->values['ret_fleet']) { - //Calcul du temps passé depuis le lancement de la flotte - $tpsDD = time() - $flotteN->start_time; - if ($flotteN->mission == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500); - elseif ($flotteN->end_time > $tpsDD) { - $bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = '$tpsDD', end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = '$id_user' AND id = '$idN';"); - header('Location: ?p=flotte&n='.$idN); - exit; - } - else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500); - } - - $sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻'); - $sess->put(); - - $template->assign('ret_fleet', $sess->values['ret_fleet']); - $template->assign('flotte', $flotteN); - $template->assign('nomvais', $nomvaisa); - $page = 'flotten'; - } -} -//Affichage de la page générale -else { - //Mise à jour des tactiques par défaut - $attaque = gpc('attaque', 'post'); - $defense = gpc('defense', 'post'); - if (is_numeric($attaque) && is_numeric($defense)) { - $chang = false; - if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0)) { - $planete->combatAT_tactique = $attaque; - if (!in_array('combatAT_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatAT_tactique'; - $chang = true; - } - if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0)) { - $planete->combatDE_tactique = $defense; - if (!in_array('combatDE_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatDE_tactique'; - $chang = true; - } - - if ($chang) erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100); - } - - //Affichage des flottes en cours dans la galaxie - $bdd->connexion(); - $flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';"); - $bdd->deconnexion(); - $nbr = $bdd->num_rows; - - $TEMP_flottesEC = array(); - if ($flottes) { - foreach ($flottes as $flotte){ - if ($flotte['mission'] != 1 && ($flotte['mission'] != 2 || $flotte['statut'] == '1') && $flotte['mission'] != 0) { - $retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position']; - $Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']); - } - /*elseif ($flotte['mission'] == 1) { - $retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position']; - if (empty($flotte['ret_time'])) $Hretour = '-'; - else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']); - }*/ - else { - $retour = '-'; - $Hretour = '-'; - } - - $end_planete = new Planete($flotte['end_planete']); - - if ($flotte['mission'] == 2) { - preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $flotte['mission'], $position); - $TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], ' ['.$position[1].':'.$position[2].':'.$position[3].']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour); - } - else $TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $end_planete->nom_planete.' ['.$end_planete->galaxie.':'.$end_planete->ss.':'.$end_planete->position.']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour); - } - } - $template->assign('flottesEC', $TEMP_flottesEC); - - //Affichage des vaisseaux disponible à l'envoie - $TEMP_vaisseaux = array(); - foreach ($planete->vaisseaux as $key => $vaisseau){ - //On affiche uniquement les vaisseaux que l'on possède hormis la station spatiale - if ($vaisseau > 0) $TEMP_vaisseaux[] = array($nomvaisn[$key], separerNombres($vaisseau), $vaisseau, $key); - } - $template->assign('vaisseaux', $TEMP_vaisseaux); - - //Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin - if ($nbr <= ceil(count($queryPlanetes)/2 + 1)) $template->assign('action', ''); - else $template->assign('action', 'Nombre de flottes maximum simultanées atteint'); - - $template->assign('nbflotte', $nbr); - $template->assign('nbflottemax', ceil(count($queryPlanetes)/2 + 1)); - - //Modification des tactiques - $tactiques = array('1'); - $attaqueT = 0; - $defenseT = 0; - if ($planete->technologies[3] & 4096) $tactiques[] = '2'; - if ($planete->technologies[3] & 8192) $tactiques[] = '3'; - if ($planete->technologies[3] & 16384) $tactiques[] = '4'; - - $template->assign('tactiques', $tactiques); - - $page = 'flotte1'; -} -?> \ No newline at end of file diff --git a/game/noms.php b/game/noms.php deleted file mode 100644 index fccb3bc..0000000 --- a/game/noms.php +++ /dev/null @@ -1,281 +0,0 @@ -values['race']; - - if ($race == 'covenant') { - $ressourc = array('Métal','Cristal','Ions','Énergie','Crédits'); - $casernen = array('Grunt','Jackal','Drone','Elite','Sniper','Hunter','Médecin','Ingénieur','Brute'); - $casernde = array( 'Formant l\'unité d\'infanterie de base des Covenants, les Grunt se révèlent dangereux en groupe, mais ne représentent individuellement qu\'une faible menace. Petits, trapus et relativement lents, ils paniquent souvent lorsqu\'ils affrontent des ennemis qui leurs sont supérieurs ; cependant, s\'ils sont menés par un Sangheili, ils se battront jusqu\'au bout.', - 'Tireurs efficaces, les jackals sont généralement employés comme mercenaires, on les trouve souvent en positions défensives, se battant protégés par les boucliers à énergie qui les caractérisent. Un bouclier bien utilisé fait d\'un Jackal une cible difficile à atteindre, mais celui-ci doit l\'écarter pour faire feu, ce qui lui confère un point faible exploitable.', - 'Tout comme les Brutes, les Drones semblent avoir été intégrés depuis peu aux forces d\'assaut covenantes et sont déployés en masse. Apparemment d\'origine insectoïde, ce sont les gardes des vaisseaux covenants. Ils ont également la capacité - limitée - de voler et font d\'excellents tireurs, très intelligents.', - 'Les Elites constituent l\'ossature des armées covenantes. Excellents soldats, tacticiens émérites et disciplinés, combattants agressifs, ils représentent la principale force des covenants. Plus rapides, plus forts et plus résistants que les humains, ils combattent en groupes restreints et dirigent souvent des escouades de Grunts. La couleur de leur armure indique leur rang.', - 'Le sniper est une classe des jackals. Excellents tireurs de nature, les Jackals qui se sont spécialisés dans ce domaine bénéficient d\'un rang plus élevé que leurs congénères. Ils sont très destructeurs de loin mais assez peu de près. Ils ne possèdent cependant pas de bouclier de protection comme leurs frères.', - 'Les Hunters sont des ennemis incroyablement dangereux qui sont déployés plus comme du matériel que comme des soldats. Ils sont utilisés pour des tâches de démolitions ou de défense lourde et se battent toujours par deux. Ces créatures massives portent une armure quasiment impénétrable et une arme à combustible redoutable au combat.', - 'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés, et donc peuvent peut être changer l\'issue de la bataille.', - 'Les ingénieurs, appelés Huragok en langage covenant, forment la seule unité non-combattante connue des forces covenantes. Celle-ci répare vos unités et véhicules sur le champ de bataille ; plus vous en recrutez, plus vos unités et véhicules au sol auront une chance de survivre.', - 'Moins bien connus que les Elites, les Brutes combattent en groupes et sont physiquement plus forts que leurs congénères. Les Brutes démontrent les mêmes aptitudes au combat que les Elites et leur nombre s\'est considérablement accru depuis le début du conflit. Ils portent une arme balistique explosive à laquelle est fixée une baïonnette.'); - $casernea = array('grunt(s)','jackal(s)','drone(s)','élite(s)','sniper(s)','hunter(s)','médecin(s)','ingénieur(s)','brute(s)'); - $casernei = array('grunt1.jpg','jackal.jpg','94990342wb4.jpg','98004530fx3.jpg','88091275ja8.jpg','hunter1.jpg','81770345oo4.jpg','88218731ts1.jpg','72188202fg9.jpg'); - //$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info','habitation','arcologie','commercial','loisir','administration'); - $batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg', '!!', '!!', '!!', '!!', '!!'); - $batiment = array('Purificateur de métal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des prophètes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrepôt','Centrale informatique'); - //$batiment = array('Purificateur de métal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des prophètes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrepôt','Centrale informatique', 'Module résidentiel', 'Mégastructure', 'Marché', 'Sanctuaire', 'Chambre du Conseil'); - $batimede = array( 'Le purificateur de métal vous fournit les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus développés ont aussi besoin de plus d\'énergie.', - 'Le purificateur de cristal vous fournit les ressources pour vos installations électroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'énergie que celui de métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leurs composants électroniques. La production augmente avec le développement de l\'usine.', - 'L\'ionisateur utilise des ions négatifs et positifs d\'hydrogène pour créer une source conventionnelle de courant stable, servant à alimenter les bâtiments covenants qui nécessitent une arrivée massive de cette "ressource" pour actionner les divers éléments matériels des contrôles. La centrale de fusion à besoin de beaucoup d\'ions pour fonctionner.', - 'Pour assurer l\'approvisionnement des purificateurs, des centrales solaires sont nécessaires. Plus ces installations sont développées, plus vous obtiendrez d\'énergie pour vos purificateurs. Les centrales solaires sont la base de l\'approvisionnement pour votre planète en énergie. Elles sont composées d\'un recueilleur sur le haut de sa structure qui capte en grandes quantités l\'énergie solaire.', - 'La centrale à fusion vous permet de créer l\'énergie nécessaire à vos purificateurs. Elles est constitué d\'un réacteur à fusion qui en tournant produit de l\'énergie. Sa production reste nettement inférieure à celle d\'une centrale solaire.', - 'Les grands prophètes ont partagé leur savoir pour construire ces structures qui permettent de repérer les éléments s\'approchants de votre planète. Le système est constitué de deux grands arcs qui envoient des signaux électriques dans l\'espace et captent ceux qui reviennent présageant ainsi l\'arrivée d\'un vaisseau.', - 'Le centre de recherches, l\'un des bâtiments les plus importants de votre colonie, vous permet de vous accaparer des technologies aliens aujourd\'hui disparues ou des technologies en cours de développement dans d\'autres factions. Le niveau du centre détermine la vitesse de la recherche. Chaque planète que vous coloniserez devra être équipée d\'un centre d\'étude des artefacts et des technologies.', - 'Le chantier terrestre vous permet de construire tous les véhicules atmosphériques du type ghosts, spectres ou autres. Il permet ainsi à vos armées d\'accéder plus rapidement à un endroit et d\'avoir un avantage avec l\'armement de ces véhicules.', - 'Ce bâtiment permet la création de toutes vos unités spatiales ou volantes. La force des covenants a souvent été due à ses grandes avancées technologiques en matière d\'aéronautique. Un grand chantier spatial permet de créer des unités de plus en plus fortes et de surcroît de les créer de plus en plus rapidement.', - 'Le Temple de la Guerre vous permet de créer l\'élite des forces d\'infanterie. Des soldats y sont fanatisés puis entraînés au maniement des armes et à la stratégie militaire. Plus vous développez le temple, plus la vitesse de production sera rapide.', - 'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l\'entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d\'infrastructure.', - 'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.', - '~#DESCRIPTION MANQUANTE#~ Module résidentiel', - '~#DESCRIPTION MANQUANTE#~ Mégastructure', - '~#DESCRIPTION MANQUANTE#~ Marché', - '~#DESCRIPTION MANQUANTE#~ Sanctuaire', - '~#DESCRIPTION MANQUANTE#~ Chambre du Conseil'); - $technolo = array( - array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'), - array('Maîtrise énergie niveau 1', 'Maîtrise énergie niveau 2', 'Maîtrise énergie niveau 3', 'Réacteur à combustion niveau 1', 'Réacteur à combustion niveau 2', 'Réacteur à combustion niveau 3', 'Réacteur à fusion niveau 1', 'Réacteur à fusion niveau 2', 'Réacteur à fusion niveau 3', 'Moteur subluminique niveau 1', 'Moteur subluminique niveau 2', 'Moteur subluminique niveau 3', 'Informatique niveau 1', 'Informatique niveau 2', 'Informatique niveau 3', 'IA niveau 1', 'IA niveau 2', 'IA niveau 3', 'Télécommunications niveau 1', 'Télécommunications niveau 2', 'Télécommunications niveau 3', 'Polymères radars niveau 1', 'Polymères radars niveau 2', 'Polymères radars niveau 3', 'Espionnage niveau 1', 'Espionnage niveau 2', 'Espionnage niveau 3', 'Contre-espionnage niveau 1', 'Contre-espionnage niveau 2', 'Contre-espionnage niveau 3'), - array('Constructions planétaires niveau 1', 'Constructions planétaires niveau 2', 'Constructions planétaires niveau 3', 'Construction optimisée', 'Ingénierie orbitale', 'Aménagement territorial niveau 1', 'Aménagement territorial niveau 2', 'Aménagement territorial niveau 3'), - array('Immigration coloniale niveau 1', 'Immigration coloniale niveau 2', 'Immigration coloniale niveau 3', 'Urbanisme niveau 1', 'Urbanisme niveau 2', 'Urbanisme niveau 3', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Sciences politiques niveau 1', 'Sciences politiques niveau 2', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 1', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'), - - array('Projectile Haut Densité niveau 1', 'Projectile Haut Densité niveau 2', 'Projectile Haut Densité niveau 3', 'Assistance de visée niveau 1', 'Assistance de visée niveau 2', 'Assistance de visée niveau 3', 'Guidage laser niveau 1', 'Guidage laser niveau 2', 'Guidage laser niveau 3', 'Condensateurs rapides niveau 1', 'Condensateurs rapides niveau 2', 'Condensateurs rapides niveau 3', 'Balistique avancée niveau 1', 'Balistique avancée niveau 2', 'Balistique avancée niveau 3', 'Accélération magnétique niveau 1', 'Accélération magnétique niveau 2', 'Accélération magnétique niveau 3'), - array('Robotique niveau 1', 'Robotique niveau 2', 'Robotique niveau 3', 'Ingénierie atomique niveau 1', 'Ingénierie atomique niveau 2', 'Ingénierie atomique niveau 3', 'Nano-régénération niveau ', 'Nano-régénération niveau 2', 'Nano-régénération niveau 3', 'Squelette renforcé niveau 1', 'Squelette renforcé niveau 2', 'Squelette renforcé niveau 3', 'Armatures enrichies niveau 1', 'Armatures enrichies niveau 2', 'Armatures enrichies niveau 3', 'Composés avancés niveau 1', 'Composés avancés niveau 2', 'Composés avancés niveau 3', 'Alliage niveau 1', 'Alliage niveau 2', 'Alliage niveau 3', 'Alliage avancé niveau 1', 'Alliage avancé niveau 2', 'Alliage avancé niveau 3', 'Armure moléculaire niveau 1', 'Armure moléculaire niveau 2', 'Armure moléculaire niveau 3'), - array('Tourelle légère M202 XP', 'Canon de défense automatique', 'Artillerie lourde de 440mm', 'Lance-missiles Archer', 'Batterie de missiles Anaconda', 'Silo de missiles Shiva', 'Canon à accélération magnétique'), - array('Prototype Intercepteur Longsword', 'Prototype Bombardier Longsword', 'Corvette de classe Mako', 'Prototype de Frégate', 'Récupération', 'Prototype de Croiseur de classe Halcyon', 'Prototype de Croiseur de classe Marathon', 'Prototype de Destroyer', 'Prototype de Porte-vaisseaux', 'Prototype de Super Porte-Vaisseaux', 'Prototype de Vaisseau d\'exfiltration de classe Black Cat', 'Prototype de Super canon à accélération magnétique', 'Bunker souterrain', 'Bunker souterrain', 'Bunker souterrain'), - array('Expansion niveau 1', 'Expansion niveau 2', 'Expansion niveau 3', 'Expansion niveau 4', 'Expansion niveau 5', 'Expansion niveau 6', 'Expansion niveau 7', 'Expansion niveau 8', 'Expansion niveau 9', 'Expansion niveau 10', 'Expansion niveau 11', 'Expansion niveau 12', 'Expansion niveau 13', 'Expansion niveau 14', 'Expansion niveau 15', 'Expansion niveau 16', 'Expansion niveau 17', 'Expansion niveau 18') - ); - $technode = array( 'L\'informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réaction qui, dans les combats, peut s\'avérer fatal.', - 'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « Å“il des prophètes » qui repèrera les vaisseaux s\'approchant de votre planète.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'Le bouclier est un champ de force qui entoure vos vaisseaux et les protège. Ainsi il permet à vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'avérant peut être décisif dans l\'issue de la bataille.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et vaisseaux ; vos chercheurs vous permettront également d\'accéder à de nouveaux types d\'énergies, beaucoup plus intéressants.', - 'Les réacteurs à antigravité sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques créant un champ gravitationnel inverse annulant ainsi la gravité présente. Le principe fonctionne également dans l\'espace puisque l\'absence de gravité dans l\'espace, sans compter les étoiles et les autres anomalies spatiales, permet une projection plus puissante du champ.', - 'Après la combustion, voici la fusion. Ce type de réacteur est beaucoup plus puissant que la combustion utilisée depuis déjà des centaines d\'années. Il génère une énergie cinétique de grande envergure. Aucun dirigeant politique désirant voyager dans le cosmos ne pourrait s\'en passer.', - 'Les covenants ont découvert d\'anciens réacteurs à fusion utilisant la technologie d\'hyperpropulsion Forerunner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.', - 'La médecine vous permet d\'avoir moins de pertes au combat et ainsi d\'avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.', - '', - 'Le cristal mémoriel a longtemps été une technologie très poussée et courrement utilisée par les anciens. Toutefois ce savoir s\'est peu à peu dissipé et ceci vous limite dans la gestion de vos informations. Heureusement, il vous est possible de le retrouver en développant cette technologie. Chaque évolution de cette technologie vous permet de rajouter une unité supplémentaire dans votre file d\'attente.'); - $technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','ernergieforruner.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','39969905fullew4.jpg','medecine.JPG','commandement.jpg','','../covenant_na.jpg'); - $nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('cargo2pb6.jpg','sanstitre2copiegw9.jpg','colocopiers4.jpg','sonde_despionnage1.jpg','charognard.jpg','chasseurlourd7id.jpg','contactharvestbynameleszk3.jpg','vaisseauuu0.jpg','vaisseaudebataille9na.jpg','pv.jpg','stationorbitalezt7.jpg','citecovenant.jpg'); - $nomvaisn = array('Cargos de classe Inquisitor','Cargos de classe Interdictor','Vaisseau de colonisation de classe Returning','Sonde de reconnaissance de classe Perception','Charognard','Séraphin','Frégate','Croiseur de classe CCS','Croiseur de classe Reverence','Porte vaisseaux','Station orbitale covenant','Super porte vaisseaux'); - $nomvaisd = array( 'Les cargos Inquisitor sont la base du transport de troupes et de ressources covenantes, capables de transporter un grand nombre de ressources sur une grande distance. Pratiquement sans armement, le cargo est sans défense et nécessite une défense rapprochée pour les trajets de grande distance.', - 'Les cargos Interdictor sont une évolution du transport de classe Inquisitor. Ayant une capacité de transport nettement supérieure à sa version précédente. Ce transport, quoique plus récent et disposant d\'un plus grand fret, dispose du même genre de défense que le modèle antérieur, une escorte est donc fortement recommandée lors de l\'utilisation de celui-ci.', - 'Tout comme les humains, les covenants ont besoins d\'espace pour étendre leur empire et c\'est pourquoi ces vaisseaux ont été pensés et conçus. Capable de transformer la nature même d\'une planète en très peu de temps, ce vaisseau est essentiel au développement de la société covenante.', - 'Cette sonde de reconnaissance covenante est largement utilisée lorsqu\'il est trop dangereux d\'envoyer un vaisseau. Sa fonction consiste à rassembler des données sur les vaisseaux ou encore sur une planète dans un système planétaire.', - 'Chaque bataille amène des pertes des 2 côtés, et ce vaisseau est conçu pour en tirer tous les bénéfices. Le Charognard, en retrait de la flotte principale, ramasse ce qu\'il reste des vaisseaux détruits et les ramène à sa planète d\'origine où ces "déchets" pourront être utilisés pour produire des matières premières.', - 'Le plus puissant et probablement le plus craint de tous les vaisseaux Covenants. Le Séraphin est le principal vaisseau offensif dans l\'espace et peut être employé comme bombardier aérien. Le Séraphin est d\'environ trois fois la taille d\'un Banshee, il possède plusieurs canons de plasma qu\'il utilise lors des engagements aériens pour éliminer des opposants de type LongsWord et Pélican.', - 'La frégate covenante est un vaisseau de tonnage moyen composant majoritairement les flottes habituelles. Équipée de lasers à impulsion et de lanceurs de torpilles au plasma latéraux, elle possède ainsi une puissance de feu raisonnable. Sa coque est aussi protégée par un bouclier énergétique la rendant beaucoup plus difficile à détruire.', - 'Ce vaisseau redoutable et titanesque sème sans le moindre doute la terreur chez l\'ennemi. Armé d\'un bout à l\'autre de lasers à impulsion, de torpilles au plasma et de bien d\'autres armes, ce croiseur est une arme extraordinaire à ne jamais sous estimer.', - 'Un des plus grands vaisseaux de combat covenant, mesurant 3000 mètres. Équipé de deux canons à projection énergétique et de sept lanceurs de torpilles, il est d\'une puissance extraordinaire. Le seul problème réside dans le fait que son équipement demande une capacité d\'énergie phénoménale.', - 'Comme son nom l\'indique, son principal rôle est de transporter des chasseurs Seraphins, des Spirits ou d\'autres vaisseaux de taille similaire. Armé de quelques lasers à impulsion, le porte vaisseau reste un vaisseau de support plutôt qu\'un vaisseau de confrontation directe. Hypothétiquement parlant, sa capacité de tir est légèrement supérieure à celui d\'une corvette.', - 'La station spatiale covenante, construite a même un astéroide, possède un canon plasma d\'une centaine de mettre de long projetant une sphère de plasma atteignant une chaleur proche de celle du coeur d\'un soleil. Également équipé de tourelle automatique pour les chasseurs d\'efficacité moyenne, ce poste orbital covenant est une arme défensive terrifiante pour toute adversaire de haut niveau ou non.', - 'Le vaisseau ultime de la flotte covenante, long de plus de 5400 mètres. Ce vaisseau est capable de transporter des quantités de chasseurs hors du commun. Armé de projecteurs énergétique et de laser à impulsion, ce vaisseau est le plus puissant après la station spatiale.'); - $nomterra = array('banshee(s)','spirit(s)','phantom','boarding craft','ghost(s)','shadow','spectre(s)','apparition(s)','shade','strong shade','tourelle(s) à barreau de combustible','canon(s) à plasma','lanceur(s) de torpilles plasma'); - $nomterrn = array('Banshees', 'Spirit', 'Phantom', 'Boarding craft', 'Ghost', 'Shadow', 'Spectre', 'Apparition', 'Shade', 'Strong shade', 'Tourelle à barreau de combustible', 'Canon à plasma', 'Lanceur de torpilles plasma'); - $nomterri = array('bansheeqp0.jpg', 'spirit1.jpg', 'phantomfu2.jpg', 'boardingcraft.jpg', 'ghostic1.jpg', 'shadow.jpg', 'spectre.jpg', 'wraith.jpg', 'shade.jpg', 'defcovie.jpg', 'tourellebarreau.jpg', 'tourelle.jpg', 'lanceur_torpilles.jpg'); - $nomterde = array( 'Rapide et maniable, le Banshee est un formidable véhicule d\'assaut aérien, efficacement blindé contre les armes à feu légères mais ne résistant cependant pas aux armes plus lourdes. Le canon à combustible dont il est équipé en fait un bombardier dangereux tout autant qu\'un chasseur rapide. Le Banshee a la possibilité de faire des tonneaux et des vrilles, ce qui serait impossible pour des véhicules à l\'aérodynamique conventionnelle.', - 'Le spirit est une navette de transport de troupes terrestre. De capacité moyenne, il peut transporter un petit contingent armé dans les zones les plus repoussées des planètes. Le spirit est équipé d\'une tourelle de type shade de puissance moyenne, qui permet de maintenir les troupes ennemis à distance jusqu\'à ce que le largage des troupes soit effectué.
Malheureusement, un manque d\'espace empêche l\'installation de générateur énergétique plus puissant qui pourrait supporter des boucliers standards ou même de faible intensité.', - 'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de débarquement « Spirit ». Il possède trois tourelles plasma particulièrement puissantes et peut laisser tomber ses occupants à terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus résistant que son prédécesseur, une puissance de feu accrue et peut transporter tout type d\'équipage comme des hunters.
Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut éliminer un bon nombre de marines.', - '~#DESCRIPTION MANQUANTE#~ Boarding craft', - 'Le ghost est un véhicule de reconnaissance et d\'attaque rapide déployée par les Covenants dans tout combat terrestre. Cet engin, très souvent piloté par les Elites, est très maniable. Il est capable de tirer des doubles décharges de plasma surchauffées d\'une puissance de 100-250 kW. Le ghost peut également effectuer des pointes de vitesse soutenues.', - 'Le Shadow est le principal moyen de transport terrestre des troupes covenantes. Ce véhicule peut accueillir un pilote, un artilleur et jusqu\'à huit passagers en fonction du type de Covenants qui monte à bord. Il est en outre équipé pour transporter des Elites, des Brutes, des Grunts ou des Jackals. Si le Shadow est équipé d\'un canon à plasma, sa vocation reste le déploiement de troupes.', - 'Le Spectre est un transport multi troupes blindé de petite taille. Quoique relativement lent, il est tout à fait maniable et se meut avec aisance dans les espaces confinés. Ses principales faiblesses étant son manque de vitesse et d\'accélération, ses occupants demeurent tout de même relativement exposés. Le canon à plasma monté à l\'arrière représente un grand danger pour l\'ennemi et le véhicule offre par ailleurs diverses positions de tir.', - 'Lent, massif et constituant une cible de taille, ce véhicule n\'en demeure pas moins le blindé covenant le plus destructeur. Ce géant de métal est bien protégé. Le tir de couverture qu\'il peut effectuer grâce à ses mortiers à plasma redoutables en fait un ennemi incroyablement dangereux. Le fait qu\'il soit piloté par une seule personne qui contrôle le véhicule et le système d\'armement limite quelque peu son champ de manoeuvre.', - 'Les tourelles shades sont des canons stationnaires énergétiques covenant composés de deux parties, la première étant une base stable à trois pieds pour la stabilité de l\'appareil, la deuxième, un siège où le canon est fixé retenu par un champ gravitationnel artificiel. Ce canon lorsqu\'il tire, envoie 3 « éclairs » relativement lents et d\'efficacité moyenne.', - 'Cette tourelle est une version améliorée de la shade standard. Dans les modifications de la tourelle, le système d\'accélération magnétique a été révisé pour le rendre plus performant, aboutissant à des rayons plus rapides. Également, un bouclier a été ajouté à l\'avant, protégeant ainsi l\'utilisateur des attaques aux armes à projectiles de petit et moyen calibre pendant une période de quelques secondes lors de feux nourris.', - 'La tourelle à barreau de combustible est une version fixe de ceux des hunters avec un système de visée amélioré et de condensateur ionique permettent de tirer trois rafales à la suite sans surcharger les relais du générateur. De puissance moyenne, elle est capable de détruire facilement des warthogs et autres véhicules légers avec une facilité hors norme.', - 'Le canon à plasma n\'a pas besoin de canonnier pour tirer puisque équipé d\'un système de visée automatisé, il utilise une technologie d\'intelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauffé à haute vitesse carbonisant tout sur son passage.', - 'Utilisant un principe similaire de la tourelle à plasma, le lanceur de torpilles plasma utilise un condensateur de matière pour condenser le flux de plasma surchauffé en une masse de destruction pure. Ce système est le système de défense terrestre le plus évolué jamais construit. Son défaut majeur reste sa cadence de tire lente, limitant sa défense face à de multiples adversaires.'); - } - elseif (isset($sess->values['auth_level']) && $sess->values['auth_level'] >= 6 && md5($race) == '34c19b21bd4a3dda389e767d32fe9779') { - $ressourc = array('Métal','Cristal','Hydrogène','Énergie','Crédits'); - $casernen = array('Constructor','Sentinelle Légère','Sentinelle Lourde','Enforcer Léger','Enforcer Lourd','Monitor','~#PAS DE NOM#~ Médecin','~#PAS DE NOM#~ Ingénieur','~#PAS DE NOM#~ Brute'); - $casernde = array( 'Les Constructors sont des minis sentinelles capable d\'effectuer certaine reparation mineur, ils peuvent réparés les sentinelles endommager ainsi que les chasseurs légers.', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Légère', - '~#DESCRIPTION MANQUANTE#~ Sentinelle Lourde', - 'Les Enforcers Léger, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie, mais il semble seulement protéger que l\'avant de la machine. Il est armé de faisceaux laser à impulsion rapides.', - 'Les Enforcers Lourd, sont des sentinelles massifs qui servent à contenir des grosses infections Floods. Ils sont protégés par un bouclier d\'énergie qui recouvre toute la machine. Il est armé de mortiers.', - 'Les monitors ont été placés sur les mondes-forteresse par les Forruner pour entretenir et maintenir leurs systèmes, et pour s\'assurer que les Floods reste emprisonné.', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ '); - $casernea = array('constructor(s)','sentinelle(s) légère(s)','sentinelle(s) lourde(s)','enforcer(s) léger(s)','enforcer(s) lourd(s)','monitor(s)','médecin(s)','ingénieur(s)','brute(s)'); - $casernei = array('scoutma3.jpg','sentinellelegerecn4.jpg','nanw9.jpg','defenseurlegerhs8.jpg','defenseurlourdhr3.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info'); - $batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdÉnergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg','chantierterrestrehg1.jpg','chantierspatialff8.jpg',0,'nanw9.jpg',0); - $batiment = array('Générateur de Métal','Générateur de Cristal','Générateur d\'Hydrogène','Générateur d\'Énergie',0,0,'Centre de recherches','Chantier terrestre','Chantier spatial',0,'Entrepôt',0); - $batimede = array( 'Le générateur de métal vous fournit les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos générateurs, plus uls vous rapportera. Les générateurs plus développés ont aussi besoin de plus d\'énergie.', - 'Le générateur de cristal vous fourni les ressources pour vos installations électroniques et pour les alliages. Le générateur consomme deux fois plus d\'énergie que celui du métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leur composant électronique. La production augmente avec le développement du générateur ainsi que sa consommation.', - 'L\'hydrogène n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste à faire passer un courant électrique dans de l\'eau pour que les molécules se séparent et forme du dihydrogène. Mais cette technique utilise de trop grande quantitée d\'énergie.', - 'Pour assurer l\'approvisionnement des générateurs, des générateurs énergie géantes sont nécessaires. Plus ces installations sont développées, plus vous obtiendrez d\'énergie pour vos générateurs. Les générateurs d\'énergies sont la base de l\'approvisionnement pour votre planète en énergie.', - 0, - 0, - 'Le centre de recherche est nécessaire pour développer de nouvelles technologies. Le niveau du centre détermine la vitesse de la recherche. Chaque planète que vous coloniserez devra être équipée d\'un centre de recherche.', - '~#DESCRIPTION MANQUANTE#~ Chantier terrestre', - 'Le chantier spatial vous permet de construire des vaisseaux, de l\'infanterie et vos installations de défense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de l\'infanterie et la création d\'installations de défense est rapide.', - 0, - 'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l\'entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d\'infrastructure.', - 0); - $technolo = array( - array('Forage niveau 1', 'Forage niveau 2', 'Commerce galactique niveau 1', 'Rendement métal niveau 1', 'Rendement cristal niveau 1', 'Rendement hydrogène niveau 1', 'Forage niveau 3', 'Théorie du Marché niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 2', 'Fonderies avancées niveau 1', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'), - array('Maîtrise énergie niveau 1', 'Informatique', 'Constructions planétaires', 'Maîtrise énergie', 'Réacteur à combustion', 'Maîtrise énergie', 'Réacteur à combustion', 'Réacteur à fusion', 'Réacteur à combustion', 'Réacteur à fusion', 'Réacteur à fusion type II ', 'Réacteur à fusion', 'Réacteur à fusion type II ', 'Réacteur à fusion type II ', 'Informatique', 'IA ', 'Télécommunications', 'Espionnage', 'Contre-espionnage', 'Informatique', 'IA ', 'IA ', 'Télécommunications', 'Polymères radars', 'Télécommunications', 'Polymères radars', 'Polymères radars', 'Espionnage', 'Espionnage', 'Contre-espionnage', 'Contre-espionnage', 'Constructions planétaires', 'Construction optimisée', 'Ingénierie orbitale', 'Constructions planétaires', 'Aménagement territorial', 'Aménagement territorial', 'Aménagement territorial'), - array('Immigration coloniale', 'Sciences politiques', 'Immigration coloniale', 'Urbanisme', 'Immigration coloniale', 'Urbanisme', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Urbanisme', 'Sciences politiques', 'Stratégie militaire', 'Sciences politiques', 'Stratégie militaire', 'Stratégie militaire'), - ); - $technode = array( 'L\'informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réactions qui dans les combats peuvent s\'avérer fatales.', - 'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « Å“il des prophètes » qui repèrera les vaisseaux s\'approchant de votre planète.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'Le bouclier est un champ de force qui entoure vos vaisseaux et les protège. Ainsi il permet à vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'avérant peut être décisif dans l\'issue de la bataille.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et vaisseaux ; vos chercheurs vous permettront également d\'accéder à de nouveaux types d\'énergies, beaucoup plus intéressants.', - 'Les réacteurs à antigravité sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques créant un champ gravitationnel inverse annulant ainsi la gravité présente. Le principe fonctionne également dans l\'espace puisque l\'absence de gravité dans l\'espace, sans compter les étoiles et les autres anomalies spatiales, permet une projection plus puissante du champ.', - 'Après la combustion, voici la fusion. Ce type de réacteur est beaucoup plus puissant que la combustion utilisée depuis déjà des centaines d\'années. Il génère une énergie cinétique de grande envergure. Aucun dirigeant politique désirant voyager dans le cosmos ne pourrait s\'en passer.', - 'Les covenants ont découvert d\'anciens réacteurs à fusion utilisant la technologie d\'hyperpropulsion Forruner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.', - 'La médecine vous permet d\'avoir moins de pertes au combat et ainsi d\'avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.'); - $technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','Énergie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg'); - $nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux'); - $nomvaisi = array('nanw9.jpg','nanw9.jpg','nanw9.jpg',0,'nanw9.jpg','croiseurforrunerns4.jpg','superdestroyerwa6.jpg','nanw9.jpg','chasseurlourdfk8.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg'); - $nomvaisn = array('Transporteur Leger','Transporteur Lourd','Colonisateur',0,'Recycleur','Croiseur Forruner','Super-Destroyer','Chasseur Leger','Chasseur Lourd','Porte-Vaisseaux','Station orbitale','Super porte-vaisseaux'); - $nomvaisd = array( '~#DESCRIPTION MANQUANTE#~ Transporteur Leger', - '~#DESCRIPTION MANQUANTE#~ Transporteur Lourd', - '~#DESCRIPTION MANQUANTE#~ Colonisateur', - 0, - '~#DESCRIPTION MANQUANTE#~ Recycleur', - '~#DESCRIPTION MANQUANTE#~ Croiseur Forruner', - '~#DESCRIPTION MANQUANTE#~ Super-Destroyer', - '~#DESCRIPTION MANQUANTE#~ Chasseur Leger', - '~#DESCRIPTION MANQUANTE#~ Chasseur Lourd', - '~#DESCRIPTION MANQUANTE#~ Porte-Vaisseaux', - '~#DESCRIPTION MANQUANTE#~ Station spatiale', - '~#DESCRIPTION MANQUANTE#~ Super porte-Vaisseaux'); - $nomterra = array(0,0,0,0,0,0,0,0,'tour(s) à plasma','tour(s) ion','canon(s) Orbital','drone(s)','station(s) de defense'); - $nomterri = array(0,0,0,0,0,0,0,0,'tourplasmasl4.jpg','tourioniquegr6.jpg','nanw9.jpg','nanw9.jpg','stationdedefensent8.jpg'); - $nomterrn = array(0,0,0,0,0,0,0,0,'Tour à plasma','Tour Ion','Canon Orbital','Drone','Station de defense'); - $nomterde = array( 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - '~#DESCRIPTION MANQUANTE#~ Tour à plasma', - '~#DESCRIPTION MANQUANTE#~ Tour Ion', - '~#DESCRIPTION MANQUANTE#~ Canon Orbital', - '~#DESCRIPTION MANQUANTE#~ Drone', - '~#DESCRIPTION MANQUANTE#~ Station de defense'); - } - elseif ($race == 'humain' || $race == "none") { - $ressourc = array('Métal','Cristal','Hydrogène','Énergie','Crédits'); - $casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squelette'); - $casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de résistance plutôt médiocre, ils rivalisent avec les unités covenants standard. Ils sont équipés d\'une armure de kevlar renforcée et d\'un SMG.', - 'Les fusillers sont équipés de fusils d\'assaut avec zoom intégré. Plus puissants que les marines standards, ils peuvent rivaliser avec des escouades entières de grunts dirigées par des élites hauts gradés.', - 'Les grenadiers sont les spécialistes en explosifs du CSNU sur le terrain. Ils peuvent détruire les véhicules légers grâce à leurs grenades et leurs lances missiles.', - 'Les TCAO sont des soldats d\'assauts largués depuis l\'espace directement sur les champs de batailles grâce à des modules spéciaux. Ces soldats sont surentraînés et très chevronnés, risquant leur vie à chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.', - 'Les snipers sont dotés de fusils de précision SA 2M capables de descendre des covenants à plusieurs centaines de mètres grâce à leur zoom maximum de 10x. Très efficasse à longue portée, ils deviennent inutiles au corps à corps.', - 'Les spartans sont les unités d\'infanterie militaires les plus évoluées militairement du CSNU mais également des Covenants. Ils sont équipés d\'une armure de type Mjolnir améliorant leurs capacités de combat, déjà exceptionnelles grâce à leur entraînement militaire depuis leur plus jeune âge, ainsi qu\'à leurs implants cybernétiques, les rendants d\'une grande efficacité inégalée au sein de l\'infanterie.', - 'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés et ainsi peut être changer l\'issue de la bataille.', - 'Les ingénieurs sont là pour réparer vos véhicules endommagés lors des affrontements. Ils peuvent réduire le nombre de vos pertes de véhicules lorsqu\'ils sont bien utilisés.', - 'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.'); - $casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squelette'); - $casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','exosquelettehbpb2.jpg'); - //$batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique', 'Module résidentiel', 'Arcologie', 'Centre commercial', 'Centre de loisirs', 'Centre administratif'); - $batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique', 'Module résidentiel', 'Arcologies', 'Bunker', 'Centre commercial', 'Centre loisir'); - $batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.', - 'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.', - 'Ce bâtiment use de l\'eau pour la décomposer et en extraire l\'hydrogène, la base de toutes vos productions énergétiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.', - 'La centrale solaire produit l\'énergie nécessaire au fonctionnement de vos usines. Elle fonctionne à partir d\'une technologie Forruner qui consiste à envoyer un rayon à la verticale pour capter tous les rayons du soleil qui le croise.', - 'La centrale énergétique fonctionne avec un principe assez dépassé. En effet, l\'énergie est produite par un réacteur à fusion qui en tournant produit de l\'énergie comme le ferait une dynamo. Bien que ce principe fût révolutionnaire à l\'époque, il fût rapidement dépassé par la centrale solaire qui permet de produire d\'avantage d\'énergie.', - 'Le centre de communication est un gigantesque relai de transmission envoyant des ondes entre les différents mondes connus et répertoriés de l\'univers. Grâce à lui, vous pourrez communiquer avec d\'autres administrateurs coloniaux afin de planifier ensemble des programmes d\'actions communs. Equipé d\'un radar, il vous permet de repérer les mouvements des flottes ennemies.', - 'Le centre de recherches est certainement l\'une des bâtisses les plus importantes que vous puissiez construire dans votre colonie. Vos chercheurs travailleront sans relâche aucun afin de mettre au point de nouvelles technologies vous assurant suprématie et victoire sur les champs de bataille. Chaque niveau dévellopé augmente la vitesse de recherche de vos technologies.', - 'Le chantier terrestre vous permet de construire tous les véhicules atmosphérique du type warthog ou scorpion. Il permet ainsi à vos troupes d\'accéder plus rapidement à un endroit et d\'avoir un avantage avec l\'armement de ces véhicules.', - 'Le chantier spatial permet de construire vôtre flotte de vaisseaux spatiaux. Généralement à la limite de l\'atmosphère d\'une planète il ne peut cependant se déplacer et doit impérativement rester en orbite. Le chantier spatial, bien que ressemblant à une station spatial, ne peut être détruit grâce à sa position qui lui confère un camouflage total.', - 'L\'académie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes expérimentés vous aideront à choisir de meilleures stratégies défensives ou offensives ou encore même économiques face aux différentes situations qui vous seront imposées. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs tâches.', - 'Comme toutes choses, vos ressources ont besoin d\'espace pour être stockées ; c\'est pourquoi ces énormes silos vous seront d\'une aide précieuse afin d\'y renfermer une grande quantité de matières premières pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources supplémentaires.', - 'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.', - '~#DESCRIPTION MANQUANTE#~ Habitation', - '~#DESCRIPTION MANQUANTE#~ Arcologies', - '~#DESCRIPTION MANQUANTE#~ Bunker', - '~#DESCRIPTION MANQUANTE#~ Centre commercial', - '~#DESCRIPTION MANQUANTE#~ Centre de loisirs', - '~#DESCRIPTION MANQUANTE#~ Centre administratif'); - //$batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info','habitation','arcologie','commercial','loisir','administration'); - $batimeni = array('mine_m.jpg','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg'); - $technolo = array( - array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'), - array('Maîtrise énergie niveau 1', 'Maîtrise énergie niveau 2', 'Maîtrise énergie niveau 3', 'Réacteur à combustion niveau 1', 'Réacteur à combustion niveau 2', 'Réacteur à combustion niveau 3', 'Réacteur à fusion niveau 1', 'Réacteur à fusion niveau 2', 'Réacteur à fusion niveau 3', 'Moteur subluminique niveau 1', 'Moteur subluminique niveau 2', 'Moteur subluminique niveau 3', 'Informatique niveau 1', 'Informatique niveau 2', 'Informatique niveau 3', 'IA niveau 1', 'IA niveau 2', 'IA niveau 3', 'Télécommunications niveau 1', 'Télécommunications niveau 2', 'Télécommunications niveau 3', 'Polymères radars niveau 1', 'Polymères radars niveau 2', 'Polymères radars niveau 3', 'Espionnage niveau 1', 'Espionnage niveau 2', 'Espionnage niveau 3', 'Contre-espionnage niveau 1', 'Contre-espionnage niveau 2', 'Contre-espionnage niveau 3'), - array('Constructions planétaires niveau 1', 'Constructions planétaires niveau 2', 'Constructions planétaires niveau 3', 'Construction optimisée', 'Ingénierie orbitale', 'Aménagement territorial niveau 1', 'Aménagement territorial niveau 2', 'Aménagement territorial niveau 3'), - array('Immigration coloniale niveau 1', 'Immigration coloniale niveau 2', 'Immigration coloniale niveau 3', 'Urbanisme niveau 1', 'Urbanisme niveau 2', 'Urbanisme niveau 3', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Sciences politiques niveau 1', 'Sciences politiques niveau 2', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 1', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'), - - array('Projectile Haut Densité niveau 1', 'Projectile Haut Densité niveau 2', 'Projectile Haut Densité niveau 3', 'Assistance de visée niveau 1', 'Assistance de visée niveau 2', 'Assistance de visée niveau 3', 'Guidage laser niveau 1', 'Guidage laser niveau 2', 'Guidage laser niveau 3', 'Condensateurs rapides niveau 1', 'Condensateurs rapides niveau 2', 'Condensateurs rapides niveau 3', 'Balistique avancée niveau 1', 'Balistique avancée niveau 2', 'Balistique avancée niveau 3', 'Accélération magnétique niveau 1', 'Accélération magnétique niveau 2', 'Accélération magnétique niveau 3'), - array('Robotique niveau 1', 'Robotique niveau 2', 'Robotique niveau 3', 'Ingénierie atomique niveau 1', 'Ingénierie atomique niveau 2', 'Ingénierie atomique niveau 3', 'Nano-régénération niveau ', 'Nano-régénération niveau 2', 'Nano-régénération niveau 3', 'Squelette renforcé niveau 1', 'Squelette renforcé niveau 2', 'Squelette renforcé niveau 3', 'Armatures enrichies niveau 1', 'Armatures enrichies niveau 2', 'Armatures enrichies niveau 3', 'Composés avancés niveau 1', 'Composés avancés niveau 2', 'Composés avancés niveau 3', 'Alliage niveau 1', 'Alliage niveau 2', 'Alliage niveau 3', 'Alliage avancé niveau 1', 'Alliage avancé niveau 2', 'Alliage avancé niveau 3', 'Armure moléculaire niveau 1', 'Armure moléculaire niveau 2', 'Armure moléculaire niveau 3'), - array('Tourelle légère M202 XP', 'Canon de défense automatique', 'Artillerie lourde de 440mm', 'Lance-missiles Archer', 'Batterie de missiles Anaconda', 'Silo de missiles Shiva', 'Canon à accélération magnétique'), - array('Prototype Intercepteur Longsword', 'Prototype Bombardier Longsword', 'Corvette de classe Mako', 'Prototype de Frégate', 'Récupération', 'Prototype de Destroyer', 'Prototype de Croiseur de classe Halcyon', 'Prototype de Croiseur de classe Marathon', 'Prototype de Porte-vaisseaux', 'Prototype de Super Porte-Vaisseaux', 'Prototype de Vaisseau d\'exfiltration de classe Black Cat', 'Prototype de Super canon à accélération magnétique', 'Bunker souterrain', 'Bunker souterrain', 'Bunker souterrain'), - array('Expansion niveau 1', 'Expansion niveau 2', 'Expansion niveau 3', 'Expansion niveau 4', 'Expansion niveau 5', 'Expansion niveau 6', 'Expansion niveau 7', 'Expansion niveau 8', 'Expansion niveau 9', 'Expansion niveau 10', 'Expansion niveau 11', 'Expansion niveau 12', 'Expansion niveau 13', 'Expansion niveau 14', 'Expansion niveau 15', 'Expansion niveau 16', 'Expansion niveau 17', 'Expansion niveau 18') - ); - $technode = array( 'Le résultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le résultat d\'années de travail acharné pour pouvoir en arriver à cette grande performance technique. Les IA sont des entités non biologiques dotées du pouvoir de la pensée. Développer cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, créatives et réactives.', - 'Ce système très ancien et usé par bien des militaires est utilisé pour la détection et l\'imagerie d\'objets faisant appel à des impulsions d\'ondes électromagnétiques à haute fréquence et sert à déterminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa précision.', - 'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.', - 'La résistance de la coque de vos vaisseaux est plus que primordiale si vous tenez à remporter vos batailles, et encore plus avec les armes Covenantes capables de réduire en miettes même les plus résistants des vaisseaux spatiaux. C\'est la raison pour laquelle vos scientifiques, si vous leur en donnez l\'ordre, travailleront avec application à l\'élaboration de nouvelles formules pour créer des alliages métalliques les plus résistants.', - 'L\'énergie est la base de tout. Sans énergie, pas de voyages stellaires ni même de quoi faire marcher vos installations tout simplement. C\'est pourquoi l\'étude de nouvelles façons de produire de l\'énergie est vitale pour vos planètes et les propulseurs de vos vaisseaux.', - 'Le plus simple de tout les réacteurs, aussi vieux que le monde lui-même ! Equipés sur presque tout vos vaisseaux de base, cette technologie, certes basique, vous aidera à explorer l\'univers mais aussi, se trouvant être bien évidemment la base de la propulsion, vous permettra de découvrir de nouvelles techniques de propulsion irrémédiablement toujours plus puissantes et efficaces.', - 'Bien plus efficaces que de simples réacteurs à combustion, la fusion nucléaire est un processus où deux noyaux atomiques s\'assemblent pour former un noyau plus lourd. La fusion de noyaux légers dégage d\'énormes quantités d\'énergie provenant de l\'attraction entre les nucléons due à une forte interaction. Personne ne pourrait se passer de ce type d\'énergie lors de ses voyages dans le cosmos.', - 'Cette technologie basée sur les réacteurs Covenants utilise la force électromagnétique résultant de l\'interaction entre un courant électrique et un champ magnétique pour accélérer un gaz ionisé appelé plasma. Bien plus efficace que tous les moyens de propulsions possibles, cette technologie révolutionnaire, très coûteuse, est un moyen efficace de parcourir de grandes distances en peu de temps.', - 'Depuis l\'aube des temps, chaque être vivant et pensant n\'a jamais cessé de chercher de nouvelles solutions en dévellopant les sciences médicales pour tenter d\'échapper à la mort et aux épidémies qui s\'abbatent sur lui. Seulement, aujourd\'hui, ce ne sont plus les maladies qui importent, mais plutot les blessures de guerre. Plus votre médecine sera éclatante, plus vos hommes de soins connaîtront de choses pour soigner vos blessés.', - 'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.', - 'Ces formidables combattants constituent l\'élite de vos forces terrestres. Entraînés au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont également subis plusieurs séries de modifications biologiques afin d\'améliorer leurs capacités physiques.', - 'Les bases de données du CSNU enregistrent des informations de jours en jours. Toutefois il arrive que celles-ci parviennent à saturation et ne peuvent ainsi traiter qu\'un nombre limité d\'informations. Afin de résoudre ce problème, il est possible d\'améliorer la capacité de vos unités de stockage afin de gérer plus d\'informations. Chaque évolution de cette technologie vous permet de rajouter une unité supplémentaire dans votre file d\'attente.'); - $technoli = array('IA4.jpg','radar7zr.jpg','arme.png','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg','../humain_na.jpg'); - - $nomvaisn = array('Cargos de classe Parabola', 'Cargos de classe Laden', 'Vaisseau de colonisation de classe Odyssey','Recycleur','Intercepteur Longsword', 'Bombardier Longsword', 'Corvette de classe Mako', 'Frégate', 'Destroyer', 'Croiseur de classe Halcyon', 'Croiseur de classe Marathon', 'Porte-vaisseaux', 'Super Porte-Vaisseaux', 'Vaisseau d\'exfiltration de classe Black Cat'); - $nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','../humain_na.jpg','longsworduf9.jpg','../humain_na.jpg','../humain_na.jpg','frgatecopiegw1.jpg','../humain_na.jpg','halcyo15.jpg','qsu169.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg'); - $nomvaisd = array( 'Ces cargos de taille conséquente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, très manÅ“uvrables mais peu résistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.', - 'Ces cargos de taille massive permettent le transport d\'une énorme quantité de ressources. Ils sont plus résistants que leurs homologues de classe Parabola, mais sont néanmoins les cibles prioritaires des chasseurs ennemis visant à faire le plus de pertes dans le camp adverse.', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~', - '~#DESCRIPTION MANQUANTE#~'); - $nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','recycleur(s)','intercepteur(s) Longsword','bombardier(s) Longsword','corvette(s) de classe Mako','Frégates','destroyer(s)','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte-vaisseaux','supers porte-vaisseaux','vaisseau(x) d\'exfiltration de classe Black Cat'); - - $nomterra = array( 'sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT', - 'tourelle(s) légère(s) M202 XP','lance(s)-missiles Archer','canon(s) de défense automatique(s)','batterie(s) de missiles Anaconda','artillerie(s) lourde(s) de 440mm', 'silo(s) de missiles Shiva', 'canon(s) à accélération magnétique', 'super(s) canon à accélération magnétique'); - $nomterrn = array( 'Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT', - 'Tourelle légère M202 XP','Lance-missiles Archer','Canon de défense automatique','Batterie de missiles Anaconda','Artillerie lourde de 440mm', 'Silo de missiles Shiva', 'Canon à accélération magnétique', 'Super canon à accélération magnétique'); - $nomterde = array( 'Véhicule à propulsion verticale permettant des attaques extrêmement rapides et destructrices grâce à ses six tubes lance-missiles, ses deux mitrailleuses légères, et sa mitrailleuse lourde frontale. Ces vaisseaux d\'assaut rapide sont de véritables broyeurs de tôle grâce à leurs 6 tubes lance-missiles et sont capables de détruire des véhicules et des positions fortement blindées.', - 'Véhicule aérien de transport léger permettant le transport rapide de troupes à des endroits stratégiques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l\'acheminement de troupes et de munitions rapidement.', - 'Vaisseau suborbital très rapide apte tant au combat aérien rapproché qu\'au bombardement ciblé. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou aériennes. Ils sont néanmoins capables de combattre en combat aérien rapproché grâce à leurs missiles thermo guidés et sont utilisés lors de bombardements de cibles mineures.', - 'Véhicule aérien de transport lourd permettant le transport en masse de troupes ou de véhicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces véhicules de soutien aérien lourd sont surtout utilisés lors d\'offensives nécessitant un déploiement en masse d\'unités blindées et de munitions au plus près des lignes adverses.', - 'Véhicule d\'attaque léger permettant des assauts rapides et efficaces, ainsi que le transport léger de troupes. Ces véhicules sont la base des véhicules terrestres du CSNU.', - 'Véhicule léger équipé d\'un canon à accélération magnétique (CAM), très efficace contre du personnel, des véhicules moyennement blindés, ou bien contre des véhicules aériens légers. Les Warthog M12G1 sont très répandus et surtout utilisés lors d\'offensives sur des cibles disposant d\'un appui aérien ou terrestre léger.', - 'Véhicule léger, armé d\'un lance-missiles anti-véhicule permettant des assauts rapides contre des véhicules blindés ou contre des positions fortifiées. Ils sont surtout utilisés en cas d\'attaques de postes avancés.', - 'Tank blindé anti-véhicules. Permet l\'attaque de cibles fortifiées grâce à ses balles perforantes de gros calibre. Ces tanks sont utilisés lors d\'assauts massifs sur des bases fortifiées et vitales à l\'ennemi.', - - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ ', - '~#DESCRIPTION MANQUANTE#~ '); - $nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg', - '../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg'); - } - else { - $template->assign("race", "humain"); - erreur('Erreur dans le fichier de race, rapporter le bug. Veuillez indiquer dans le rapport de bug l\'adresse de la page sur laquelle vous vous trouver.'); - } -?> \ No newline at end of file diff --git a/game/signatures/ARIAL.TTF b/game/signatures/ARIAL.TTF deleted file mode 100644 index ff0815c..0000000 Binary files a/game/signatures/ARIAL.TTF and /dev/null differ diff --git a/game/signatures/AriBlk.TTF b/game/signatures/AriBlk.TTF deleted file mode 100644 index 951407a..0000000 Binary files a/game/signatures/AriBlk.TTF and /dev/null differ diff --git a/game/signatures/CALIBRI.TTF b/game/signatures/CALIBRI.TTF deleted file mode 100644 index 2fede68..0000000 Binary files a/game/signatures/CALIBRI.TTF and /dev/null differ diff --git a/game/signatures/covenantuserbarus1.png b/game/signatures/covenantuserbarus1.png deleted file mode 100644 index ffb68bf..0000000 Binary files a/game/signatures/covenantuserbarus1.png and /dev/null differ diff --git a/game/signatures/covi.png b/game/signatures/covi.png deleted file mode 100644 index 56a2735..0000000 Binary files a/game/signatures/covi.png and /dev/null differ diff --git a/game/signatures/hum.png b/game/signatures/hum.png deleted file mode 100644 index 09b72bb..0000000 Binary files a/game/signatures/hum.png and /dev/null differ diff --git a/game/signatures/humainuserbarhz2.png b/game/signatures/humainuserbarhz2.png deleted file mode 100644 index db12aba..0000000 Binary files a/game/signatures/humainuserbarhz2.png and /dev/null differ diff --git a/game/signatures/mixte1userbarju7.png b/game/signatures/mixte1userbarju7.png deleted file mode 100644 index e211382..0000000 Binary files a/game/signatures/mixte1userbarju7.png and /dev/null differ diff --git a/game/signatures/userbarallicopygs1.png b/game/signatures/userbarallicopygs1.png deleted file mode 100644 index 9d86c55..0000000 Binary files a/game/signatures/userbarallicopygs1.png and /dev/null differ diff --git a/game/tables.php b/game/tables.php deleted file mode 100644 index e4172de..0000000 --- a/game/tables.php +++ /dev/null @@ -1,58 +0,0 @@ - \ No newline at end of file diff --git a/game/vars.php b/game/vars.php deleted file mode 100644 index 38f7f91..0000000 --- a/game/vars.php +++ /dev/null @@ -1,991 +0,0 @@ -values['race'])) $race = "none"; - elseif (empty($race)) $race = $sess->values['race']; - include(_FCORE."../game/noms.php"); -} -$nanite = 0; - -/* - * Défenses - */ - //Attaque - $defense_at = array(200,800,1500,500,4500,15000,10000,25000); - //Défense (bouclier) - $defense_bc = array(100,300,600,400,1000,4000,10000,20000); - //Coque (pv) - $defense_pv = array(1000,3000,6000,1800,4000,1000,15000,25000); - - //Débris de métal - $defense_md = array(300,300,300,300,300,300,300,300); - //Débris de cristal - $defense_cd = array(300,300,300,300,300,300,300,300); - - //Rapide fire (nombre d'attaque par phase envers un vaisseau) - $defense_rf = array( - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1) - ); - -/* - * Vaisseaux - */ - //Nombre maximal de ressources embarqué - $nomvais_rs = array(10000,50000,25000,25000,100,50,200,400,800,1000,1500,50000,100000,500); - - //Coefficient vitesse - $nomvais_vitesseP = array(5,5,6,5,10,8,5,7,6,5,4,2,1,6); - //Temps de préparation - $nomvais_vitesseS = array(5,5,6,5,4,4,5,7,6,5,4,3,2,10); - //Temps de chauffe - $nomvais_vitesseG = array(5,5,6,5,1,1,5,7,7,7,6,4,3,10); - - //Attaque - $nomvais_at = array(50,50,50,50,150,200,400,900,1500,3500,6000,7000,10000,100); - //Défense (bouclier) - $nomvais_bc = array(0,0,0,50,0,200,500,1250,2500,6000,5000,8000,10000,800); - //Coque (pv) - $nomvais_pv = array(1000,1500,1000,1000,1000,1000,2500,5500,9000,15000,25000,35000,50000,3000); - //Débris de métal - $nomvais_md = array(300,300,300,300,300,300,300,300,300,300,300,36000); - //Débris de cristal - $nomvais_cd = array(300,300,300,300,300,300,300,300,300,300,300,24000); - //Rapide fire (nombre d'attaque par phase envers un vaisseau) - $nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Cargos petit - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Cargos grand - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Vaisseaux de colonisation - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Espionnage - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Recycleurs - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Longsword/Seraph - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Frégate - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Croiseurs de classe Halcyon - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Croiseurs de classe Marathon - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Porte vaisseaux - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Station orbitale - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Super porte-vaisseaux - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Super porte-vaisseaux - array(1,1,1,1,1,1,1,1,1,1,1,1,1,1) //Super porte-vaisseaux - ); - -$alli_batimentVAR = array('centre', 'port', 'forge', 'urgence', 'propagande', 'economie'); -$alli_batimentLIMIT = array(5, 5, 5, 5, 5, 5); -$alli_batimentCALC = array( -array( - '$a = ceil(pow(1.5,$n)*68);', - '$b = ceil(pow(1.5,$n)*17);', - '$c = 0;', - '$sec = (ceil(1.02*(3/(1+$planete->batiments[11]))*pow(1.5,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;' - ), -array( - '$a = ceil(pow(1.6,$n)*53);', - '$b = ceil(pow(1.6,$n)*27);', - '$c = 0;', - '$sec = (ceil(1.2*(3/(1+$planete->batiments[11]))*pow(1.55,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;' - ), -array( - '$a = ceil(pow(1.5,$n)*242);', - '$b = ceil(pow(1.5,$n)*72);', - '$c = 0;', - '$sec = (ceil(1.5*(3/(1+$planete->batiments[11]))*pow(1.624,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;' - ), -array( - '$a = ceil(pow(1.5,$n)*92);', - '$b = ceil(pow(1.5,$n)*37);', - '$c = 0;', - '$sec = (ceil(1.36*(3/(1+$planete->batiments[11]))*pow(1.597,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;' - ), -array( - '$a = ceil(pow(1.73,$n)*800);', - '$b = ceil(pow(1.73,$n)*420);', - '$c = ceil(pow(1.68,$n)*285);', - '$sec = (ceil(1.8*(3/(1+$planete->batiments[11]))*pow(1.7,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;' - ), -array( - '$a = ceil(pow(2,$planete->batiments[5])*750);', - '$b = ceil(pow(2,$planete->batiments[5])*500);', - '$c = 0;', - '$sec = ceil((pow(2,$planete->batiments[5])*720)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));' - ) -); -$alli_batimentTECH = array( - 0, - 0, - 0, - 0, -array( - array($batiment[3], 'centrale_s', 12) - ), - 0 -); -$batimentVAR = array('mine_m','mine_c','mine_h','centrale_s','centrale_f','radar','labo','chantier_terrestre','chantier_spatial','caserne','silo','centre_info','habitation','arcologies','bunker','commercial','loisir','administration'); -$batimentCALC = array( - array( - '$a = ceil(pow(1.5,$n)*68);', - '$b = ceil(pow(1.5,$n)*17);', - '$c = 0;', - '$sec = pow(1.5,$n)*6;' - ), - array( - '$a = ceil(pow(1.6,$n)*53);', - '$b = ceil(pow(1.6,$n)*27);', - '$c = 0;', - '$sec = pow(1.55,$n)*6;' - ), - array( - '$a = ceil(pow(1.5,$n)*242);', - '$b = ceil(pow(1.5,$n)*72);', - '$c = 0;', - '$sec = pow(1.624,$n)*6;' - ), - array( - '$a = ceil(pow(1.5,$n)*92);', - '$b = ceil(pow(1.5,$n)*37);', - '$c = 0;', - '$sec = pow(1.597,$n)*6;' - ), - array( - '$a = ceil(pow(1.73,$n)*800);', - '$b = ceil(pow(1.73,$n)*420);', - '$c = ceil(pow(1.68,$n)*285);', - '$sec = pow(1.7,$n)*6;' - ), - array( - '$a = ceil(pow(2,$planete->batiments[5])*750);', - '$b = ceil(pow(2,$planete->batiments[5])*500);', - '$c = 0;', - '$sec = ceil(pow(2,$planete->batiments[5])*720);' - ), - array( - '$a = ceil(pow(2,$planete->batiments[6])*200);', - '$b = ceil(pow(2,$planete->batiments[6])*150);', - '$c = 0;', - '$sec = ceil(pow(2,$planete->batiments[6])*720);' - ), - array( - '$a = ceil(pow(2,$planete->batiments[7])*520);', - '$b = ceil(pow(2,$planete->batiments[7])*380);', - '$c = 0;', - '$sec = ceil(pow(2,$planete->batiments[7])*420);' - ), - array( - '$a = ceil(pow(2,$planete->batiments[8])*600);', - '$b = ceil(pow(2,$planete->batiments[8])*450);', - '$c = 0;', - '$sec = ceil(pow(2,$planete->batiments[8])*600);' - ), - array( - '$a = ceil(pow(2,$planete->batiments[9])*200);', - '$b = ceil(pow(2,$planete->batiments[9])*100);', - '$c = 0;', - '$sec = ceil(pow(2,$planete->batiments[9])*300);' - ), - array( - '$a = ceil(pow(2,$planete->batiments[10])*400);', - '$b = ceil(pow(2,$planete->batiments[10])*260);', - '$c = 0;', - '$sec = ceil(pow(2,$planete->batiments[10])*1200);' - ), - array( - '$a = ceil(pow(1.7,$planete->batiments[11])*600);', - '$b = ceil(pow(1.7,$planete->batiments[11])*420);', - '$c = ceil(pow(1.7,$planete->batiments[11])*100);', - '$sec = ceil((pow(1.9,$planete->batiments[11])*800)/((0.0025*$planete->casernes[7])+1));' - ), - //Module résidentiel - array( - '$a = ceil(pow($planete->batiments[12],2.075)*1000+1500);', - '$b = ceil(pow($planete->batiments[12],1.8)*1000+1000);', - '$c = 0;', - '$sec = ceil(pow($planete->batiments[12],2.5)*60+4)*60;' - ), - array( - '$a = ceil(pow($planete->batiments[13],2.8)*1000+299000);', - '$b = ceil(pow($planete->batiments[13],2.5)*1000+149000);', - '$c = 0;', - '$sec = ceil(pow($planete->batiments[13],1.6)*60+60)*60;' - ), - array( - '$a = ceil(pow($planete->batiments[14],2)*1200+140000);', - '$b = ceil(pow($planete->batiments[14],2)*900+99000);', - '$c = ceil(pow($planete->batiments[14],2)*500+30000);', - '$sec = ceil(pow($planete->batiments[14],2)*5+3)*60;' - ), - array( - '$a = ceil(pow($planete->batiments[15],2)*1000+80000);', - '$b = ceil(pow($planete->batiments[15],2)*750+65000);', - '$c = 0;', - '$sec = pow($planete->batiments[15],2)*240;' - ), - array( - '$a = ceil(pow($planete->batiments[16],2)*850+60000);', - '$b = ceil(pow($planete->batiments[16],2)*650+50000);', - '$c = 0;', - '$sec = pow($planete->batiments[16],2)*180;' - ), - array( - '$a = ceil(pow($planete->batiments[17],2.5)*500 -300);', - '$b = ceil(pow($planete->batiments[17],2.4)*400-250);', - '$c = 0;', - '$sec = pow($planete->batiments[17],1.65)*3600;' - ) -); -$batimentTECH = array( - 0, - 0, - 0, - 0, - array( - array($batiment[3], 'centrale_s', 12) - ), - 0, - 0, - array( - array($technolo[2][3], 'techno_inge2', 9) - ), - array( - array($technolo[2][4], 'techno_inge2', 17) - ), - 0, - 0, - array( - array($technolo[1][12], 'techno_inge', 4096) - ), - 0, - 0, - array( - array($technolo[7][12], 'techno_proj', 4096) - ), - array( - array($technolo[7][11], 'techno_proj', 2048) - ), - array( - array($technolo[3][6], 'techno_poli', 64) - ), - array( - array($technolo[3][7], 'techno_poli', 128) - ), - 0 -); - -$technoloVAR = array('informatique','detection','armement','blindage','energie_t','reacteur','reacteur_f','reacteur_ff','medecine','tactique','spartan','prodfile'); -//$technoloVAR = array('techno_indu','techno_inge','techno_poli','techno_arme','techno_defe','techno_proj','techno_expansionnsion'); -$technoloCALC = array( - array( - '$a = 0;', - '$b = ceil(pow(2,$n)*500);', - '$c = ceil(pow(2,$n)*150);', - '$sec = ceil((420*2*($planete->technologies[0]+1))/pow(1.25,($planete->batiments[6]-1)));' - ), - array( - '$a=ceil(pow(2,$n)*500);', - '$b=ceil(pow(2,$n)*750);', - '$c=ceil(pow(2,$n)*100);', - '$sec = ceil((600*2*($planete->technologies[1]+1))/pow(1.25,($planete->batiments[6]-2)));' - ), - array( - '$a=ceil(pow(2,$n)*2500);', - '$b=ceil(pow(2,$n)*500);', - '$c = 0;', - '$sec = ceil((1500*2*($planete->technologies[2]+1))/pow(1.25,($planete->batiments[6]-5)));' - ), - array( - '$a=ceil(pow(2,$n)*4000);', - '$b=ceil(pow(2,$n)*1500);', - '$c = 0;', - '$sec = ceil((1710*2*($planete->technologies[3]+1))/pow(1.25,($planete->batiments[6]-4)));' - ), - array( - '$a=ceil(pow(2,$n)*2000);', - '$b=ceil(pow(2,$n)*1500);', - '$c=ceil(pow(2,$n)*300);', - '$sec = ceil((900*2*($planete->technologies[4]+1))/pow(1.25,($planete->batiments[6]-2)));' - ), - array( - '$a=ceil(pow(2,$n)*1400);', - '$b=ceil(pow(2,$n)*400);', - '$c = 0;', - '$sec = ceil((510*2*($planete->technologies[5]+1))/pow(1.25,($planete->batiments[6]-2)));' - ), - array( - '$a=ceil(pow(2,$n)*3000);', - '$b=ceil(pow(2,$n)*2100);', - '$c=ceil(pow(2,$n)*750);', - '$sec = ceil((1650*2*($planete->technologies[6]+1))/pow(1.25,($planete->batiments[6]-4)));' - ), - array( - '$a=ceil(pow(2,$n)*5000);', - '$b=ceil(pow(2,$n)*4000);', - '$c=ceil(pow(2,$n)*1500);', - '$sec = ceil((2400*2*($planete->technologies[7]+1))/pow(1.25,($planete->batiments[6]-6)));' - ), - array( - '$a=ceil(pow(2,$n)*800);', - '$b=ceil(pow(2,$n)*1000);', - '$c = 0;', - '$sec = ceil((360*2*($planete->technologies[8]+1))/pow(1.25,($planete->batiments[6]-1)));' - ), - array( - '$a=ceil(pow(2,$n)*2600);', - '$b=ceil(pow(2,$n)*2600);', - '$c = 0;', - '$sec = ceil((4410*2*($planete->technologies[9]+1))/pow(1.25,($planete->batiments[6]-3)));' - ), - array( - '$a=ceil(pow(3,$n)*5200);', - '$b=ceil(pow(3,$n)*4250);', - '$c=ceil(pow(3,$n)*850);', - '$sec = ceil((5000*2*($planete->technologies[10]+1))/pow(1.25,($planete->batiments[6]-8)));' - ), - array( - '$a=ceil(pow(4,$n)*6200);', - '$b=ceil(pow(5,$n)*5250);', - '$c=ceil(pow(3,$n)*4550);', - '$sec = ceil(pow(3,$n)*5560/pow(1.25,($planete->batiments[6]-1)));' - ) -); -$technoloTECH = array( - array( - array($batiment[6], 'labo', 1) - ), - array( - array($batiment[6],'labo', 2) - ), - array( - array($batiment[6], 'labo', 5) - ), - array( - array($batiment[6], 'labo', 4) - ), - array( - array($batiment[6], 'labo', 2) - ), - array( - array($batiment[6], 'labo', 2) - ), - array( - array($batiment[6], 'labo', 4) - ), - array( - array($batiment[6], 'labo', 6) - ), - array( - array($batiment[6], 'labo', 1) - ), - array( - array($batiment[6], 'labo', 3) - ), - array( - array($batiment[6], 'labo', 8) - ), - array( - array($batiment[6], 'labo', 10) - ) -); -$casernenVAR = array('soldat1','soldat2','soldat3','soldat4','sniper','spartan','medecin','ingenieur','soldat_lourd'); -$casernenCALC = array( - array( - 80, - 45, - 0, - '$sec = ceil(60/pow(1.25,($planete->batiments[9]-1)));' - ), - array( - 110, - 90, - 0, - '$sec = ceil(240/pow(1.25,($planete->batiments[9]-2)));' - ), - array( - 150, - 105, - 20, - '$sec = ceil(240/pow(1.25,($planete->batiments[9]-3)));' - ), - array( - 220, - 150, - 0, - '$sec = ceil(720/pow(1.25,($planete->batiments[9]-5)));' - ), - array( - 180, - 100, - 0, - '$sec = ceil(300/pow(1.25,($planete->batiments[9]-3)));' - ), - array( - 25000, - 10000, - 0, - '$sec = ceil(29700/pow(1.25,($planete->batiments[9]-10)));' - ), - array( - 100, - 100, - 0, - '$sec = ceil(90/pow(1.25,($planete->batiments[9]-2)));', - 0 - ), - array( - 90, - 105, - 0, - '$sec = ceil(90/pow(1.25,($planete->batiments[9]-2)));' - ), - array( - 300, - 250, - 0, - '$sec = ceil(900/pow(1.25,($planete->batiments[9]-5)));' - ) -); -$casernenTECH = array( - array( - array($batiment[9], 'caserne', 1) - ), - array( - array($batiment[9], 'caserne', 2) - ), - array( - array($batiment[9], 'caserne', 3) - ), - array( - array($batiment[9], 'caserne', 5) - ), - array( - array($batiment[9], 'caserne', 3) - ), - array( - array($batiment[9], 'caserne', 10) - ), - array( - array($batiment[9], 'caserne', 2) - ), - array( - array($batiment[9], 'caserne', 2) - ), - array( - array($batiment[9], 'caserne', 5) - ) -); -$nomterrnVAR = array('vais_0','vais_1','vais_2','vais_3','vcl_1','vcl_2','vcl_3','vcl_4','def_1','def_2','def_3','def_4','def_5','def_6','def_7','def_8'); -$nomterrnCALC = array( - array( - 500, - 300, - 0, - '$sec = ceil(720/pow(1.25,($planete->batiments[7]-1)));', - 0 - ), - array( - 680, - 420, - 0, - '$sec = ceil(2040/pow(1.25,($planete->batiments[7]-3)));', - 0 - ), - array( - 1000, - 600, - 0, - '$sec = ceil(7200/pow(1.25,($planete->batiments[7]-4)));', - 0 - ), - array( - 1400, - 950, - 0, - '$sec = ceil(3960/pow(1.25,($planete->batiments[7]-6)));', - 0 - ), - array( - 400, - 240, - 0, - '$sec = ceil(600/pow(1.25,($planete->batiments[7]-1)));', - 0 - ), - array( - 480, - 260, - 0, - '$sec = ceil(1080/pow(1.25,($planete->batiments[7]-2)));', - 0 - ), - array( - 600, - 420, - 0, - '$sec = ceil(2160/pow(1.25,($planete->batiments[7]-3)));', - 0 - ), - array( - 1000, - 500, - 0, - '$sec = ceil(4680/pow(1.25,($planete->batiments[7]-5)));', - 0 - ), - array( - 430, - 230, - 0, - '$sec = ceil(1080/pow(1.25,($planete->batiments[7]-1)));', - 1 - ), - array( - 1250, - 650, - 80, - '$sec = ceil(2040/pow(1.25,($planete->batiments[7]-3)));', - 1 - ), - array( - 2500, - 1750, - 100, - '$sec = ceil(7200/pow(1.25,($planete->batiments[7]-4)));', - 1 - ), - array( - 6000, - 3750, - 120, - '$sec = ceil(3960/pow(1.25,($planete->batiments[7]-7)));', - 1 - ), - array( - 15000, - 9500, - 1500, - '$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));', - 1 - ), - array( - 15000, - 9500, - 1500, - '$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));', - 1 - ), - array( - 15000, - 9500, - 1500, - '$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));', - 1 - ), - array( - 15000, - 9500, - 1500, - '$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));', - 1 - ) -); -$nomterrnTECH = array( - array( - array($batiment[7], 'chantier_terrestre', 1) - ), - array( - array($batiment[7], 'chantier_terrestre', 3) - ), - array( - array($batiment[7], 'chantier_terrestre', 4) - ), - array( - array($batiment[7], 'chantier_terrestre', 6) - ), - array( - array($batiment[7], 'chantier_terrestre', 1) - ), - array( - array($batiment[7], 'chantier_terrestre', 2) - ), - array( - array($batiment[7], 'chantier_terrestre', 3) - ), - array( - array($batiment[7], 'chantier_terrestre', 5) - ), - //Défenses - array( - array($batiment[7], 'chantier_terrestre', 1), - array($technolo[6][0], 'techno_defe2', 1) - ), - array( - array($batiment[7], 'chantier_terrestre', 3), - array($technolo[6][3], 'techno_defe2', 8) - ), - array( - array($batiment[7], 'chantier_terrestre', 4), - array($technolo[6][1], 'techno_defe2', 2) - ), - array( - array($batiment[7], 'chantier_terrestre', 4), - array($technolo[6][4], 'techno_defe2', 16) - ), - array( - array($batiment[7], 'chantier_terrestre', 8), - array($technolo[6][2], 'techno_defe2', 4) - ), - array( - array($batiment[7], 'chantier_terrestre', 8), - array($technolo[6][5], 'techno_defe2', 32) - ), - array( - array($batiment[7], 'chantier_terrestre', 8), - array($technolo[6][6], 'techno_defe2', 64) - ), - array( - array($batiment[7], 'chantier_terrestre', 10), - array($technolo[7][11], 'techno_proj', 2048) - ) -); -$nomvaisnVAR = array('vaisseau_1','vaisseau_2','vaisseau_3','vaisseau_4','vaisseau_5','vaisseau_6','vaisseau_7','vaisseau_8','vaisseau_9','vaisseau_10','vaisseau_11','vaisseau_12','vaisseau_13','vaisseau_14'); -//Type de réacteur : 0 : Réacteur à combustion, 1 : Réacteur à fusion, 2 : Réacteur à fusion de type II -$nomvaisnREA = array(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2); -$nomvaisnCALC = array( - array( - 1000, - 800, - 0, - '$sec = ceil(1080/pow(1.25,($planete->batiments[8]-1)));' - ), - array( - 4000, - 3000, - 0, - '$sec = ceil(6300/pow(1.25,($planete->batiments[8]-5)));' - ), - array( - 4000, - 3000, - 0, - '$sec = ceil(6300/pow(1.25,($planete->batiments[8]-5)));' - ), - array( - 9000, - 9000, - 1000, - '$sec = ceil(8280/pow(1.25,($planete->batiments[8]-5)));' - ), - array( - 9000, - 9000, - 1000, - '$sec = ceil(8280/pow(1.25,($planete->batiments[8]-5)));' - ), - array( - 1000, - 1200, - 100, - '$sec = ceil(1440/pow(1.25,($planete->batiments[8]-3)));' - ), - array( - 15000, - 9000, - 1000, - '$sec = ceil(7380/pow(1.25,($planete->batiments[8]-5)));' - ), - array( - 1800, - 1000, - 0, - '$sec = ceil(1200/pow(1.25,($planete->batiments[8]-1)));' - ), - array( - 2550, - 1350, - 65, - '$sec = ceil(4680/pow(1.25,($planete->batiments[8]-3)));' - ), - array( - 12950, - 6900, - 100, - '$sec = ceil(16800/pow(1.25,($planete->batiments[8]-6)));' - ), - array( - 26000, - 16400, - 1600, - '$sec = ceil(18060/pow(1.25,($planete->batiments[8]-6)));' - ), - array( - 60000, - 40000, - 3000, - '$sec = ceil(32400/pow(1.25,($planete->batiments[8]-8)));' - ), - array( - 500000, - 400000, - 250000, - '$sec = ceil(117000/pow(1.25,($planete->batiments[8]-12)));' - ), - array( - 500000, - 400000, - 250000, - '$sec = ceil(117000/pow(1.25,($planete->batiments[8]-12)));' - ) -); -$nomvaisnTECH = array( - array( - array($batiment[8], 'chantier_spatial', 1), - array($technolo[0][3], 'techno_indu', 8) - ), - array( - array($batiment[8], 'chantier_spatial', 5), - array($technolo[0][3], 'techno_indu', 8), - array($technolo[1][6], 'techno_inge', 64) - ), - array( - array($batiment[8], 'chantier_spatial', 5), - array($technolo[8][0], 'techno_expansion', 1) - ), - array( - array($batiment[8], 'chantier_spatial', 5), - array($technolo[7][4], 'techno_proj', 16) - ), - array( - array($batiment[8], 'chantier_spatial', 5), - array($technolo[7][0], 'techno_proj', 1) - ), - array( - array($batiment[8], 'chantier_spatial', 3), - array($technolo[7][1], 'techno_proj', 2) - ), - array( - array($batiment[8], 'chantier_spatial', 5), - array($technolo[7][2], 'techno_proj', 4) - ), - array( - array($batiment[8], 'chantier_spatial', 1), - array($technolo[7][3], 'techno_proj', 8) - ), - array( - array($batiment[8], 'chantier_spatial', 3), - array($technolo[7][5], 'techno_proj', 32) - ), - array( - array($batiment[8], 'chantier_spatial', 6), - array($technolo[7][6], 'techno_proj', 64) - ), - array( - array($batiment[8], 'chantier_spatial', 6), - array($technolo[7][7], 'techno_proj', 128) - ), - array( - array($batiment[8], 'chantier_spatial', 8), - array($technolo[7][8], 'techno_proj', 256) - ), - array( - array($batiment[8], 'chantier_spatial', 10), - array($technolo[7][9], 'techno_proj', 512) - ), - array( - array($batiment[8], 'chantier_spatial', 10), - array($technolo[7][10], 'techno_proj', 1024) - ) -); -$coeffVAR = array('coeff_mine_m', 'coeff_mine_c', 'coeff_mine_h', 'coeff_centrale_s', 'coeff_centrale_f'); -$ressoVAR = array('contenu_metal', 'contenu_cristal', 'contenu_hydrogene'); - -//Nouvel arbre de technologie -$technologiesVAR = array("techno_indu", "techno_inge", "techno_inge2", "techno_poli", "techno_arme", "techno_defe", "techno_defe2", "techno_proj", "techno_expansion"); -$technologiesCALC = array( - //Industrie - array( - array(1, 0, 1000, 54000), - array(2, 1, 2000, 90000), - array(4, 3, 4000, 126000), - array(8, 1, 4000, 126000), - array(16, 1, 2000, 72000), - array(32, 17, 4000, 108000), - array(64, 49, 8000, 144000), - array(128, 1, 2000, 72000), - array(256, 129, 4000, 108000), - array(512, 385, 8000, 144000), - array(1024, 1, 2000, 72000), - array(2048, 1025, 4000, 108000), - array(4096, 3073, 8000, 144000), - array(8192, 9, 3000, 126000), - array(16384, 8201, 6000, 162000), - array(32768, 24585, 12000, 198000), - array(65536, 1169, 3000, 126000), - array(131072, 66705, 6000, 162000), - array(262144, 197777, 12000, 198000) - ), - //Ingénieurie - array( - array(1, 0, 1000, 54000), - array(2, 1, 2000, 90000), - array(4, 3, 4000, 126000), - array(8, 1, 2000, 90000), - array(16, 9, 4000, 126000), - array(32, 25, 8000, 162000), - array(64, 9, 3000, 126000), - array(128, 73, 6000, 162000), - array(256, 201, 12000, 198000), - array(512, 73, 4000, 162000), - array(1024, 585, 8000, 198000), - array(2048, 1609, 16000, 234000), - array(4096, 0, 1000, 54000), - array(8192, 4096, 2000, 90000), - array(16384, 12288, 4000, 126000), - array(32768, 4096, 2000, 54000), - array(65536, 36864, 4000, 90000), - array(131072, 102400, 8000, 126000), - array(262144, 12288, 2000, 72000), - array(524288, 274432, 4000, 108000), - array(1048576, 798720, 8000, 144000), - array(2097152, 274432, 2000, 54000), - array(4194304, 2371584, 4000, 90000), - array(8388608, 6565888, 8000, 126000), - array(16777216, 28672, 2000, 54000), - array(33554432, 16805888, 4000, 90000), - array(67108864, 50360320, 8000, 126000), - array(134217728, 28672, 3000, 90000), - array(268435456, 134246400, 6000, 126000), - array(536870912, 402681856, 12000, 162000) - ), - //Ingénieurie 2 - array( - array(1, 0, 1000, 36000), - array(2, 1, 2000, 72000), - array(4, 3, 4000, 108000), - array(8, 1, 4000, 126000), - array(16, 1, 4000, 126000), - array(32, 25, 4000, 126000), - array(64, 57, 8000, 162000), - array(128, 121, 16000, 198000) - ), - //Politique - array( - array(1, 0, 1000, 36000), - array(2, 1, 2000, 72000), - array(4, 3, 4000, 108000), - array(8, 1, 2000, 72000), - array(16, 9, 4000, 108000), - array(32, 25, 8000, 144000), - array(64, 9, 4000, 126000), - array(128, 8, 6000, 162000), - array(256, 9, 6000, 162000), - array(512, 0, 1000, 90000), - array(1024, 512, 2000, 90000), - array(2048, 1536, 4000, 90000), - array(4096, 512, 2000, 72000), - array(8192, 4608, 4000, 108000), - array(16384, 12800, 8000, 144000) - ), - - //Armement - array( - array(1, 0, 1000, 36000), - array(2, 1, 2000, 72000), - array(4, 3, 4000, 108000), - array(8, 1, 1000, 54000), - array(16, 9, 2000, 90000), - array(32, 25, 4000, 126000), - array(64, 9, 2000, 72000), - array(128, 73, 4000, 108000), - array(256, 201, 8000, 144000), - array(512, 73, 2000, 90000), - array(1024, 585, 4000, 126000), - array(2048, 1609, 8000, 162000), - array(4096, 1, 3000, 108000), - array(8192, 4097, 6000, 144000), - array(16384, 12289, 12000, 180000), - array(32768, 4097, 3000, 126000), - array(65536, 36865, 6000, 162000), - array(131072, 102401, 12000, 198000) - ), - //Défense - array( - array(1, 0, 1000, 36000), - array(2, 1, 2000, 72000), - array(4, 3, 4000, 108000), - array(8, 1, 2000, 72000), - array(16, 9, 4000, 108000), - array(32, 25, 8000, 144000), - array(64, 9, 3000, 108000), - array(128, 73, 6000, 144000), - array(256, 201, 12000, 180000), - array(512, 0, 1000, 36000), - array(1024, 512, 2000, 72000), - array(2048, 1536, 4000, 108000), - array(4096, 512, 2000, 72000), - array(8192, 4608, 4000, 108000), - array(16384, 12800, 8000, 144000), - array(32768, 4608, 3000, 108000), - array(65536, 37376, 6000, 144000), - array(131072, 102912, 12000, 180000), - array(262144, 512, 1000, 54000), - array(524288, 262656, 2000, 90000), - array(1048576, 786944, 4000, 126000), - array(2097152, 262656, 2000, 90000), - array(4194304, 2359808, 4000, 126000), - array(8388608, 6554112, 8000, 162000), - array(16777216, 2359808, 3000, 126000), - array(33554432, 19137024, 6000, 162000), - array(67108864, 52691456, 12000, 198000) - ), - //Défense 2 - array( - array(1, 0, 2000, 72000), - array(2, 1, 4000, 144000), - array(4, 3, 6000, 216000), - array(8, 0, 2000, 72000), - array(16, 8, 4000, 144000), - array(32, 24, 6000, 216000), - array(64, 27, 8000, 288000) - ), - //Projets expérimentaux - array( - array(1, 0, 2000, 36000), - array(2, 1, 4000, 72000), - array(4, 2, 4000, 108000), - array(8, 4, 6000, 144000), - array(16, 8, 6000, 144000), - array(32, 8, 8000, 180000), - array(64, 32, 10000, 216000), - array(128, 64, 10000, 234000), - array(256, 128, 12000, 288000), - array(512, 256, 14000, 324000), - array(1024, 64, 14000, 342000), - array(2048, 256, 16000, 360000), - array(4096, 576, 18000, 396000), - array(8192, 4096, 20000, 432000), - array(16384, 8192, 22000, 504000) - ), - //Technologie expansion - array( - array(1, 0, 4000, 54000), - array(2, 1, 6000, 72000), - array(4, 3, 8000, 90000), - array(8, 7, 10000, 108000), - array(16, 15, 12000, 126000), - array(32, 31, 14000, 144000), - array(64, 63, 16000, 162000), - array(128, 127, 18000, 180000), - array(256, 255, 20000, 198000), - array(512, 511, 22000, 216000), - array(1024, 1023, 24000, 234000), - array(2048, 2047, 26000, 252000), - array(4096, 4095, 28000, 270000), - array(8192, 8191, 30000, 288000), - array(16384, 16383, 32000, 306000), - array(32768, 32767, 34000, 324000), - array(65536, 65535, 36000, 342000), - array(131072, 131071, 38000, 360000) - ) -); -?> \ No newline at end of file diff --git a/halo-battle/.buildpath b/halo-battle/.buildpath deleted file mode 100644 index 9ce47f1..0000000 --- a/halo-battle/.buildpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/halo-battle/.project b/halo-battle/.project deleted file mode 100644 index 8d72b93..0000000 --- a/halo-battle/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - Halo-Battle - - - - - - org.eclipse.wst.jsdt.core.javascriptValidator - - - - - org.eclipse.wst.validation.validationbuilder - - - - - org.eclipse.dltk.core.scriptbuilder - - - - - - org.eclipse.php.core.PHPNature - org.eclipse.wst.jsdt.core.jsNature - - diff --git a/htdocs/.htaccess b/htdocs/.htaccess deleted file mode 100644 index 095d346..0000000 --- a/htdocs/.htaccess +++ /dev/null @@ -1,7 +0,0 @@ -Options -Indexes -ErrorDocument 403 403.html -ErrorDocument 404 404.html - - - - diff --git a/htdocs/.onyx b/htdocs/.onyx deleted file mode 100644 index df5cc17..0000000 --- a/htdocs/.onyx +++ /dev/null @@ -1 +0,0 @@ -/var/www/halo-battle/onyx2/load.php diff --git a/htdocs/admin.php b/htdocs/admin.php index 7c6f5fb..1a5368f 100644 --- a/htdocs/admin.php +++ b/htdocs/admin.php @@ -7,102 +7,119 @@ require_once(trim(file_get_contents('./.onyx'))); require_once("common.php"); //Chargement de tout le nécessaire pour le jeu //On vérifie si le client est connecté ou non sur le site -if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->level) && $SESS->level >= 3 && !empty($SESS->values['idPlan'])) +if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->level) && $SESS->level >= 3) +{ + function infoPlan($galaxie, $ss, $pos, $info) { - function infoPlan($galaxie, $ss, $pos, $info) - { - $base = new BDD(); - $resultat = $base->unique_query("SELECT * FROM planete WHERE galaxie = '$galaxie' AND ss = '$ss' AND position= '$pos';"); - $base->deconnexion(); - return $resultat[$info]; - } - - //Passage des valeurs générales au template - $titre = "Administration"; - $template->assign('page', 'admin'); - $template->assign('menu', $VAR['menu']); - $template->assign('premiere_page', $VAR['first_page']); - $template->assign('race', $SESS->values['race']); - $template->assign("tpsdejeu", "un certain temps"); - - if (!empty($SESS->values['souscontrole'])) - { - $pagea = 'erreur'; - - $SESS->values['id'] = $SESS->values['souscontrole'][0]; - $SESS->values['idPlan'] = $SESS->values['souscontrole'][1]; - $SESS->values['souscontrole'] = null; - $SESS->put(); - - $template->assign('message', 'Droits rétablis avec succès !
'); - } - else - { - if (!isset($_GET['p'])) - $_GET['p'] = ''; - if ($SESS->level >= 5) - { - switch($_GET['p']) - { - case 'djoueurs': - include("admin/supprimer_joueur.php"); - break; - case 'bandeau': - include("admin/bandeau.php"); - break; - case 'demarrage': - include("admin/demarrage.php"); - break; - case 'version': - include("admin/version.php"); - break; - case 'inscription': - include("admin/inscription.php"); - break; - } - } - if (empty($pagea)) - { - switch($_GET['p']) - { - case 'courrier': - include("admin/mail.php"); - break; - case 'vip': - include("admin/ip.php"); - break; - case 'vflottes': - include("admin/flottes.php"); - break; - case 'vplanetes': - include("admin/planete.php"); - break; - case 'vjoueurs': - include("admin/joueur.php"); - break; - case 'valliances': - include("admin/alliance.php"); - break; - case 'vrapports': - include("admin/rapport.php"); - break; - case 'sjoueurs': - include("admin/sanction_joueur.php"); - break; - case 'cjoueurs': - include("admin/prendre_controle.php"); - break; - default: - include("admin/accueil.php"); - break; - } - } - } - - $template->assign('titre', $titre); - $template->assign('pagea', $pagea); - $template->display('admin/'.$pagea.'.tpl'); + $base = new BDD(); + $resultat = $base->unique_query("SELECT * FROM planete WHERE galaxie = '$galaxie' AND ss = '$ss' AND position= '$pos';"); + $base->deconnexion(); + return $resultat[$info]; } + + //Passage des valeurs générales au template + $titre = "Administration"; + $template->assign('page', 'admin'); + $template->assign('menu', $VAR['menu']); + $template->assign('premiere_page', $VAR['first_page']); + $template->assign('race', $SESS->values['race']); + $template->assign("tpsdejeu", "un certain temps"); + + if (!empty($SESS->values['souscontrole'])) + { + $pagea = 'erreur'; + + $SESS->values['id'] = $SESS->values['souscontrole'][0]; + $SESS->values['idPlan'] = $SESS->values['souscontrole'][1]; + $SESS->values['souscontrole'] = null; + $SESS->put(); + + $template->assign('message', 'Droits rétablis avec succès !
'); + } + else + { + $id_user = $SESS->values['id']; + + if (!isset($_GET['p'])) + $_GET['p'] = ''; + if ($SESS->level >= 5) + { + switch($_GET['p']) + { + case 'djoueurs': + include("admin/supprimer_joueur.php"); + break; + case 'bandeau': + include("admin/bandeau.php"); + break; + case 'demarrage': + include("admin/demarrage.php"); + break; + case 'version': + include("admin/version.php"); + break; + case 'inscription': + include("admin/inscription.php"); + break; + case 'njoueur': + include("game/serveur/njoueur.php"); + break; + case 'mail_mass': + include("admin/mail_mass.php"); + break; + case 'bdd': + include("admin/bdd.php"); + break; + case 'proxy': + include("admin/proxy.php"); + break; + } + } + if (empty($pagea)) + { + switch($_GET['p']) + { + case 'courrier': + include("admin/mail.php"); + break; + case 'vip': + include("admin/ip.php"); + break; + case 'vflottes': + include("admin/flottes.php"); + break; + case 'vplanetes': + include("admin/planete.php"); + break; + case 'vjoueurs': + include("admin/joueur.php"); + break; + case 'valliances': + include("admin/alliance.php"); + break; + case 'snalliances': + include("admin/snalliances.php"); + break; + case 'vrapports': + include("admin/rapport.php"); + break; + case 'sjoueurs': + include("admin/sanction_joueur.php"); + break; + case 'cjoueurs': + include("admin/prendre_controle.php"); + break; + default: + include("admin/accueil.php"); + break; + } + } + } + + $template->assign('titre', $titre); + $template->assign('pagea', $pagea); + $template->display('admin/'.$pagea.'.tpl'); +} else header('Location: '.$VAR['first_page']); -?> +?> \ No newline at end of file diff --git a/htdocs/ajax_chat.php b/htdocs/ajax_chat.php new file mode 100644 index 0000000..ee5c5d8 --- /dev/null +++ b/htdocs/ajax_chat.php @@ -0,0 +1,48 @@ +values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) +{ + include_once("game/Class/class.user.php"); + $user = new User($SESS->values['id']); + if (!empty($user->id_alliance)) + { + if (isset($_POST['message'])) + { + $message = htmlentities(trim(gpc("message", "post"))); + if (!empty($message) || $message == "0") + { + $bdd = new BDD(); + $bdd->escape($message); + $bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$user->id_alliance.", ".$user->id_user.", ".time().", '$message');"); + $bdd->deconnexion(); + } + } + else + { + if (!empty($_GET['time'])) + $time = intval(gpc("time"))." ORDER BY timestamp DESC"; + else + $time = "0 ORDER BY timestamp DESC LIMIT 15"; + + $bdd = new BDD(); + $messages = $bdd->query("SELECT C.*, U.pseudo FROM $table_alliances_chat C INNER JOIN $table_user U ON U.id = C.emetteur WHERE C.id_alliance = ".$user->id_alliance." AND C.timestamp > $time;"); + $bdd->deconnexion(); + + header("X-JSON: ".json_encode($messages)); + } + } +} +?> \ No newline at end of file diff --git a/htdocs/export.php b/htdocs/export.php deleted file mode 100644 index cef9ba1..0000000 --- a/htdocs/export.php +++ /dev/null @@ -1,30 +0,0 @@ -'."\n"; -foreach($nomterde as $key => $lign) - { - print "\t".''.utf8_encode(html_entity_decode($lign)).''."\n"; - } -print ''; -*/ - -print ''."\n"; -foreach ($technolo as $i => $var) - { - /*print "\t".''."\n"; - foreach ($var as $k => $key) - {*/ - print "\t\t".''.utf8_encode(html_entity_decode($var)).''."\n"; - /*} - print "\t\n";*/ - } -print ''; -?> \ No newline at end of file diff --git a/htdocs/genereXML.php b/htdocs/genereXML.php deleted file mode 100644 index 3a8ddc3..0000000 --- a/htdocs/genereXML.php +++ /dev/null @@ -1,31 +0,0 @@ -load("/var/www/halo-battle/onyx2/config/root.xml"); - -$xml->formatOutput = true; - -$xml_configs = $xml->createElement("configs"); -$xml_configs->setAttribute("active", true); -$xml_configs->setAttribute("root", __DIR__.'/'); -$xml_configs->setAttribute("cache", true); - -$xml_config = $xml->createElement("config"); -$xml_config->setAttribute("match", '*'); - - $xml_var = $xml->createElement("var", "Béta #1"); - $xml_var->setAttribute("name", 'serveur_name'); - $xml_config->appendChild($xml_var); - - $xml_var = $xml->createElement("var", "Béta #1"); - $xml_var->setAttribute("name", 'serveur_name'); - $xml_config->appendChild($xml_var); - -$xml_configs->appendChild($xml_config); -$xml->appendChild($xml_configs); - -print $xml->saveXML(); -?> \ No newline at end of file diff --git a/htdocs/images/Thumbs.db b/htdocs/images/Thumbs.db deleted file mode 100644 index 386e836..0000000 Binary files a/htdocs/images/Thumbs.db and /dev/null differ diff --git a/htdocs/images/accueil/annonce.jpg b/htdocs/images/accueil/annonce.jpg deleted file mode 100644 index dbca89b..0000000 Binary files a/htdocs/images/accueil/annonce.jpg and /dev/null differ diff --git a/htdocs/images/accueil/dossier.jpg b/htdocs/images/accueil/dossier.jpg deleted file mode 100644 index f269f44..0000000 Binary files a/htdocs/images/accueil/dossier.jpg and /dev/null differ diff --git a/htdocs/images/accueil/index.html b/htdocs/images/accueil/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/accueil/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/accueil/news_img.jpg b/htdocs/images/accueil/news_img.jpg deleted file mode 100644 index feec1b7..0000000 Binary files a/htdocs/images/accueil/news_img.jpg and /dev/null differ diff --git a/htdocs/images/accueil/stat.png b/htdocs/images/accueil/stat.png deleted file mode 100644 index 4eede88..0000000 Binary files a/htdocs/images/accueil/stat.png and /dev/null differ diff --git a/htdocs/images/ahfr.jpg b/htdocs/images/ahfr.jpg deleted file mode 100644 index 5c2f7dd..0000000 Binary files a/htdocs/images/ahfr.jpg and /dev/null differ diff --git a/htdocs/images/batiments/baseradardl3.jpg b/htdocs/images/batiments/baseradardl3.jpg deleted file mode 100644 index 77a6358..0000000 Binary files a/htdocs/images/batiments/baseradardl3.jpg and /dev/null differ diff --git a/htdocs/images/batiments/batimentcovieux4.jpg b/htdocs/images/batiments/batimentcovieux4.jpg deleted file mode 100644 index 29fcd34..0000000 Binary files a/htdocs/images/batiments/batimentcovieux4.jpg and /dev/null differ diff --git a/htdocs/images/batiments/caserncov0ry.jpg b/htdocs/images/batiments/caserncov0ry.jpg deleted file mode 100644 index afbfa52..0000000 Binary files a/htdocs/images/batiments/caserncov0ry.jpg and /dev/null differ diff --git a/htdocs/images/batiments/caserne.jpg b/htdocs/images/batiments/caserne.jpg deleted file mode 100644 index 8a3f984..0000000 Binary files a/htdocs/images/batiments/caserne.jpg and /dev/null differ diff --git a/htdocs/images/batiments/centrale electrique.jpg b/htdocs/images/batiments/centrale electrique.jpg deleted file mode 100644 index 555c3c8..0000000 Binary files a/htdocs/images/batiments/centrale electrique.jpg and /dev/null differ diff --git a/htdocs/images/batiments/centrale solaire.jpg b/htdocs/images/batiments/centrale solaire.jpg deleted file mode 100644 index 80a80ae..0000000 Binary files a/htdocs/images/batiments/centrale solaire.jpg and /dev/null differ diff --git a/htdocs/images/batiments/centrale_f.png b/htdocs/images/batiments/centrale_f.png deleted file mode 100644 index 2c3196d..0000000 Binary files a/htdocs/images/batiments/centrale_f.png and /dev/null differ diff --git a/htdocs/images/batiments/centrale_fusion.jpg b/htdocs/images/batiments/centrale_fusion.jpg deleted file mode 100644 index 6957dbe..0000000 Binary files a/htdocs/images/batiments/centrale_fusion.jpg and /dev/null differ diff --git a/htdocs/images/batiments/centrale_s.JPG b/htdocs/images/batiments/centrale_s.JPG deleted file mode 100644 index cb122bb..0000000 Binary files a/htdocs/images/batiments/centrale_s.JPG and /dev/null differ diff --git a/htdocs/images/batiments/centrederecherchegu9.jpg b/htdocs/images/batiments/centrederecherchegu9.jpg deleted file mode 100644 index a2d117a..0000000 Binary files a/htdocs/images/batiments/centrederecherchegu9.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantier spatial.jpg b/htdocs/images/batiments/chantier spatial.jpg deleted file mode 100644 index a106612..0000000 Binary files a/htdocs/images/batiments/chantier spatial.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantier-spatial.jpg b/htdocs/images/batiments/chantier-spatial.jpg deleted file mode 100644 index 192e750..0000000 Binary files a/htdocs/images/batiments/chantier-spatial.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantier-terrestre.jpg b/htdocs/images/batiments/chantier-terrestre.jpg deleted file mode 100644 index 84cbf44..0000000 Binary files a/htdocs/images/batiments/chantier-terrestre.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantier_terrestre.jpg b/htdocs/images/batiments/chantier_terrestre.jpg deleted file mode 100644 index 46e58cc..0000000 Binary files a/htdocs/images/batiments/chantier_terrestre.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantier_terrestre.png b/htdocs/images/batiments/chantier_terrestre.png deleted file mode 100644 index 3018b63..0000000 Binary files a/htdocs/images/batiments/chantier_terrestre.png and /dev/null differ diff --git a/htdocs/images/batiments/chantierspatialff8.jpg b/htdocs/images/batiments/chantierspatialff8.jpg deleted file mode 100644 index a61beed..0000000 Binary files a/htdocs/images/batiments/chantierspatialff8.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantierterrestrecopybj8.jpg b/htdocs/images/batiments/chantierterrestrecopybj8.jpg deleted file mode 100644 index 51fe50b..0000000 Binary files a/htdocs/images/batiments/chantierterrestrecopybj8.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantierterrestrehg1.jpg b/htdocs/images/batiments/chantierterrestrehg1.jpg deleted file mode 100644 index 72afa41..0000000 Binary files a/htdocs/images/batiments/chantierterrestrehg1.jpg and /dev/null differ diff --git a/htdocs/images/batiments/chantierterrestrenz5.jpg b/htdocs/images/batiments/chantierterrestrenz5.jpg deleted file mode 100644 index bb21d24..0000000 Binary files a/htdocs/images/batiments/chantierterrestrenz5.jpg and /dev/null differ diff --git a/htdocs/images/batiments/covbase25ro.jpg b/htdocs/images/batiments/covbase25ro.jpg deleted file mode 100644 index 67b7003..0000000 Binary files a/htdocs/images/batiments/covbase25ro.jpg and /dev/null differ diff --git a/htdocs/images/batiments/covielabocn5.jpg b/htdocs/images/batiments/covielabocn5.jpg deleted file mode 100644 index 746c452..0000000 Binary files a/htdocs/images/batiments/covielabocn5.jpg and /dev/null differ diff --git a/htdocs/images/batiments/cristaloo3.png b/htdocs/images/batiments/cristaloo3.png deleted file mode 100644 index c96668e..0000000 Binary files a/htdocs/images/batiments/cristaloo3.png and /dev/null differ diff --git a/htdocs/images/batiments/ecole militaire.jpg b/htdocs/images/batiments/ecole militaire.jpg deleted file mode 100644 index 18757f6..0000000 Binary files a/htdocs/images/batiments/ecole militaire.jpg and /dev/null differ diff --git a/htdocs/images/batiments/ecole_militaire.jpg b/htdocs/images/batiments/ecole_militaire.jpg deleted file mode 100644 index 1bdda65..0000000 Binary files a/htdocs/images/batiments/ecole_militaire.jpg and /dev/null differ diff --git a/htdocs/images/batiments/entrepot.jpg b/htdocs/images/batiments/entrepot.jpg deleted file mode 100644 index 3d1bc7e..0000000 Binary files a/htdocs/images/batiments/entrepot.jpg and /dev/null differ diff --git a/htdocs/images/batiments/generateurafusiondb2.jpg b/htdocs/images/batiments/generateurafusiondb2.jpg deleted file mode 100644 index 88c530a..0000000 Binary files a/htdocs/images/batiments/generateurafusiondb2.jpg and /dev/null differ diff --git a/htdocs/images/batiments/generateurdecristalmh5.jpg b/htdocs/images/batiments/generateurdecristalmh5.jpg deleted file mode 100644 index ab0cc2e..0000000 Binary files a/htdocs/images/batiments/generateurdecristalmh5.jpg and /dev/null differ diff --git a/htdocs/images/batiments/generateurdemetalsg0.jpg b/htdocs/images/batiments/generateurdemetalsg0.jpg deleted file mode 100644 index dcf6e46..0000000 Binary files a/htdocs/images/batiments/generateurdemetalsg0.jpg and /dev/null differ diff --git a/htdocs/images/batiments/generateurdenergievb7.jpg b/htdocs/images/batiments/generateurdenergievb7.jpg deleted file mode 100644 index 74cf256..0000000 Binary files a/htdocs/images/batiments/generateurdenergievb7.jpg and /dev/null differ diff --git a/htdocs/images/batiments/generateurdhydrognedh3.jpg b/htdocs/images/batiments/generateurdhydrognedh3.jpg deleted file mode 100644 index e802f93..0000000 Binary files a/htdocs/images/batiments/generateurdhydrognedh3.jpg and /dev/null differ diff --git a/htdocs/images/batiments/index.html b/htdocs/images/batiments/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/batiments/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/batiments/informatique.jpg b/htdocs/images/batiments/informatique.jpg deleted file mode 100644 index d12b739..0000000 Binary files a/htdocs/images/batiments/informatique.jpg and /dev/null differ diff --git a/htdocs/images/batiments/ionisateur.png b/htdocs/images/batiments/ionisateur.png deleted file mode 100644 index 53881d6..0000000 Binary files a/htdocs/images/batiments/ionisateur.png and /dev/null differ diff --git a/htdocs/images/batiments/ioniseurdn4.jpg b/htdocs/images/batiments/ioniseurdn4.jpg deleted file mode 100644 index a4c81bc..0000000 Binary files a/htdocs/images/batiments/ioniseurdn4.jpg and /dev/null differ diff --git a/htdocs/images/batiments/mine_c.png b/htdocs/images/batiments/mine_c.png deleted file mode 100644 index 5eb4c5c..0000000 Binary files a/htdocs/images/batiments/mine_c.png and /dev/null differ diff --git a/htdocs/images/batiments/mine_m.jpg b/htdocs/images/batiments/mine_m.jpg deleted file mode 100644 index 28da3ba..0000000 Binary files a/htdocs/images/batiments/mine_m.jpg and /dev/null differ diff --git a/htdocs/images/batiments/mine_m.png b/htdocs/images/batiments/mine_m.png deleted file mode 100644 index 385a1ff..0000000 Binary files a/htdocs/images/batiments/mine_m.png and /dev/null differ diff --git a/htdocs/images/batiments/nanw9.jpg b/htdocs/images/batiments/nanw9.jpg deleted file mode 100644 index 0990559..0000000 Binary files a/htdocs/images/batiments/nanw9.jpg and /dev/null differ diff --git a/htdocs/images/batiments/oeil.png b/htdocs/images/batiments/oeil.png deleted file mode 100644 index 301cc0c..0000000 Binary files a/htdocs/images/batiments/oeil.png and /dev/null differ diff --git a/htdocs/images/batiments/oeilduprophetewj6.jpg b/htdocs/images/batiments/oeilduprophetewj6.jpg deleted file mode 100644 index 60e2b71..0000000 Binary files a/htdocs/images/batiments/oeilduprophetewj6.jpg and /dev/null differ diff --git a/htdocs/images/batiments/ordianteur_hologramme.jpg b/htdocs/images/batiments/ordianteur_hologramme.jpg deleted file mode 100644 index f62a792..0000000 Binary files a/htdocs/images/batiments/ordianteur_hologramme.jpg and /dev/null differ diff --git a/htdocs/images/batiments/powersupplycoviejq1.jpg b/htdocs/images/batiments/powersupplycoviejq1.jpg deleted file mode 100644 index 6ad31d5..0000000 Binary files a/htdocs/images/batiments/powersupplycoviejq1.jpg and /dev/null differ diff --git a/htdocs/images/batiments/purificateur_c.png b/htdocs/images/batiments/purificateur_c.png deleted file mode 100644 index 2581bc1..0000000 Binary files a/htdocs/images/batiments/purificateur_c.png and /dev/null differ diff --git a/htdocs/images/batiments/purificateur_m.png b/htdocs/images/batiments/purificateur_m.png deleted file mode 100644 index 66d2ab5..0000000 Binary files a/htdocs/images/batiments/purificateur_m.png and /dev/null differ diff --git a/htdocs/images/batiments/purificateurdemtalhb3.jpg b/htdocs/images/batiments/purificateurdemtalhb3.jpg deleted file mode 100644 index e3405f2..0000000 Binary files a/htdocs/images/batiments/purificateurdemtalhb3.jpg and /dev/null differ diff --git a/htdocs/images/batiments/radar.jpg b/htdocs/images/batiments/radar.jpg deleted file mode 100644 index 8137f38..0000000 Binary files a/htdocs/images/batiments/radar.jpg and /dev/null differ diff --git a/htdocs/images/batiments/recherches.jpg b/htdocs/images/batiments/recherches.jpg deleted file mode 100644 index 53d11ae..0000000 Binary files a/htdocs/images/batiments/recherches.jpg and /dev/null differ diff --git a/htdocs/images/batiments/sanstitretruecolor09zn6.jpg b/htdocs/images/batiments/sanstitretruecolor09zn6.jpg deleted file mode 100644 index 0a959d1..0000000 Binary files a/htdocs/images/batiments/sanstitretruecolor09zn6.jpg and /dev/null differ diff --git a/htdocs/images/batiments/sanstitrevi7.jpg b/htdocs/images/batiments/sanstitrevi7.jpg deleted file mode 100644 index 193ae4a..0000000 Binary files a/htdocs/images/batiments/sanstitrevi7.jpg and /dev/null differ diff --git a/htdocs/images/batiments/search0yp.jpg b/htdocs/images/batiments/search0yp.jpg deleted file mode 100644 index 954b1ff..0000000 Binary files a/htdocs/images/batiments/search0yp.jpg and /dev/null differ diff --git a/htdocs/images/batiments/silo.jpg b/htdocs/images/batiments/silo.jpg deleted file mode 100644 index aa8a998..0000000 Binary files a/htdocs/images/batiments/silo.jpg and /dev/null differ diff --git a/htdocs/images/batiments/solaire.jpg b/htdocs/images/batiments/solaire.jpg deleted file mode 100644 index 7fdee8e..0000000 Binary files a/htdocs/images/batiments/solaire.jpg and /dev/null differ diff --git a/htdocs/images/batiments/stockage.jpg b/htdocs/images/batiments/stockage.jpg deleted file mode 100644 index 47b333a..0000000 Binary files a/htdocs/images/batiments/stockage.jpg and /dev/null differ diff --git a/htdocs/images/batiments/stockagebasement1cs10bl.jpg b/htdocs/images/batiments/stockagebasement1cs10bl.jpg deleted file mode 100644 index 568deda..0000000 Binary files a/htdocs/images/batiments/stockagebasement1cs10bl.jpg and /dev/null differ diff --git a/htdocs/images/batiments/synchroniseur.jpg b/htdocs/images/batiments/synchroniseur.jpg deleted file mode 100644 index 11eba9a..0000000 Binary files a/htdocs/images/batiments/synchroniseur.jpg and /dev/null differ diff --git a/htdocs/images/carte/covenant.jpg b/htdocs/images/carte/covenant.jpg deleted file mode 100644 index df78192..0000000 Binary files a/htdocs/images/carte/covenant.jpg and /dev/null differ diff --git a/htdocs/images/carte/forerunner.jpg b/htdocs/images/carte/forerunner.jpg deleted file mode 100644 index 0990559..0000000 Binary files a/htdocs/images/carte/forerunner.jpg and /dev/null differ diff --git a/htdocs/images/carte/humain.jpg b/htdocs/images/carte/humain.jpg deleted file mode 100644 index f333c66..0000000 Binary files a/htdocs/images/carte/humain.jpg and /dev/null differ diff --git a/htdocs/images/caserne/31598918ol1.jpg b/htdocs/images/caserne/31598918ol1.jpg deleted file mode 100644 index 79dd64d..0000000 Binary files a/htdocs/images/caserne/31598918ol1.jpg and /dev/null differ diff --git a/htdocs/images/caserne/72188202fg9.jpg b/htdocs/images/caserne/72188202fg9.jpg deleted file mode 100644 index e660038..0000000 Binary files a/htdocs/images/caserne/72188202fg9.jpg and /dev/null differ diff --git a/htdocs/images/caserne/81770345oo4.jpg b/htdocs/images/caserne/81770345oo4.jpg deleted file mode 100644 index 6022dfa..0000000 Binary files a/htdocs/images/caserne/81770345oo4.jpg and /dev/null differ diff --git a/htdocs/images/caserne/85631315fq7.jpg b/htdocs/images/caserne/85631315fq7.jpg deleted file mode 100644 index 12e7207..0000000 Binary files a/htdocs/images/caserne/85631315fq7.jpg and /dev/null differ diff --git a/htdocs/images/caserne/86497470qz6.jpg b/htdocs/images/caserne/86497470qz6.jpg deleted file mode 100644 index c9ba8b4..0000000 Binary files a/htdocs/images/caserne/86497470qz6.jpg and /dev/null differ diff --git a/htdocs/images/caserne/88091275ja8.jpg b/htdocs/images/caserne/88091275ja8.jpg deleted file mode 100644 index ada20f9..0000000 Binary files a/htdocs/images/caserne/88091275ja8.jpg and /dev/null differ diff --git a/htdocs/images/caserne/88218731ts1.jpg b/htdocs/images/caserne/88218731ts1.jpg deleted file mode 100644 index daac9b8..0000000 Binary files a/htdocs/images/caserne/88218731ts1.jpg and /dev/null differ diff --git a/htdocs/images/caserne/94990342wb4.jpg b/htdocs/images/caserne/94990342wb4.jpg deleted file mode 100644 index 120a3c8..0000000 Binary files a/htdocs/images/caserne/94990342wb4.jpg and /dev/null differ diff --git a/htdocs/images/caserne/98004530fx3.jpg b/htdocs/images/caserne/98004530fx3.jpg deleted file mode 100644 index 51fb664..0000000 Binary files a/htdocs/images/caserne/98004530fx3.jpg and /dev/null differ diff --git a/htdocs/images/caserne/TCAO2.jpg b/htdocs/images/caserne/TCAO2.jpg deleted file mode 100644 index 0eb99f5..0000000 Binary files a/htdocs/images/caserne/TCAO2.jpg and /dev/null differ diff --git a/htdocs/images/caserne/brute.jpg b/htdocs/images/caserne/brute.jpg deleted file mode 100644 index 31606b5..0000000 Binary files a/htdocs/images/caserne/brute.jpg and /dev/null differ diff --git a/htdocs/images/caserne/defenseurlegerhs8.jpg b/htdocs/images/caserne/defenseurlegerhs8.jpg deleted file mode 100644 index 5d0b981..0000000 Binary files a/htdocs/images/caserne/defenseurlegerhs8.jpg and /dev/null differ diff --git a/htdocs/images/caserne/defenseurlourdhr3.jpg b/htdocs/images/caserne/defenseurlourdhr3.jpg deleted file mode 100644 index a6737e6..0000000 Binary files a/htdocs/images/caserne/defenseurlourdhr3.jpg and /dev/null differ diff --git a/htdocs/images/caserne/drone.jpg b/htdocs/images/caserne/drone.jpg deleted file mode 100644 index d32b4d7..0000000 Binary files a/htdocs/images/caserne/drone.jpg and /dev/null differ diff --git a/htdocs/images/caserne/elite.jpg b/htdocs/images/caserne/elite.jpg deleted file mode 100644 index 2341804..0000000 Binary files a/htdocs/images/caserne/elite.jpg and /dev/null differ diff --git a/htdocs/images/caserne/exosquelettehbpb2.jpg b/htdocs/images/caserne/exosquelettehbpb2.jpg deleted file mode 100644 index 156e1f4..0000000 Binary files a/htdocs/images/caserne/exosquelettehbpb2.jpg and /dev/null differ diff --git a/htdocs/images/caserne/grenadier.jpg b/htdocs/images/caserne/grenadier.jpg deleted file mode 100644 index 38c8e87..0000000 Binary files a/htdocs/images/caserne/grenadier.jpg and /dev/null differ diff --git a/htdocs/images/caserne/grunt1.jpg b/htdocs/images/caserne/grunt1.jpg deleted file mode 100644 index cf1038a..0000000 Binary files a/htdocs/images/caserne/grunt1.jpg and /dev/null differ diff --git a/htdocs/images/caserne/hunter1.jpg b/htdocs/images/caserne/hunter1.jpg deleted file mode 100644 index 7cf1d18..0000000 Binary files a/htdocs/images/caserne/hunter1.jpg and /dev/null differ diff --git a/htdocs/images/caserne/index.html b/htdocs/images/caserne/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/caserne/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/caserne/ingenieur_c.jpg b/htdocs/images/caserne/ingenieur_c.jpg deleted file mode 100644 index c9d9971..0000000 Binary files a/htdocs/images/caserne/ingenieur_c.jpg and /dev/null differ diff --git a/htdocs/images/caserne/ingenieurs.jpg b/htdocs/images/caserne/ingenieurs.jpg deleted file mode 100644 index 45620e5..0000000 Binary files a/htdocs/images/caserne/ingenieurs.jpg and /dev/null differ diff --git a/htdocs/images/caserne/jackal.jpg b/htdocs/images/caserne/jackal.jpg deleted file mode 100644 index 35d2f14..0000000 Binary files a/htdocs/images/caserne/jackal.jpg and /dev/null differ diff --git a/htdocs/images/caserne/jackalsniper.jpg b/htdocs/images/caserne/jackalsniper.jpg deleted file mode 100644 index 006bf18..0000000 Binary files a/htdocs/images/caserne/jackalsniper.jpg and /dev/null differ diff --git a/htdocs/images/caserne/marinehf0.jpg b/htdocs/images/caserne/marinehf0.jpg deleted file mode 100644 index 74d0937..0000000 Binary files a/htdocs/images/caserne/marinehf0.jpg and /dev/null differ diff --git a/htdocs/images/caserne/marines.jpg b/htdocs/images/caserne/marines.jpg deleted file mode 100644 index bc377bc..0000000 Binary files a/htdocs/images/caserne/marines.jpg and /dev/null differ diff --git a/htdocs/images/caserne/medecin.jpg b/htdocs/images/caserne/medecin.jpg deleted file mode 100644 index c4db9eb..0000000 Binary files a/htdocs/images/caserne/medecin.jpg and /dev/null differ diff --git a/htdocs/images/caserne/medecin_c.jpg b/htdocs/images/caserne/medecin_c.jpg deleted file mode 100644 index 862b102..0000000 Binary files a/htdocs/images/caserne/medecin_c.jpg and /dev/null differ diff --git a/htdocs/images/caserne/scoutma3.jpg b/htdocs/images/caserne/scoutma3.jpg deleted file mode 100644 index 49d7292..0000000 Binary files a/htdocs/images/caserne/scoutma3.jpg and /dev/null differ diff --git a/htdocs/images/caserne/sentinellelegerecn4.jpg b/htdocs/images/caserne/sentinellelegerecn4.jpg deleted file mode 100644 index 3fceccc..0000000 Binary files a/htdocs/images/caserne/sentinellelegerecn4.jpg and /dev/null differ diff --git a/htdocs/images/caserne/sniper.jpg b/htdocs/images/caserne/sniper.jpg deleted file mode 100644 index ebb994f..0000000 Binary files a/htdocs/images/caserne/sniper.jpg and /dev/null differ diff --git a/htdocs/images/caserne/spartan.jpg b/htdocs/images/caserne/spartan.jpg deleted file mode 100644 index 3cc7118..0000000 Binary files a/htdocs/images/caserne/spartan.jpg and /dev/null differ diff --git a/htdocs/images/covenant.jpg b/htdocs/images/covenant.jpg deleted file mode 100644 index 31606b5..0000000 Binary files a/htdocs/images/covenant.jpg and /dev/null differ diff --git a/htdocs/images/covenant_na.jpg b/htdocs/images/covenant_na.jpg deleted file mode 100644 index cc69404..0000000 Binary files a/htdocs/images/covenant_na.jpg and /dev/null differ diff --git a/htdocs/images/forerunner_na.jpg b/htdocs/images/forerunner_na.jpg deleted file mode 100644 index 0990559..0000000 Binary files a/htdocs/images/forerunner_na.jpg and /dev/null differ diff --git a/htdocs/images/hfr.jpg b/htdocs/images/hfr.jpg deleted file mode 100644 index 2ee6fdb..0000000 Binary files a/htdocs/images/hfr.jpg and /dev/null differ diff --git a/htdocs/images/humain.jpg b/htdocs/images/humain.jpg deleted file mode 100644 index 3cc7118..0000000 Binary files a/htdocs/images/humain.jpg and /dev/null differ diff --git a/htdocs/images/humain_na.jpg b/htdocs/images/humain_na.jpg deleted file mode 100644 index f333c66..0000000 Binary files a/htdocs/images/humain_na.jpg and /dev/null differ diff --git a/htdocs/images/index.html b/htdocs/images/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/planetes/.svn/entries b/htdocs/images/planetes/.svn/entries deleted file mode 100644 index 4f03eb8..0000000 --- a/htdocs/images/planetes/.svn/entries +++ /dev/null @@ -1,1150 +0,0 @@ -9 - -dir -1 -svn://62.4.71.11/HB/htdocs/images/planetes -svn://62.4.71.11/HB - - - -2008-12-19T20:29:56.685768Z -1 -phantomas - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -c4074411-828d-4616-b685-8e0a798490ab - -20.jpg -file - - - - -2008-12-13T11:41:11.671875Z -0ac7a55057b3f1a8aa075099c3cbc540 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -80660 - -21.jpg -file - - - - -2008-12-13T11:41:19.453125Z -7c77e1a690412c00223c8c05169feed0 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -69127 - -22.jpg -file - - - - -2008-12-13T11:41:30.015625Z -8b73f215f103abd29730f45201d9cfab -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -84317 - -23.jpg -file - - - - -2008-12-13T11:41:33.203125Z -296e90d7641b90dfdc23e1a760c23a0d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -89378 - -24.jpg -file - - - - -2008-12-13T11:41:37.140625Z -c8a9cf25e55ff6fa479e54b9662c1681 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -84163 - -25.jpg -file - - - - -2008-12-13T11:41:40.656250Z -f76e57fa1b9b96ac598e3fedd2913ca6 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -69846 - -26.jpg -file - - - - -2008-12-13T11:41:44.093750Z -0beadd17b464bcc9161b8bc977dc89e8 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -86555 - -27.jpg -file - - - - -2008-12-13T11:41:47.093750Z -8257f990692becff4d25427f914bf336 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -79842 - -28.jpg -file - - - - -2008-12-13T11:41:50.593750Z -36c1311a5f22fafd661d2ae27fca96e5 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -72590 - -29.jpg -file - - - - -2008-12-13T11:41:53.625000Z -a9a91442f43efdf6e2c8417a31428ba7 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -74286 - -1.jpg -file - - - - -2008-08-27T16:43:00.000000Z -3ba4923084e9040c2e2bd54c920715ab -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -74241 - -2.jpg -file - - - - -2008-08-27T17:52:00.000000Z -f8fb74557c20d759f8834fc1219a7605 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -97271 - -3.jpg -file - - - - -2008-08-27T18:54:00.000000Z -06e9e3bb26df490c522ab2db49dbf8ca -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -67797 - -4.jpg -file - - - - -2008-08-28T15:50:00.000000Z -a4b3d8f33d392338011bff6ca77061e1 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -56501 - -5.jpg -file - - - - -2008-08-28T15:13:00.000000Z -aee558353ad2393617cd09cf8c67202c -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -79452 - -6.jpg -file - - - - -2008-08-28T16:05:00.000000Z -b9ee85c36a3aa62785d7127cfac8c294 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -62795 - -7.jpg -file - - - - -2008-08-28T16:23:00.000000Z -5db5d98b395c28e717f2567386fab490 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -66962 - -8.jpg -file - - - - -2008-08-29T10:41:00.000000Z -7de9677ebc40dd51d9179b8c36ee78c4 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -76596 - -9.jpg -file - - - - -2008-08-29T11:18:00.000000Z -61532aa2a8b517fa9df6ac2707980338 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -75658 - -10.jpg -file - - - - -2008-08-29T11:35:00.000000Z -22ebdc8c551e5d79548d1028c32524e2 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -73888 - -11.jpg -file - - - - -2008-08-29T11:49:00.000000Z -431a472d4be8b6713858585bea7f2c3d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -63044 - -30.jpg -file - - - - -2008-12-13T11:41:56.531250Z -00567e47e3659bd3c070954b014f3246 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -79404 - -12.jpg -file - - - - -2008-08-29T12:13:00.000000Z -146763c6bfcc0bd8d197ebc56639a0af -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -71705 - -31.jpg -file - - - - -2008-12-13T11:41:59.984375Z -4b8fc851e3c2eb3b00f04ff4c953bbb2 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -78835 - -13.jpg -file - - - - -2008-08-29T16:01:00.000000Z -0f9e5eb0d0f17a0e4ed74c1a2c253aec -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -80298 - -32.jpg -file - - - - -2008-12-13T11:42:07.359375Z -adc4f77ea2c9b73ce03b5a60214abf58 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -88743 - -14.jpg -file - - - - -2008-08-29T16:13:00.000000Z -90453b4545277dd7db61e2d617a49bff -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -64246 - -15.jpg -file - - - - -2008-09-05T16:23:00.000000Z -1a362541b859f7160faed5312a48074d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -71535 - -16.jpg -file - - - - -2008-08-29T16:48:00.000000Z -2047063fd7322cae44ef4f2db4b6120c -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -71801 - -17.jpg -file - - - - -2008-08-29T17:02:00.000000Z -d4097ef2aad23531c75eb6ae50bd8b96 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -85000 - -18.jpg -file - - - - -2008-08-30T10:41:00.000000Z -f5b4164bd7db3ff5549a32abc0fbb736 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -83792 - -19.jpg -file - - - - -2008-08-30T11:14:00.000000Z -2e7aa2afa48ce7d9fa945cc77e4e1738 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -70526 - -index.html -file - - - - -2008-07-13T09:32:24.614375Z -aa368d44f02d0b27c149a42e250cd0e8 -2008-12-19T20:29:56.685768Z -1 -phantomas - - - - - - - - - - - - - - - - - - - - - -1345 - diff --git a/htdocs/images/planetes/.svn/format b/htdocs/images/planetes/.svn/format deleted file mode 100644 index ec63514..0000000 --- a/htdocs/images/planetes/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/htdocs/images/planetes/.svn/prop-base/1.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/1.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/1.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/10.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/10.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/10.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/11.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/11.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/11.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/12.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/12.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/12.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/13.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/13.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/13.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/14.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/14.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/14.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/15.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/15.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/15.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/16.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/16.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/16.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/17.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/17.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/17.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/18.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/18.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/18.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/19.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/19.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/19.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/2.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/2.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/2.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/20.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/20.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/20.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/21.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/21.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/21.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/22.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/22.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/22.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/23.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/23.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/23.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/24.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/24.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/24.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/25.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/25.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/25.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/26.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/26.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/26.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/27.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/27.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/27.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/28.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/28.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/28.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/29.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/29.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/29.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/3.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/3.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/3.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/30.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/30.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/30.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/31.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/31.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/31.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/32.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/32.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/32.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/4.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/4.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/4.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/5.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/5.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/5.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/6.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/6.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/6.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/7.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/7.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/7.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/8.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/8.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/8.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/prop-base/9.jpg.svn-base b/htdocs/images/planetes/.svn/prop-base/9.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetes/.svn/prop-base/9.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetes/.svn/text-base/1.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/1.jpg.svn-base deleted file mode 100644 index 282fcde..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/1.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/10.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/10.jpg.svn-base deleted file mode 100644 index 84e2412..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/10.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/11.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/11.jpg.svn-base deleted file mode 100644 index 6435940..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/11.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/12.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/12.jpg.svn-base deleted file mode 100644 index 416508d..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/12.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/13.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/13.jpg.svn-base deleted file mode 100644 index 6861c8d..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/13.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/14.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/14.jpg.svn-base deleted file mode 100644 index bac8568..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/14.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/15.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/15.jpg.svn-base deleted file mode 100644 index d9f82a7..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/15.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/16.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/16.jpg.svn-base deleted file mode 100644 index 305d244..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/16.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/17.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/17.jpg.svn-base deleted file mode 100644 index ab33da0..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/17.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/18.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/18.jpg.svn-base deleted file mode 100644 index 1e2e208..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/18.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/19.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/19.jpg.svn-base deleted file mode 100644 index 6885bf2..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/19.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/2.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/2.jpg.svn-base deleted file mode 100644 index cd05f75..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/2.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/20.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/20.jpg.svn-base deleted file mode 100644 index 19bc5fb..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/20.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/21.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/21.jpg.svn-base deleted file mode 100644 index 6c584d4..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/21.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/22.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/22.jpg.svn-base deleted file mode 100644 index a318072..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/22.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/23.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/23.jpg.svn-base deleted file mode 100644 index 2418250..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/23.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/24.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/24.jpg.svn-base deleted file mode 100644 index 3f851a5..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/24.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/25.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/25.jpg.svn-base deleted file mode 100644 index 8ff95dc..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/25.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/26.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/26.jpg.svn-base deleted file mode 100644 index d184eea..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/26.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/27.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/27.jpg.svn-base deleted file mode 100644 index df15458..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/27.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/28.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/28.jpg.svn-base deleted file mode 100644 index 2b2dd3b..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/28.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/29.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/29.jpg.svn-base deleted file mode 100644 index c92e144..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/29.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/3.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/3.jpg.svn-base deleted file mode 100644 index a1c898a..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/3.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/30.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/30.jpg.svn-base deleted file mode 100644 index 6b9f9a1..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/30.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/31.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/31.jpg.svn-base deleted file mode 100644 index 471a2bc..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/31.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/32.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/32.jpg.svn-base deleted file mode 100644 index fe7e629..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/32.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/4.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/4.jpg.svn-base deleted file mode 100644 index 391ed50..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/4.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/5.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/5.jpg.svn-base deleted file mode 100644 index 353f705..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/5.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/6.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/6.jpg.svn-base deleted file mode 100644 index 39d266a..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/6.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/7.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/7.jpg.svn-base deleted file mode 100644 index 2cf0298..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/7.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/8.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/8.jpg.svn-base deleted file mode 100644 index e2f7df0..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/8.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/9.jpg.svn-base b/htdocs/images/planetes/.svn/text-base/9.jpg.svn-base deleted file mode 100644 index 331e188..0000000 Binary files a/htdocs/images/planetes/.svn/text-base/9.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetes/.svn/text-base/index.html.svn-base b/htdocs/images/planetes/.svn/text-base/index.html.svn-base deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/planetes/.svn/text-base/index.html.svn-base +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/planetes/1.jpg b/htdocs/images/planetes/1.jpg deleted file mode 100644 index 282fcde..0000000 Binary files a/htdocs/images/planetes/1.jpg and /dev/null differ diff --git a/htdocs/images/planetes/10.jpg b/htdocs/images/planetes/10.jpg deleted file mode 100644 index 84e2412..0000000 Binary files a/htdocs/images/planetes/10.jpg and /dev/null differ diff --git a/htdocs/images/planetes/11.jpg b/htdocs/images/planetes/11.jpg deleted file mode 100644 index 6435940..0000000 Binary files a/htdocs/images/planetes/11.jpg and /dev/null differ diff --git a/htdocs/images/planetes/12.jpg b/htdocs/images/planetes/12.jpg deleted file mode 100644 index 416508d..0000000 Binary files a/htdocs/images/planetes/12.jpg and /dev/null differ diff --git a/htdocs/images/planetes/13.jpg b/htdocs/images/planetes/13.jpg deleted file mode 100644 index 6861c8d..0000000 Binary files a/htdocs/images/planetes/13.jpg and /dev/null differ diff --git a/htdocs/images/planetes/14.jpg b/htdocs/images/planetes/14.jpg deleted file mode 100644 index bac8568..0000000 Binary files a/htdocs/images/planetes/14.jpg and /dev/null differ diff --git a/htdocs/images/planetes/15.jpg b/htdocs/images/planetes/15.jpg deleted file mode 100644 index d9f82a7..0000000 Binary files a/htdocs/images/planetes/15.jpg and /dev/null differ diff --git a/htdocs/images/planetes/16.jpg b/htdocs/images/planetes/16.jpg deleted file mode 100644 index 305d244..0000000 Binary files a/htdocs/images/planetes/16.jpg and /dev/null differ diff --git a/htdocs/images/planetes/17.jpg b/htdocs/images/planetes/17.jpg deleted file mode 100644 index ab33da0..0000000 Binary files a/htdocs/images/planetes/17.jpg and /dev/null differ diff --git a/htdocs/images/planetes/18.jpg b/htdocs/images/planetes/18.jpg deleted file mode 100644 index 1e2e208..0000000 Binary files a/htdocs/images/planetes/18.jpg and /dev/null differ diff --git a/htdocs/images/planetes/19.jpg b/htdocs/images/planetes/19.jpg deleted file mode 100644 index 6885bf2..0000000 Binary files a/htdocs/images/planetes/19.jpg and /dev/null differ diff --git a/htdocs/images/planetes/2.jpg b/htdocs/images/planetes/2.jpg deleted file mode 100644 index cd05f75..0000000 Binary files a/htdocs/images/planetes/2.jpg and /dev/null differ diff --git a/htdocs/images/planetes/20.jpg b/htdocs/images/planetes/20.jpg deleted file mode 100644 index 19bc5fb..0000000 Binary files a/htdocs/images/planetes/20.jpg and /dev/null differ diff --git a/htdocs/images/planetes/21.jpg b/htdocs/images/planetes/21.jpg deleted file mode 100644 index 6c584d4..0000000 Binary files a/htdocs/images/planetes/21.jpg and /dev/null differ diff --git a/htdocs/images/planetes/22.jpg b/htdocs/images/planetes/22.jpg deleted file mode 100644 index a318072..0000000 Binary files a/htdocs/images/planetes/22.jpg and /dev/null differ diff --git a/htdocs/images/planetes/23.jpg b/htdocs/images/planetes/23.jpg deleted file mode 100644 index 2418250..0000000 Binary files a/htdocs/images/planetes/23.jpg and /dev/null differ diff --git a/htdocs/images/planetes/24.jpg b/htdocs/images/planetes/24.jpg deleted file mode 100644 index 3f851a5..0000000 Binary files a/htdocs/images/planetes/24.jpg and /dev/null differ diff --git a/htdocs/images/planetes/25.jpg b/htdocs/images/planetes/25.jpg deleted file mode 100644 index 8ff95dc..0000000 Binary files a/htdocs/images/planetes/25.jpg and /dev/null differ diff --git a/htdocs/images/planetes/26.jpg b/htdocs/images/planetes/26.jpg deleted file mode 100644 index d184eea..0000000 Binary files a/htdocs/images/planetes/26.jpg and /dev/null differ diff --git a/htdocs/images/planetes/27.jpg b/htdocs/images/planetes/27.jpg deleted file mode 100644 index df15458..0000000 Binary files a/htdocs/images/planetes/27.jpg and /dev/null differ diff --git a/htdocs/images/planetes/28.jpg b/htdocs/images/planetes/28.jpg deleted file mode 100644 index 2b2dd3b..0000000 Binary files a/htdocs/images/planetes/28.jpg and /dev/null differ diff --git a/htdocs/images/planetes/29.jpg b/htdocs/images/planetes/29.jpg deleted file mode 100644 index c92e144..0000000 Binary files a/htdocs/images/planetes/29.jpg and /dev/null differ diff --git a/htdocs/images/planetes/3.jpg b/htdocs/images/planetes/3.jpg deleted file mode 100644 index a1c898a..0000000 Binary files a/htdocs/images/planetes/3.jpg and /dev/null differ diff --git a/htdocs/images/planetes/30.jpg b/htdocs/images/planetes/30.jpg deleted file mode 100644 index 6b9f9a1..0000000 Binary files a/htdocs/images/planetes/30.jpg and /dev/null differ diff --git a/htdocs/images/planetes/31.jpg b/htdocs/images/planetes/31.jpg deleted file mode 100644 index 471a2bc..0000000 Binary files a/htdocs/images/planetes/31.jpg and /dev/null differ diff --git a/htdocs/images/planetes/32.jpg b/htdocs/images/planetes/32.jpg deleted file mode 100644 index fe7e629..0000000 Binary files a/htdocs/images/planetes/32.jpg and /dev/null differ diff --git a/htdocs/images/planetes/4.jpg b/htdocs/images/planetes/4.jpg deleted file mode 100644 index 391ed50..0000000 Binary files a/htdocs/images/planetes/4.jpg and /dev/null differ diff --git a/htdocs/images/planetes/5.jpg b/htdocs/images/planetes/5.jpg deleted file mode 100644 index 353f705..0000000 Binary files a/htdocs/images/planetes/5.jpg and /dev/null differ diff --git a/htdocs/images/planetes/6.jpg b/htdocs/images/planetes/6.jpg deleted file mode 100644 index 39d266a..0000000 Binary files a/htdocs/images/planetes/6.jpg and /dev/null differ diff --git a/htdocs/images/planetes/7.jpg b/htdocs/images/planetes/7.jpg deleted file mode 100644 index 2cf0298..0000000 Binary files a/htdocs/images/planetes/7.jpg and /dev/null differ diff --git a/htdocs/images/planetes/8.jpg b/htdocs/images/planetes/8.jpg deleted file mode 100644 index e2f7df0..0000000 Binary files a/htdocs/images/planetes/8.jpg and /dev/null differ diff --git a/htdocs/images/planetes/9.jpg b/htdocs/images/planetes/9.jpg deleted file mode 100644 index 331e188..0000000 Binary files a/htdocs/images/planetes/9.jpg and /dev/null differ diff --git a/htdocs/images/planetes/index.html b/htdocs/images/planetes/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/planetes/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/planetesANC/.svn/entries b/htdocs/images/planetesANC/.svn/entries deleted file mode 100644 index f5c5cb2..0000000 --- a/htdocs/images/planetesANC/.svn/entries +++ /dev/null @@ -1,1184 +0,0 @@ -9 - -dir -1 -svn://62.4.71.11/HB/htdocs/images/planetesANC -svn://62.4.71.11/HB - - - -2008-12-19T20:29:56.685768Z -1 -phantomas - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -c4074411-828d-4616-b685-8e0a798490ab - -20.jpg -file - - - - -2008-12-13T11:41:11.671875Z -0ac7a55057b3f1a8aa075099c3cbc540 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -80660 - -21.jpg -file - - - - -2008-12-13T11:41:19.453125Z -7c77e1a690412c00223c8c05169feed0 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -69127 - -22.jpg -file - - - - -2008-12-13T11:41:30.015625Z -8b73f215f103abd29730f45201d9cfab -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -84317 - -23.jpg -file - - - - -2008-12-13T11:41:33.203125Z -296e90d7641b90dfdc23e1a760c23a0d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -89378 - -24.jpg -file - - - - -2008-12-13T11:41:37.140625Z -c8a9cf25e55ff6fa479e54b9662c1681 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -84163 - -25.jpg -file - - - - -2008-12-13T11:41:40.656250Z -f76e57fa1b9b96ac598e3fedd2913ca6 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -69846 - -26.jpg -file - - - - -2008-12-13T11:41:44.093750Z -0beadd17b464bcc9161b8bc977dc89e8 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -86555 - -27.jpg -file - - - - -2008-12-13T11:41:47.093750Z -8257f990692becff4d25427f914bf336 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -79842 - -28.jpg -file - - - - -2008-12-13T11:41:50.593750Z -36c1311a5f22fafd661d2ae27fca96e5 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -72590 - -29.jpg -file - - - - -2008-12-13T11:41:53.625000Z -a9a91442f43efdf6e2c8417a31428ba7 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -74286 - -1.jpg -file - - - - -2008-08-27T16:43:00.000000Z -3ba4923084e9040c2e2bd54c920715ab -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -74241 - -2.jpg -file - - - - -2008-08-27T17:52:00.000000Z -f8fb74557c20d759f8834fc1219a7605 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -97271 - -3.jpg -file - - - - -2008-08-27T18:54:00.000000Z -06e9e3bb26df490c522ab2db49dbf8ca -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -67797 - -4.jpg -file - - - - -2008-08-28T15:50:00.000000Z -a4b3d8f33d392338011bff6ca77061e1 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -56501 - -5.jpg -file - - - - -2008-08-28T15:13:00.000000Z -aee558353ad2393617cd09cf8c67202c -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -79452 - -6.jpg -file - - - - -2008-08-28T16:05:00.000000Z -b9ee85c36a3aa62785d7127cfac8c294 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -62795 - -7.jpg -file - - - - -2008-08-28T16:23:00.000000Z -5db5d98b395c28e717f2567386fab490 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -66962 - -8.jpg -file - - - - -2008-08-29T10:41:00.000000Z -7de9677ebc40dd51d9179b8c36ee78c4 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -76596 - -Thumbs.db -file - - - - -2008-11-28T22:11:34.515000Z -eeee554242da2df6b026729ebc7e7bd9 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -8192 - -9.jpg -file - - - - -2008-08-29T11:18:00.000000Z -61532aa2a8b517fa9df6ac2707980338 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -75658 - -10.jpg -file - - - - -2008-08-29T11:35:00.000000Z -22ebdc8c551e5d79548d1028c32524e2 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -73888 - -11.jpg -file - - - - -2008-08-29T11:49:00.000000Z -431a472d4be8b6713858585bea7f2c3d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -63044 - -30.jpg -file - - - - -2008-12-13T11:41:56.531250Z -00567e47e3659bd3c070954b014f3246 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -79404 - -12.jpg -file - - - - -2008-08-29T12:13:00.000000Z -146763c6bfcc0bd8d197ebc56639a0af -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -71705 - -31.jpg -file - - - - -2008-12-13T11:41:59.984375Z -4b8fc851e3c2eb3b00f04ff4c953bbb2 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -78835 - -13.jpg -file - - - - -2008-08-29T16:01:00.000000Z -0f9e5eb0d0f17a0e4ed74c1a2c253aec -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -80298 - -32.jpg -file - - - - -2008-12-13T11:42:07.359375Z -adc4f77ea2c9b73ce03b5a60214abf58 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -88743 - -14.jpg -file - - - - -2008-08-29T16:13:00.000000Z -90453b4545277dd7db61e2d617a49bff -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -64246 - -15.jpg -file - - - - -2008-09-05T16:23:00.000000Z -1a362541b859f7160faed5312a48074d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -71535 - -16.jpg -file - - - - -2008-08-29T16:48:00.000000Z -2047063fd7322cae44ef4f2db4b6120c -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -71801 - -17.jpg -file - - - - -2008-08-29T17:02:00.000000Z -d4097ef2aad23531c75eb6ae50bd8b96 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -85000 - -18.jpg -file - - - - -2008-08-30T10:41:00.000000Z -f5b4164bd7db3ff5549a32abc0fbb736 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -83792 - -19.jpg -file - - - - -2008-08-30T11:14:00.000000Z -2e7aa2afa48ce7d9fa945cc77e4e1738 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -70526 - -index.html -file - - - - -2008-07-13T09:32:24.614375Z -aa368d44f02d0b27c149a42e250cd0e8 -2008-12-19T20:29:56.685768Z -1 -phantomas - - - - - - - - - - - - - - - - - - - - - -1345 - diff --git a/htdocs/images/planetesANC/.svn/format b/htdocs/images/planetesANC/.svn/format deleted file mode 100644 index ec63514..0000000 --- a/htdocs/images/planetesANC/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/htdocs/images/planetesANC/.svn/prop-base/1.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/1.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/1.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/10.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/10.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/10.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/11.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/11.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/11.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/12.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/12.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/12.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/13.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/13.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/13.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/14.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/14.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/14.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/15.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/15.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/15.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/16.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/16.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/16.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/17.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/17.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/17.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/18.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/18.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/18.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/19.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/19.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/19.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/2.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/2.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/2.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/20.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/20.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/20.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/21.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/21.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/21.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/22.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/22.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/22.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/23.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/23.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/23.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/24.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/24.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/24.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/25.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/25.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/25.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/26.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/26.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/26.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/27.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/27.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/27.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/28.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/28.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/28.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/29.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/29.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/29.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/3.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/3.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/3.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/30.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/30.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/30.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/31.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/31.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/31.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/32.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/32.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/32.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/4.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/4.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/4.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/5.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/5.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/5.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/6.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/6.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/6.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/7.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/7.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/7.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/8.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/8.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/8.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/9.jpg.svn-base b/htdocs/images/planetesANC/.svn/prop-base/9.jpg.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/9.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/prop-base/Thumbs.db.svn-base b/htdocs/images/planetesANC/.svn/prop-base/Thumbs.db.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/planetesANC/.svn/prop-base/Thumbs.db.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/planetesANC/.svn/text-base/1.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/1.jpg.svn-base deleted file mode 100644 index 282fcde..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/1.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/10.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/10.jpg.svn-base deleted file mode 100644 index 84e2412..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/10.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/11.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/11.jpg.svn-base deleted file mode 100644 index 6435940..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/11.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/12.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/12.jpg.svn-base deleted file mode 100644 index 416508d..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/12.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/13.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/13.jpg.svn-base deleted file mode 100644 index 6861c8d..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/13.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/14.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/14.jpg.svn-base deleted file mode 100644 index bac8568..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/14.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/15.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/15.jpg.svn-base deleted file mode 100644 index d9f82a7..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/15.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/16.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/16.jpg.svn-base deleted file mode 100644 index 305d244..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/16.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/17.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/17.jpg.svn-base deleted file mode 100644 index ab33da0..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/17.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/18.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/18.jpg.svn-base deleted file mode 100644 index 1e2e208..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/18.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/19.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/19.jpg.svn-base deleted file mode 100644 index 6885bf2..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/19.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/2.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/2.jpg.svn-base deleted file mode 100644 index cd05f75..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/2.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/20.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/20.jpg.svn-base deleted file mode 100644 index 19bc5fb..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/20.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/21.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/21.jpg.svn-base deleted file mode 100644 index 6c584d4..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/21.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/22.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/22.jpg.svn-base deleted file mode 100644 index a318072..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/22.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/23.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/23.jpg.svn-base deleted file mode 100644 index 2418250..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/23.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/24.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/24.jpg.svn-base deleted file mode 100644 index 3f851a5..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/24.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/25.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/25.jpg.svn-base deleted file mode 100644 index 8ff95dc..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/25.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/26.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/26.jpg.svn-base deleted file mode 100644 index d184eea..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/26.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/27.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/27.jpg.svn-base deleted file mode 100644 index df15458..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/27.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/28.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/28.jpg.svn-base deleted file mode 100644 index 2b2dd3b..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/28.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/29.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/29.jpg.svn-base deleted file mode 100644 index c92e144..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/29.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/3.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/3.jpg.svn-base deleted file mode 100644 index a1c898a..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/3.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/30.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/30.jpg.svn-base deleted file mode 100644 index 6b9f9a1..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/30.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/31.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/31.jpg.svn-base deleted file mode 100644 index 471a2bc..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/31.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/32.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/32.jpg.svn-base deleted file mode 100644 index fe7e629..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/32.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/4.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/4.jpg.svn-base deleted file mode 100644 index 391ed50..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/4.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/5.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/5.jpg.svn-base deleted file mode 100644 index 353f705..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/5.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/6.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/6.jpg.svn-base deleted file mode 100644 index 39d266a..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/6.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/7.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/7.jpg.svn-base deleted file mode 100644 index 2cf0298..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/7.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/8.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/8.jpg.svn-base deleted file mode 100644 index e2f7df0..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/8.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/9.jpg.svn-base b/htdocs/images/planetesANC/.svn/text-base/9.jpg.svn-base deleted file mode 100644 index 331e188..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/9.jpg.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/Thumbs.db.svn-base b/htdocs/images/planetesANC/.svn/text-base/Thumbs.db.svn-base deleted file mode 100644 index a7700d4..0000000 Binary files a/htdocs/images/planetesANC/.svn/text-base/Thumbs.db.svn-base and /dev/null differ diff --git a/htdocs/images/planetesANC/.svn/text-base/index.html.svn-base b/htdocs/images/planetesANC/.svn/text-base/index.html.svn-base deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/planetesANC/.svn/text-base/index.html.svn-base +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/planetesANC/1.jpg b/htdocs/images/planetesANC/1.jpg deleted file mode 100644 index 282fcde..0000000 Binary files a/htdocs/images/planetesANC/1.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/10.jpg b/htdocs/images/planetesANC/10.jpg deleted file mode 100644 index 84e2412..0000000 Binary files a/htdocs/images/planetesANC/10.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/11.jpg b/htdocs/images/planetesANC/11.jpg deleted file mode 100644 index 6435940..0000000 Binary files a/htdocs/images/planetesANC/11.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/12.jpg b/htdocs/images/planetesANC/12.jpg deleted file mode 100644 index 416508d..0000000 Binary files a/htdocs/images/planetesANC/12.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/13.jpg b/htdocs/images/planetesANC/13.jpg deleted file mode 100644 index 6861c8d..0000000 Binary files a/htdocs/images/planetesANC/13.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/14.jpg b/htdocs/images/planetesANC/14.jpg deleted file mode 100644 index bac8568..0000000 Binary files a/htdocs/images/planetesANC/14.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/15.jpg b/htdocs/images/planetesANC/15.jpg deleted file mode 100644 index d9f82a7..0000000 Binary files a/htdocs/images/planetesANC/15.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/16.jpg b/htdocs/images/planetesANC/16.jpg deleted file mode 100644 index 305d244..0000000 Binary files a/htdocs/images/planetesANC/16.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/17.jpg b/htdocs/images/planetesANC/17.jpg deleted file mode 100644 index ab33da0..0000000 Binary files a/htdocs/images/planetesANC/17.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/18.jpg b/htdocs/images/planetesANC/18.jpg deleted file mode 100644 index 1e2e208..0000000 Binary files a/htdocs/images/planetesANC/18.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/19.jpg b/htdocs/images/planetesANC/19.jpg deleted file mode 100644 index 6885bf2..0000000 Binary files a/htdocs/images/planetesANC/19.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/2.jpg b/htdocs/images/planetesANC/2.jpg deleted file mode 100644 index cd05f75..0000000 Binary files a/htdocs/images/planetesANC/2.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/20.jpg b/htdocs/images/planetesANC/20.jpg deleted file mode 100644 index 19bc5fb..0000000 Binary files a/htdocs/images/planetesANC/20.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/21.jpg b/htdocs/images/planetesANC/21.jpg deleted file mode 100644 index 6c584d4..0000000 Binary files a/htdocs/images/planetesANC/21.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/22.jpg b/htdocs/images/planetesANC/22.jpg deleted file mode 100644 index a318072..0000000 Binary files a/htdocs/images/planetesANC/22.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/23.jpg b/htdocs/images/planetesANC/23.jpg deleted file mode 100644 index 2418250..0000000 Binary files a/htdocs/images/planetesANC/23.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/24.jpg b/htdocs/images/planetesANC/24.jpg deleted file mode 100644 index 3f851a5..0000000 Binary files a/htdocs/images/planetesANC/24.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/25.jpg b/htdocs/images/planetesANC/25.jpg deleted file mode 100644 index 8ff95dc..0000000 Binary files a/htdocs/images/planetesANC/25.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/26.jpg b/htdocs/images/planetesANC/26.jpg deleted file mode 100644 index d184eea..0000000 Binary files a/htdocs/images/planetesANC/26.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/27.jpg b/htdocs/images/planetesANC/27.jpg deleted file mode 100644 index df15458..0000000 Binary files a/htdocs/images/planetesANC/27.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/28.jpg b/htdocs/images/planetesANC/28.jpg deleted file mode 100644 index 2b2dd3b..0000000 Binary files a/htdocs/images/planetesANC/28.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/29.jpg b/htdocs/images/planetesANC/29.jpg deleted file mode 100644 index c92e144..0000000 Binary files a/htdocs/images/planetesANC/29.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/3.jpg b/htdocs/images/planetesANC/3.jpg deleted file mode 100644 index a1c898a..0000000 Binary files a/htdocs/images/planetesANC/3.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/30.jpg b/htdocs/images/planetesANC/30.jpg deleted file mode 100644 index 6b9f9a1..0000000 Binary files a/htdocs/images/planetesANC/30.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/31.jpg b/htdocs/images/planetesANC/31.jpg deleted file mode 100644 index 471a2bc..0000000 Binary files a/htdocs/images/planetesANC/31.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/32.jpg b/htdocs/images/planetesANC/32.jpg deleted file mode 100644 index fe7e629..0000000 Binary files a/htdocs/images/planetesANC/32.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/4.jpg b/htdocs/images/planetesANC/4.jpg deleted file mode 100644 index 391ed50..0000000 Binary files a/htdocs/images/planetesANC/4.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/5.jpg b/htdocs/images/planetesANC/5.jpg deleted file mode 100644 index 353f705..0000000 Binary files a/htdocs/images/planetesANC/5.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/6.jpg b/htdocs/images/planetesANC/6.jpg deleted file mode 100644 index 39d266a..0000000 Binary files a/htdocs/images/planetesANC/6.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/7.jpg b/htdocs/images/planetesANC/7.jpg deleted file mode 100644 index 2cf0298..0000000 Binary files a/htdocs/images/planetesANC/7.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/8.jpg b/htdocs/images/planetesANC/8.jpg deleted file mode 100644 index e2f7df0..0000000 Binary files a/htdocs/images/planetesANC/8.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/9.jpg b/htdocs/images/planetesANC/9.jpg deleted file mode 100644 index 331e188..0000000 Binary files a/htdocs/images/planetesANC/9.jpg and /dev/null differ diff --git a/htdocs/images/planetesANC/Thumbs.db b/htdocs/images/planetesANC/Thumbs.db deleted file mode 100644 index a7700d4..0000000 Binary files a/htdocs/images/planetesANC/Thumbs.db and /dev/null differ diff --git a/htdocs/images/planetesANC/index.html b/htdocs/images/planetesANC/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/planetesANC/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/smile/.svn/entries b/htdocs/images/smile/.svn/entries deleted file mode 100644 index a9e723f..0000000 --- a/htdocs/images/smile/.svn/entries +++ /dev/null @@ -1,640 +0,0 @@ -9 - -dir -1 -svn://62.4.71.11/HB/htdocs/images/smile -svn://62.4.71.11/HB - - - -2008-12-19T20:29:56.685768Z -1 -phantomas - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -c4074411-828d-4616-b685-8e0a798490ab - -surprised.gif -file - - - - -2008-07-13T09:32:12.223750Z -ae735b5dd659dc4b3b0f249ce59bef79 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -174 - -biggrin.gif -file - - - - -2008-07-13T09:32:12.364375Z -f970a6591668c625e4b9dbd3b7a450d7 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -172 - -Thumbs.db -file - - - - -2008-11-28T22:11:34.895000Z -6381120bf94a4f88dbe655527f0f4b50 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -10240 - -twisted.gif -file - - - - -2008-07-13T09:32:12.505000Z -c9c3d12da1e9da699e490b86d24eee85 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -238 - -razz.gif -file - - - - -2008-07-13T09:32:12.567500Z -7aec68426aa06f01e2b1ac250e5aee62 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -176 - -lol.gif -file - - - - -2008-07-13T09:32:12.676875Z -b76e7729d43c4a49182d020741285bef -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -336 - -redface.gif -file - - - - -2008-07-13T09:32:12.833125Z -d7e9d095432cbcf09375ffc782c30c23 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -650 - -cool.gif -file - - - - -2008-07-13T09:32:12.942500Z -25c83ea511f206e88f214719dad9c88c -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -172 - -rolleyes.gif -file - - - - -2008-07-13T09:32:13.051875Z -19071b1af987946e96dcef6ce0611c6b -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -485 - -evil.gif -file - - - - -2008-07-13T09:32:13.161250Z -178255bb3fe2c3aa790c1f8ec8738504 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -236 - -mad.gif -file - - - - -2008-07-13T09:32:13.239375Z -e4355c00894da1bd78341a6b54d20b56 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -174 - -eek.gif -file - - - - -2008-07-13T09:32:13.411250Z -52e43743e38a67d5d28845a104ca8c7d -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -170 - -index.html -file - - - - -2008-07-13T09:32:13.505000Z -aa368d44f02d0b27c149a42e250cd0e8 -2008-12-19T20:29:56.685768Z -1 -phantomas - - - - - - - - - - - - - - - - - - - - - -1345 - -confused.gif -file - - - - -2008-07-13T09:32:13.630000Z -4affed1b55e5f73c9f0675ae7d0ad823 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -171 - -sad.gif -file - - - - -2008-07-13T09:32:13.801875Z -5a50535a06def9d01076772e5e9d235b -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -171 - -wink.gif -file - - - - -2008-07-13T09:32:13.895625Z -f058206bb8ff732dbe8e7aa10d74c9cd -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -170 - -smile.gif -file - - - - -2008-07-13T09:32:14.051875Z -9ee646ffab71107d1a11407be52f33a5 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -174 - -neutral.gif -file - - - - -2008-07-13T09:32:14.223750Z -4e8b7a51c7f60a2362a4f67fbbc937e7 -2008-12-19T20:29:56.685768Z -1 -phantomas -has-props - - - - - - - - - - - - - - - - - - - - -171 - diff --git a/htdocs/images/smile/.svn/format b/htdocs/images/smile/.svn/format deleted file mode 100644 index ec63514..0000000 --- a/htdocs/images/smile/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/htdocs/images/smile/.svn/prop-base/Thumbs.db.svn-base b/htdocs/images/smile/.svn/prop-base/Thumbs.db.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/Thumbs.db.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/biggrin.gif.svn-base b/htdocs/images/smile/.svn/prop-base/biggrin.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/biggrin.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/confused.gif.svn-base b/htdocs/images/smile/.svn/prop-base/confused.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/confused.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/cool.gif.svn-base b/htdocs/images/smile/.svn/prop-base/cool.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/cool.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/eek.gif.svn-base b/htdocs/images/smile/.svn/prop-base/eek.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/eek.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/evil.gif.svn-base b/htdocs/images/smile/.svn/prop-base/evil.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/evil.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/lol.gif.svn-base b/htdocs/images/smile/.svn/prop-base/lol.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/lol.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/mad.gif.svn-base b/htdocs/images/smile/.svn/prop-base/mad.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/mad.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/neutral.gif.svn-base b/htdocs/images/smile/.svn/prop-base/neutral.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/neutral.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/razz.gif.svn-base b/htdocs/images/smile/.svn/prop-base/razz.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/razz.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/redface.gif.svn-base b/htdocs/images/smile/.svn/prop-base/redface.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/redface.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/rolleyes.gif.svn-base b/htdocs/images/smile/.svn/prop-base/rolleyes.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/rolleyes.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/sad.gif.svn-base b/htdocs/images/smile/.svn/prop-base/sad.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/sad.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/smile.gif.svn-base b/htdocs/images/smile/.svn/prop-base/smile.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/smile.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/surprised.gif.svn-base b/htdocs/images/smile/.svn/prop-base/surprised.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/surprised.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/twisted.gif.svn-base b/htdocs/images/smile/.svn/prop-base/twisted.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/twisted.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/prop-base/wink.gif.svn-base b/htdocs/images/smile/.svn/prop-base/wink.gif.svn-base deleted file mode 100644 index 5e9587e..0000000 --- a/htdocs/images/smile/.svn/prop-base/wink.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/htdocs/images/smile/.svn/text-base/Thumbs.db.svn-base b/htdocs/images/smile/.svn/text-base/Thumbs.db.svn-base deleted file mode 100644 index 5fc72ac..0000000 Binary files a/htdocs/images/smile/.svn/text-base/Thumbs.db.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/biggrin.gif.svn-base b/htdocs/images/smile/.svn/text-base/biggrin.gif.svn-base deleted file mode 100644 index d352772..0000000 Binary files a/htdocs/images/smile/.svn/text-base/biggrin.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/confused.gif.svn-base b/htdocs/images/smile/.svn/text-base/confused.gif.svn-base deleted file mode 100644 index 0c49e06..0000000 Binary files a/htdocs/images/smile/.svn/text-base/confused.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/cool.gif.svn-base b/htdocs/images/smile/.svn/text-base/cool.gif.svn-base deleted file mode 100644 index cead030..0000000 Binary files a/htdocs/images/smile/.svn/text-base/cool.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/eek.gif.svn-base b/htdocs/images/smile/.svn/text-base/eek.gif.svn-base deleted file mode 100644 index 5d39781..0000000 Binary files a/htdocs/images/smile/.svn/text-base/eek.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/evil.gif.svn-base b/htdocs/images/smile/.svn/text-base/evil.gif.svn-base deleted file mode 100644 index ab1aa8e..0000000 Binary files a/htdocs/images/smile/.svn/text-base/evil.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/index.html.svn-base b/htdocs/images/smile/.svn/text-base/index.html.svn-base deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/smile/.svn/text-base/index.html.svn-base +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/smile/.svn/text-base/lol.gif.svn-base b/htdocs/images/smile/.svn/text-base/lol.gif.svn-base deleted file mode 100644 index 374ba15..0000000 Binary files a/htdocs/images/smile/.svn/text-base/lol.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/mad.gif.svn-base b/htdocs/images/smile/.svn/text-base/mad.gif.svn-base deleted file mode 100644 index 1f6c3c2..0000000 Binary files a/htdocs/images/smile/.svn/text-base/mad.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/neutral.gif.svn-base b/htdocs/images/smile/.svn/text-base/neutral.gif.svn-base deleted file mode 100644 index 4f31156..0000000 Binary files a/htdocs/images/smile/.svn/text-base/neutral.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/razz.gif.svn-base b/htdocs/images/smile/.svn/text-base/razz.gif.svn-base deleted file mode 100644 index 29da2a2..0000000 Binary files a/htdocs/images/smile/.svn/text-base/razz.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/redface.gif.svn-base b/htdocs/images/smile/.svn/text-base/redface.gif.svn-base deleted file mode 100644 index ad76283..0000000 Binary files a/htdocs/images/smile/.svn/text-base/redface.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/rolleyes.gif.svn-base b/htdocs/images/smile/.svn/text-base/rolleyes.gif.svn-base deleted file mode 100644 index d7f5f2f..0000000 Binary files a/htdocs/images/smile/.svn/text-base/rolleyes.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/sad.gif.svn-base b/htdocs/images/smile/.svn/text-base/sad.gif.svn-base deleted file mode 100644 index d2ac78c..0000000 Binary files a/htdocs/images/smile/.svn/text-base/sad.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/smile.gif.svn-base b/htdocs/images/smile/.svn/text-base/smile.gif.svn-base deleted file mode 100644 index 7b1f6d3..0000000 Binary files a/htdocs/images/smile/.svn/text-base/smile.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/surprised.gif.svn-base b/htdocs/images/smile/.svn/text-base/surprised.gif.svn-base deleted file mode 100644 index cb21424..0000000 Binary files a/htdocs/images/smile/.svn/text-base/surprised.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/twisted.gif.svn-base b/htdocs/images/smile/.svn/text-base/twisted.gif.svn-base deleted file mode 100644 index 502fe24..0000000 Binary files a/htdocs/images/smile/.svn/text-base/twisted.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/.svn/text-base/wink.gif.svn-base b/htdocs/images/smile/.svn/text-base/wink.gif.svn-base deleted file mode 100644 index d148288..0000000 Binary files a/htdocs/images/smile/.svn/text-base/wink.gif.svn-base and /dev/null differ diff --git a/htdocs/images/smile/Thumbs.db b/htdocs/images/smile/Thumbs.db deleted file mode 100644 index 5fc72ac..0000000 Binary files a/htdocs/images/smile/Thumbs.db and /dev/null differ diff --git a/htdocs/images/smile/biggrin.gif b/htdocs/images/smile/biggrin.gif deleted file mode 100644 index d352772..0000000 Binary files a/htdocs/images/smile/biggrin.gif and /dev/null differ diff --git a/htdocs/images/smile/confused.gif b/htdocs/images/smile/confused.gif deleted file mode 100644 index 0c49e06..0000000 Binary files a/htdocs/images/smile/confused.gif and /dev/null differ diff --git a/htdocs/images/smile/cool.gif b/htdocs/images/smile/cool.gif deleted file mode 100644 index cead030..0000000 Binary files a/htdocs/images/smile/cool.gif and /dev/null differ diff --git a/htdocs/images/smile/eek.gif b/htdocs/images/smile/eek.gif deleted file mode 100644 index 5d39781..0000000 Binary files a/htdocs/images/smile/eek.gif and /dev/null differ diff --git a/htdocs/images/smile/evil.gif b/htdocs/images/smile/evil.gif deleted file mode 100644 index ab1aa8e..0000000 Binary files a/htdocs/images/smile/evil.gif and /dev/null differ diff --git a/htdocs/images/smile/index.html b/htdocs/images/smile/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/smile/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/smile/lol.gif b/htdocs/images/smile/lol.gif deleted file mode 100644 index 374ba15..0000000 Binary files a/htdocs/images/smile/lol.gif and /dev/null differ diff --git a/htdocs/images/smile/mad.gif b/htdocs/images/smile/mad.gif deleted file mode 100644 index 1f6c3c2..0000000 Binary files a/htdocs/images/smile/mad.gif and /dev/null differ diff --git a/htdocs/images/smile/neutral.gif b/htdocs/images/smile/neutral.gif deleted file mode 100644 index 4f31156..0000000 Binary files a/htdocs/images/smile/neutral.gif and /dev/null differ diff --git a/htdocs/images/smile/razz.gif b/htdocs/images/smile/razz.gif deleted file mode 100644 index 29da2a2..0000000 Binary files a/htdocs/images/smile/razz.gif and /dev/null differ diff --git a/htdocs/images/smile/redface.gif b/htdocs/images/smile/redface.gif deleted file mode 100644 index ad76283..0000000 Binary files a/htdocs/images/smile/redface.gif and /dev/null differ diff --git a/htdocs/images/smile/rolleyes.gif b/htdocs/images/smile/rolleyes.gif deleted file mode 100644 index d7f5f2f..0000000 Binary files a/htdocs/images/smile/rolleyes.gif and /dev/null differ diff --git a/htdocs/images/smile/sad.gif b/htdocs/images/smile/sad.gif deleted file mode 100644 index d2ac78c..0000000 Binary files a/htdocs/images/smile/sad.gif and /dev/null differ diff --git a/htdocs/images/smile/smile.gif b/htdocs/images/smile/smile.gif deleted file mode 100644 index 7b1f6d3..0000000 Binary files a/htdocs/images/smile/smile.gif and /dev/null differ diff --git a/htdocs/images/smile/surprised.gif b/htdocs/images/smile/surprised.gif deleted file mode 100644 index cb21424..0000000 Binary files a/htdocs/images/smile/surprised.gif and /dev/null differ diff --git a/htdocs/images/smile/twisted.gif b/htdocs/images/smile/twisted.gif deleted file mode 100644 index 502fe24..0000000 Binary files a/htdocs/images/smile/twisted.gif and /dev/null differ diff --git a/htdocs/images/smile/wink.gif b/htdocs/images/smile/wink.gif deleted file mode 100644 index d148288..0000000 Binary files a/htdocs/images/smile/wink.gif and /dev/null differ diff --git a/htdocs/images/smiles/biggrin.gif b/htdocs/images/smiles/biggrin.gif deleted file mode 100644 index d352772..0000000 Binary files a/htdocs/images/smiles/biggrin.gif and /dev/null differ diff --git a/htdocs/images/smiles/confused.gif b/htdocs/images/smiles/confused.gif deleted file mode 100644 index 0c49e06..0000000 Binary files a/htdocs/images/smiles/confused.gif and /dev/null differ diff --git a/htdocs/images/smiles/cool.gif b/htdocs/images/smiles/cool.gif deleted file mode 100644 index cead030..0000000 Binary files a/htdocs/images/smiles/cool.gif and /dev/null differ diff --git a/htdocs/images/smiles/eek.gif b/htdocs/images/smiles/eek.gif deleted file mode 100644 index 5d39781..0000000 Binary files a/htdocs/images/smiles/eek.gif and /dev/null differ diff --git a/htdocs/images/smiles/evil.gif b/htdocs/images/smiles/evil.gif deleted file mode 100644 index ab1aa8e..0000000 Binary files a/htdocs/images/smiles/evil.gif and /dev/null differ diff --git a/htdocs/images/smiles/index.html b/htdocs/images/smiles/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/smiles/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/smiles/lol.gif b/htdocs/images/smiles/lol.gif deleted file mode 100644 index 374ba15..0000000 Binary files a/htdocs/images/smiles/lol.gif and /dev/null differ diff --git a/htdocs/images/smiles/mad.gif b/htdocs/images/smiles/mad.gif deleted file mode 100644 index 1f6c3c2..0000000 Binary files a/htdocs/images/smiles/mad.gif and /dev/null differ diff --git a/htdocs/images/smiles/neutral.gif b/htdocs/images/smiles/neutral.gif deleted file mode 100644 index 4f31156..0000000 Binary files a/htdocs/images/smiles/neutral.gif and /dev/null differ diff --git a/htdocs/images/smiles/razz.gif b/htdocs/images/smiles/razz.gif deleted file mode 100644 index 29da2a2..0000000 Binary files a/htdocs/images/smiles/razz.gif and /dev/null differ diff --git a/htdocs/images/smiles/redface.gif b/htdocs/images/smiles/redface.gif deleted file mode 100644 index ad76283..0000000 Binary files a/htdocs/images/smiles/redface.gif and /dev/null differ diff --git a/htdocs/images/smiles/rolleyes.gif b/htdocs/images/smiles/rolleyes.gif deleted file mode 100644 index d7f5f2f..0000000 Binary files a/htdocs/images/smiles/rolleyes.gif and /dev/null differ diff --git a/htdocs/images/smiles/sad.gif b/htdocs/images/smiles/sad.gif deleted file mode 100644 index d2ac78c..0000000 Binary files a/htdocs/images/smiles/sad.gif and /dev/null differ diff --git a/htdocs/images/smiles/smile.gif b/htdocs/images/smiles/smile.gif deleted file mode 100644 index 7b1f6d3..0000000 Binary files a/htdocs/images/smiles/smile.gif and /dev/null differ diff --git a/htdocs/images/smiles/surprised.gif b/htdocs/images/smiles/surprised.gif deleted file mode 100644 index cb21424..0000000 Binary files a/htdocs/images/smiles/surprised.gif and /dev/null differ diff --git a/htdocs/images/smiles/twisted.gif b/htdocs/images/smiles/twisted.gif deleted file mode 100644 index 502fe24..0000000 Binary files a/htdocs/images/smiles/twisted.gif and /dev/null differ diff --git a/htdocs/images/smiles/wink.gif b/htdocs/images/smiles/wink.gif deleted file mode 100644 index d148288..0000000 Binary files a/htdocs/images/smiles/wink.gif and /dev/null differ diff --git a/htdocs/images/technologies/39969905fullew4.jpg b/htdocs/images/technologies/39969905fullew4.jpg deleted file mode 100644 index 850514d..0000000 Binary files a/htdocs/images/technologies/39969905fullew4.jpg and /dev/null differ diff --git a/htdocs/images/technologies/IA4.jpg b/htdocs/images/technologies/IA4.jpg deleted file mode 100644 index 11fc9e9..0000000 Binary files a/htdocs/images/technologies/IA4.jpg and /dev/null differ diff --git a/htdocs/images/technologies/Mjolnir.jpg b/htdocs/images/technologies/Mjolnir.jpg deleted file mode 100644 index c3d33d6..0000000 Binary files a/htdocs/images/technologies/Mjolnir.jpg and /dev/null differ diff --git a/htdocs/images/technologies/arme.jpg b/htdocs/images/technologies/arme.jpg deleted file mode 100644 index a496a0e..0000000 Binary files a/htdocs/images/technologies/arme.jpg and /dev/null differ diff --git a/htdocs/images/technologies/arme.png b/htdocs/images/technologies/arme.png deleted file mode 100644 index 89e0762..0000000 Binary files a/htdocs/images/technologies/arme.png and /dev/null differ diff --git a/htdocs/images/technologies/armement.jpg b/htdocs/images/technologies/armement.jpg deleted file mode 100644 index 94df140..0000000 Binary files a/htdocs/images/technologies/armement.jpg and /dev/null differ diff --git a/htdocs/images/technologies/armuremc8ij.jpg b/htdocs/images/technologies/armuremc8ij.jpg deleted file mode 100644 index 8731dab..0000000 Binary files a/htdocs/images/technologies/armuremc8ij.jpg and /dev/null differ diff --git a/htdocs/images/technologies/blindage.jpg b/htdocs/images/technologies/blindage.jpg deleted file mode 100644 index 0dc1d6d..0000000 Binary files a/htdocs/images/technologies/blindage.jpg and /dev/null differ diff --git a/htdocs/images/technologies/boucliervaiseaucovenantey4.jpg b/htdocs/images/technologies/boucliervaiseaucovenantey4.jpg deleted file mode 100644 index a21d91d..0000000 Binary files a/htdocs/images/technologies/boucliervaiseaucovenantey4.jpg and /dev/null differ diff --git a/htdocs/images/technologies/citydevlopment1px.jpg b/htdocs/images/technologies/citydevlopment1px.jpg deleted file mode 100644 index 56d91a9..0000000 Binary files a/htdocs/images/technologies/citydevlopment1px.jpg and /dev/null differ diff --git a/htdocs/images/technologies/commandement.jpg b/htdocs/images/technologies/commandement.jpg deleted file mode 100644 index e5f94ca..0000000 Binary files a/htdocs/images/technologies/commandement.jpg and /dev/null differ diff --git a/htdocs/images/technologies/detection.jpg b/htdocs/images/technologies/detection.jpg deleted file mode 100644 index ff8e2e8..0000000 Binary files a/htdocs/images/technologies/detection.jpg and /dev/null differ diff --git a/htdocs/images/technologies/developpement.jpg b/htdocs/images/technologies/developpement.jpg deleted file mode 100644 index b11b7ad..0000000 Binary files a/htdocs/images/technologies/developpement.jpg and /dev/null differ diff --git a/htdocs/images/technologies/energie.jpg b/htdocs/images/technologies/energie.jpg deleted file mode 100644 index f00182a..0000000 Binary files a/htdocs/images/technologies/energie.jpg and /dev/null differ diff --git a/htdocs/images/technologies/ernergieforruner.jpg b/htdocs/images/technologies/ernergieforruner.jpg deleted file mode 100644 index 3f1813b..0000000 Binary files a/htdocs/images/technologies/ernergieforruner.jpg and /dev/null differ diff --git a/htdocs/images/technologies/hyperespace.jpg b/htdocs/images/technologies/hyperespace.jpg deleted file mode 100644 index cc6433c..0000000 Binary files a/htdocs/images/technologies/hyperespace.jpg and /dev/null differ diff --git a/htdocs/images/technologies/hyperespace2.jpg b/htdocs/images/technologies/hyperespace2.jpg deleted file mode 100644 index b680042..0000000 Binary files a/htdocs/images/technologies/hyperespace2.jpg and /dev/null differ diff --git a/htdocs/images/technologies/index.html b/htdocs/images/technologies/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/technologies/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/technologies/informatique1.jpg b/htdocs/images/technologies/informatique1.jpg deleted file mode 100644 index e79bdfa..0000000 Binary files a/htdocs/images/technologies/informatique1.jpg and /dev/null differ diff --git a/htdocs/images/technologies/medecin1.jpg b/htdocs/images/technologies/medecin1.jpg deleted file mode 100644 index c4a3ec5..0000000 Binary files a/htdocs/images/technologies/medecin1.jpg and /dev/null differ diff --git a/htdocs/images/technologies/medecine.JPG b/htdocs/images/technologies/medecine.JPG deleted file mode 100644 index 7906a07..0000000 Binary files a/htdocs/images/technologies/medecine.JPG and /dev/null differ diff --git a/htdocs/images/technologies/nucleartech9qm.jpg b/htdocs/images/technologies/nucleartech9qm.jpg deleted file mode 100644 index ee4cf73..0000000 Binary files a/htdocs/images/technologies/nucleartech9qm.jpg and /dev/null differ diff --git a/htdocs/images/technologies/plasma4yl.jpg b/htdocs/images/technologies/plasma4yl.jpg deleted file mode 100644 index 4c9f545..0000000 Binary files a/htdocs/images/technologies/plasma4yl.jpg and /dev/null differ diff --git a/htdocs/images/technologies/radar7zr.jpg b/htdocs/images/technologies/radar7zr.jpg deleted file mode 100644 index bebf37e..0000000 Binary files a/htdocs/images/technologies/radar7zr.jpg and /dev/null differ diff --git a/htdocs/images/technologies/reacteur_f.jpg b/htdocs/images/technologies/reacteur_f.jpg deleted file mode 100644 index de43602..0000000 Binary files a/htdocs/images/technologies/reacteur_f.jpg and /dev/null differ diff --git a/htdocs/images/technologies/reacteuracombustion.jpg b/htdocs/images/technologies/reacteuracombustion.jpg deleted file mode 100644 index 559ed00..0000000 Binary files a/htdocs/images/technologies/reacteuracombustion.jpg and /dev/null differ diff --git a/htdocs/images/technologies/reacteurantigravyd1.jpg b/htdocs/images/technologies/reacteurantigravyd1.jpg deleted file mode 100644 index 08842cf..0000000 Binary files a/htdocs/images/technologies/reacteurantigravyd1.jpg and /dev/null differ diff --git a/htdocs/images/technologies/reacteurfusionforerunnewu0.jpg b/htdocs/images/technologies/reacteurfusionforerunnewu0.jpg deleted file mode 100644 index 4567e53..0000000 Binary files a/htdocs/images/technologies/reacteurfusionforerunnewu0.jpg and /dev/null differ diff --git a/htdocs/images/technologies/reacteurfusiontype1al5.jpg b/htdocs/images/technologies/reacteurfusiontype1al5.jpg deleted file mode 100644 index a9e493f..0000000 Binary files a/htdocs/images/technologies/reacteurfusiontype1al5.jpg and /dev/null differ diff --git a/htdocs/images/technologies/reacteurfusiontype2nn6.jpg b/htdocs/images/technologies/reacteurfusiontype2nn6.jpg deleted file mode 100644 index 0fc8841..0000000 Binary files a/htdocs/images/technologies/reacteurfusiontype2nn6.jpg and /dev/null differ diff --git a/htdocs/images/technologies/sanstitretruecolor04no6.jpg b/htdocs/images/technologies/sanstitretruecolor04no6.jpg deleted file mode 100644 index 132ee73..0000000 Binary files a/htdocs/images/technologies/sanstitretruecolor04no6.jpg and /dev/null differ diff --git a/htdocs/images/technologies/sousespacety4.jpg b/htdocs/images/technologies/sousespacety4.jpg deleted file mode 100644 index 991c1dd..0000000 Binary files a/htdocs/images/technologies/sousespacety4.jpg and /dev/null differ diff --git a/htdocs/images/technologies/tactique.jpg b/htdocs/images/technologies/tactique.jpg deleted file mode 100644 index 7490c73..0000000 Binary files a/htdocs/images/technologies/tactique.jpg and /dev/null differ diff --git a/htdocs/images/technologies/techarmes1jk1.jpg b/htdocs/images/technologies/techarmes1jk1.jpg deleted file mode 100644 index a8a9f65..0000000 Binary files a/htdocs/images/technologies/techarmes1jk1.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/94759069vc8.jpg b/htdocs/images/terrestre/94759069vc8.jpg deleted file mode 100644 index d578527..0000000 Binary files a/htdocs/images/terrestre/94759069vc8.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/M12A1_LAAV_Warthog.jpg b/htdocs/images/terrestre/M12A1_LAAV_Warthog.jpg deleted file mode 100644 index 3b8affa..0000000 Binary files a/htdocs/images/terrestre/M12A1_LAAV_Warthog.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/M12G1_LAAV_Warthog.jpg b/htdocs/images/terrestre/M12G1_LAAV_Warthog.jpg deleted file mode 100644 index dadc4f5..0000000 Binary files a/htdocs/images/terrestre/M12G1_LAAV_Warthog.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/M12_LRV_Warthog.jpg b/htdocs/images/terrestre/M12_LRV_Warthog.jpg deleted file mode 100644 index 6c3812d..0000000 Binary files a/htdocs/images/terrestre/M12_LRV_Warthog.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/albatross.jpg b/htdocs/images/terrestre/albatross.jpg deleted file mode 100644 index 664f2a4..0000000 Binary files a/htdocs/images/terrestre/albatross.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/apparition.jpg b/htdocs/images/terrestre/apparition.jpg deleted file mode 100644 index ff30520..0000000 Binary files a/htdocs/images/terrestre/apparition.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/bansheeqp0.jpg b/htdocs/images/terrestre/bansheeqp0.jpg deleted file mode 100644 index c018b83..0000000 Binary files a/htdocs/images/terrestre/bansheeqp0.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/boardingcraft.jpg b/htdocs/images/terrestre/boardingcraft.jpg deleted file mode 100644 index fbfde3d..0000000 Binary files a/htdocs/images/terrestre/boardingcraft.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/csnulancemissileol5.jpg b/htdocs/images/terrestre/csnulancemissileol5.jpg deleted file mode 100644 index 17252e7..0000000 Binary files a/htdocs/images/terrestre/csnulancemissileol5.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/csnushortswordad3.jpg b/htdocs/images/terrestre/csnushortswordad3.jpg deleted file mode 100644 index 5e90838..0000000 Binary files a/htdocs/images/terrestre/csnushortswordad3.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/csnusparrowhawkkp4.jpg b/htdocs/images/terrestre/csnusparrowhawkkp4.jpg deleted file mode 100644 index 2791d28..0000000 Binary files a/htdocs/images/terrestre/csnusparrowhawkkp4.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/dca_legere.jpg b/htdocs/images/terrestre/dca_legere.jpg deleted file mode 100644 index 1b068ef..0000000 Binary files a/htdocs/images/terrestre/dca_legere.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/dca_lourde.jpg b/htdocs/images/terrestre/dca_lourde.jpg deleted file mode 100644 index 38993dd..0000000 Binary files a/htdocs/images/terrestre/dca_lourde.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/defcovie.jpg b/htdocs/images/terrestre/defcovie.jpg deleted file mode 100644 index b0c93ac..0000000 Binary files a/htdocs/images/terrestre/defcovie.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/ghostic1.jpg b/htdocs/images/terrestre/ghostic1.jpg deleted file mode 100644 index 356d6e3..0000000 Binary files a/htdocs/images/terrestre/ghostic1.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/index.html b/htdocs/images/terrestre/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/terrestre/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/terrestre/lanceur_torpilles.jpg b/htdocs/images/terrestre/lanceur_torpilles.jpg deleted file mode 100644 index 2e11e2f..0000000 Binary files a/htdocs/images/terrestre/lanceur_torpilles.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/pelican.jpg b/htdocs/images/terrestre/pelican.jpg deleted file mode 100644 index 7d90207..0000000 Binary files a/htdocs/images/terrestre/pelican.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/pelican_armed.jpg b/htdocs/images/terrestre/pelican_armed.jpg deleted file mode 100644 index d057d9b..0000000 Binary files a/htdocs/images/terrestre/pelican_armed.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/phantomfu2.jpg b/htdocs/images/terrestre/phantomfu2.jpg deleted file mode 100644 index b4b7bcd..0000000 Binary files a/htdocs/images/terrestre/phantomfu2.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/scorpion.jpg b/htdocs/images/terrestre/scorpion.jpg deleted file mode 100644 index b1a047a..0000000 Binary files a/htdocs/images/terrestre/scorpion.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/scorpionN.jpg b/htdocs/images/terrestre/scorpionN.jpg deleted file mode 100644 index 94e0006..0000000 Binary files a/htdocs/images/terrestre/scorpionN.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/shade.jpg b/htdocs/images/terrestre/shade.jpg deleted file mode 100644 index 73c7d15..0000000 Binary files a/htdocs/images/terrestre/shade.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/shadow.jpg b/htdocs/images/terrestre/shadow.jpg deleted file mode 100644 index 86f3794..0000000 Binary files a/htdocs/images/terrestre/shadow.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/spectre1.jpg b/htdocs/images/terrestre/spectre1.jpg deleted file mode 100644 index cf387f3..0000000 Binary files a/htdocs/images/terrestre/spectre1.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/spirit1.jpg b/htdocs/images/terrestre/spirit1.jpg deleted file mode 100644 index 73a36c9..0000000 Binary files a/htdocs/images/terrestre/spirit1.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/stationdedefensent8.jpg b/htdocs/images/terrestre/stationdedefensent8.jpg deleted file mode 100644 index b75d3e8..0000000 Binary files a/htdocs/images/terrestre/stationdedefensent8.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/strongshade.jpg b/htdocs/images/terrestre/strongshade.jpg deleted file mode 100644 index af8bf64..0000000 Binary files a/htdocs/images/terrestre/strongshade.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourelle.jpg b/htdocs/images/terrestre/tourelle.jpg deleted file mode 100644 index 3656dea..0000000 Binary files a/htdocs/images/terrestre/tourelle.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourelle_fixe.jpg b/htdocs/images/terrestre/tourelle_fixe.jpg deleted file mode 100644 index f377955..0000000 Binary files a/htdocs/images/terrestre/tourelle_fixe.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourelle_gauss.jpg b/htdocs/images/terrestre/tourelle_gauss.jpg deleted file mode 100644 index 4bc1e3a..0000000 Binary files a/htdocs/images/terrestre/tourelle_gauss.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourelle_plasma.jpg b/htdocs/images/terrestre/tourelle_plasma.jpg deleted file mode 100644 index 52d89ce..0000000 Binary files a/htdocs/images/terrestre/tourelle_plasma.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourellebarreau.jpg b/htdocs/images/terrestre/tourellebarreau.jpg deleted file mode 100644 index 2fa0434..0000000 Binary files a/htdocs/images/terrestre/tourellebarreau.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourioniquegr6.jpg b/htdocs/images/terrestre/tourioniquegr6.jpg deleted file mode 100644 index 7d9579c..0000000 Binary files a/htdocs/images/terrestre/tourioniquegr6.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/tourplasmasl4.jpg b/htdocs/images/terrestre/tourplasmasl4.jpg deleted file mode 100644 index af937b5..0000000 Binary files a/htdocs/images/terrestre/tourplasmasl4.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/warthog-vrl.jpg b/htdocs/images/terrestre/warthog-vrl.jpg deleted file mode 100644 index d8903ac..0000000 Binary files a/htdocs/images/terrestre/warthog-vrl.jpg and /dev/null differ diff --git a/htdocs/images/terrestre/wraith.jpg b/htdocs/images/terrestre/wraith.jpg deleted file mode 100644 index 3a456b0..0000000 Binary files a/htdocs/images/terrestre/wraith.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/62685810.jpg b/htdocs/images/vaisseaux/62685810.jpg deleted file mode 100644 index 20bda0f..0000000 Binary files a/htdocs/images/vaisseaux/62685810.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/cargo2pb6.jpg b/htdocs/images/vaisseaux/cargo2pb6.jpg deleted file mode 100644 index c6bab20..0000000 Binary files a/htdocs/images/vaisseaux/cargo2pb6.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/cargosladen.jpg b/htdocs/images/vaisseaux/cargosladen.jpg deleted file mode 100644 index 87710ea..0000000 Binary files a/htdocs/images/vaisseaux/cargosladen.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/cargosparabola.jpg b/htdocs/images/vaisseaux/cargosparabola.jpg deleted file mode 100644 index b2db306..0000000 Binary files a/htdocs/images/vaisseaux/cargosparabola.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/charognard.jpg b/htdocs/images/vaisseaux/charognard.jpg deleted file mode 100644 index 7749cc9..0000000 Binary files a/htdocs/images/vaisseaux/charognard.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/chasseurlourd7id.jpg b/htdocs/images/vaisseaux/chasseurlourd7id.jpg deleted file mode 100644 index c3ac36b..0000000 Binary files a/htdocs/images/vaisseaux/chasseurlourd7id.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/chasseurlourdfk8.jpg b/htdocs/images/vaisseaux/chasseurlourdfk8.jpg deleted file mode 100644 index 3b9747f..0000000 Binary files a/htdocs/images/vaisseaux/chasseurlourdfk8.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/citecovenant.jpg b/htdocs/images/vaisseaux/citecovenant.jpg deleted file mode 100644 index aa1b5ac..0000000 Binary files a/htdocs/images/vaisseaux/citecovenant.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/colocopiers4.jpg b/htdocs/images/vaisseaux/colocopiers4.jpg deleted file mode 100644 index 90e7c14..0000000 Binary files a/htdocs/images/vaisseaux/colocopiers4.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/colonisation.jpg b/htdocs/images/vaisseaux/colonisation.jpg deleted file mode 100644 index b4e4988..0000000 Binary files a/htdocs/images/vaisseaux/colonisation.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/contactharvestbynameleszk3.jpg b/htdocs/images/vaisseaux/contactharvestbynameleszk3.jpg deleted file mode 100644 index 3a85c0e..0000000 Binary files a/htdocs/images/vaisseaux/contactharvestbynameleszk3.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/coviecolobv3.jpg b/htdocs/images/vaisseaux/coviecolobv3.jpg deleted file mode 100644 index 1ee2624..0000000 Binary files a/htdocs/images/vaisseaux/coviecolobv3.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/croiseur.jpg b/htdocs/images/vaisseaux/croiseur.jpg deleted file mode 100644 index d4c45b1..0000000 Binary files a/htdocs/images/vaisseaux/croiseur.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/croiseur8er.jpg b/htdocs/images/vaisseaux/croiseur8er.jpg deleted file mode 100644 index bdd774f..0000000 Binary files a/htdocs/images/vaisseaux/croiseur8er.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/croiseurclassealcyon130om6.jpg b/htdocs/images/vaisseaux/croiseurclassealcyon130om6.jpg deleted file mode 100644 index e5f4392..0000000 Binary files a/htdocs/images/vaisseaux/croiseurclassealcyon130om6.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/croiseurclassemarathon1oc0.jpg b/htdocs/images/vaisseaux/croiseurclassemarathon1oc0.jpg deleted file mode 100644 index 2f9c9c2..0000000 Binary files a/htdocs/images/vaisseaux/croiseurclassemarathon1oc0.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/croiseurforrunerns4.jpg b/htdocs/images/vaisseaux/croiseurforrunerns4.jpg deleted file mode 100644 index 2d5875a..0000000 Binary files a/htdocs/images/vaisseaux/croiseurforrunerns4.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/croiseurmarathonke3.jpg b/htdocs/images/vaisseaux/croiseurmarathonke3.jpg deleted file mode 100644 index f8aee91..0000000 Binary files a/htdocs/images/vaisseaux/croiseurmarathonke3.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/csnucargoladen2al8.jpg b/htdocs/images/vaisseaux/csnucargoladen2al8.jpg deleted file mode 100644 index 35f9242..0000000 Binary files a/htdocs/images/vaisseaux/csnucargoladen2al8.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/csnucargoparabola2mc9.jpg b/htdocs/images/vaisseaux/csnucargoparabola2mc9.jpg deleted file mode 100644 index c7a0e8e..0000000 Binary files a/htdocs/images/vaisseaux/csnucargoparabola2mc9.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/csnufregatedk7.jpg b/htdocs/images/vaisseaux/csnufregatedk7.jpg deleted file mode 100644 index 7dfb102..0000000 Binary files a/htdocs/images/vaisseaux/csnufregatedk7.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/csnuportevaisseauxgy3.jpg b/htdocs/images/vaisseaux/csnuportevaisseauxgy3.jpg deleted file mode 100644 index e2ffd79..0000000 Binary files a/htdocs/images/vaisseaux/csnuportevaisseauxgy3.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/csnusuperportevaisseauxrw4.jpg b/htdocs/images/vaisseaux/csnusuperportevaisseauxrw4.jpg deleted file mode 100644 index 9f85ae5..0000000 Binary files a/htdocs/images/vaisseaux/csnusuperportevaisseauxrw4.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/cuiras18.jpg b/htdocs/images/vaisseaux/cuiras18.jpg deleted file mode 100644 index a471a69..0000000 Binary files a/htdocs/images/vaisseaux/cuiras18.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/destructeur2ci0.jpg b/htdocs/images/vaisseaux/destructeur2ci0.jpg deleted file mode 100644 index 84cbe9a..0000000 Binary files a/htdocs/images/vaisseaux/destructeur2ci0.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/drone_clarion.jpg b/htdocs/images/vaisseaux/drone_clarion.jpg deleted file mode 100644 index 5314d0d..0000000 Binary files a/htdocs/images/vaisseaux/drone_clarion.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/fregate2ky.jpg b/htdocs/images/vaisseaux/fregate2ky.jpg deleted file mode 100644 index 692d940..0000000 Binary files a/htdocs/images/vaisseaux/fregate2ky.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/fregatewz5.jpg b/htdocs/images/vaisseaux/fregatewz5.jpg deleted file mode 100644 index 0e1a4c8..0000000 Binary files a/htdocs/images/vaisseaux/fregatewz5.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/frgatecopiegw1.jpg b/htdocs/images/vaisseaux/frgatecopiegw1.jpg deleted file mode 100644 index bea4ccb..0000000 Binary files a/htdocs/images/vaisseaux/frgatecopiegw1.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/halcyo15.jpg b/htdocs/images/vaisseaux/halcyo15.jpg deleted file mode 100644 index ddaf8ce..0000000 Binary files a/htdocs/images/vaisseaux/halcyo15.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/index.html b/htdocs/images/vaisseaux/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/images/vaisseaux/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/images/vaisseaux/longsword.jpg b/htdocs/images/vaisseaux/longsword.jpg deleted file mode 100644 index 689ac54..0000000 Binary files a/htdocs/images/vaisseaux/longsword.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/longsworduf9.jpg b/htdocs/images/vaisseaux/longsworduf9.jpg deleted file mode 100644 index 52d7e10..0000000 Binary files a/htdocs/images/vaisseaux/longsworduf9.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/marath14.jpg b/htdocs/images/vaisseaux/marath14.jpg deleted file mode 100644 index 8bf6bf6..0000000 Binary files a/htdocs/images/vaisseaux/marath14.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/nanw9.jpg b/htdocs/images/vaisseaux/nanw9.jpg deleted file mode 100644 index 0990559..0000000 Binary files a/htdocs/images/vaisseaux/nanw9.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/pv.jpg b/htdocs/images/vaisseaux/pv.jpg deleted file mode 100644 index 163c2e9..0000000 Binary files a/htdocs/images/vaisseaux/pv.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/qsu169.jpg b/htdocs/images/vaisseaux/qsu169.jpg deleted file mode 100644 index c973e0b..0000000 Binary files a/htdocs/images/vaisseaux/qsu169.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/recycl10.jpg b/htdocs/images/vaisseaux/recycl10.jpg deleted file mode 100644 index 64634b6..0000000 Binary files a/htdocs/images/vaisseaux/recycl10.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/recycleur.jpg b/htdocs/images/vaisseaux/recycleur.jpg deleted file mode 100644 index 2650ba8..0000000 Binary files a/htdocs/images/vaisseaux/recycleur.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/sanstitre2copiegw9.jpg b/htdocs/images/vaisseaux/sanstitre2copiegw9.jpg deleted file mode 100644 index a8f05bd..0000000 Binary files a/htdocs/images/vaisseaux/sanstitre2copiegw9.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/sonde_despionnage1.jpg b/htdocs/images/vaisseaux/sonde_despionnage1.jpg deleted file mode 100644 index 8a478be..0000000 Binary files a/htdocs/images/vaisseaux/sonde_despionnage1.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/station.jpg b/htdocs/images/vaisseaux/station.jpg deleted file mode 100644 index 3814976..0000000 Binary files a/htdocs/images/vaisseaux/station.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/station1.jpg b/htdocs/images/vaisseaux/station1.jpg deleted file mode 100644 index f02345a..0000000 Binary files a/htdocs/images/vaisseaux/station1.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/stationorbitalezt7.jpg b/htdocs/images/vaisseaux/stationorbitalezt7.jpg deleted file mode 100644 index ce9360b..0000000 Binary files a/htdocs/images/vaisseaux/stationorbitalezt7.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/superdestroyerwa6.jpg b/htdocs/images/vaisseaux/superdestroyerwa6.jpg deleted file mode 100644 index fc454be..0000000 Binary files a/htdocs/images/vaisseaux/superdestroyerwa6.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/vaisseau.jpg b/htdocs/images/vaisseaux/vaisseau.jpg deleted file mode 100644 index 9e87759..0000000 Binary files a/htdocs/images/vaisseaux/vaisseau.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/vaisseaucolonisationmm4.jpg b/htdocs/images/vaisseaux/vaisseaucolonisationmm4.jpg deleted file mode 100644 index 2ebad10..0000000 Binary files a/htdocs/images/vaisseaux/vaisseaucolonisationmm4.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/vaisseaudebataille9na.jpg b/htdocs/images/vaisseaux/vaisseaudebataille9na.jpg deleted file mode 100644 index eab51b6..0000000 Binary files a/htdocs/images/vaisseaux/vaisseaudebataille9na.jpg and /dev/null differ diff --git a/htdocs/images/vaisseaux/vaisseauuu0.jpg b/htdocs/images/vaisseaux/vaisseauuu0.jpg deleted file mode 100644 index 589132f..0000000 Binary files a/htdocs/images/vaisseaux/vaisseauuu0.jpg and /dev/null differ diff --git a/htdocs/index.php b/htdocs/index.php index ba3fd85..429f5ec 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -8,24 +8,23 @@ require_once(trim(file_get_contents('./.onyx'))); require_once("common.php"); //Chargement de tout le nécessaire pour le jeu //On vérifie si le client est connecté sur le site -if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) +if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['id']) && empty($SESS->values['race']) && empty($SESS->level)) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) { - $template->assign('menu', array_map("url", $VAR['menu'])); - require_once("pub.php"); //Inclusion de la pub et du footer - //Si un nouveau joueur cherche à se connecter du même endroit, on déconnecte le joueur en cours avant $HB_login = gpc('l'); if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($SESS->values['id']))) { - include("game/serveur/logout.php"); + require("game/serveur/logout.php"); } elseif (!empty($HB_login)) { - redirection('./'.$VAR['first_page']); + redirection("./".$VAR["first_page"]); exit; } + unset($HB_login); - $race = $SESS->values['race']; + + $race = $SESS->values["race"]; $securePlanete = array(); //Inclusion des formules @@ -40,67 +39,72 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte include_once("game/Class/class.flotte.php"); //Récupération d'informations au sujet de l'utilisateur - $id_user = $SESS->values['id']; - $template->assign('auth_level', $SESS->level); - - //Recherche du multi-compte + $id_user = $SESS->values["id"]; $ip = $_SERVER["REMOTE_ADDR"]; - if (!isset($bdd)) $bdd = new Bdd(); - else $bdd->reconnexion(); + //On commence l'envoie des données requise pour les templates + $template->assign("menu", array_map("url", $VAR["menu"])); //Envoie des liens du menu latéral + $template->assign("auth_level", $SESS->level); //Envoie du niveau d'accès de l'utilisateur + $template->assign("race", $race); + + //Connexion à la base de données ou reconnexion si la classe existe + if (isset($bdd)) + $bdd->reconnexion(); + else + $bdd = new BDD(); + + //Recherche de multicompte $multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util HAVING R.id_util != $id_user;"); - //On gère les demande de changement de planète - if (isset($_POST['Cplanete'])) + if (isset($_POST["planete"])) { - if (ereg('A', $_POST['Cplanete'])) + if (ereg("A", $_POST["planete"])) { - $idAsteroideTest = intval(substr(gpc('Cplanete', 'post'), 1)); + $idAsteroideTest = intval(substr(gpc("planete", "post"), 1)); if ($bdd->unique_query("SELECT id FROM $table_alliances WHERE id = $idAsteroideTest;") && $bdd->unique_query("SELECT id FROM $table_user WHERE id = $id_user AND id_alliance = $idAsteroideTest;")) { - $SESS->values['idPlan'] = 0; - $SESS->values['idAsteroide'] = $idAsteroideTest; - $SESS->values['isolement'] = 0; + $SESS->values["idPlan"] = 0; + $SESS->values["idAsteroide"] = $idAsteroideTest; + $SESS->values["isolement"] = 0; $SESS->put(); - $template->assign('contenu', ''); - $template->assign('page','vp'); - $template->assign('race', $race); - $template->display('game/vp.tpl'); + $template->assign("page","vp"); + $template->display("game/vp.tpl"); exit; } unset($idAsteroideTest); } else { - $idPlanTest = intval(gpc('Cplanete', 'post')); + $idPlanTest = intval(gpc("planete", "post")); if ($bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;")) { - $SESS->values['idPlan'] = $idPlanTest; - $SESS->values['idAsteroide'] = 0; - $SESS->values['isolement'] = 0; + $SESS->values["idPlan"] = $idPlanTest; + $SESS->values["idAsteroide"] = 0; + $SESS->values["isolement"] = 0; $SESS->put(); - $template->assign('contenu', ''); - $template->assign('page','vp'); - $template->assign('race', $race); - $template->display('game/vp.tpl'); + $template->assign("page","vp"); + $template->display("game/vp.tpl"); exit; } unset($idPlanTest); } } - $idPlan = $SESS->values['idPlan']; - $idAsteroide = $SESS->values['idAsteroide']; + $idPlan = $SESS->values["idPlan"]; + $idAsteroide = $SESS->values["idAsteroide"]; - $queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = $id_user AND vu = '1';"); + $queryMail1 = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = $id_user AND expediteur != false AND vu = '1';"); + $queryMail2 = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = $id_user AND expediteur = false AND vu = '1';"); + $queryMail = array($queryMail1["nombre"], $queryMail2["nombre"]); $queryPlanetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user ORDER BY id ASC;"); $bdd->deconnexion(); + unset($queryMail1, $queryMail2); //Chargement de la planète/astéroide actuel if ($idPlan == 0 && $idAsteroide == 0) { - trigger_error('Planete et Asteroide nul, deconnexion du joueur '.$id_user,E_USER_ERROR); + trigger_error('Planète et Asteroïde nul, deconnexion du joueur '.$id_user,E_USER_ERROR); include("game/serveur/logout.php"); exit; } @@ -108,6 +112,9 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte { define('SURFACE', 'asteroide'); $planete = new Asteroide($idAsteroide); + $planete->actualiser(); + //On charge les permissions de l'utilisateur pour l'alliance + $planete->loadPermissions($planete->fondateur); } else { @@ -121,19 +128,18 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte if ($planete->mv > 0) { $SESS->close(); - redirection($config['first_page'].'?mvf'); + redirection($config["first_page"]."?mvf"); exit; } //NOMS ET FLOTTES - include('flottes.php'); + include("flottes.php"); //Envoie d'informations au template - $template->assign('alertMail', $queryMail['nombre']); - $template->assign('planete', $planete); - $template->assign('planetes', $queryPlanetes); - $template->assign('race', $race); - $template->assign('nomsressources', 'ERREUR#RESSOURCES'); + $template->assign("alertMail", $queryMail); + $template->assign("planete", $planete); + $template->assign("planetes", $queryPlanetes); + //Calcul du temps de jeu $tpsdejeu = time() - $planete->last_visite; $heur = floor($tpsdejeu/3600); @@ -151,90 +157,100 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte //TODO Si la planète est en isolement total, faire un autre message if ($planete->isolement()) { - $template->assign('titre','Planète isolée'); - erreur('Impossible de rentrer en contact avec cette planète.
Réessayez vers '.date('H:i', $planete->isolement[1])); + $template->assign("titre", "Planète isolée"); + erreur("Impossible de rentrer en contact avec cette planète.
Réessayez vers ".date('H:i', $planete->isolement[1])); } else { - $SESS->values['isolement'] = $planete->isolement[0]; + $SESS->values["isolement"] = $planete->isolement[0]; $SESS->put(); } } - - $template->assign("race", $planete->race); //SWITCH switch($p) { - case 'batiments': + case "batiments": include("game/jeu/batiments.php"); break; - case 'caserne': + case "caserne": include("game/jeu/caserne.php"); break; - case 'chantierspatial': + case "chantierspatial": include("game/jeu/chantierspatial.php"); break; - case 'chantierterrestre': - case 'defenses': + case "chantierterrestre": include("game/jeu/chantierterrestre.php"); break; - case 'laboratoire': + case "laboratoire": include("game/jeu/laboratoire.php"); break; - case 'arbre': + case "arbre": include("game/jeu/arbre.php"); break; - case 'description': + case "description": include("game/jeu/description.php"); break; - case 'ressources': + case "ressources": include("game/jeu/ressources.php"); break; - case 'gestion': + case "diplomatie": + include("game/jeu/diplomatie.php"); + break; + case "gestion": include("game/jeu/gestion.php"); break; - case 'marche': + case "marche": include("game/jeu/marche.php"); break; - case 'flotte': + case "flotte": include("game/jeu/flotte.php"); break; - case 'carte': + case "carte": include("game/jeu/carte.php"); break; + case "alliances": + include("game/jeu/alliance.php"); + break; - case 'rename': + case "rename": include("game/jeu/rename.php"); break; - case 'messagerie': + case "messagerie": include("game/serveur/messagerie.php"); break; - case 'envoyer': - include("game/serveur/envoyer.php"); + case "alli_messagerie": + include("game/jeu/alliances/messagerie.php"); break; - case 'amis': + case "options": + case "changeopt": + include("game/serveur/options.php"); + break; + case "amis": include("game/serveur/amis.php"); break; - case 'destinationsrapides': + case "destinationsrapides": include("game/serveur/destinrapid.php"); break; - case 'chat': + case "chat": $page = 'chat'; $titre = 'Chat'; break; - case 'aide': - case 'faq': + case "alli_chat": + include("game/jeu/alliances/chat.php"); + break; + case "aide": + case "faq": include("game/serveur/aide.php"); break; - case 'operateur': + case "operateur": include("game/serveur/operateur.php"); break; - case 'prochainement': - $page = 'prochainement'; - $titre = 'Prochainement'; + case "prochainement": + $page = "prochainement"; + $titre = "Prochainement"; break; - case 'version': + case "version": include("game/serveur/version.php"); break; case "demarrage": @@ -254,19 +270,23 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte include("game/serveur/regles.php"); break; - case 'deconnexion': - case 'logout': + case "deconnexion": + case "logout": include("game/serveur/logout.php"); break; default: include("game/jeu/accueil.php"); } + //On supprime les dernières variables inutiles pour la suite + unset($planete, $SESS, $bdd, $VAR, $queryPlanetes, $_POST, $_GET, $LANG); + + //Inclusion de la pub et du footer + require_once("pub.php"); + $template->assign("page", $page); - if (!empty($titre)) - $template->assign("titre", ".: Halo-Battle - ".$titre." :."); - else - $template->assign("titre", ".: Halo-Battle :."); + if (isset($titre)) + $template->assign("titre", $titre); $template->display("game/".$page.".tpl"); } @@ -291,29 +311,31 @@ else case "connexion": $page = 'mini'; break; - case 'classement': + case "classement": include(_FCORE."../game/jeu/classement.php"); break; case "njoueur": - include(_FCORE."../game/jeu/njoueur.php"); + include("game/serveur/njoueur.php"); break; case "inscription": redirection('http://halo-battle.s-fr.com/?p=inscription'); exit; break; case "oubliemdp": - include(_FCORE."../game/jeu/oubliemdp.php"); + include("game/serveur/oubliemdp.php"); break; case "pilori": - include("game/jeu/pilori.php"); + include("game/serveur/pilori.php"); break; //Tous serveurs case "conditions": - include(_FCORE."../game/jeu/conditions.php"); + include("game/serveur/conditions.php"); break; case "regles": - include(_FCORE."../game/jeu/regles.php"); - break; + include("game/serveur/regles.php"); + break; + case "changeopt": + erreur("Vous devez être connecté pour affectuer cette action !"); default: //$page = 'mini'; redirection('http://www.halo-battle.fr/'); @@ -321,313 +343,4 @@ else } $template->display('cms/'.$page.'.tpl'); } - - -exit(); - -//On vérifie si le client est connecté sur le site -if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) { - - //Si un nouveau joueur cherche à se connecter du même endroit, on déconnecte le joueur en cours avant - $HB_login = gpc('l'); - if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($SESS->values['id']))) - { - include(_FCORE."../game/jeu/logout.php"); - } - elseif (!empty($HB_login)) - { - redirection('./'.$config['first_page']); - exit; - } - - $race = $SESS->values['race']; - $securePlanete = array(); - - //Inclusion des formules - require_once(_FCORE."../game/vars.php"); - //On inclus les différentes classes - include_once(_FCORE."../game/Class/class.file.php"); - include_once(_FCORE."../game/Class/class.user.php"); - include_once(_FCORE."../game/Class/class.surface.php"); - include_once(_FCORE."../game/Class/class.planete.php"); - include_once(_FCORE."../game/Class/class.asteroide.php"); - include_once(_FCORE."../game/Class/class.flotte.php"); - - //Récupération d'informations au sujet de l'utilisateur - $id_user = $SESS->values['id']; - $template->assign('auth_level', $SESS->level); - - $ip = $_SERVER["REMOTE_ADDR"]; - - $bdd->reconnexion(); - $multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util HAVING R.id_util != $id_user;"); - - if (isset($_POST['Cplanete'])) { - if (ereg('A', $_POST['Cplanete'])) - { - $idAsteroideTest = intval(substr($_POST['Cplanete'], 1)); - if ($bdd->unique_query("SELECT id FROM $table_alliances WHERE id = $idAsteroideTest;") && $bdd->unique_query("SELECT id FROM $table_user WHERE id = $id_user AND id_alliance = $idAsteroideTest;")) { - $SESS->values['idPlan'] = 0; - $SESS->values['idAsteroide'] = $idAsteroideTest; - $SESS->values['isolement'] = 0; - $SESS->put(); - $template->assign('contenu', ''); - $template->assign('page','vp'); - $template->assign('race', $race); - $template->display('game/vp.tpl'); - exit; - } - } - else - { - $idPlanTest = intval($_POST['Cplanete']); - if ($bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;")) { - $SESS->values['idPlan'] = $idPlanTest; - $SESS->values['idAsteroide'] = 0; - $SESS->values['isolement'] = 0; - $SESS->put(); - $template->assign('contenu', ''); - $template->assign('page','vp'); - $template->assign('race', $race); - $template->display('game/vp.tpl'); - exit; - } - } - } - $idPlan = $SESS->values['idPlan']; - $idAsteroide = $SESS->values['idAsteroide']; - - $queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = $id_user AND vu = '1';"); - $queryPlanetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user ORDER BY id ASC;"); - $bdd->deconnexion(); - - if ($idPlan == 0 && $idAsteroide == 0) { - die('ERREUR : index.php ligne 94'); - trigger_error('Planete et Asteroide nul, deconnexion du joueur '.$id_user,E_USER_ERROR); - include(_FCORE."../game/jeu/logout.php"); - } - elseif ($idPlan == 0) { - define('SURFACE', 'asteroide'); - $planete = new Asteroide($idAsteroide); - } - else { - define('SURFACE', 'planete'); - $planete = new Planete($idPlan); - } - - //On vérifie que le joueur ne soit pas en mode vacances forcé - if ($planete->mv > 0) { - $SESS->close(); - redirection($config['first_page'].'?mvf'); - exit; - } - - //Chargement asteroide - if ($planete->id_alliance) { - $bdd->reconnexion(); - $template->assign('asteroide', $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")); - $bdd->deconnexion(); - } - - ///require_once(_FCORE."../game/ressources.php"); - ///require_once(_FCORE."../game/constructions.php"); - require(_FCORE."../game/noms.php"); - require_once(_FCORE."../game/flottes.php"); - - $template->assign('alertMail', $queryMail['nombre']); - $template->assign('planete', $planete); - $template->assign('planetes', $queryPlanetes); - $template->assign('nomsressources', $ressourc); - - $p = gpc('p'); - //Isolement de la planète - if ((empty($SESS->values['isolement']) || time() >= $SESS->values['isolement']) && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') { -//TODO Si la planète est en isolement total, faire un autre message - if ($planete->isolement()) { - $template->assign('race',$race); - $template->assign('titre','Planète isolée'); - erreur('Impossible de rentrer en contact avec cette planète.
Réessayez vers '.date('H:i', $planete->isolement[1])); - } - else { - $SESS->values['isolement'] = $planete->isolement[0]; - $SESS->put(); - } - } - - //Calcul du temps de jeu - $tpsdejeu = time() - $planete->last_visite; - $heur = floor($tpsdejeu/3600); - $min = floor(($tpsdejeu - $heur*3600)/60); - if ($heur > 0) $min = $heur.' h '.$min; - $template->assign('tpsdejeu', $min.' min'); - - $template->assign('race', $planete->race); - - switch($p){ - case 'prochainement': - $page = 'prochainement'; - $titre = 'Prochainement'; - break; - case 'version': - include(_FCORE."../game/jeu/version.php"); - break; - case 'rename': - include(_FCORE."../game/jeu/rename.php"); - break; - case 'description': - include(_FCORE."../game/jeu/description.php"); - break; - case 'batiments': - include(_FCORE."../game/jeu/batiments.php"); - break; - case 'caserne': - include(_FCORE."../game/jeu/caserne.php"); - break; - case 'chantierspatial': - include(_FCORE."../game/jeu/chantierspatial.php"); - break; - case 'chantierterrestre': - include(_FCORE."../game/jeu/chantierterrestre.php"); - break; - case 'defenses': - include(_FCORE."../game/jeu/defenses.php"); - break; - case 'laboratoire': - include(_FCORE."../game/jeu/laboratoire.php"); - break; - case 'arbre': - include(_FCORE."../game/jeu/arbre.php"); - break; - case 'gestion': - include(_FCORE."../game/jeu/gestion.php"); - break; - case 'ressources': - include(_FCORE."../game/jeu/ressources.php"); - break; - case 'flotte': - include(_FCORE."../game/jeu/flotte.php"); - break; - case 'destinationsrapides': - include(_FCORE."../game/jeu/destinrapid.php"); - break; - case 'amis': - include(_FCORE."../game/jeu/amis.php"); - break; - case 'carte': - include(_FCORE."../game/jeu/carte.php"); - break; - case 'marche': - include(_FCORE."../game/jeu/marche.php"); - break; - case 'options': - include(_FCORE."../game/jeu/options.php"); - break; - case 'changeopt': - include(_FCORE."../game/jeu/options_change.php"); - break; - case 'messagerie': - include(_FCORE."../game/jeu/messagerie.php"); - break; - case 'envoyer': - include(_FCORE."../game/jeu/envoyer.php"); - break; - case 'alliances': - include(_FCORE."../game/jeu/alliances.php"); - break; - case 'classement': - include(_FCORE."../game/jeu/classement.php"); - break; - case 'bugs': - include(_FCORE."../game/jeu/bugs.php"); - break; - case 'util': - include(_FCORE."../game/jeu/util.php"); - break; - case 'chat': - $page = 'chat'; $titre = 'Chat'; - break; - case 'faq': - include(_FCORE."../game/jeu/aide.php"); - break; - case 'simulateur': - include(_FCORE."../game/jeu/simulateur.php"); - break; - case 'deconnexion': - include(_FCORE."../game/jeu/logout.php"); - break; - case 'operateur': - include(_FCORE."../game/jeu/operateur.php"); - break; - case "demarrage": - include(_FCORE."../game/jeu/demarrage.php"); - break; - case "avertmulti": - include(_FCORE."../game/jeu/avertmulti.php"); - break; - case "pilori": - include(_FCORE."../game/jeu/pilori.php"); - break; - case "conditions": - include(_FCORE."../game/jeu/conditions.php"); - break; - case "regles": - include(_FCORE."../game/jeu/regles.php"); - break; - default: - include(_FCORE."../game/jeu/accueil.php"); - } - - $template->assign('page', $page); - $template->assign('titre', $titre); - - $template->display('game/'.$page.'.tpl'); -} -//Si le joueur n'est pas connecté au site -else { - include(_FCORE."../game/jeu/connexion.php"); - - $p = gpc('p'); - switch($p){ -//Serveur principal -/* case "validation": - include('game/validation.php'); - break; - case "inscription": - include('game/inscription.php'); - break; - case "oubliemdp": - redirection('http://halo-battle.fr/'); - break;*/ -//Serveur de jeu - case "connexion": - $page = 'mini'; - break; - case 'classement': - include(_FCORE."../game/jeu/classement.php"); - break; - case "njoueur": - include(_FCORE."../game/jeu/njoueur.php"); - break; - case "inscription": - redirection('http://halo-battle.s-fr.com/?p=inscription'); - exit; - break; - case "oubliemdp": - include(_FCORE."../game/jeu/oubliemdp.php"); - break; -//Tous serveurs - case "conditions": - include(_FCORE."../game/jeu/conditions.php"); - break; - case "regles": - include(_FCORE."../game/jeu/regles.php"); - break; - default: - //$page = 'mini'; - redirection('http://www.halo-battle.fr/'); - exit; - } - $template->display('cms/'.$page.'.tpl'); -} -echo("\n"); -?> +?> \ No newline at end of file diff --git a/htdocs/java/EIRC-cfg.cab b/htdocs/java/EIRC-cfg.cab deleted file mode 100644 index 7bb3057..0000000 Binary files a/htdocs/java/EIRC-cfg.cab and /dev/null differ diff --git a/htdocs/java/EIRC-cfg.jar b/htdocs/java/EIRC-cfg.jar deleted file mode 100644 index 9a43679..0000000 Binary files a/htdocs/java/EIRC-cfg.jar and /dev/null differ diff --git a/htdocs/java/EIRC.cab b/htdocs/java/EIRC.cab deleted file mode 100644 index 4400fe2..0000000 Binary files a/htdocs/java/EIRC.cab and /dev/null differ diff --git a/htdocs/java/EIRC.class b/htdocs/java/EIRC.class deleted file mode 100644 index e676909..0000000 Binary files a/htdocs/java/EIRC.class and /dev/null differ diff --git a/htdocs/java/EIRC.jar b/htdocs/java/EIRC.jar deleted file mode 100644 index 7a6dcbd..0000000 Binary files a/htdocs/java/EIRC.jar and /dev/null differ diff --git a/htdocs/java/index.html b/htdocs/java/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/java/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/java/sfx/Boink.au b/htdocs/java/sfx/Boink.au deleted file mode 100644 index cf87d33..0000000 Binary files a/htdocs/java/sfx/Boink.au and /dev/null differ diff --git a/htdocs/java/sfx/Boooh.au b/htdocs/java/sfx/Boooh.au deleted file mode 100644 index 38efc6c..0000000 Binary files a/htdocs/java/sfx/Boooh.au and /dev/null differ diff --git a/htdocs/java/sfx/Boop.au b/htdocs/java/sfx/Boop.au deleted file mode 100644 index 464d034..0000000 Binary files a/htdocs/java/sfx/Boop.au and /dev/null differ diff --git a/htdocs/java/sfx/Click.au b/htdocs/java/sfx/Click.au deleted file mode 100644 index 5e12705..0000000 Binary files a/htdocs/java/sfx/Click.au and /dev/null differ diff --git a/htdocs/java/sfx/Clock.au b/htdocs/java/sfx/Clock.au deleted file mode 100644 index 66a52b9..0000000 Binary files a/htdocs/java/sfx/Clock.au and /dev/null differ diff --git a/htdocs/java/sfx/Drip.au b/htdocs/java/sfx/Drip.au deleted file mode 100644 index 5093e91..0000000 Binary files a/htdocs/java/sfx/Drip.au and /dev/null differ diff --git a/htdocs/java/sfx/Hit.au b/htdocs/java/sfx/Hit.au deleted file mode 100644 index cdb86a2..0000000 Binary files a/htdocs/java/sfx/Hit.au and /dev/null differ diff --git a/htdocs/java/sfx/Magic.au b/htdocs/java/sfx/Magic.au deleted file mode 100644 index f2c3b2d..0000000 Binary files a/htdocs/java/sfx/Magic.au and /dev/null differ diff --git a/htdocs/java/sfx/Pipe.au b/htdocs/java/sfx/Pipe.au deleted file mode 100644 index 2a8515f..0000000 Binary files a/htdocs/java/sfx/Pipe.au and /dev/null differ diff --git a/htdocs/java/sfx/Pouet.au b/htdocs/java/sfx/Pouet.au deleted file mode 100644 index 3d7f4e8..0000000 Binary files a/htdocs/java/sfx/Pouet.au and /dev/null differ diff --git a/htdocs/java/sfx/Rifle.au b/htdocs/java/sfx/Rifle.au deleted file mode 100644 index 75f128e..0000000 Binary files a/htdocs/java/sfx/Rifle.au and /dev/null differ diff --git a/htdocs/java/sfx/Ringin.au b/htdocs/java/sfx/Ringin.au deleted file mode 100644 index 2dd42e5..0000000 Binary files a/htdocs/java/sfx/Ringin.au and /dev/null differ diff --git a/htdocs/java/sfx/Squish.au b/htdocs/java/sfx/Squish.au deleted file mode 100644 index 8efc4d0..0000000 Binary files a/htdocs/java/sfx/Squish.au and /dev/null differ diff --git a/htdocs/java/sfx/Train.au b/htdocs/java/sfx/Train.au deleted file mode 100644 index 6efe9c8..0000000 Binary files a/htdocs/java/sfx/Train.au and /dev/null differ diff --git a/htdocs/java/sfx/Warning.au b/htdocs/java/sfx/Warning.au deleted file mode 100644 index c2d963d..0000000 Binary files a/htdocs/java/sfx/Warning.au and /dev/null differ diff --git a/htdocs/java/sfx/Whistle.au b/htdocs/java/sfx/Whistle.au deleted file mode 100644 index 6b6db75..0000000 Binary files a/htdocs/java/sfx/Whistle.au and /dev/null differ diff --git a/htdocs/java/sfx/Whoosh.au b/htdocs/java/sfx/Whoosh.au deleted file mode 100644 index 7256c2a..0000000 Binary files a/htdocs/java/sfx/Whoosh.au and /dev/null differ diff --git a/htdocs/java/sfx/Yoo.au b/htdocs/java/sfx/Yoo.au deleted file mode 100644 index 79d3a2d..0000000 Binary files a/htdocs/java/sfx/Yoo.au and /dev/null differ diff --git a/htdocs/js/cms.js b/htdocs/js/cms.js deleted file mode 100644 index 1418f88..0000000 --- a/htdocs/js/cms.js +++ /dev/null @@ -1,18 +0,0 @@ -function dateTempsReel() - { - var days = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'); - var months = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'); - date = new Date; - date.setTime(date.getTime()); - var hour = date.getHours() < 10 ? '0'+date.getHours() : date.getHours(); - var min = date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes(); - var day = days[date.getDay()]; - var day_number = date.getDate(); - var month = months[date.getMonth()]; - var year = date.getFullYear(); - var datetime = day + ' ' + day_number + ' ' + month + ' '+year+' ' + hour + ':' + min; - if (document.getElementById('date')) document.getElementById('date').innerHTML= datetime; - setTimeout('dateTempsReel()', (60-date.getSeconds())*1000) - } - -window.onload = dateTempsReel; \ No newline at end of file diff --git a/htdocs/js/flotte.js b/htdocs/js/flotte.js deleted file mode 100644 index 061a7b1..0000000 --- a/htdocs/js/flotte.js +++ /dev/null @@ -1,110 +0,0 @@ -window.onload = function(){ - document.getElementById('nom').onfocus = function(){ - document.getElementById('aide1').innerHTML = 'Pour vous repérer plus facilement entre vos différentes flottes, donnez-lui un nom.'; - document.getElementById('aide2').innerHTML = ''; - } - document.getElementById('fav_dest').onfocus = function(){ - document.getElementById('aide1').innerHTML = 'Choisissez dans la liste une destination ou entrez les coordonnées directement dans les champs ci-après.'; - document.getElementById('aide2').innerHTML = ''; - } - document.getElementById('amas').onfocus = function(){ - document.getElementById('aide1').innerHTML = 'Indiquez ici l\'amas de destination de votre flotte.'; - document.getElementById('aide2').innerHTML = ''; - } - document.getElementById('ss').onfocus = function(){ - document.getElementById('aide1').innerHTML = 'Indiquez ici le système de destination de votre flotte.'; - document.getElementById('aide2').innerHTML = ''; - } - document.getElementById('plan').onfocus = function(){ - document.getElementById('aide1').innerHTML = 'Indiquez ici la planète de destination de votre flotte.'; - document.getElementById('aide2').innerHTML = ''; - } - document.getElementById('vitesse').onfocus = function(){ - document.getElementById('aide1').innerHTML = 'Choisissez le taux de vitesse de votre flotte. Plus la flotte ira vite, plus elle consomera de carburant'; - document.getElementById('aide2').innerHTML = ''; - } - document.getElementById('mission').onfocus = function(){ - document.getElementById('aide1').innerHTML = ''; - document.getElementById('aide2').innerHTML = 'Choisissez la mission que vous voulez donner à votre flotte.'; - } - document.getElementById('metal').onfocus = function(){ - document.getElementById('aide1').innerHTML = ''; - document.getElementById('aide2').innerHTML = 'Si vous souhaitez transporter des ressources dans les cales de vos vaisseaux, indiquez-le dans ces trois champs'; - } - document.getElementById('cristal').onfocus = function(){ - document.getElementById('aide1').innerHTML = ''; - document.getElementById('aide2').innerHTML = 'Si vous souhaitez transporter des ressources dans les cales de vos vaisseaux, indiquez-le dans ces trois champs'; - } - document.getElementById('hydrogene').onfocus = function(){ - document.getElementById('aide1').innerHTML = ''; - document.getElementById('aide2').innerHTML = 'Si vous souhaitez transporter des ressources dans les cales de vos vaisseaux, indiquez-le dans ces trois champs'; - } - - document.getElementById('nom').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('amas').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('ss').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('vitesse').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('plan').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('mission').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('metal').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('cristal').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - document.getElementById('hydrogene').onkeyup = function(){ - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - - document.getElementById('fav_dest').onchange = function(){ - if (document.getElementById('fav_dest').value == "edit") { - window.open("?p=destinationsrapides"); - document.getElementById('fav_dest').value = "0"; - } - else { - document.getElementById('vp').innerHTML = "Chargement en cours ..."; - tempsFlotte(); - } - } -} - -function tempsFlotte() { - document.getElementById('deblok').innerHTML = '...'; - new Ajax.Request( - 'ajax_flotte.php', - { - method: 'post', - parameters: {fav_dest: document.getElementById('fav_dest').value, nom: document.getElementById('nom').value, mission: document.getElementById('mission').value, met: document.getElementById('metal').value, cri: document.getElementById('cristal').value, hyd: document.getElementById('hydrogene').value, galaxie: document.getElementById('amas').value, ss: document.getElementById('ss').value, pos: document.getElementById('plan').value, vitesse: document.getElementById('vitesse').value}, - onSuccess: function(transport, json) { - document.getElementById('destination').innerHTML = json.root.destination; - document.getElementById('temps').innerHTML = json.root.temps; - document.getElementById('conso').innerHTML = json.root.conso; - document.getElementById('deblok').innerHTML = json.root.deblok; - document.getElementById('tactique').innerHTML = json.root.tactique; - document.getElementById('placesRest').innerHTML = json.root.places; - document.getElementById('vp').innerHTML = ""; - } - } - ); -} \ No newline at end of file diff --git a/htdocs/js/game.js b/htdocs/js/game.js deleted file mode 100644 index 2f6e0f9..0000000 --- a/htdocs/js/game.js +++ /dev/null @@ -1,126 +0,0 @@ -function hide(o) - { - p = o.parentNode.nextSibling; - - if (p.style.display != 'none') - { - p.style.display ='none'; - o.style.backgroundPosition = '0 0'; - } - - else - { - p.style.display ='block'; - o.style.backgroundPosition = '0 100%'; - } - o.blur(); - } - -function checkboxes(v) - { - for (i=1; document.getElementsByName('m'+i)[0]; i++) - { - document.getElementsByName('m'+i)[0].checked = v; - } - } - -function checkboxesr(v) - { - for (i=1; document.getElementsByName('r'+i)[0]; i++) - { - document.getElementsByName('r'+i)[0].checked = v; - } - } - -function max(i) - { - document.getElementsByName('v'+i)[0].value = document.getElementById('v_'+i).innerHTML; - } - -function vaisseaux(b) - { - for(i=0; i<=12; i++) - { - if (document.getElementById('v_'+i) && document.getElementsByName('v'+i)[0]) document.getElementsByName('v'+i)[0].value = b ? document.getElementById('v_'+i).innerHTML : '0'; - } - } - -function reste(t,c,tf) { - - var r; - if (t>0) { - var heures = Math.floor(t / 3600); - var minutes = Math.floor(((t / 3600) - Math.floor(t / 3600)) * 60); - var secondes = t - ((Math.floor(t / 60)) * 60); - heures = heures < 10 ? '0'+heures : heures; - minutes = minutes < 10 ? '0'+minutes : minutes; - secondes = secondes < 10 ? '0'+secondes : secondes; - document.getElementById(c).innerHTML = heures + ":" + minutes + ":" + secondes; - var restant = t - 1; - if (tf) setTimeout("reste("+restant+",\""+c+"\", true)", 1000); - } - else { - document.getElementById(c).innerHTML = "Terminé"; - setTimeout(window.document.location.reload(),3000); - } -} - -function bind(funct) - { - var args = []; - for(var i = 1; i < arguments.length; i++) args[args.length] = arguments[i]; - return function(){funct.apply(this,args)}; - } - -function opacity(opacity) - { - this.style.opacity = opacity / 100; - this.style.MozOpacity = opacity / 100; - this.style.KhtmlOpacity = opacity / 100; - this.style.filter = "alpha(opacity="+ opacity +")"; - } - -function fadeIn(element,speed) - { - for(var i = 0; i <= 10; i++) setTimeout(bind(function(i){opacity.call(element,i*10)},i),i/10*speed); - } - -function fadeOut(element,speed) - { - for(var i = 0; i <= 10; i++) setTimeout(bind(function(i){opacity.call(element,i*10)},10-i),i/10*speed); - } - -var loop = function() - { - if(current > 0) - { - fadeOut(leftBanners[current],1000); - current--; - } - else if(current == 0) - { - fadeIn(leftBanners[leftBanners.length - 1],1000); - setTimeout(function() - { - for(var i = 1; i < leftBanners.length - 1; i++) opacity.call(leftBanners[i],100); - - current = leftBanners.length - 1; - - },1010); - } - else return; - - setTimeout(loop,8000); - } - -window.onload = function() - { - banners = document.getElementById('banner').getElementsByTagName('div'); - - leftBanners = []; - for(var i = 0; i < banners.length; i++) if(banners[i].getAttribute('class') == 'bannerleft') leftBanners.push(banners[i]); - - current = leftBanners.length - 1; - - if(leftBanners.length > 1) setTimeout(loop,8000); - } \ No newline at end of file diff --git a/htdocs/js/index.html b/htdocs/js/index.html deleted file mode 100644 index ce7b5d4..0000000 --- a/htdocs/js/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - ::Halo-Battle:: - Erreur - - - -
-

Erreur

-

403

-

Refus de traitement de la requête.
Forbidden.

-
-HALO-BATTLE - - - \ No newline at end of file diff --git a/htdocs/js/inscription.js b/htdocs/js/inscription.js deleted file mode 100644 index d4e84e0..0000000 --- a/htdocs/js/inscription.js +++ /dev/null @@ -1,45 +0,0 @@ -window.onload = function(){ - document.getElementById('pseudo').onfocus = function(){ - document.getElementById('description').innerHTML = 'Pseudo

Votre pseudo est le nom que vous porterez dans le jeu.

Vous pouvez utiliser toutes les lettres, les chiffres ainsi que les caractères _ et .

Attention : ce pseudo est définitif, vous ne pourrez pas le changer par la suite.

'; - } - document.getElementById('mdp').onfocus = function(){ - document.getElementById('description').innerHTML = 'Mot de passe

Le mot de passe sert à empêcher d'autres joueurs d'accèder è votre compte.

Choisissez de préférence un mot de passe compliqué avec au minimum 6 caractères.

Une fois dans le jeu, vous pourrez modifier votre mot de passe via la page Options.

'; - } - document.getElementById('conf').onfocus = function(){ - document.getElementById('description').innerHTML = 'Confirmez votre mot de passe

Recopiez le mot de passe que vous venez d'écrire dans le champs précédent.

'; - } - document.getElementById('mail').onfocus = function(){ - document.getElementById('description').innerHTML = 'Adresse électronique



Afin de vous tenir informé des principales informations sur le jeu et pour valider votre compte, nous vous demandons de bien vouloir indiquer votre adresse électronique.

Nous ne diffusons pas vos adresses et/ou informations personnelles à des sites tiers ou commerciaux.

Attention : nous avons remarqué des ralentissements lors de l'envoie de mail pour les adresses @hotmail, @live et @msn. Nous vous recommandons d'utiliser d'autres adresses mail.

Les mails envoyés sont souvent dans le dossier du courrier indésirable, pensez à y jeter un oeil !

'; - } - document.getElementById('covenant').onmouseover = function(){ - document.getElementById('description').innerHTML = 'Covenants

Ce regroupement religieux de races extraterrestres hétéroclites voue un culte fanatique aux Sept Anneaux Sacrés et aux Forerunners depuis la date de fondation de l'empire Covenant. Organisé en gouvernement théocratique et se déplaçant à bord d'une gigantesque planète artificielle, Grande Bonté, le collectif Covenant assume une existence millénaire. Disposants d'une technologie bien supérieure à l'Humanité, et de territoires vastes et férocement gardés, les Covenants se sont lancés dans un combat à mort sans pitié contre leurs ennemis impies, espérant bien les rayer de la carte de la galaxie à jamais, conformément à la volonté de leurs "Seigneurs".

'; - } - document.getElementById('covenanti').onfocus = function(){ - document.getElementById('description').innerHTML = 'Covenants

Ce regroupement religieux de races extraterrestres hétéroclites voue un culte fanatique aux Sept Anneaux Sacrés et aux Forerunners depuis la date de fondation de l'empire Covenant. Organisé en gouvernement théocratique et se déplaçant à bord d'une gigantesque planète artificielle, Grande Bonté, le collectif Covenant assume une existence millénaire. Disposants d'une technologie bien supérieure à l'Humanité, et de territoires vastes et férocement gardés, les Covenants se sont lancés dans un combat à mort sans pitié contre leurs ennemis impies, espérant bien les rayer de la carte de la galaxie à jamais, conformément à la volonté de leurs "Seigneurs".

'; - } - document.getElementById('humain').onmouseover = function(){ - document.getElementById('description').innerHTML = 'Humains

Race audacieuse et conquérante, l'Humanité s'est lancée à la conquête des étoiles au 22ème siècle, fondant dans un premier temps quelques colonies éparses aux abords de la Terre, pour ensuite s'enfoncer de plus en plus loin à travers la galaxie. Restée isolée du reste de l'univers pendant très longtemps et se croyant seule au monde, la confrontation avec les Covenants a rapidement changé la donne. Aujourd'hui, bien que détentrice d'une technologie relativement avancée, l'Humanité se voit forcée d'engager un combat désespéré contre les Covenants, ceux-ci renforçant un peu plus chaque jours leur emprise sur le territoire morcelé des derniers hommes.

'; - } - document.getElementById('humaini').onfocus = function(){ - document.getElementById('description').innerHTML = 'Humains

Race audacieuse et conquérante, l'Humanité s'est lancée à la conquête des étoiles au 22ème siècle, fondant dans un premier temps quelques colonies éparses aux abords de la Terre, pour ensuite s'enfoncer de plus en plus loin à travers la galaxie. Restée isolée du reste de l'univers pendant très longtemps et se croyant seule au monde, la confrontation avec les Covenants a rapidement changé la donne. Aujourd'hui, bien que détentrice d'une technologie relativement avancée, l'Humanité se voit forcée d'engager un combat désespéré contre les Covenants, ceux-ci renforçant un peu plus chaque jours leur emprise sur le territoire morcelé des derniers hommes.

'; - } - document.getElementById('servers').onfocus = function(){ - document.getElementById('description').innerHTML = 'Serveurs

Choisissez un serveur dans la liste.

'; - } - document.getElementById('placement').onfocus = function(){ - document.getElementById('description').innerHTML = 'Placement préférentiel

Ce champ est facultatif.

Si un de vos amis joue à Halo-Battle sur le serveur que vous avez sélectionné ci-dessus, vous pouvez demander d'être placé à côté de l'une de ses planètes en indiquant simplement son pseudo.

Sous réserve de disponibilité.

'; - } - document.getElementById('captcha').onfocus = function(){ - document.getElementById('description').innerHTML = 'Captcha

Pour s'assurer que vous êtes un humains et non pas un robot, nous vous demandons de bien vouloir recopier le texte situé contre cette case.

Vous pouvez générer une autre chaîne en cliquant sur l'image.

Si vous êtes visuellement déficient et que vous ne pouvez pas voir le texte, contactez un administrateur.

'; - } - document.getElementById('gen').onclick = function(){ - i++; - rand = Math.random() + i - document.getElementById('gen').src='captcha/image.php?'+rand; - } - - var i = 0; - window.onload = dateTempsReel(); - rand = Math.random() + i - document.getElementById('gen').src='captcha/image.php?'+rand; -} \ No newline at end of file diff --git a/htdocs/js/prototype.js b/htdocs/js/prototype.js deleted file mode 100644 index 6385503..0000000 --- a/htdocs/js/prototype.js +++ /dev/null @@ -1,4221 +0,0 @@ -/* Prototype JavaScript framework, version 1.6.0.2 - * (c) 2005-2008 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://www.prototypejs.org/ - * - *--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.6.0.2', - - Browser: { - IE: !!(window.attachEvent && !window.opera), - Opera: !!window.opera, - WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, - Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, - MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) - }, - - BrowserFeatures: { - XPath: !!document.evaluate, - ElementExtensions: !!window.HTMLElement, - SpecificElementExtensions: - document.createElement('div').__proto__ && - document.createElement('div').__proto__ !== - document.createElement('form').__proto__ - }, - - ScriptFragment: ']*>([\\S\\s]*?)<\/script>', - JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, - - emptyFunction: function() { }, - K: function(x) { return x } -}; - -if (Prototype.Browser.MobileSafari) - Prototype.BrowserFeatures.SpecificElementExtensions = false; - - -/* Based on Alex Arnell's inheritance implementation. */ -var Class = { - create: function() { - var parent = null, properties = $A(arguments); - if (Object.isFunction(properties[0])) - parent = properties.shift(); - - function klass() { - this.initialize.apply(this, arguments); - } - - Object.extend(klass, Class.Methods); - klass.superclass = parent; - klass.subclasses = []; - - if (parent) { - var subclass = function() { }; - subclass.prototype = parent.prototype; - klass.prototype = new subclass; - parent.subclasses.push(klass); - } - - for (var i = 0; i < properties.length; i++) - klass.addMethods(properties[i]); - - if (!klass.prototype.initialize) - klass.prototype.initialize = Prototype.emptyFunction; - - klass.prototype.constructor = klass; - - return klass; - } -}; - -Class.Methods = { - addMethods: function(source) { - var ancestor = this.superclass && this.superclass.prototype; - var properties = Object.keys(source); - - if (!Object.keys({ toString: true }).length) - properties.push("toString", "valueOf"); - - for (var i = 0, length = properties.length; i < length; i++) { - var property = properties[i], value = source[property]; - if (ancestor && Object.isFunction(value) && - value.argumentNames().first() == "$super") { - var method = value, value = Object.extend((function(m) { - return function() { return ancestor[m].apply(this, arguments) }; - })(property).wrap(method), { - valueOf: function() { return method }, - toString: function() { return method.toString() } - }); - } - this.prototype[property] = value; - } - - return this; - } -}; - -var Abstract = { }; - -Object.extend = function(destination, source) { - for (var property in source) - destination[property] = source[property]; - return destination; -}; - -Object.extend(Object, { - inspect: function(object) { - try { - if (Object.isUndefined(object)) return 'undefined'; - if (object === null) return 'null'; - return object.inspect ? object.inspect() : String(object); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } - }, - - toJSON: function(object) { - var type = typeof object; - switch (type) { - case 'undefined': - case 'function': - case 'unknown': return; - case 'boolean': return object.toString(); - } - - if (object === null) return 'null'; - if (object.toJSON) return object.toJSON(); - if (Object.isElement(object)) return; - - var results = []; - for (var property in object) { - var value = Object.toJSON(object[property]); - if (!Object.isUndefined(value)) - results.push(property.toJSON() + ': ' + value); - } - - return '{' + results.join(', ') + '}'; - }, - - toQueryString: function(object) { - return $H(object).toQueryString(); - }, - - toHTML: function(object) { - return object && object.toHTML ? object.toHTML() : String.interpret(object); - }, - - keys: function(object) { - var keys = []; - for (var property in object) - keys.push(property); - return keys; - }, - - values: function(object) { - var values = []; - for (var property in object) - values.push(object[property]); - return values; - }, - - clone: function(object) { - return Object.extend({ }, object); - }, - - isElement: function(object) { - return object && object.nodeType == 1; - }, - - isArray: function(object) { - return object != null && typeof object == "object" && - 'splice' in object && 'join' in object; - }, - - isHash: function(object) { - return object instanceof Hash; - }, - - isFunction: function(object) { - return typeof object == "function"; - }, - - isString: function(object) { - return typeof object == "string"; - }, - - isNumber: function(object) { - return typeof object == "number"; - }, - - isUndefined: function(object) { - return typeof object == "undefined"; - } -}); - -Object.extend(Function.prototype, { - argumentNames: function() { - var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); - return names.length == 1 && !names[0] ? [] : names; - }, - - bind: function() { - if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } - }, - - bindAsEventListener: function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function(event) { - return __method.apply(object, [event || window.event].concat(args)); - } - }, - - curry: function() { - if (!arguments.length) return this; - var __method = this, args = $A(arguments); - return function() { - return __method.apply(this, args.concat($A(arguments))); - } - }, - - delay: function() { - var __method = this, args = $A(arguments), timeout = args.shift() * 1000; - return window.setTimeout(function() { - return __method.apply(__method, args); - }, timeout); - }, - - wrap: function(wrapper) { - var __method = this; - return function() { - return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); - } - }, - - methodize: function() { - if (this._methodized) return this._methodized; - var __method = this; - return this._methodized = function() { - return __method.apply(null, [this].concat($A(arguments))); - }; - } -}); - -Function.prototype.defer = Function.prototype.delay.curry(0.01); - -Date.prototype.toJSON = function() { - return '"' + this.getUTCFullYear() + '-' + - (this.getUTCMonth() + 1).toPaddedString(2) + '-' + - this.getUTCDate().toPaddedString(2) + 'T' + - this.getUTCHours().toPaddedString(2) + ':' + - this.getUTCMinutes().toPaddedString(2) + ':' + - this.getUTCSeconds().toPaddedString(2) + 'Z"'; -}; - -var Try = { - these: function() { - var returnValue; - - for (var i = 0, length = arguments.length; i < length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) { } - } - - return returnValue; - } -}; - -RegExp.prototype.match = RegExp.prototype.test; - -RegExp.escape = function(str) { - return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); -}; - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create({ - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - execute: function() { - this.callback(this); - }, - - stop: function() { - if (!this.timer) return; - clearInterval(this.timer); - this.timer = null; - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.execute(); - } finally { - this.currentlyExecuting = false; - } - } - } -}); -Object.extend(String, { - interpret: function(value) { - return value == null ? '' : String(value); - }, - specialChar: { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '\\': '\\\\' - } -}); - -Object.extend(String.prototype, { - gsub: function(pattern, replacement) { - var result = '', source = this, match; - replacement = arguments.callee.prepareReplacement(replacement); - - while (source.length > 0) { - if (match = source.match(pattern)) { - result += source.slice(0, match.index); - result += String.interpret(replacement(match)); - source = source.slice(match.index + match[0].length); - } else { - result += source, source = ''; - } - } - return result; - }, - - sub: function(pattern, replacement, count) { - replacement = this.gsub.prepareReplacement(replacement); - count = Object.isUndefined(count) ? 1 : count; - - return this.gsub(pattern, function(match) { - if (--count < 0) return match[0]; - return replacement(match); - }); - }, - - scan: function(pattern, iterator) { - this.gsub(pattern, iterator); - return String(this); - }, - - truncate: function(length, truncation) { - length = length || 30; - truncation = Object.isUndefined(truncation) ? '...' : truncation; - return this.length > length ? - this.slice(0, length - truncation.length) + truncation : String(this); - }, - - strip: function() { - return this.replace(/^\s+/, '').replace(/\s+$/, ''); - }, - - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(function(script) { return eval(script) }); - }, - - escapeHTML: function() { - var self = arguments.callee; - self.text.data = this; - return self.div.innerHTML; - }, - - unescapeHTML: function() { - var div = new Element('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? (div.childNodes.length > 1 ? - $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : - div.childNodes[0].nodeValue) : ''; - }, - - toQueryParams: function(separator) { - var match = this.strip().match(/([^?#]*)(#.*)?$/); - if (!match) return { }; - - return match[1].split(separator || '&').inject({ }, function(hash, pair) { - if ((pair = pair.split('='))[0]) { - var key = decodeURIComponent(pair.shift()); - var value = pair.length > 1 ? pair.join('=') : pair[0]; - if (value != undefined) value = decodeURIComponent(value); - - if (key in hash) { - if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; - hash[key].push(value); - } - else hash[key] = value; - } - return hash; - }); - }, - - toArray: function() { - return this.split(''); - }, - - succ: function() { - return this.slice(0, this.length - 1) + - String.fromCharCode(this.charCodeAt(this.length - 1) + 1); - }, - - times: function(count) { - return count < 1 ? '' : new Array(count + 1).join(this); - }, - - camelize: function() { - var parts = this.split('-'), len = parts.length; - if (len == 1) return parts[0]; - - var camelized = this.charAt(0) == '-' - ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) - : parts[0]; - - for (var i = 1; i < len; i++) - camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); - - return camelized; - }, - - capitalize: function() { - return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); - }, - - underscore: function() { - return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); - }, - - dasherize: function() { - return this.gsub(/_/,'-'); - }, - - inspect: function(useDoubleQuotes) { - var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { - var character = String.specialChar[match[0]]; - return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); - }); - if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; - return "'" + escapedString.replace(/'/g, '\\\'') + "'"; - }, - - toJSON: function() { - return this.inspect(true); - }, - - unfilterJSON: function(filter) { - return this.sub(filter || Prototype.JSONFilter, '#{1}'); - }, - - isJSON: function() { - var str = this; - if (str.blank()) return false; - str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); - return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); - }, - - evalJSON: function(sanitize) { - var json = this.unfilterJSON(); - try { - if (!sanitize || json.isJSON()) return eval('(' + json + ')'); - } catch (e) { } - throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); - }, - - include: function(pattern) { - return this.indexOf(pattern) > -1; - }, - - startsWith: function(pattern) { - return this.indexOf(pattern) === 0; - }, - - endsWith: function(pattern) { - var d = this.length - pattern.length; - return d >= 0 && this.lastIndexOf(pattern) === d; - }, - - empty: function() { - return this == ''; - }, - - blank: function() { - return /^\s*$/.test(this); - }, - - interpolate: function(object, pattern) { - return new Template(this, pattern).evaluate(object); - } -}); - -if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { - escapeHTML: function() { - return this.replace(/&/g,'&').replace(//g,'>'); - }, - unescapeHTML: function() { - return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); - } -}); - -String.prototype.gsub.prepareReplacement = function(replacement) { - if (Object.isFunction(replacement)) return replacement; - var template = new Template(replacement); - return function(match) { return template.evaluate(match) }; -}; - -String.prototype.parseQuery = String.prototype.toQueryParams; - -Object.extend(String.prototype.escapeHTML, { - div: document.createElement('div'), - text: document.createTextNode('') -}); - -with (String.prototype.escapeHTML) div.appendChild(text); - -var Template = Class.create({ - initialize: function(template, pattern) { - this.template = template.toString(); - this.pattern = pattern || Template.Pattern; - }, - - evaluate: function(object) { - if (Object.isFunction(object.toTemplateReplacements)) - object = object.toTemplateReplacements(); - - return this.template.gsub(this.pattern, function(match) { - if (object == null) return ''; - - var before = match[1] || ''; - if (before == '\\') return match[2]; - - var ctx = object, expr = match[3]; - var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; - match = pattern.exec(expr); - if (match == null) return before; - - while (match != null) { - var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; - ctx = ctx[comp]; - if (null == ctx || '' == match[3]) break; - expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); - match = pattern.exec(expr); - } - - return before + String.interpret(ctx); - }); - } -}); -Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; - -var $break = { }; - -var Enumerable = { - each: function(iterator, context) { - var index = 0; - iterator = iterator.bind(context); - try { - this._each(function(value) { - iterator(value, index++); - }); - } catch (e) { - if (e != $break) throw e; - } - return this; - }, - - eachSlice: function(number, iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var index = -number, slices = [], array = this.toArray(); - while ((index += number) < array.length) - slices.push(array.slice(index, index+number)); - return slices.collect(iterator, context); - }, - - all: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result = true; - this.each(function(value, index) { - result = result && !!iterator(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result = false; - this.each(function(value, index) { - if (result = !!iterator(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var results = []; - this.each(function(value, index) { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function(iterator, context) { - iterator = iterator.bind(context); - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator, context) { - iterator = iterator.bind(context); - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(filter, iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var results = []; - - if (Object.isString(filter)) - filter = new RegExp(filter); - - this.each(function(value, index) { - if (filter.match(value)) - results.push(iterator(value, index)); - }); - return results; - }, - - include: function(object) { - if (Object.isFunction(this.indexOf)) - if (this.indexOf(object) != -1) return true; - - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inGroupsOf: function(number, fillWith) { - fillWith = Object.isUndefined(fillWith) ? null : fillWith; - return this.eachSlice(number, function(slice) { - while(slice.length < number) slice.push(fillWith); - return slice; - }); - }, - - inject: function(memo, iterator, context) { - iterator = iterator.bind(context); - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.map(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result; - this.each(function(value, index) { - value = iterator(value, index); - if (result == null || value >= result) - result = value; - }); - return result; - }, - - min: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result; - this.each(function(value, index) { - value = iterator(value, index); - if (result == null || value < result) - result = value; - }); - return result; - }, - - partition: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var trues = [], falses = []; - this.each(function(value, index) { - (iterator(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator, context) { - iterator = iterator.bind(context); - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator, context) { - iterator = iterator.bind(context); - return this.map(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.map(); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (Object.isFunction(args.last())) - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - return iterator(collections.pluck(index)); - }); - }, - - size: function() { - return this.toArray().length; - }, - - inspect: function() { - return '#'; - } -}; - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - filter: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray, - every: Enumerable.all, - some: Enumerable.any -}); -function $A(iterable) { - if (!iterable) return []; - if (iterable.toArray) return iterable.toArray(); - var length = iterable.length || 0, results = new Array(length); - while (length--) results[length] = iterable[length]; - return results; -} - -if (Prototype.Browser.WebKit) { - $A = function(iterable) { - if (!iterable) return []; - if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && - iterable.toArray) return iterable.toArray(); - var length = iterable.length || 0, results = new Array(length); - while (length--) results[length] = iterable[length]; - return results; - }; -} - -Array.from = $A; - -Object.extend(Array.prototype, Enumerable); - -if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0, length = this.length; i < length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(Object.isArray(value) ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - reduce: function() { - return this.length > 1 ? this : this[0]; - }, - - uniq: function(sorted) { - return this.inject([], function(array, value, index) { - if (0 == index || (sorted ? array.last() != value : !array.include(value))) - array.push(value); - return array; - }); - }, - - intersect: function(array) { - return this.uniq().findAll(function(item) { - return array.detect(function(value) { return item === value }); - }); - }, - - clone: function() { - return [].concat(this); - }, - - size: function() { - return this.length; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - }, - - toJSON: function() { - var results = []; - this.each(function(object) { - var value = Object.toJSON(object); - if (!Object.isUndefined(value)) results.push(value); - }); - return '[' + results.join(', ') + ']'; - } -}); - -// use native browser JS 1.6 implementation if available -if (Object.isFunction(Array.prototype.forEach)) - Array.prototype._each = Array.prototype.forEach; - -if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { - i || (i = 0); - var length = this.length; - if (i < 0) i = length + i; - for (; i < length; i++) - if (this[i] === item) return i; - return -1; -}; - -if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { - i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; - var n = this.slice(0, i).reverse().indexOf(item); - return (n < 0) ? n : i - n - 1; -}; - -Array.prototype.toArray = Array.prototype.clone; - -function $w(string) { - if (!Object.isString(string)) return []; - string = string.strip(); - return string ? string.split(/\s+/) : []; -} - -if (Prototype.Browser.Opera){ - Array.prototype.concat = function() { - var array = []; - for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); - for (var i = 0, length = arguments.length; i < length; i++) { - if (Object.isArray(arguments[i])) { - for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) - array.push(arguments[i][j]); - } else { - array.push(arguments[i]); - } - } - return array; - }; -} -Object.extend(Number.prototype, { - toColorPart: function() { - return this.toPaddedString(2, 16); - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - }, - - toPaddedString: function(length, radix) { - var string = this.toString(radix || 10); - return '0'.times(length - string.length) + string; - }, - - toJSON: function() { - return isFinite(this) ? this.toString() : 'null'; - } -}); - -$w('abs round ceil floor').each(function(method){ - Number.prototype[method] = Math[method].methodize(); -}); -function $H(object) { - return new Hash(object); -}; - -var Hash = Class.create(Enumerable, (function() { - - function toQueryPair(key, value) { - if (Object.isUndefined(value)) return key; - return key + '=' + encodeURIComponent(String.interpret(value)); - } - - return { - initialize: function(object) { - this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); - }, - - _each: function(iterator) { - for (var key in this._object) { - var value = this._object[key], pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - set: function(key, value) { - return this._object[key] = value; - }, - - get: function(key) { - return this._object[key]; - }, - - unset: function(key) { - var value = this._object[key]; - delete this._object[key]; - return value; - }, - - toObject: function() { - return Object.clone(this._object); - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - index: function(value) { - var match = this.detect(function(pair) { - return pair.value === value; - }); - return match && match.key; - }, - - merge: function(object) { - return this.clone().update(object); - }, - - update: function(object) { - return new Hash(object).inject(this, function(result, pair) { - result.set(pair.key, pair.value); - return result; - }); - }, - - toQueryString: function() { - return this.map(function(pair) { - var key = encodeURIComponent(pair.key), values = pair.value; - - if (values && typeof values == 'object') { - if (Object.isArray(values)) - return values.map(toQueryPair.curry(key)).join('&'); - } - return toQueryPair(key, values); - }).join('&'); - }, - - inspect: function() { - return '#'; - }, - - toJSON: function() { - return Object.toJSON(this.toObject()); - }, - - clone: function() { - return new Hash(this); - } - } -})()); - -Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; -Hash.from = $H; -var ObjectRange = Class.create(Enumerable, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - while (this.include(value)) { - iterator(value); - value = value.succ(); - } - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -}; - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new XMLHttpRequest()}, - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')} - ) || false; - }, - - activeRequestCount: 0 -}; - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responder) { - if (!this.include(responder)) - this.responders.push(responder); - }, - - unregister: function(responder) { - this.responders = this.responders.without(responder); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (Object.isFunction(responder[callback])) { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) { } - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { Ajax.activeRequestCount++ }, - onComplete: function() { Ajax.activeRequestCount-- } -}); - -Ajax.Base = Class.create({ - initialize: function(options) { - this.options = { - method: 'post', - asynchronous: true, - contentType: 'application/x-www-form-urlencoded', - encoding: 'UTF-8', - parameters: '', - evalJSON: true, - evalJS: true - }; - Object.extend(this.options, options || { }); - - this.options.method = this.options.method.toLowerCase(); - - if (Object.isString(this.options.parameters)) - this.options.parameters = this.options.parameters.toQueryParams(); - else if (Object.isHash(this.options.parameters)) - this.options.parameters = this.options.parameters.toObject(); - } -}); - -Ajax.Request = Class.create(Ajax.Base, { - _complete: false, - - initialize: function($super, url, options) { - $super(options); - this.transport = Ajax.getTransport(); - this.request(url); - }, - - request: function(url) { - this.url = url; - this.method = this.options.method; - var params = Object.clone(this.options.parameters); - - if (!['get', 'post'].include(this.method)) { - // simulate other verbs over post - params['_method'] = this.method; - this.method = 'post'; - } - - this.parameters = params; - - if (params = Object.toQueryString(params)) { - // when GET, append parameters to URL - if (this.method == 'get') - this.url += (this.url.include('?') ? '&' : '?') + params; - else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - params += '&_='; - } - - try { - var response = new Ajax.Response(this); - if (this.options.onCreate) this.options.onCreate(response); - Ajax.Responders.dispatch('onCreate', this, response); - - this.transport.open(this.method.toUpperCase(), this.url, - this.options.asynchronous); - - if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); - - this.transport.onreadystatechange = this.onStateChange.bind(this); - this.setRequestHeaders(); - - this.body = this.method == 'post' ? (this.options.postBody || params) : null; - this.transport.send(this.body); - - /* Force Firefox to handle ready state 4 for synchronous requests */ - if (!this.options.asynchronous && this.transport.overrideMimeType) - this.onStateChange(); - - } - catch (e) { - this.dispatchException(e); - } - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState > 1 && !((readyState == 4) && this._complete)) - this.respondToReadyState(this.transport.readyState); - }, - - setRequestHeaders: function() { - var headers = { - 'X-Requested-With': 'XMLHttpRequest', - 'X-Prototype-Version': Prototype.Version, - 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' - }; - - if (this.method == 'post') { - headers['Content-type'] = this.options.contentType + - (this.options.encoding ? '; charset=' + this.options.encoding : ''); - - /* Force "Connection: close" for older Mozilla browsers to work - * around a bug where XMLHttpRequest sends an incorrect - * Content-length header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType && - (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) - headers['Connection'] = 'close'; - } - - // user-defined headers - if (typeof this.options.requestHeaders == 'object') { - var extras = this.options.requestHeaders; - - if (Object.isFunction(extras.push)) - for (var i = 0, length = extras.length; i < length; i += 2) - headers[extras[i]] = extras[i+1]; - else - $H(extras).each(function(pair) { headers[pair.key] = pair.value }); - } - - for (var name in headers) - this.transport.setRequestHeader(name, headers[name]); - }, - - success: function() { - var status = this.getStatus(); - return !status || (status >= 200 && status < 300); - }, - - getStatus: function() { - try { - return this.transport.status || 0; - } catch (e) { return 0 } - }, - - respondToReadyState: function(readyState) { - var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); - - if (state == 'Complete') { - try { - this._complete = true; - (this.options['on' + response.status] - || this.options['on' + (this.success() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(response, response.headerJSON); - } catch (e) { - this.dispatchException(e); - } - - var contentType = response.getHeader('Content-type'); - if (this.options.evalJS == 'force' - || (this.options.evalJS && this.isSameOrigin() && contentType - && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) - this.evalResponse(); - } - - try { - (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); - Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); - } catch (e) { - this.dispatchException(e); - } - - if (state == 'Complete') { - // avoid memory leak in MSIE: clean up - this.transport.onreadystatechange = Prototype.emptyFunction; - } - }, - - isSameOrigin: function() { - var m = this.url.match(/^\s*https?:\/\/[^\/]*/); - return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ - protocol: location.protocol, - domain: document.domain, - port: location.port ? ':' + location.port : '' - })); - }, - - getHeader: function(name) { - try { - return this.transport.getResponseHeader(name) || null; - } catch (e) { return null } - }, - - evalResponse: function() { - try { - return eval((this.transport.responseText || '').unfilterJSON()); - } catch (e) { - this.dispatchException(e); - } - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Response = Class.create({ - initialize: function(request){ - this.request = request; - var transport = this.transport = request.transport, - readyState = this.readyState = transport.readyState; - - if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { - this.status = this.getStatus(); - this.statusText = this.getStatusText(); - this.responseText = String.interpret(transport.responseText); - this.headerJSON = this._getHeaderJSON(); - } - - if(readyState == 4) { - var xml = transport.responseXML; - this.responseXML = Object.isUndefined(xml) ? null : xml; - this.responseJSON = this._getResponseJSON(); - } - }, - - status: 0, - statusText: '', - - getStatus: Ajax.Request.prototype.getStatus, - - getStatusText: function() { - try { - return this.transport.statusText || ''; - } catch (e) { return '' } - }, - - getHeader: Ajax.Request.prototype.getHeader, - - getAllHeaders: function() { - try { - return this.getAllResponseHeaders(); - } catch (e) { return null } - }, - - getResponseHeader: function(name) { - return this.transport.getResponseHeader(name); - }, - - getAllResponseHeaders: function() { - return this.transport.getAllResponseHeaders(); - }, - - _getHeaderJSON: function() { - var json = this.getHeader('X-JSON'); - if (!json) return null; - json = decodeURIComponent(escape(json)); - try { - return json.evalJSON(this.request.options.sanitizeJSON || - !this.request.isSameOrigin()); - } catch (e) { - this.request.dispatchException(e); - } - }, - - _getResponseJSON: function() { - var options = this.request.options; - if (!options.evalJSON || (options.evalJSON != 'force' && - !(this.getHeader('Content-type') || '').include('application/json')) || - this.responseText.blank()) - return null; - try { - return this.responseText.evalJSON(options.sanitizeJSON || - !this.request.isSameOrigin()); - } catch (e) { - this.request.dispatchException(e); - } - } -}); - -Ajax.Updater = Class.create(Ajax.Request, { - initialize: function($super, container, url, options) { - this.container = { - success: (container.success || container), - failure: (container.failure || (container.success ? null : container)) - }; - - options = Object.clone(options); - var onComplete = options.onComplete; - options.onComplete = (function(response, json) { - this.updateContent(response.responseText); - if (Object.isFunction(onComplete)) onComplete(response, json); - }).bind(this); - - $super(url, options); - }, - - updateContent: function(responseText) { - var receiver = this.container[this.success() ? 'success' : 'failure'], - options = this.options; - - if (!options.evalScripts) responseText = responseText.stripScripts(); - - if (receiver = $(receiver)) { - if (options.insertion) { - if (Object.isString(options.insertion)) { - var insertion = { }; insertion[options.insertion] = responseText; - receiver.insert(insertion); - } - else options.insertion(receiver, responseText); - } - else receiver.update(responseText); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { - initialize: function($super, container, url, options) { - $super(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = { }; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.options.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(response) { - if (this.options.decay) { - this.decay = (response.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = response.responseText; - } - this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -function $(element) { - if (arguments.length > 1) { - for (var i = 0, elements = [], length = arguments.length; i < length; i++) - elements.push($(arguments[i])); - return elements; - } - if (Object.isString(element)) - element = document.getElementById(element); - return Element.extend(element); -} - -if (Prototype.BrowserFeatures.XPath) { - document._getElementsByXPath = function(expression, parentElement) { - var results = []; - var query = document.evaluate(expression, $(parentElement) || document, - null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); - for (var i = 0, length = query.snapshotLength; i < length; i++) - results.push(Element.extend(query.snapshotItem(i))); - return results; - }; -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Node) var Node = { }; - -if (!Node.ELEMENT_NODE) { - // DOM level 2 ECMAScript Language Binding - Object.extend(Node, { - ELEMENT_NODE: 1, - ATTRIBUTE_NODE: 2, - TEXT_NODE: 3, - CDATA_SECTION_NODE: 4, - ENTITY_REFERENCE_NODE: 5, - ENTITY_NODE: 6, - PROCESSING_INSTRUCTION_NODE: 7, - COMMENT_NODE: 8, - DOCUMENT_NODE: 9, - DOCUMENT_TYPE_NODE: 10, - DOCUMENT_FRAGMENT_NODE: 11, - NOTATION_NODE: 12 - }); -} - -(function() { - var element = this.Element; - this.Element = function(tagName, attributes) { - attributes = attributes || { }; - tagName = tagName.toLowerCase(); - var cache = Element.cache; - if (Prototype.Browser.IE && attributes.name) { - tagName = '<' + tagName + ' name="' + attributes.name + '">'; - delete attributes.name; - return Element.writeAttribute(document.createElement(tagName), attributes); - } - if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); - return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); - }; - Object.extend(this.Element, element || { }); -}).call(window); - -Element.cache = { }; - -Element.Methods = { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function(element) { - element = $(element); - Element[Element.visible(element) ? 'hide' : 'show'](element); - return element; - }, - - hide: function(element) { - $(element).style.display = 'none'; - return element; - }, - - show: function(element) { - $(element).style.display = ''; - return element; - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - return element; - }, - - update: function(element, content) { - element = $(element); - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) return element.update().insert(content); - content = Object.toHTML(content); - element.innerHTML = content.stripScripts(); - content.evalScripts.bind(content).defer(); - return element; - }, - - replace: function(element, content) { - element = $(element); - if (content && content.toElement) content = content.toElement(); - else if (!Object.isElement(content)) { - content = Object.toHTML(content); - var range = element.ownerDocument.createRange(); - range.selectNode(element); - content.evalScripts.bind(content).defer(); - content = range.createContextualFragment(content.stripScripts()); - } - element.parentNode.replaceChild(content, element); - return element; - }, - - insert: function(element, insertions) { - element = $(element); - - if (Object.isString(insertions) || Object.isNumber(insertions) || - Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) - insertions = {bottom:insertions}; - - var content, insert, tagName, childNodes; - - for (var position in insertions) { - content = insertions[position]; - position = position.toLowerCase(); - insert = Element._insertionTranslations[position]; - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - insert(element, content); - continue; - } - - content = Object.toHTML(content); - - tagName = ((position == 'before' || position == 'after') - ? element.parentNode : element).tagName.toUpperCase(); - - childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - - if (position == 'top' || position == 'after') childNodes.reverse(); - childNodes.each(insert.curry(element)); - - content.evalScripts.bind(content).defer(); - } - - return element; - }, - - wrap: function(element, wrapper, attributes) { - element = $(element); - if (Object.isElement(wrapper)) - $(wrapper).writeAttribute(attributes || { }); - else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); - else wrapper = new Element('div', wrapper); - if (element.parentNode) - element.parentNode.replaceChild(wrapper, element); - wrapper.appendChild(element); - return wrapper; - }, - - inspect: function(element) { - element = $(element); - var result = '<' + element.tagName.toLowerCase(); - $H({'id': 'id', 'className': 'class'}).each(function(pair) { - var property = pair.first(), attribute = pair.last(); - var value = (element[property] || '').toString(); - if (value) result += ' ' + attribute + '=' + value.inspect(true); - }); - return result + '>'; - }, - - recursivelyCollect: function(element, property) { - element = $(element); - var elements = []; - while (element = element[property]) - if (element.nodeType == 1) - elements.push(Element.extend(element)); - return elements; - }, - - ancestors: function(element) { - return $(element).recursivelyCollect('parentNode'); - }, - - descendants: function(element) { - return $(element).select("*"); - }, - - firstDescendant: function(element) { - element = $(element).firstChild; - while (element && element.nodeType != 1) element = element.nextSibling; - return $(element); - }, - - immediateDescendants: function(element) { - if (!(element = $(element).firstChild)) return []; - while (element && element.nodeType != 1) element = element.nextSibling; - if (element) return [element].concat($(element).nextSiblings()); - return []; - }, - - previousSiblings: function(element) { - return $(element).recursivelyCollect('previousSibling'); - }, - - nextSiblings: function(element) { - return $(element).recursivelyCollect('nextSibling'); - }, - - siblings: function(element) { - element = $(element); - return element.previousSiblings().reverse().concat(element.nextSiblings()); - }, - - match: function(element, selector) { - if (Object.isString(selector)) - selector = new Selector(selector); - return selector.match($(element)); - }, - - up: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(element.parentNode); - var ancestors = element.ancestors(); - return Object.isNumber(expression) ? ancestors[expression] : - Selector.findElement(ancestors, expression, index); - }, - - down: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return element.firstDescendant(); - return Object.isNumber(expression) ? element.descendants()[expression] : - element.select(expression)[index || 0]; - }, - - previous: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); - var previousSiblings = element.previousSiblings(); - return Object.isNumber(expression) ? previousSiblings[expression] : - Selector.findElement(previousSiblings, expression, index); - }, - - next: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); - var nextSiblings = element.nextSiblings(); - return Object.isNumber(expression) ? nextSiblings[expression] : - Selector.findElement(nextSiblings, expression, index); - }, - - select: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element, args); - }, - - adjacent: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element.parentNode, args).without(element); - }, - - identify: function(element) { - element = $(element); - var id = element.readAttribute('id'), self = arguments.callee; - if (id) return id; - do { id = 'anonymous_element_' + self.counter++ } while ($(id)); - element.writeAttribute('id', id); - return id; - }, - - readAttribute: function(element, name) { - element = $(element); - if (Prototype.Browser.IE) { - var t = Element._attributeTranslations.read; - if (t.values[name]) return t.values[name](element, name); - if (t.names[name]) name = t.names[name]; - if (name.include(':')) { - return (!element.attributes || !element.attributes[name]) ? null : - element.attributes[name].value; - } - } - return element.getAttribute(name); - }, - - writeAttribute: function(element, name, value) { - element = $(element); - var attributes = { }, t = Element._attributeTranslations.write; - - if (typeof name == 'object') attributes = name; - else attributes[name] = Object.isUndefined(value) ? true : value; - - for (var attr in attributes) { - name = t.names[attr] || attr; - value = attributes[attr]; - if (t.values[attr]) name = t.values[attr](element, value); - if (value === false || value === null) - element.removeAttribute(name); - else if (value === true) - element.setAttribute(name, name); - else element.setAttribute(name, value); - } - return element; - }, - - getHeight: function(element) { - return $(element).getDimensions().height; - }, - - getWidth: function(element) { - return $(element).getDimensions().width; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - var elementClassName = element.className; - return (elementClassName.length > 0 && (elementClassName == className || - new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - if (!element.hasClassName(className)) - element.className += (element.className ? ' ' : '') + className; - return element; - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - element.className = element.className.replace( - new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); - return element; - }, - - toggleClassName: function(element, className) { - if (!(element = $(element))) return; - return element[element.hasClassName(className) ? - 'removeClassName' : 'addClassName'](className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - var node = element.firstChild; - while (node) { - var nextNode = node.nextSibling; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - element.removeChild(node); - node = nextNode; - } - return element; - }, - - empty: function(element) { - return $(element).innerHTML.blank(); - }, - - descendantOf: function(element, ancestor) { - element = $(element), ancestor = $(ancestor); - var originalAncestor = ancestor; - - if (element.compareDocumentPosition) - return (element.compareDocumentPosition(ancestor) & 8) === 8; - - if (element.sourceIndex && !Prototype.Browser.Opera) { - var e = element.sourceIndex, a = ancestor.sourceIndex, - nextAncestor = ancestor.nextSibling; - if (!nextAncestor) { - do { ancestor = ancestor.parentNode; } - while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); - } - if (nextAncestor && nextAncestor.sourceIndex) - return (e > a && e < nextAncestor.sourceIndex); - } - - while (element = element.parentNode) - if (element == originalAncestor) return true; - return false; - }, - - scrollTo: function(element) { - element = $(element); - var pos = element.cumulativeOffset(); - window.scrollTo(pos[0], pos[1]); - return element; - }, - - getStyle: function(element, style) { - element = $(element); - style = style == 'float' ? 'cssFloat' : style.camelize(); - var value = element.style[style]; - if (!value) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css[style] : null; - } - if (style == 'opacity') return value ? parseFloat(value) : 1.0; - return value == 'auto' ? null : value; - }, - - getOpacity: function(element) { - return $(element).getStyle('opacity'); - }, - - setStyle: function(element, styles) { - element = $(element); - var elementStyle = element.style, match; - if (Object.isString(styles)) { - element.style.cssText += ';' + styles; - return styles.include('opacity') ? - element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; - } - for (var property in styles) - if (property == 'opacity') element.setOpacity(styles[property]); - else - elementStyle[(property == 'float' || property == 'cssFloat') ? - (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : - property] = styles[property]; - - return element; - }, - - setOpacity: function(element, value) { - element = $(element); - element.style.opacity = (value == 1 || value === '') ? '' : - (value < 0.00001) ? 0 : value; - return element; - }, - - getDimensions: function(element) { - element = $(element); - var display = $(element).getStyle('display'); - if (display != 'none' && display != null) // Safari bug - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - var originalDisplay = els.display; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = 'block'; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = originalDisplay; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - return element; - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - return element; - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return element; - element._overflow = Element.getStyle(element, 'overflow') || 'auto'; - if (element._overflow !== 'hidden') - element.style.overflow = 'hidden'; - return element; - }, - - undoClipping: function(element) { - element = $(element); - if (!element._overflow) return element; - element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; - element._overflow = null; - return element; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - if (element.tagName == 'BODY') break; - var p = Element.getStyle(element, 'position'); - if (p !== 'static') break; - } - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - absolutize: function(element) { - element = $(element); - if (element.getStyle('position') == 'absolute') return; - // Position.prepare(); // To be done manually by Scripty when it needs it. - - var offsets = element.positionedOffset(); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - return element; - }, - - relativize: function(element) { - element = $(element); - if (element.getStyle('position') == 'relative') return; - // Position.prepare(); // To be done manually by Scripty when it needs it. - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - return element; - }, - - cumulativeScrollOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - getOffsetParent: function(element) { - if (element.offsetParent) return $(element.offsetParent); - if (element == document.body) return $(element); - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return $(element); - - return $(document.body); - }, - - viewportOffset: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent == document.body && - Element.getStyle(element, 'position') == 'absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - if (!Prototype.Browser.Opera || element.tagName == 'BODY') { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } - } while (element = element.parentNode); - - return Element._returnOffset(valueL, valueT); - }, - - clonePosition: function(element, source) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || { }); - - // find page position of source - source = $(source); - var p = source.viewportOffset(); - - // find coordinate system to use - element = $(element); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(element, 'position') == 'absolute') { - parent = element.getOffsetParent(); - delta = parent.viewportOffset(); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if (options.setWidth) element.style.width = source.offsetWidth + 'px'; - if (options.setHeight) element.style.height = source.offsetHeight + 'px'; - return element; - } -}; - -Element.Methods.identify.counter = 1; - -Object.extend(Element.Methods, { - getElementsBySelector: Element.Methods.select, - childElements: Element.Methods.immediateDescendants -}); - -Element._attributeTranslations = { - write: { - names: { - className: 'class', - htmlFor: 'for' - }, - values: { } - } -}; - -if (Prototype.Browser.Opera) { - Element.Methods.getStyle = Element.Methods.getStyle.wrap( - function(proceed, element, style) { - switch (style) { - case 'left': case 'top': case 'right': case 'bottom': - if (proceed(element, 'position') === 'static') return null; - case 'height': case 'width': - // returns '0px' for hidden elements; we want it to return null - if (!Element.visible(element)) return null; - - // returns the border-box dimensions rather than the content-box - // dimensions, so we subtract padding and borders from the value - var dim = parseInt(proceed(element, style), 10); - - if (dim !== element['offset' + style.capitalize()]) - return dim + 'px'; - - var properties; - if (style === 'height') { - properties = ['border-top-width', 'padding-top', - 'padding-bottom', 'border-bottom-width']; - } - else { - properties = ['border-left-width', 'padding-left', - 'padding-right', 'border-right-width']; - } - return properties.inject(dim, function(memo, property) { - var val = proceed(element, property); - return val === null ? memo : memo - parseInt(val, 10); - }) + 'px'; - default: return proceed(element, style); - } - } - ); - - Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( - function(proceed, element, attribute) { - if (attribute === 'title') return element.title; - return proceed(element, attribute); - } - ); -} - -else if (Prototype.Browser.IE) { - // IE doesn't report offsets correctly for static elements, so we change them - // to "relative" to get the values, then change them back. - Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( - function(proceed, element) { - element = $(element); - var position = element.getStyle('position'); - if (position !== 'static') return proceed(element); - element.setStyle({ position: 'relative' }); - var value = proceed(element); - element.setStyle({ position: position }); - return value; - } - ); - - $w('positionedOffset viewportOffset').each(function(method) { - Element.Methods[method] = Element.Methods[method].wrap( - function(proceed, element) { - element = $(element); - var position = element.getStyle('position'); - if (position !== 'static') return proceed(element); - // Trigger hasLayout on the offset parent so that IE6 reports - // accurate offsetTop and offsetLeft values for position: fixed. - var offsetParent = element.getOffsetParent(); - if (offsetParent && offsetParent.getStyle('position') === 'fixed') - offsetParent.setStyle({ zoom: 1 }); - element.setStyle({ position: 'relative' }); - var value = proceed(element); - element.setStyle({ position: position }); - return value; - } - ); - }); - - Element.Methods.getStyle = function(element, style) { - element = $(element); - style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); - var value = element.style[style]; - if (!value && element.currentStyle) value = element.currentStyle[style]; - - if (style == 'opacity') { - if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) - if (value[1]) return parseFloat(value[1]) / 100; - return 1.0; - } - - if (value == 'auto') { - if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) - return element['offset' + style.capitalize()] + 'px'; - return null; - } - return value; - }; - - Element.Methods.setOpacity = function(element, value) { - function stripAlpha(filter){ - return filter.replace(/alpha\([^\)]*\)/gi,''); - } - element = $(element); - var currentStyle = element.currentStyle; - if ((currentStyle && !currentStyle.hasLayout) || - (!currentStyle && element.style.zoom == 'normal')) - element.style.zoom = 1; - - var filter = element.getStyle('filter'), style = element.style; - if (value == 1 || value === '') { - (filter = stripAlpha(filter)) ? - style.filter = filter : style.removeAttribute('filter'); - return element; - } else if (value < 0.00001) value = 0; - style.filter = stripAlpha(filter) + - 'alpha(opacity=' + (value * 100) + ')'; - return element; - }; - - Element._attributeTranslations = { - read: { - names: { - 'class': 'className', - 'for': 'htmlFor' - }, - values: { - _getAttr: function(element, attribute) { - return element.getAttribute(attribute, 2); - }, - _getAttrNode: function(element, attribute) { - var node = element.getAttributeNode(attribute); - return node ? node.value : ""; - }, - _getEv: function(element, attribute) { - attribute = element.getAttribute(attribute); - return attribute ? attribute.toString().slice(23, -2) : null; - }, - _flag: function(element, attribute) { - return $(element).hasAttribute(attribute) ? attribute : null; - }, - style: function(element) { - return element.style.cssText.toLowerCase(); - }, - title: function(element) { - return element.title; - } - } - } - }; - - Element._attributeTranslations.write = { - names: Object.extend({ - cellpadding: 'cellPadding', - cellspacing: 'cellSpacing' - }, Element._attributeTranslations.read.names), - values: { - checked: function(element, value) { - element.checked = !!value; - }, - - style: function(element, value) { - element.style.cssText = value ? value : ''; - } - } - }; - - Element._attributeTranslations.has = {}; - - $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + - 'encType maxLength readOnly longDesc').each(function(attr) { - Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; - Element._attributeTranslations.has[attr.toLowerCase()] = attr; - }); - - (function(v) { - Object.extend(v, { - href: v._getAttr, - src: v._getAttr, - type: v._getAttr, - action: v._getAttrNode, - disabled: v._flag, - checked: v._flag, - readonly: v._flag, - multiple: v._flag, - onload: v._getEv, - onunload: v._getEv, - onclick: v._getEv, - ondblclick: v._getEv, - onmousedown: v._getEv, - onmouseup: v._getEv, - onmouseover: v._getEv, - onmousemove: v._getEv, - onmouseout: v._getEv, - onfocus: v._getEv, - onblur: v._getEv, - onkeypress: v._getEv, - onkeydown: v._getEv, - onkeyup: v._getEv, - onsubmit: v._getEv, - onreset: v._getEv, - onselect: v._getEv, - onchange: v._getEv - }); - })(Element._attributeTranslations.read.values); -} - -else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { - Element.Methods.setOpacity = function(element, value) { - element = $(element); - element.style.opacity = (value == 1) ? 0.999999 : - (value === '') ? '' : (value < 0.00001) ? 0 : value; - return element; - }; -} - -else if (Prototype.Browser.WebKit) { - Element.Methods.setOpacity = function(element, value) { - element = $(element); - element.style.opacity = (value == 1 || value === '') ? '' : - (value < 0.00001) ? 0 : value; - - if (value == 1) - if(element.tagName == 'IMG' && element.width) { - element.width++; element.width--; - } else try { - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch (e) { } - - return element; - }; - - // Safari returns margins on body which is incorrect if the child is absolutely - // positioned. For performance reasons, redefine Element#cumulativeOffset for - // KHTML/WebKit only. - Element.Methods.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return Element._returnOffset(valueL, valueT); - }; -} - -if (Prototype.Browser.IE || Prototype.Browser.Opera) { - // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements - Element.Methods.update = function(element, content) { - element = $(element); - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) return element.update().insert(content); - - content = Object.toHTML(content); - var tagName = element.tagName.toUpperCase(); - - if (tagName in Element._insertionTranslations.tags) { - $A(element.childNodes).each(function(node) { element.removeChild(node) }); - Element._getContentFromAnonymousElement(tagName, content.stripScripts()) - .each(function(node) { element.appendChild(node) }); - } - else element.innerHTML = content.stripScripts(); - - content.evalScripts.bind(content).defer(); - return element; - }; -} - -if ('outerHTML' in document.createElement('div')) { - Element.Methods.replace = function(element, content) { - element = $(element); - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - element.parentNode.replaceChild(content, element); - return element; - } - - content = Object.toHTML(content); - var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); - - if (Element._insertionTranslations.tags[tagName]) { - var nextSibling = element.next(); - var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - parent.removeChild(element); - if (nextSibling) - fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); - else - fragments.each(function(node) { parent.appendChild(node) }); - } - else element.outerHTML = content.stripScripts(); - - content.evalScripts.bind(content).defer(); - return element; - }; -} - -Element._returnOffset = function(l, t) { - var result = [l, t]; - result.left = l; - result.top = t; - return result; -}; - -Element._getContentFromAnonymousElement = function(tagName, html) { - var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; - if (t) { - div.innerHTML = t[0] + html + t[1]; - t[2].times(function() { div = div.firstChild }); - } else div.innerHTML = html; - return $A(div.childNodes); -}; - -Element._insertionTranslations = { - before: function(element, node) { - element.parentNode.insertBefore(node, element); - }, - top: function(element, node) { - element.insertBefore(node, element.firstChild); - }, - bottom: function(element, node) { - element.appendChild(node); - }, - after: function(element, node) { - element.parentNode.insertBefore(node, element.nextSibling); - }, - tags: { - TABLE: ['', '
', 1], - TBODY: ['', '
', 2], - TR: ['', '
', 3], - TD: ['
', '
', 4], - SELECT: ['', 1] - } -}; - -(function() { - Object.extend(this.tags, { - THEAD: this.tags.TBODY, - TFOOT: this.tags.TBODY, - TH: this.tags.TD - }); -}).call(Element._insertionTranslations); - -Element.Methods.Simulated = { - hasAttribute: function(element, attribute) { - attribute = Element._attributeTranslations.has[attribute] || attribute; - var node = $(element).getAttributeNode(attribute); - return node && node.specified; - } -}; - -Element.Methods.ByTag = { }; - -Object.extend(Element, Element.Methods); - -if (!Prototype.BrowserFeatures.ElementExtensions && - document.createElement('div').__proto__) { - window.HTMLElement = { }; - window.HTMLElement.prototype = document.createElement('div').__proto__; - Prototype.BrowserFeatures.ElementExtensions = true; -} - -Element.extend = (function() { - if (Prototype.BrowserFeatures.SpecificElementExtensions) - return Prototype.K; - - var Methods = { }, ByTag = Element.Methods.ByTag; - - var extend = Object.extend(function(element) { - if (!element || element._extendedByPrototype || - element.nodeType != 1 || element == window) return element; - - var methods = Object.clone(Methods), - tagName = element.tagName, property, value; - - // extend methods for specific tags - if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); - - for (property in methods) { - value = methods[property]; - if (Object.isFunction(value) && !(property in element)) - element[property] = value.methodize(); - } - - element._extendedByPrototype = Prototype.emptyFunction; - return element; - - }, { - refresh: function() { - // extend methods for all tags (Safari doesn't need this) - if (!Prototype.BrowserFeatures.ElementExtensions) { - Object.extend(Methods, Element.Methods); - Object.extend(Methods, Element.Methods.Simulated); - } - } - }); - - extend.refresh(); - return extend; -})(); - -Element.hasAttribute = function(element, attribute) { - if (element.hasAttribute) return element.hasAttribute(attribute); - return Element.Methods.Simulated.hasAttribute(element, attribute); -}; - -Element.addMethods = function(methods) { - var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; - - if (!methods) { - Object.extend(Form, Form.Methods); - Object.extend(Form.Element, Form.Element.Methods); - Object.extend(Element.Methods.ByTag, { - "FORM": Object.clone(Form.Methods), - "INPUT": Object.clone(Form.Element.Methods), - "SELECT": Object.clone(Form.Element.Methods), - "TEXTAREA": Object.clone(Form.Element.Methods) - }); - } - - if (arguments.length == 2) { - var tagName = methods; - methods = arguments[1]; - } - - if (!tagName) Object.extend(Element.Methods, methods || { }); - else { - if (Object.isArray(tagName)) tagName.each(extend); - else extend(tagName); - } - - function extend(tagName) { - tagName = tagName.toUpperCase(); - if (!Element.Methods.ByTag[tagName]) - Element.Methods.ByTag[tagName] = { }; - Object.extend(Element.Methods.ByTag[tagName], methods); - } - - function copy(methods, destination, onlyIfAbsent) { - onlyIfAbsent = onlyIfAbsent || false; - for (var property in methods) { - var value = methods[property]; - if (!Object.isFunction(value)) continue; - if (!onlyIfAbsent || !(property in destination)) - destination[property] = value.methodize(); - } - } - - function findDOMClass(tagName) { - var klass; - var trans = { - "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", - "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", - "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", - "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", - "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": - "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": - "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": - "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": - "FrameSet", "IFRAME": "IFrame" - }; - if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; - if (window[klass]) return window[klass]; - klass = 'HTML' + tagName + 'Element'; - if (window[klass]) return window[klass]; - klass = 'HTML' + tagName.capitalize() + 'Element'; - if (window[klass]) return window[klass]; - - window[klass] = { }; - window[klass].prototype = document.createElement(tagName).__proto__; - return window[klass]; - } - - if (F.ElementExtensions) { - copy(Element.Methods, HTMLElement.prototype); - copy(Element.Methods.Simulated, HTMLElement.prototype, true); - } - - if (F.SpecificElementExtensions) { - for (var tag in Element.Methods.ByTag) { - var klass = findDOMClass(tag); - if (Object.isUndefined(klass)) continue; - copy(T[tag], klass.prototype); - } - } - - Object.extend(Element, Element.Methods); - delete Element.ByTag; - - if (Element.extend.refresh) Element.extend.refresh(); - Element.cache = { }; -}; - -document.viewport = { - getDimensions: function() { - var dimensions = { }; - var B = Prototype.Browser; - $w('width height').each(function(d) { - var D = d.capitalize(); - dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] : - (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D]; - }); - return dimensions; - }, - - getWidth: function() { - return this.getDimensions().width; - }, - - getHeight: function() { - return this.getDimensions().height; - }, - - getScrollOffsets: function() { - return Element._returnOffset( - window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, - window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); - } -}; -/* Portions of the Selector class are derived from Jack Slocum’s DomQuery, - * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style - * license. Please see http://www.yui-ext.com/ for more information. */ - -var Selector = Class.create({ - initialize: function(expression) { - this.expression = expression.strip(); - this.compileMatcher(); - }, - - shouldUseXPath: function() { - if (!Prototype.BrowserFeatures.XPath) return false; - - var e = this.expression; - - // Safari 3 chokes on :*-of-type and :empty - if (Prototype.Browser.WebKit && - (e.include("-of-type") || e.include(":empty"))) - return false; - - // XPath can't do namespaced attributes, nor can it read - // the "checked" property from DOM nodes - if ((/(\[[\w-]*?:|:checked)/).test(this.expression)) - return false; - - return true; - }, - - compileMatcher: function() { - if (this.shouldUseXPath()) - return this.compileXPathMatcher(); - - var e = this.expression, ps = Selector.patterns, h = Selector.handlers, - c = Selector.criteria, le, p, m; - - if (Selector._cache[e]) { - this.matcher = Selector._cache[e]; - return; - } - - this.matcher = ["this.matcher = function(root) {", - "var r = root, h = Selector.handlers, c = false, n;"]; - - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - p = ps[i]; - if (m = e.match(p)) { - this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : - new Template(c[i]).evaluate(m)); - e = e.replace(m[0], ''); - break; - } - } - } - - this.matcher.push("return h.unique(n);\n}"); - eval(this.matcher.join('\n')); - Selector._cache[this.expression] = this.matcher; - }, - - compileXPathMatcher: function() { - var e = this.expression, ps = Selector.patterns, - x = Selector.xpath, le, m; - - if (Selector._cache[e]) { - this.xpath = Selector._cache[e]; return; - } - - this.matcher = ['.//*']; - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - if (m = e.match(ps[i])) { - this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : - new Template(x[i]).evaluate(m)); - e = e.replace(m[0], ''); - break; - } - } - } - - this.xpath = this.matcher.join(''); - Selector._cache[this.expression] = this.xpath; - }, - - findElements: function(root) { - root = root || document; - if (this.xpath) return document._getElementsByXPath(this.xpath, root); - return this.matcher(root); - }, - - match: function(element) { - this.tokens = []; - - var e = this.expression, ps = Selector.patterns, as = Selector.assertions; - var le, p, m; - - while (e && le !== e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - p = ps[i]; - if (m = e.match(p)) { - // use the Selector.assertions methods unless the selector - // is too complex. - if (as[i]) { - this.tokens.push([i, Object.clone(m)]); - e = e.replace(m[0], ''); - } else { - // reluctantly do a document-wide search - // and look for a match in the array - return this.findElements(document).include(element); - } - } - } - } - - var match = true, name, matches; - for (var i = 0, token; token = this.tokens[i]; i++) { - name = token[0], matches = token[1]; - if (!Selector.assertions[name](element, matches)) { - match = false; break; - } - } - - return match; - }, - - toString: function() { - return this.expression; - }, - - inspect: function() { - return "#"; - } -}); - -Object.extend(Selector, { - _cache: { }, - - xpath: { - descendant: "//*", - child: "/*", - adjacent: "/following-sibling::*[1]", - laterSibling: '/following-sibling::*', - tagName: function(m) { - if (m[1] == '*') return ''; - return "[local-name()='" + m[1].toLowerCase() + - "' or local-name()='" + m[1].toUpperCase() + "']"; - }, - className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", - id: "[@id='#{1}']", - attrPresence: function(m) { - m[1] = m[1].toLowerCase(); - return new Template("[@#{1}]").evaluate(m); - }, - attr: function(m) { - m[1] = m[1].toLowerCase(); - m[3] = m[5] || m[6]; - return new Template(Selector.xpath.operators[m[2]]).evaluate(m); - }, - pseudo: function(m) { - var h = Selector.xpath.pseudos[m[1]]; - if (!h) return ''; - if (Object.isFunction(h)) return h(m); - return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); - }, - operators: { - '=': "[@#{1}='#{3}']", - '!=': "[@#{1}!='#{3}']", - '^=': "[starts-with(@#{1}, '#{3}')]", - '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", - '*=': "[contains(@#{1}, '#{3}')]", - '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", - '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" - }, - pseudos: { - 'first-child': '[not(preceding-sibling::*)]', - 'last-child': '[not(following-sibling::*)]', - 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', - 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", - 'checked': "[@checked]", - 'disabled': "[@disabled]", - 'enabled': "[not(@disabled)]", - 'not': function(m) { - var e = m[6], p = Selector.patterns, - x = Selector.xpath, le, v; - - var exclusion = []; - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in p) { - if (m = e.match(p[i])) { - v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); - exclusion.push("(" + v.substring(1, v.length - 1) + ")"); - e = e.replace(m[0], ''); - break; - } - } - } - return "[not(" + exclusion.join(" and ") + ")]"; - }, - 'nth-child': function(m) { - return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); - }, - 'nth-last-child': function(m) { - return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); - }, - 'nth-of-type': function(m) { - return Selector.xpath.pseudos.nth("position() ", m); - }, - 'nth-last-of-type': function(m) { - return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); - }, - 'first-of-type': function(m) { - m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); - }, - 'last-of-type': function(m) { - m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); - }, - 'only-of-type': function(m) { - var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); - }, - nth: function(fragment, m) { - var mm, formula = m[6], predicate; - if (formula == 'even') formula = '2n+0'; - if (formula == 'odd') formula = '2n+1'; - if (mm = formula.match(/^(\d+)$/)) // digit only - return '[' + fragment + "= " + mm[1] + ']'; - if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b - if (mm[1] == "-") mm[1] = -1; - var a = mm[1] ? Number(mm[1]) : 1; - var b = mm[2] ? Number(mm[2]) : 0; - predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + - "((#{fragment} - #{b}) div #{a} >= 0)]"; - return new Template(predicate).evaluate({ - fragment: fragment, a: a, b: b }); - } - } - } - }, - - criteria: { - tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', - className: 'n = h.className(n, r, "#{1}", c); c = false;', - id: 'n = h.id(n, r, "#{1}", c); c = false;', - attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', - attr: function(m) { - m[3] = (m[5] || m[6]); - return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); - }, - pseudo: function(m) { - if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); - return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); - }, - descendant: 'c = "descendant";', - child: 'c = "child";', - adjacent: 'c = "adjacent";', - laterSibling: 'c = "laterSibling";' - }, - - patterns: { - // combinators must be listed first - // (and descendant needs to be last combinator) - laterSibling: /^\s*~\s*/, - child: /^\s*>\s*/, - adjacent: /^\s*\+\s*/, - descendant: /^\s/, - - // selectors follow - tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, - id: /^#([\w\-\*]+)(\b|$)/, - className: /^\.([\w\-\*]+)(\b|$)/, - pseudo: -/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, - attrPresence: /^\[([\w]+)\]/, - attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ - }, - - // for Selector.match and Element#match - assertions: { - tagName: function(element, matches) { - return matches[1].toUpperCase() == element.tagName.toUpperCase(); - }, - - className: function(element, matches) { - return Element.hasClassName(element, matches[1]); - }, - - id: function(element, matches) { - return element.id === matches[1]; - }, - - attrPresence: function(element, matches) { - return Element.hasAttribute(element, matches[1]); - }, - - attr: function(element, matches) { - var nodeValue = Element.readAttribute(element, matches[1]); - return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); - } - }, - - handlers: { - // UTILITY FUNCTIONS - // joins two collections - concat: function(a, b) { - for (var i = 0, node; node = b[i]; i++) - a.push(node); - return a; - }, - - // marks an array of nodes for counting - mark: function(nodes) { - var _true = Prototype.emptyFunction; - for (var i = 0, node; node = nodes[i]; i++) - node._countedByPrototype = _true; - return nodes; - }, - - unmark: function(nodes) { - for (var i = 0, node; node = nodes[i]; i++) - node._countedByPrototype = undefined; - return nodes; - }, - - // mark each child node with its position (for nth calls) - // "ofType" flag indicates whether we're indexing for nth-of-type - // rather than nth-child - index: function(parentNode, reverse, ofType) { - parentNode._countedByPrototype = Prototype.emptyFunction; - if (reverse) { - for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { - var node = nodes[i]; - if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; - } - } else { - for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) - if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; - } - }, - - // filters out duplicates and extends all nodes - unique: function(nodes) { - if (nodes.length == 0) return nodes; - var results = [], n; - for (var i = 0, l = nodes.length; i < l; i++) - if (!(n = nodes[i])._countedByPrototype) { - n._countedByPrototype = Prototype.emptyFunction; - results.push(Element.extend(n)); - } - return Selector.handlers.unmark(results); - }, - - // COMBINATOR FUNCTIONS - descendant: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - h.concat(results, node.getElementsByTagName('*')); - return results; - }, - - child: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) { - for (var j = 0, child; child = node.childNodes[j]; j++) - if (child.nodeType == 1 && child.tagName != '!') results.push(child); - } - return results; - }, - - adjacent: function(nodes) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - var next = this.nextElementSibling(node); - if (next) results.push(next); - } - return results; - }, - - laterSibling: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - h.concat(results, Element.nextSiblings(node)); - return results; - }, - - nextElementSibling: function(node) { - while (node = node.nextSibling) - if (node.nodeType == 1) return node; - return null; - }, - - previousElementSibling: function(node) { - while (node = node.previousSibling) - if (node.nodeType == 1) return node; - return null; - }, - - // TOKEN FUNCTIONS - tagName: function(nodes, root, tagName, combinator) { - var uTagName = tagName.toUpperCase(); - var results = [], h = Selector.handlers; - if (nodes) { - if (combinator) { - // fastlane for ordinary descendant combinators - if (combinator == "descendant") { - for (var i = 0, node; node = nodes[i]; i++) - h.concat(results, node.getElementsByTagName(tagName)); - return results; - } else nodes = this[combinator](nodes); - if (tagName == "*") return nodes; - } - for (var i = 0, node; node = nodes[i]; i++) - if (node.tagName.toUpperCase() === uTagName) results.push(node); - return results; - } else return root.getElementsByTagName(tagName); - }, - - id: function(nodes, root, id, combinator) { - var targetNode = $(id), h = Selector.handlers; - if (!targetNode) return []; - if (!nodes && root == document) return [targetNode]; - if (nodes) { - if (combinator) { - if (combinator == 'child') { - for (var i = 0, node; node = nodes[i]; i++) - if (targetNode.parentNode == node) return [targetNode]; - } else if (combinator == 'descendant') { - for (var i = 0, node; node = nodes[i]; i++) - if (Element.descendantOf(targetNode, node)) return [targetNode]; - } else if (combinator == 'adjacent') { - for (var i = 0, node; node = nodes[i]; i++) - if (Selector.handlers.previousElementSibling(targetNode) == node) - return [targetNode]; - } else nodes = h[combinator](nodes); - } - for (var i = 0, node; node = nodes[i]; i++) - if (node == targetNode) return [targetNode]; - return []; - } - return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; - }, - - className: function(nodes, root, className, combinator) { - if (nodes && combinator) nodes = this[combinator](nodes); - return Selector.handlers.byClassName(nodes, root, className); - }, - - byClassName: function(nodes, root, className) { - if (!nodes) nodes = Selector.handlers.descendant([root]); - var needle = ' ' + className + ' '; - for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { - nodeClassName = node.className; - if (nodeClassName.length == 0) continue; - if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) - results.push(node); - } - return results; - }, - - attrPresence: function(nodes, root, attr, combinator) { - if (!nodes) nodes = root.getElementsByTagName("*"); - if (nodes && combinator) nodes = this[combinator](nodes); - var results = []; - for (var i = 0, node; node = nodes[i]; i++) - if (Element.hasAttribute(node, attr)) results.push(node); - return results; - }, - - attr: function(nodes, root, attr, value, operator, combinator) { - if (!nodes) nodes = root.getElementsByTagName("*"); - if (nodes && combinator) nodes = this[combinator](nodes); - var handler = Selector.operators[operator], results = []; - for (var i = 0, node; node = nodes[i]; i++) { - var nodeValue = Element.readAttribute(node, attr); - if (nodeValue === null) continue; - if (handler(nodeValue, value)) results.push(node); - } - return results; - }, - - pseudo: function(nodes, name, value, root, combinator) { - if (nodes && combinator) nodes = this[combinator](nodes); - if (!nodes) nodes = root.getElementsByTagName("*"); - return Selector.pseudos[name](nodes, value, root); - } - }, - - pseudos: { - 'first-child': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - if (Selector.handlers.previousElementSibling(node)) continue; - results.push(node); - } - return results; - }, - 'last-child': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - if (Selector.handlers.nextElementSibling(node)) continue; - results.push(node); - } - return results; - }, - 'only-child': function(nodes, value, root) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) - results.push(node); - return results; - }, - 'nth-child': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root); - }, - 'nth-last-child': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, true); - }, - 'nth-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, false, true); - }, - 'nth-last-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, true, true); - }, - 'first-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, "1", root, false, true); - }, - 'last-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, "1", root, true, true); - }, - 'only-of-type': function(nodes, formula, root) { - var p = Selector.pseudos; - return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); - }, - - // handles the an+b logic - getIndices: function(a, b, total) { - if (a == 0) return b > 0 ? [b] : []; - return $R(1, total).inject([], function(memo, i) { - if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); - return memo; - }); - }, - - // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type - nth: function(nodes, formula, root, reverse, ofType) { - if (nodes.length == 0) return []; - if (formula == 'even') formula = '2n+0'; - if (formula == 'odd') formula = '2n+1'; - var h = Selector.handlers, results = [], indexed = [], m; - h.mark(nodes); - for (var i = 0, node; node = nodes[i]; i++) { - if (!node.parentNode._countedByPrototype) { - h.index(node.parentNode, reverse, ofType); - indexed.push(node.parentNode); - } - } - if (formula.match(/^\d+$/)) { // just a number - formula = Number(formula); - for (var i = 0, node; node = nodes[i]; i++) - if (node.nodeIndex == formula) results.push(node); - } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b - if (m[1] == "-") m[1] = -1; - var a = m[1] ? Number(m[1]) : 1; - var b = m[2] ? Number(m[2]) : 0; - var indices = Selector.pseudos.getIndices(a, b, nodes.length); - for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { - for (var j = 0; j < l; j++) - if (node.nodeIndex == indices[j]) results.push(node); - } - } - h.unmark(nodes); - h.unmark(indexed); - return results; - }, - - 'empty': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - // IE treats comments as element nodes - if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; - results.push(node); - } - return results; - }, - - 'not': function(nodes, selector, root) { - var h = Selector.handlers, selectorType, m; - var exclusions = new Selector(selector).findElements(root); - h.mark(exclusions); - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node._countedByPrototype) results.push(node); - h.unmark(exclusions); - return results; - }, - - 'enabled': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node.disabled) results.push(node); - return results; - }, - - 'disabled': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (node.disabled) results.push(node); - return results; - }, - - 'checked': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (node.checked) results.push(node); - return results; - } - }, - - operators: { - '=': function(nv, v) { return nv == v; }, - '!=': function(nv, v) { return nv != v; }, - '^=': function(nv, v) { return nv.startsWith(v); }, - '$=': function(nv, v) { return nv.endsWith(v); }, - '*=': function(nv, v) { return nv.include(v); }, - '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, - '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } - }, - - split: function(expression) { - var expressions = []; - expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { - expressions.push(m[1].strip()); - }); - return expressions; - }, - - matchElements: function(elements, expression) { - var matches = $$(expression), h = Selector.handlers; - h.mark(matches); - for (var i = 0, results = [], element; element = elements[i]; i++) - if (element._countedByPrototype) results.push(element); - h.unmark(matches); - return results; - }, - - findElement: function(elements, expression, index) { - if (Object.isNumber(expression)) { - index = expression; expression = false; - } - return Selector.matchElements(elements, expression || '*')[index || 0]; - }, - - findChildElements: function(element, expressions) { - expressions = Selector.split(expressions.join(',')); - var results = [], h = Selector.handlers; - for (var i = 0, l = expressions.length, selector; i < l; i++) { - selector = new Selector(expressions[i].strip()); - h.concat(results, selector.findElements(element)); - } - return (l > 1) ? h.unique(results) : results; - } -}); - -if (Prototype.Browser.IE) { - Object.extend(Selector.handlers, { - // IE returns comment nodes on getElementsByTagName("*"). - // Filter them out. - concat: function(a, b) { - for (var i = 0, node; node = b[i]; i++) - if (node.tagName !== "!") a.push(node); - return a; - }, - - // IE improperly serializes _countedByPrototype in (inner|outer)HTML. - unmark: function(nodes) { - for (var i = 0, node; node = nodes[i]; i++) - node.removeAttribute('_countedByPrototype'); - return nodes; - } - }); -} - -function $$() { - return Selector.findChildElements(document, $A(arguments)); -} -var Form = { - reset: function(form) { - $(form).reset(); - return form; - }, - - serializeElements: function(elements, options) { - if (typeof options != 'object') options = { hash: !!options }; - else if (Object.isUndefined(options.hash)) options.hash = true; - var key, value, submitted = false, submit = options.submit; - - var data = elements.inject({ }, function(result, element) { - if (!element.disabled && element.name) { - key = element.name; value = $(element).getValue(); - if (value != null && (element.type != 'submit' || (!submitted && - submit !== false && (!submit || key == submit) && (submitted = true)))) { - if (key in result) { - // a key is already present; construct an array of values - if (!Object.isArray(result[key])) result[key] = [result[key]]; - result[key].push(value); - } - else result[key] = value; - } - } - return result; - }); - - return options.hash ? data : Object.toQueryString(data); - } -}; - -Form.Methods = { - serialize: function(form, options) { - return Form.serializeElements(Form.getElements(form), options); - }, - - getElements: function(form) { - return $A($(form).getElementsByTagName('*')).inject([], - function(elements, child) { - if (Form.Element.Serializers[child.tagName.toLowerCase()]) - elements.push(Element.extend(child)); - return elements; - } - ); - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) return $A(inputs).map(Element.extend); - - for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || (name && input.name != name)) - continue; - matchingInputs.push(Element.extend(input)); - } - - return matchingInputs; - }, - - disable: function(form) { - form = $(form); - Form.getElements(form).invoke('disable'); - return form; - }, - - enable: function(form) { - form = $(form); - Form.getElements(form).invoke('enable'); - return form; - }, - - findFirstElement: function(form) { - var elements = $(form).getElements().findAll(function(element) { - return 'hidden' != element.type && !element.disabled; - }); - var firstByIndex = elements.findAll(function(element) { - return element.hasAttribute('tabIndex') && element.tabIndex >= 0; - }).sortBy(function(element) { return element.tabIndex }).first(); - - return firstByIndex ? firstByIndex : elements.find(function(element) { - return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - form = $(form); - form.findFirstElement().activate(); - return form; - }, - - request: function(form, options) { - form = $(form), options = Object.clone(options || { }); - - var params = options.parameters, action = form.readAttribute('action') || ''; - if (action.blank()) action = window.location.href; - options.parameters = form.serialize(true); - - if (params) { - if (Object.isString(params)) params = params.toQueryParams(); - Object.extend(options.parameters, params); - } - - if (form.hasAttribute('method') && !options.method) - options.method = form.method; - - return new Ajax.Request(action, options); - } -}; - -/*--------------------------------------------------------------------------*/ - -Form.Element = { - focus: function(element) { - $(element).focus(); - return element; - }, - - select: function(element) { - $(element).select(); - return element; - } -}; - -Form.Element.Methods = { - serialize: function(element) { - element = $(element); - if (!element.disabled && element.name) { - var value = element.getValue(); - if (value != undefined) { - var pair = { }; - pair[element.name] = value; - return Object.toQueryString(pair); - } - } - return ''; - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - return Form.Element.Serializers[method](element); - }, - - setValue: function(element, value) { - element = $(element); - var method = element.tagName.toLowerCase(); - Form.Element.Serializers[method](element, value); - return element; - }, - - clear: function(element) { - $(element).value = ''; - return element; - }, - - present: function(element) { - return $(element).value != ''; - }, - - activate: function(element) { - element = $(element); - try { - element.focus(); - if (element.select && (element.tagName.toLowerCase() != 'input' || - !['button', 'reset', 'submit'].include(element.type))) - element.select(); - } catch (e) { } - return element; - }, - - disable: function(element) { - element = $(element); - element.blur(); - element.disabled = true; - return element; - }, - - enable: function(element) { - element = $(element); - element.disabled = false; - return element; - } -}; - -/*--------------------------------------------------------------------------*/ - -var Field = Form.Element; -var $F = Form.Element.Methods.getValue; - -/*--------------------------------------------------------------------------*/ - -Form.Element.Serializers = { - input: function(element, value) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element, value); - default: - return Form.Element.Serializers.textarea(element, value); - } - }, - - inputSelector: function(element, value) { - if (Object.isUndefined(value)) return element.checked ? element.value : null; - else element.checked = !!value; - }, - - textarea: function(element, value) { - if (Object.isUndefined(value)) return element.value; - else element.value = value; - }, - - select: function(element, index) { - if (Object.isUndefined(index)) - return this[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - else { - var opt, value, single = !Object.isArray(index); - for (var i = 0, length = element.length; i < length; i++) { - opt = element.options[i]; - value = this.optionValue(opt); - if (single) { - if (value == index) { - opt.selected = true; - return; - } - } - else opt.selected = index.include(value); - } - } - }, - - selectOne: function(element) { - var index = element.selectedIndex; - return index >= 0 ? this.optionValue(element.options[index]) : null; - }, - - selectMany: function(element) { - var values, length = element.length; - if (!length) return null; - - for (var i = 0, values = []; i < length; i++) { - var opt = element.options[i]; - if (opt.selected) values.push(this.optionValue(opt)); - } - return values; - }, - - optionValue: function(opt) { - // extend element because hasAttribute may not be native - return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; - } -}; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = Class.create(PeriodicalExecuter, { - initialize: function($super, element, frequency, callback) { - $super(callback, frequency); - this.element = $(element); - this.lastValue = this.getValue(); - }, - - execute: function() { - var value = this.getValue(); - if (Object.isString(this.lastValue) && Object.isString(value) ? - this.lastValue != value : String(this.lastValue) != String(value)) { - this.callback(this.element, value); - this.lastValue = value; - } - } -}); - -Form.Element.Observer = Class.create(Abstract.TimedObserver, { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(Abstract.TimedObserver, { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = Class.create({ - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - Form.getElements(this.element).each(this.registerCallback, this); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - default: - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -}); - -Form.Element.EventObserver = Class.create(Abstract.EventObserver, { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(Abstract.EventObserver, { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) var Event = { }; - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - KEY_HOME: 36, - KEY_END: 35, - KEY_PAGEUP: 33, - KEY_PAGEDOWN: 34, - KEY_INSERT: 45, - - cache: { }, - - relatedTarget: function(event) { - var element; - switch(event.type) { - case 'mouseover': element = event.fromElement; break; - case 'mouseout': element = event.toElement; break; - default: return null; - } - return Element.extend(element); - } -}); - -Event.Methods = (function() { - var isButton; - - if (Prototype.Browser.IE) { - var buttonMap = { 0: 1, 1: 4, 2: 2 }; - isButton = function(event, code) { - return event.button == buttonMap[code]; - }; - - } else if (Prototype.Browser.WebKit) { - isButton = function(event, code) { - switch (code) { - case 0: return event.which == 1 && !event.metaKey; - case 1: return event.which == 1 && event.metaKey; - default: return false; - } - }; - - } else { - isButton = function(event, code) { - return event.which ? (event.which === code + 1) : (event.button === code); - }; - } - - return { - isLeftClick: function(event) { return isButton(event, 0) }, - isMiddleClick: function(event) { return isButton(event, 1) }, - isRightClick: function(event) { return isButton(event, 2) }, - - element: function(event) { - var node = Event.extend(event).target; - return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); - }, - - findElement: function(event, expression) { - var element = Event.element(event); - if (!expression) return element; - var elements = [element].concat(element.ancestors()); - return Selector.findElement(elements, expression, 0); - }, - - pointer: function(event) { - return { - x: event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)), - y: event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)) - }; - }, - - pointerX: function(event) { return Event.pointer(event).x }, - pointerY: function(event) { return Event.pointer(event).y }, - - stop: function(event) { - Event.extend(event); - event.preventDefault(); - event.stopPropagation(); - event.stopped = true; - } - }; -})(); - -Event.extend = (function() { - var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { - m[name] = Event.Methods[name].methodize(); - return m; - }); - - if (Prototype.Browser.IE) { - Object.extend(methods, { - stopPropagation: function() { this.cancelBubble = true }, - preventDefault: function() { this.returnValue = false }, - inspect: function() { return "[object Event]" } - }); - - return function(event) { - if (!event) return false; - if (event._extendedByPrototype) return event; - - event._extendedByPrototype = Prototype.emptyFunction; - var pointer = Event.pointer(event); - Object.extend(event, { - target: event.srcElement, - relatedTarget: Event.relatedTarget(event), - pageX: pointer.x, - pageY: pointer.y - }); - return Object.extend(event, methods); - }; - - } else { - Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; - Object.extend(Event.prototype, methods); - return Prototype.K; - } -})(); - -Object.extend(Event, (function() { - var cache = Event.cache; - - function getEventID(element) { - if (element._prototypeEventID) return element._prototypeEventID[0]; - arguments.callee.id = arguments.callee.id || 1; - return element._prototypeEventID = [++arguments.callee.id]; - } - - function getDOMEventName(eventName) { - if (eventName && eventName.include(':')) return "dataavailable"; - return eventName; - } - - function getCacheForID(id) { - return cache[id] = cache[id] || { }; - } - - function getWrappersForEventName(id, eventName) { - var c = getCacheForID(id); - return c[eventName] = c[eventName] || []; - } - - function createWrapper(element, eventName, handler) { - var id = getEventID(element); - var c = getWrappersForEventName(id, eventName); - if (c.pluck("handler").include(handler)) return false; - - var wrapper = function(event) { - if (!Event || !Event.extend || - (event.eventName && event.eventName != eventName)) - return false; - - Event.extend(event); - handler.call(element, event); - }; - - wrapper.handler = handler; - c.push(wrapper); - return wrapper; - } - - function findWrapper(id, eventName, handler) { - var c = getWrappersForEventName(id, eventName); - return c.find(function(wrapper) { return wrapper.handler == handler }); - } - - function destroyWrapper(id, eventName, handler) { - var c = getCacheForID(id); - if (!c[eventName]) return false; - c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); - } - - function destroyCache() { - for (var id in cache) - for (var eventName in cache[id]) - cache[id][eventName] = null; - } - - if (window.attachEvent) { - window.attachEvent("onunload", destroyCache); - } - - return { - observe: function(element, eventName, handler) { - element = $(element); - var name = getDOMEventName(eventName); - - var wrapper = createWrapper(element, eventName, handler); - if (!wrapper) return element; - - if (element.addEventListener) { - element.addEventListener(name, wrapper, false); - } else { - element.attachEvent("on" + name, wrapper); - } - - return element; - }, - - stopObserving: function(element, eventName, handler) { - element = $(element); - var id = getEventID(element), name = getDOMEventName(eventName); - - if (!handler && eventName) { - getWrappersForEventName(id, eventName).each(function(wrapper) { - element.stopObserving(eventName, wrapper.handler); - }); - return element; - - } else if (!eventName) { - Object.keys(getCacheForID(id)).each(function(eventName) { - element.stopObserving(eventName); - }); - return element; - } - - var wrapper = findWrapper(id, eventName, handler); - if (!wrapper) return element; - - if (element.removeEventListener) { - element.removeEventListener(name, wrapper, false); - } else { - element.detachEvent("on" + name, wrapper); - } - - destroyWrapper(id, eventName, handler); - - return element; - }, - - fire: function(element, eventName, memo) { - element = $(element); - if (element == document && document.createEvent && !element.dispatchEvent) - element = document.documentElement; - - var event; - if (document.createEvent) { - event = document.createEvent("HTMLEvents"); - event.initEvent("dataavailable", true, true); - } else { - event = document.createEventObject(); - event.eventType = "ondataavailable"; - } - - event.eventName = eventName; - event.memo = memo || { }; - - if (document.createEvent) { - element.dispatchEvent(event); - } else { - element.fireEvent(event.eventType, event); - } - - return Event.extend(event); - } - }; -})()); - -Object.extend(Event, Event.Methods); - -Element.addMethods({ - fire: Event.fire, - observe: Event.observe, - stopObserving: Event.stopObserving -}); - -Object.extend(document, { - fire: Element.Methods.fire.methodize(), - observe: Element.Methods.observe.methodize(), - stopObserving: Element.Methods.stopObserving.methodize(), - loaded: false -}); - -(function() { - /* Support for the DOMContentLoaded event is based on work by Dan Webb, - Matthias Miller, Dean Edwards and John Resig. */ - - var timer; - - function fireContentLoadedEvent() { - if (document.loaded) return; - if (timer) window.clearInterval(timer); - document.fire("dom:loaded"); - document.loaded = true; - } - - if (document.addEventListener) { - if (Prototype.Browser.WebKit) { - timer = window.setInterval(function() { - if (/loaded|complete/.test(document.readyState)) - fireContentLoadedEvent(); - }, 0); - - Event.observe(window, "load", fireContentLoadedEvent); - - } else { - document.addEventListener("DOMContentLoaded", - fireContentLoadedEvent, false); - } - - } else { - document.write(" - - - - - \ No newline at end of file diff --git a/htdocs/n3p7bLn59Yco3d/descriptions.xml b/htdocs/n3p7bLn59Yco3d/descriptions.xml deleted file mode 100644 index bc267cc..0000000 --- a/htdocs/n3p7bLn59Yco3d/descriptions.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/htdocs/n3p7bLn59Yco3d/images/Thumbs.db b/htdocs/n3p7bLn59Yco3d/images/Thumbs.db deleted file mode 100644 index ca8e9ca..0000000 Binary files a/htdocs/n3p7bLn59Yco3d/images/Thumbs.db and /dev/null differ diff --git a/htdocs/n3p7bLn59Yco3d/images/batiments/Thumbs.db b/htdocs/n3p7bLn59Yco3d/images/batiments/Thumbs.db deleted file mode 100644 index 3626507..0000000 Binary files a/htdocs/n3p7bLn59Yco3d/images/batiments/Thumbs.db and /dev/null differ diff --git a/htdocs/n3p7bLn59Yco3d/images/batiments/cristal.png b/htdocs/n3p7bLn59Yco3d/images/batiments/cristal.png deleted file mode 100644 index ebee289..0000000 Binary files a/htdocs/n3p7bLn59Yco3d/images/batiments/cristal.png and /dev/null differ diff --git a/htdocs/n3p7bLn59Yco3d/images/batiments/hydrogene.jpg b/htdocs/n3p7bLn59Yco3d/images/batiments/hydrogene.jpg deleted file mode 100644 index 11eba9a..0000000 Binary files a/htdocs/n3p7bLn59Yco3d/images/batiments/hydrogene.jpg and /dev/null differ diff --git a/htdocs/n3p7bLn59Yco3d/images/batiments/metal.png b/htdocs/n3p7bLn59Yco3d/images/batiments/metal.png deleted file mode 100644 index dfe823e..0000000 Binary files a/htdocs/n3p7bLn59Yco3d/images/batiments/metal.png and /dev/null differ diff --git a/htdocs/n3p7bLn59Yco3d/js/animations.js b/htdocs/n3p7bLn59Yco3d/js/animations.js deleted file mode 100644 index 74920c1..0000000 --- a/htdocs/n3p7bLn59Yco3d/js/animations.js +++ /dev/null @@ -1,225 +0,0 @@ -function create(type,parent,id,classe) - { - var element = document.createElement(type); - if(id && !$(id)) element.setAttribute('id',id); - if(classe) Element.addClassName(element,classe); - if(parent) element = $(parent).appendChild(element); - return element; - } - -var Effect = - { - queue : [], - - hide : function(element) - { - element.style.display = 'none'; - - return element; - }, - - show : function(element) - { - element.style.display = ''; - - return element; - }, - - opacity : function(element,opacity) - { - element.style.opacity = opacity / 100; - element.style.MozOpacity = opacity / 100; - element.style.KhtmlOpacity = opacity / 100; - element.style.filter = "alpha(opacity="+ opacity +")"; - - return element; - }, - - style : function(element,style) - { - for(var property in style) - { - if(property == 'opacity') Effect.opacity(element,style[property]); - else element.style[property] = style[property]; - } - - return element; - }, - - animate : function(element,style,speed) //usage : Effect.animate(element,{backgroundColor: [[0,0,0],[0,255,255]], fontSize: [12,14,'px']},500) - { - for(var i = 0; i < Effect.queue.length; i++) if(Effect.queue[i] == element) return false; - Effect.queue.push(element); - - var anim = {}; - var noanim = {}; - - var dif = 0; - - for(var property in style) - { - if(typeof style[property] == 'string') - noanim[property] = style[property]; - - else if(typeof style[property] == 'number') - anim[property] = [!element.style.property ? 0 : element.style.property , style[property]]; - - else if(typeof style[property] == 'object') - { - if(style[property].length == 1) - noanim[property] = style[property][0]; - - else if(style[property].length == 2 || style[property].length == 3) - { - if(typeof style[property][0] == 'number' && typeof style[property][1] == 'number') - { - anim[property] = style[property]; - } - - else if(typeof style[property][0] == 'number' && typeof style[property][1] == 'string') - { - anim[property] = [!element.style[property] ? 0 : element.style[property].substr(0,element.style[property].length - style[property][1].length) , style[property][0], style[property][1]]; - } - } - } - } - - Effect.style(element,noanim); - - for(var property in anim) dif = dif < Math.abs(anim[property][0] - anim[property][1]) ? Math.abs(anim[property][0] - anim[property][1]) : dif; - - for(var i=1; i <= dif ;i++) - { - - for(var property in anim) - { - var from = Number(anim[property][0]); - var to = Number(anim[property][1]); - var ext = typeof anim[property][2] != 'undefined' ? anim[property][2] : 0; - - var count = Math.floor(from + i*(to - from) / dif); - - var funct = function() - { - var style = {}; - style[this.property] = this.count+this.ext; - Effect.style(element,style); - }; - - setTimeout(funct.bind({property: property,count: count,ext: ext}),Math.floor(i/dif*speed)); - } - } - setTimeout(function(){for(var i = 0; i < Effect.queue.length; i++) if(Effect.queue[i] == element) Effect.queue[i] = null},speed+10); - return element; - }, - - fadeIn: function(element,speed) - { - Effect.animate(element,{visibility: 'visible',opacity: [0,100]},speed); - }, - - fadeOut: function(element,speed) - { - Effect.animate(element,{opacity: [100,0]},speed); - setTimeout(function(){Effect.style(element,{visibility: 'hidden'})},speed); - }, - - move : function(element,relative,from,to,speed) - { - switch(relative) - { - case 'top': - case 'left': - case 'bottom': - case 'right': - var anim = {}; - anim[relative] = [from,to,'px']; - Effect.animate(element,anim,speed); - } - } - }; - -/*Element.prototype.effect.hide = function() - { - return Effect.hide(this); - }; - -Element.prototype.effect.show = function() - { - return Effect.show(this); - };*/ - -Object.extend(Element.prototype,{ - opacity : function(opacity) - { - return Effect.opacity(this,opacity); - }, - - setStyle : function(style) - { - return Effect.style(this,style); - }, - - animate : function(style,speed) - { - return Effect.animate(this,style,speed); - }, - - fadeIn : function(speed) - { - return Effect.fadeIn(this,speed); - }, - - fadeOut : function(speed) - { - return Effect.fadeOut(this,speed); - }, - - move : function(relative,from,to,speed) - { - return Effect.move(this,relative,from,to,speed); - } - }); - -Element.addMethods(); - -/*Element.prototype.opacity = function(opacity) - { - return Effect.opacity(this,opacity); - }; - -Element.prototype.setStyle = function(style) - { - return Effect.style(this,style); - }; - -Element.prototype.animate = function(style,speed) - { - return Effect.animate(this,style,speed); - }; - -Element.prototype.fadeIn = function(speed) - { - return Effect.fadeIn(this,speed); - }; - -Element.prototype.fadeOut = function(speed) - { - return Effect.fadeOut(this,speed); - }; - -Element.prototype.move = function(relative,from,to,speed) - { - return Effect.move(this,relative,from,to,speed); - };*/ - -/*create('div',document.body,'test2'); -myfunct = function(){ $('test2').innerHTML += this.i }; -for(var i = 1; i < 20; i++) - { - setTimeout(myfunct.bind({i:i}),1000*i); - }*/ - -/*var masque = [/#([0-9A-F]{6}|[0-9A-F]{3})/i, - /rgb\((\d{1,3})%?,(\d{1,3})%?,(\d{1,3})%?\)/i, - /\d+(px|pc|pt|ex|em|mm|cm|in|%)/i];*/ diff --git a/htdocs/n3p7bLn59Yco3d/js/api.js b/htdocs/n3p7bLn59Yco3d/js/api.js deleted file mode 100644 index c267d25..0000000 --- a/htdocs/n3p7bLn59Yco3d/js/api.js +++ /dev/null @@ -1,534 +0,0 @@ - -var Desktop = - { - - dom : {windows: {}}, - - ressources : {metal: 2000, cristal: 1500, ions: 1000, energie: [1000,1500]}, - - planete : 1, //Planete sélectionné - - planetes : [[01,'Pegasi Alpha',8,31,4,1],[02,'Pegasi Beta',8,31,3,2],[03,'Pegasi Delta',8,31,2,3],[04,'Pegasi Zeta',8,31,1,4]], //id, nom , amas, syteme solaire, position, image. - - menu : [['Fenêtre 1',fenetre1],['Fenêtre 2',fenetre2],['Batiments',batiments],['Dialog',dialog],['Notification',notification],['Double',doubler]], - - descriptions : { - batiments: - { - 1:['Usine de Métal','metal.png','Le purificateur de métal vous fournit les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus développés ont aussi besoin de plus d\'énergie.'], - 2:['Purificateur de Cristal','cristal.png','Le purificateur de cristal vous fournit les ressources pour vos installations électroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'énergie que celui de métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leurs composants électroniques. La production augmente avec le développement de l\'usine.'], - 3:['Ionisateur','hydrogene.jpg','L\'ionisateur utilise des ions négatifs et positifs d\'hydrogène pour créer une source conventionnelle de courant stable, servant à alimenter les bâtiments covenants qui nécessitent une arrivée massive de cette "ressource" pour actionner les divers éléments matériels des contrôles. La centrale de fusion à besoin de beaucoup d\'ions pour fonctionner.'] - }}, - - - Start : function() - { - - /*new Ajax.Request('descriptions.xml',{method: 'get',onSuccess: function(xhr) - { - Desktop.dom.descriptions = xhr.responseXML; - truc = xhr; - bat = Desktop.dom.descriptions.documentElement.getElementsByTagName('*'); - //alert(bat[2].textContent); - for(var i in bat) - { - //Desktop.descriptions['batiments'][bat[i].getAttribute('id')] = [bat[i].getAttribute('name'),bat[i].getAttribute('img'),bat[i].textContent]; - //Desktop.descriptions.batiments = bat[i]; - alert(i); - } - }});*/ - - this.dom.menu = create('ul',document.body,'menu'); - - this.dom.barre = create('div',document.body,'barre'); - - var barre = new Array(); - - for(var i=0; i < this.menu.length ; i++) - { - this.menu[i][2] = create('li',this.dom.menu); - this.menu[i][2].innerHTML = this.menu[i][0]; - this.menu[i][2].onclick = this.menu[i][1]; - } - - var ressources = create('div',document.body,'ressources'); - - var metal = create('div',ressources); - metal.innerHTML = 'Métal : '; - metal = create('span',metal); - metal.innerHTML = this.ressources.metal; - - var cristal = create('div',ressources); - cristal.innerHTML = 'Cristal : '; - cristal = create('span',cristal); - cristal.innerHTML = this.ressources.cristal; - - var ions = create('div',ressources); - ions.innerHTML = 'Ions : '; - ions = create('span',ions); - ions.innerHTML = this.ressources.ions; - - var energie = create('div',ressources); - energie.innerHTML = 'Energie : '; - var energie = create('span',energie); - energie.innerHTML = this.ressources.energie[0] +'/'+ this.ressources.energie[1]; - - this.dom.ressources = {metal: metal,cristal: cristal, ions: ions,energie: energie}; - - var planetes = create('div',document.body,'planetes'); - var up = create('span',planetes,document.body,'up'); - up.onclick = function() - { - return; - } - - for(var i = 0; i <= 2 && i < this.planetes[i].length; i++) - { - var p = create('img',planetes); - p.src = 'planetes/'+this.planetes[i][5]+'.jpg'; - p.onclick = callback(function(i) { Desktop.ChangePlanete(i);},i); - if(this.planetes[i][0] == this.planete) Element.addClassName(p,'selected'); - } - - var down = create('span',planetes,0,'down'); - down.onclick = function() - { - return; - } - }, - - NewWin : function(id,t,c) - { - if(!this.dom.windows[id]) - { - - var o = new Object(); - - o.win = create('div',document.body,'Window'+id,'window'); - - o.win.style.zIndex = 10; - - o.top = create('div',o.win,0,'top'); - - o.topleft = create('span',o.top,0,'topleft'); - - o.topcenter = create('span',o.top,0,'topcenter'); - - o.topright = create('span',o.top,0,'topright'); - - o.barre = create('div',o.win,0,'barre'); - o.barre.onmousedown = function(event) { Desktop.WinMove(id,event,1); }; - o.barre.onmouseup = function(event) { Desktop.WinMove(id,event,3); }; - - o.titre = create('span',o.barre,0,'titre'); - o.titre.innerHTML = t; - - o.button = create('div',o.barre,0,'button'); - o.button.onmousedown, o.button.onmouseup = function() { return false;}; - - o.hide = create('span',o.button,0,'hide'); - - o.full = create('span',o.button,0,'full'); - - o.close = create('span',o.button,0,'close'); - - o.hide.onclick = function() { Desktop.WinHide(id); }; - o.full.onclick = function() { Desktop.WinFull(id); }; - o.close.onclick = function() { Desktop.WinClose(id); }; - o.hide.onmousedown, o.full.onmousedown, o.close.onmousedown = function() { return false;}; - - o.content = create('div',o.win,0,'content'); - if(typeof(c) == 'object') o.content.appendChild(c); - else o.content.innerHTML = c; - - o.bottom = create('div',o.win,0,'bottom'); - - o.bottomleft = create('span',o.bottom,0,'bottomleft'); - - o.bottomcenter = create('span',o.bottom,0,'bottomcenter'); - - o.bottomright = create('span',o.bottom,0,'bottomright'); - - o.barre = create('div',this.dom.barre); - o.barre.innerHTML = t; - o.barre.onclick = function() { Desktop.WinFocus(id); } ; - - o.id = id; - - o.x = o.win.offsetLeft; - - o.y = o.win.offsetTop; - - o.h = o.win.offsetHeight; - - o.w = o.win.offsetWidth; - - o.full = false; - - o.move = false; - - o.moveX = 0; - - o.moveY = 0; - - this.dom.windows[id] = o; - - var r = new Object(); - - r.id = id; - - r.Close = function() { return Desktop.WinClose(id); } ; - - r.Full = function() { return Desktop.WinFull(id); } ; - - r.Hide = function() { return Desktop.WinHide(id); } ; - - r.Focus = function() { return Desktop.WinFocus(id); } ; - - r.Move = function(x,y) { return Desktop.WinMove(id,x,y); } ; - - r.Resize = function(x,y) { return Desktop.WinResize(id,x,y); } ; - - r.Content = function(t) { return Desktop.WinContent(id,t); } ; - - this.WinFocus(id); - - return r; - } - else this.WinFocus(id); - - }, - - WinFull : function(id) - { - if(this.dom.windows[id].full) - { - this.dom.windows[id].win.style.left = this.dom.windows[id].full[0]+'px'; - this.dom.windows[id].win.style.top = this.dom.windows[id].full[1]+'px'; - this.dom.windows[id].win.style.width = this.dom.windows[id].full[2]+'px'; - this.dom.windows[id].win.style.height = this.dom.windows[id].full[3]+'px'; - - this.dom.windows[id].full = false; - } - else - { - this.dom.windows[id].full = [this.dom.windows[id].win.offsetLeft, this.dom.windows[id].win.offsetTop, this.dom.windows[id].win.offsetWidth, this.dom.windows[id].win.offsetHeight]; - - this.dom.windows[id].win.style.top = '0'; - this.dom.windows[id].win.style.left = '0'; - this.dom.windows[id].win.style.width = '100%'; - this.dom.windows[id].win.style.height = (document.documentElement.offsetHeight - this.dom.barre.offsetHeight - 49) + 'px'; - } - Desktop.WinFocus(id); - }, - - WinHide : function(id) - { - this.dom.windows[id].win.style.display = 'none'; - }, - - WinFocus : function(id) - { - this.dom.windows[id].win.style.display = 'block'; - this.dom.windows[id].x = this.dom.windows[id].win.offsetLeft; - this.dom.windows[id].y = this.dom.windows[id].win.offsetTop; - this.dom.windows[id].w = this.dom.windows[id].win.offsetHeight; - this.dom.windows[id].h = this.dom.windows[id].win.offsetWidth; - - var z = this.dom.windows[id].win.style.zIndex * 1; - - for(var i in this.dom.windows) - { - z = z >= this.dom.windows[i].win.style.zIndex ? z : this.dom.windows[i].win.style.zIndex * 1; - } - - this.dom.windows[id].win.style.zIndex = z+1; - }, - - WinMove : function(id,event,action) - { - if(action == 1 && !this.dom.windows[id].full) // MouseDown - { - Desktop.WinFocus(id); - this.dom.windows[id].moveX = Event.pointerX(event) - this.dom.windows[id].win.offsetLeft; - this.dom.windows[id].moveY = Event.pointerY(event) - this.dom.windows[id].win.offsetTop; - - document.body.onmousemove = function(event) { Desktop.dom.windows[id].move = event; Desktop.WinMove(id,event,2);}; - opacity(this.dom.windows[id].win,50); - } - else if(action == 2) //MouseMove - { - x = Event.pointerX(event) - this.dom.windows[id].moveX; - y = Event.pointerY(event) - this.dom.windows[id].moveY; - this.dom.windows[id].win.style.left = (x > 0 ? x : 0) + 'px'; - this.dom.windows[id].win.style.top = (y > 0 ? y : 0) + 'px'; - } - - else if(action == 3) //MouseUp - { - this.dom.windows[id].x = this.dom.windows[id].win.offsetLeft; - this.dom.windows[id].y = this.dom.windows[id].win.offsetTop; - opacity(this.dom.windows[id].win,100); - document.body.onmousemove = function() { return false;}; - } - }, - - WinContent: function(id,c) - { - if(typeof(c) == 'object') - { - this.dom.windows[id].content.innerHTML = ''; - this.dom.windows[id].content.appendChild(c); - } - else this.dom.windows[id].content.innerHTML = c; - }, - - WinClose : function(id) - { - Element.remove(this.dom.windows[id].win); - Element.remove(this.dom.windows[id].barre); - delete this.dom.windows[id]; - }, - - Dialog : function(text,callback) - { - if(!this.dom.dialog) - { - this.dom.darkness = create('div',document.body,'darkness'); - fade('darkness',0,80,400); - - this.dom.dialog = create('div',document.body,'dialog'); - - var p = create('p',this.dom.dialog); - p.innerHTML = text; - - var ok = create('span',this.dom.dialog,0,'button'); - ok.innerHTML = 'ok'; - - var cancel = create('span',this.dom.dialog,0,'button'); - cancel.innerHTML = 'Annuler'; - - var quit = create('span',this.dom.dialog,0,'quit'); - var close = function() - { - Element.remove(Desktop.dom.dialog); - Element.remove(Desktop.dom.darkness); - - Desktop.dom.dialog = false; - Desktop.dom.darkness = false; - }; - - quit.onclick = close; - cancel.onclick = close; - ok.onclick = function() - { - close(); - callback(); - }; - } - }, - - Notification: function(message) - { - if(!this.dom.notification) - { - this.dom.notification = create('p',document.body,'notification'); - this.dom.notification.innerHTML = message; - - move('notification','bottom',-110,35,2000); - setTimeout(function() {move('notification','bottom',35,-110,2000);},7000); - setTimeout(function() {Element.remove(Desktop.dom.notification); Desktop.dom.notification = false;},10000); - } - }, - - Ressource: function(ressource,set) - { - switch(ressource) - { - case 'metal': - case 'cristal': - case 'ions': - if(set) - { - this.dom.ressources[ressource].innerHTML = set; - this.ressources[ressource] = set; - } - break; - - case 'energie': - if(set) - { - this.dom.ressources[ressource].innerHTML = set+'/'+this.ressources[ressource][1]; - this.ressources[ressource][0] = set; - } - break; - case 'energieAll': - if(set) - { - this.dom.ressources[ressource].innerHTML = this.ressources[ressource][0]+'/'+set; - this.ressources[ressource][1] = set; - } - break; - - default: return false; - } - - return this.ressources[ressource]; - }, - - ChangePlanete: function(i) - { - if(this.planetes[i][0] != this.planete) alert('Changement de planete : '+this.planetes[i][1]); - } - } - -function create(type,parent,id,classe) - { - var element = document.createElement(type); - if(id && !$(id)) element.setAttribute('id',id); - if(classe) Element.addClassName(element,classe); - if(parent) element = $(parent).appendChild(element); - return element; - } - -function callback(funct,parameter) - { - return function() { funct(parameter); }; - } - -function move(objet,relative,from,to,speed) - { - switch(relative) - { - case 'top': - case 'bottom': - case 'left': - case 'right': - - for(var i=1; i <= (Math.floor(Math.abs(from - to))) ;i++) - { - setTimeout(callback(function(i) {$(objet).style[relative] = (from < to ? from + i : from -i)+'px';},i),Math.floor(speed / (Math.floor(Math.abs(from - to))) * i)); - } - break; - default: return false; - } - - } - -function fade(objet,from,to,speed) - { - for(var i = 1; (Math.floor(Math.abs(from - to)) / 10) >= i; i++) - { - setTimeout(callback(function(i) {opacity(objet,(from < to ? from + i * 10 : from - i * 10));},i),Math.floor(speed / (Math.floor(Math.abs(from - to)) / 10)) * i); - } - } - -function opacity(objet,opacity) - { - $(objet).style.opacity = opacity / 100; - $(objet).style.MozOpacity = opacity /100; - $(objet).style.KhtmlOpacity = opacity / 100; - $(objet).style.filter = "alpha(opacity="+opacity+")"; - } - -function bulle(objet,text) - { - if(!$('bulle')) - { - objet.onmouvehover = function() - { - bulle = $('body').appendChild(document.createElement('div')); - bulle.setAttribute('id','bulle'); - }; - } - } - -function fenetre1() - { - var test1 = Desktop.NewWin('test1','Test','Hello World'); - } - -function fenetre2() - { - var test2 = Desktop.NewWin('test2','Test 2','

Bla bla bla bla bla bla bla bla bla bla bla
Bla bla bla bla bla bla bla bla bla bla bla
Bla bla bla bla bla bla bla bla bla bla bla
Bla bla bla bla bla bla bla bla bla bla bla
Bla bla bla bla bla bla bla bla bla bla bla
Bla bla bla bla bla bla bla bla bla bla bla
Bla bla bla bla bla bla bla bla bla bla bla

'); - } - -function dialog() - { - Desktop.Dialog('Test',function() {alert('test');}); - } - -function notification() - { - Desktop.Notification('test'); - } - -function doubler() - { - Desktop.Ressource('metal',Desktop.ressources.metal*2); - Desktop.Ressource('cristal',Desktop.ressources.cristal*2); - Desktop.Ressource('ions',Desktop.ressources.ions*2); - Desktop.Ressource('energie',Desktop.ressources.energie[0]*2); - } - -/*description = { - bat01: 'Le purificateur de métal vous fournit les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus développés ont aussi besoin de plus d\'énergie.', - bat02: 'Le purificateur de cristal vous fournit les ressources pour vos installations électroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'énergie que celui de métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leurs composants électroniques. La production augmente avec le développement de l\'usine.', - bat03:'L\'ionisateur utilise des ions négatifs et positifs d\'hydrogène pour créer une source conventionnelle de courant stable, servant à alimenter les bâtiments covenants qui nécessitent une arrivée massive de cette "ressource" pour actionner les divers éléments matériels des contrôles. La centrale de fusion à besoin de beaucoup d\'ions pour fonctionner.' - }; - -ajax = {bat01: ['Usine de Métal','metal.png',3,100,200,300,0],bat02: ['Usine de Cristal','cristal.png',3,100,200,300,0],bat03: ['Ionisateur','hydrogene.jpg',3,100,200,300,0]};*/ - -function batiments() - { - var batiments = Desktop.descriptions.batiments; - - var all = create('div'); - all.style.height = '100%'; - var left = create('dl',all,0,'menu'); - var dt = create('dt',left); - dt.innerHTML = 'Batiments'; - - var right = create('div',all,0,'description'); - var titre = create('h4',right); - titre.innerHTML = batiments[1][0]; - var img = create('img',right); - img.src = 'images/'+batiments[1][1]; - img.alt = batiments[1][0]; - var p = create('p',right); - p.innerHTML = batiments[1][2]; - var button = create('button',right); - button.innerHTML = 'Construire'; - button.onclick = function() { alert('Construction!') }; - - for(var i in batiments) - { - var dd = create('dd',left); - dd.innerHTML = batiments[i][0]; - if(i == 1) Element.addClassName(dd,'selected'); - dd.onclick = callback(function(par) - { - var i = par[0]; - var dd = par[1]; - var dds = dd.parentNode.childNodes; - - for(var j = 1; j < dds.length; j++) - { - Element.removeClassName(dds[j],'selected'); - } - - Element.addClassName(dd,'selected'); - - titre.innerHTML = batiments[i][0]; - img.src = 'images/'+batiments[i][1]; - img.alt = batiments[i][0]; - p.innerHTML = batiments[i][2]; - },[i,dd]); - } - - Desktop.NewWin('batiments','Batiments',all); - } - -Desktop.Start(); -Element.remove($('start')); -Desktop.Notification('Bienvenue sur Halo-Battle'); \ No newline at end of file diff --git a/htdocs/n3p7bLn59Yco3d/js/functions.js b/htdocs/n3p7bLn59Yco3d/js/functions.js deleted file mode 100644 index 9282d72..0000000 --- a/htdocs/n3p7bLn59Yco3d/js/functions.js +++ /dev/null @@ -1,52 +0,0 @@ -function create(type,parent,id,classe) - { - var element = document.createElement(type); - if(id && !$(id)) element.setAttribute('id',id); - if(classe) Element.addClassName(element,classe); - if(parent) element = $(parent).appendChild(element); - return element; - } - -function callback() - { - if(parameters.length == 0) return false; - funct = prameters.shift(); - if(typeof funct != 'function') return false; - - return function() { funct.apply(this,parameters); }; - } - -function move(objet,relative,from,to,speed) - { - switch(relative) - { - case 'top': - case 'bottom': - case 'left': - case 'right': - - for(var i=1; i <= (Math.floor(Math.abs(from - to))) ;i++) - { - setTimeout(callback(function(i) {$(objet).style[relative] = (from < to ? from + i : from -i)+'px';},i),Math.floor(speed / (Math.floor(Math.abs(from - to))) * i)); - } - break; - default: return false; - } - - } - -function fade(objet,from,to,speed) - { - for(var i = 1; (Math.floor(Math.abs(from - to)) / 10) >= i; i++) - { - setTimeout(callback(function(i) {opacity(objet,(from < to ? from + i * 10 : from - i * 10));},i),Math.floor(speed / (Math.floor(Math.abs(from - to)) / 10)) * i); - } - } - -function opacity(objet,opacity) - { - $(objet).style.opacity = opacity / 100; - $(objet).style.MozOpacity = opacity /100; - $(objet).style.KhtmlOpacity = opacity / 100; - $(objet).style.filter = "alpha(opacity="+opacity+")"; - } \ No newline at end of file diff --git a/htdocs/n3p7bLn59Yco3d/js/interface.js b/htdocs/n3p7bLn59Yco3d/js/interface.js deleted file mode 100644 index 65ab3d1..0000000 --- a/htdocs/n3p7bLn59Yco3d/js/interface.js +++ /dev/null @@ -1,646 +0,0 @@ -var script = 'interface.xml'; - -var Interface= - { - mouseFocus : false, - - dom: {windows:{}}, - - descriptions : {batiments : [], vaisseaux : [],defenses : [],technologies : []}, - - planetes : [{name: 'Pegasi Alpha',position: '01:30:05',img: '1'},{name: 'Pegasi Beta',position: '01:30:06',img: '2'},{name: 'Pegasi Gamma',position: '01:30:08',img: '3'}], - - menuList: [], - - menu : - { - objects : {}, - - add : function(text,funct) - { - Interface.menu.objects[text] = {}; - Interface.menu.objects[text]['object'] = create('li',Interface.dom.menu); - Interface.menu.objects[text]['object'].innerHTML = text; - Interface.menu.objects[text]['function'] = funct; - Interface.menu.objects[text]['event'] = Event.observe(Interface.menu.objects[text]['object'], 'click', funct); - - }, - - remove : function(text) - { - if(typeof Interface.menu.objects[text] != 'object') return false; - Interface.menu.objects[text]['object'].remove(); - delete Interface.menu.objects[text]; - return true; - } - }, - - /*barre : - { - objects : {}, - - add : function(text,funct) - { - Interface.menu.objects[text] = {}; - Interface.menu.objects[text].object = create('li',Interface.dom.menu); - Interface.menu.objects[text].object.innerHTML = text; - Interface.menu.objects[text].funct = funct; - Interface.menu.objects[text].evt = Event.observe(Interface.menu.objects[text].object, 'click', funct); - }, - - remove : function() - { - - } - },*/ - - planete : - { - objects : {}, - - add : function(name,position,img) - { - Interface.planete.objects[position] = {}; - Interface.planete.objects[position].name = name; - Interface.planete.objects[position].position = position; - Interface.planete.objects[position].object = create('img',Interface.dom.planetes); - Interface.planete.objects[position].object.src = 'planetes/' + img + '.jpg'; - Interface.planete.objects[position].object.alt = name+ ' [' + position + ']'; - Interface.planete.objects[position].event = Event.observe(Interface.planete.objects[position].object, 'click', Interface.planete.change); - }, - - focus : function(position) - { - for(var i in Interface.planete.objects) - if(i == position) - { - $(Interface.planete.objects[i].object).addClassName('selected'); - break; - } - }, - - change : function() - { - - }, - - remove : function() - { - - } - }, - - ressources : - { - metal : 10000, - cristal : 5000, - ions : 7500, - energie : 300, - allEnergie: 450, - - set : function(type,number) - { - switch(type) - { - default: return false; - - case 'metal': - case 'cristal': - case 'ions': - Interface.ressources[type] = number; - Interface.dom.ressources[type].innerHTML = number; - break; - - case 'energie': - Interface.ressources[type] = number; - Interface.dom.ressources.energie.innerHTML = number + '/' + Interface.ressources.allEnergie; - break; - - case 'allEnergie': - Interface.ressources[type] = number; - Interface.dom.ressources.energie.innerHTML = Interface.ressources.energie + '/' + number; - break; - } - } - }, - - updater : function() - { - - }, - - init : function() - { - var oldNodes = $(document.body).childElements(); - for(var i =0; i < oldNodes.length; i++) if(oldNodes[i].tagName != 'script') oldNodes[i].remove(); - - Interface.dom.deskbar = create('div',document.body,'barre'); - - Interface.dom.menu = create('ul',document.body,'menu'); - - for(var i = 0; i < Interface.menuList.length; i++) Interface.menu.add(Interface.menuList[i][0],Interface.menuList[i][1]); - - Interface.dom.planetes = create('div',document.body,'planetes'); - - create('span',Interface.dom.planetes,0,'up'); - for(var i = 0; i < Interface.planetes.length; i++) Interface.planete.add(Interface.planetes[i].name,Interface.planetes[i].position,Interface.planetes[i].img); - create('span',Interface.dom.planetes,0,'down'); - Interface.planete.focus(Interface.planetes[0].position); - - Interface.dom.ressources = {}; - Interface.dom.ressources.all = create('div',document.body,'ressources'); - - var metal = create('div',Interface.dom.ressources.all); - metal.innerHTML = 'Métal : '; - Interface.dom.ressources.metal = create('strong',metal,'metal'); - Interface.dom.ressources.metal.innerHTML = Interface.ressources.metal; - - var cristal = create('div',Interface.dom.ressources.all); - cristal.innerHTML = 'Cristal : '; - Interface.dom.ressources.cristal = create('strong',cristal,'metal'); - Interface.dom.ressources.cristal.innerHTML = Interface.ressources.cristal; - - var ions = create('div',Interface.dom.ressources.all); - ions.innerHTML = 'Métal : '; - Interface.dom.ressources.ions = create('strong',ions,'metal'); - Interface.dom.ressources.ions.innerHTML = Interface.ressources.ions; - - var energie = create('div',Interface.dom.ressources.all); - energie.innerHTML = 'Métal : '; - Interface.dom.ressources.energie = create('strong',energie,'metal'); - Interface.dom.ressources.energie.innerHTML = Interface.ressources.energie + '/' + Interface.ressources.allEnergie; - - - desc = new Ajax.Request('descriptions.xml',{onSuccess: function(xhr) - { - batiments = xhr.responseXML.getElementsByTagName('batiment'); - for(var i = 0; i < batiments.length; i++) - { - Interface.descriptions.batiments[batiments[i].getAttribute('id')] = {name: batiments[i].getAttribute('name'),value:batiments[i].text || batiments[i].textContent}; - var img = create('img'); - img.src = 'images/batiments/' + batiments[i].getAttribute('img'); - img.alt = batiments[i].getAttribute('name'); - Interface.descriptions.batiments[batiments[i].getAttribute('id')].img = img; - } - } - }); - }, - - /*console : - { - active : true, - - print : function(message) - { - //if(!Interface.console.active) return false; - Interface.dom.console.innerHTHML += message + '
'; - }, - - flush : function() - { - if(!Interface.console.active) return false; - Interface.dom.console.innerHTHML = ''; - return true; - } - },*/ - - batiments : - { - initialized : false, - - window : null, - - init : function() - { - if(Interface.batiments.initialized) return false; - - Interface.batiments.initialized = true; - - var batiments = Interface.descriptions.batiments; - - if(typeof Interface.dom.batiment == 'undefined') Interface.dom.batiment = {}; - var dom = Interface.dom.batiment; - - dom.all = create('div'); - dom.all.style.height = '100%'; - dom.left = create('dl',dom.all,0,'menu'); - dom.dt = create('dt',dom.left); - dom.dt.innerHTML = 'Batiments'; - - dom.right = create('div',dom.all,0,'description'); - dom.titre = create('h4',dom.right); - dom.titre.innerHTML = batiments[1].name; - dom.img = dom.right.appendChild(batiments[1].img.cloneNode(true)); - dom.p = create('p',dom.right); - dom.p.innerHTML = batiments[1].value; - dom.button = create('button',dom.right); - dom.button.innerHTML = 'Construire'; - dom.button.onclick = function() { alert('Construction!') }; - - Event.observe(dom.img,'click',function(){Interface.info('batiments',1)}); - - var change = function() - { - var dom = Interface.dom.batiment; - var dd = dom.dd[this.i]; - var dds = dd.parentNode.childNodes; - - for(var j = 1; j < dds.length; j++) - { - Element.removeClassName(dds[j],'selected'); - } - - Element.addClassName(dd,'selected'); - - dom.titre.innerHTML = batiments[this.i].name; - - var newimg = batiments[this.i].img.cloneNode(true); - dom.right.replaceChild(newimg,dom.img); - dom.img = newimg; - - var i = this.i; - Event.observe(dom.img,'click',function(){Interface.info('batiments',i)}); - - dom.p.innerHTML = batiments[this.i].value; - }; - - dom.dd = []; - - for(var i = 1; i < batiments.length; i++) - { - dom.dd[i] = create('dd',dom.left); - dom.dd[i].innerHTML = batiments[i].name; - if(i == 1) Element.addClassName(dom.dd[i],'selected'); - - Event.observe(dom.dd[i],'click',change.bindAsEventListener({i:i})); - } - - Interface.batiments.window = new Interface.window('batiments','Batiments',dom.all); - } - }, - - info : function(groupe,id) - { - if(typeof Interface.descriptions[groupe][id] == 'undefined') return false; - - var description = Interface.descriptions[groupe][id]; - - var container = create('div',0,0,'info'); - var title = create('h5',container); - title.innerHTML = description.name; - container.appendChild(description.img.cloneNode(true)); - var preview = create('p',container); - preview.innerHTML = description.value; - - if(typeof Interface.dom.info == 'object') - { - Interface.dom.info.title(description.name); - Interface.dom.info.content(container); - Interface.dom.info.focus(); - } - else - { - Interface.dom.info = new Interface.window('description',description.name,container); - Interface.dom.info.closeCallback = function() {Interface.dom.info = false;}; - } - }, - - notification : function(text) - { - if(typeof Interface.dom.notification == 'object') return false; - - Interface.dom.notification = create('p',document.body,'notification'); - Interface.dom.notification.innerHTML = text; - - Effect.move(Interface.dom.notification,'bottom',-110,35,2000); - setTimeout(function() {Effect.move(Interface.dom.notification,'bottom',35,-110,2000);},7000); - setTimeout(function() {Element.remove(Interface.dom.notification); Interface.dom.notification = false;},10010); - }, - - dialog : function(text,callback) - { - if(typeof Interface.dom.dialog == 'object') return false; - - Interface.dom.darkness = create('div',document.body,'darkness'); - Effect.animate(Interface.dom.darkness,{opacity: [0,80]},500); - - Interface.dom.dialog = create('div',document.body,'dialog'); - - var p = create('p',Interface.dom.dialog); - p.innerHTML = text; - - var ok = create('button',Interface.dom.dialog); - ok.innerHTML = 'ok'; - - var cancel = create('button',Interface.dom.dialog); - cancel.innerHTML = 'Annuler'; - - var quit = create('span',Interface.dom.dialog,0,'quit'); - var close = function() - { - Element.remove(Interface.dom.dialog); - Element.remove(Interface.dom.darkness); - - Interface.dom.dialog = false; - Interface.dom.darkness = false; - }; - - Event.observe(quit,'click',close); - Event.observe(cancel,'click',close); - Event.observe(ok,'click',close); - Event.observe(ok,'click',callback); - } - } - -Interface.window = Class.create({ - initialize : function(id,title,content) - { - if(!(id && title && content)) return false; - this.id = id; - this.titre = title; - this.dom = {}; - - this.load(title,content); - this.focus(); - }, - - load : function(title,content) - { - if(this.dom.win || Interface.dom.windows[this.id]) return false; - - var title = title || this.titre; - var content = content || this.dom.content; - - this.dom.deskbar = create('div',Interface.dom.deskbar); - this.dom.deskbar.innerHTML = title; - Event.observe(this.dom.deskbar,'click',this.focus.bindAsEventListener(this)); - - this.dom.win = create('div',document.body,'window_'+this.id,'window'); - - this.dom.win.style.top = (this.dom.win.offsetTop + Math.round(Math.random()*30 -10)) + 'px'; - this.dom.win.style.left = (this.dom.win.offsetLeft + Math.round(Math.random()*30 -10)) + 'px'; - - this.dom.win.style.zIndex = 10; - - this.dom.top = create('div',this.dom.win,0,'top'); - - this.dom.topleft = create('span',this.dom.top,0,'topleft'); - - this.dom.topcenter = create('span',this.dom.top,0,'topcenter'); - - this.dom.topright = create('span',this.dom.top,0,'topright'); - - this.dom.barre = create('div',this.dom.win,0,'barre'); - Event.observe(this.dom.win, 'mousedown', this.focus.bindAsEventListener(this)); - Event.observe(this.dom.barre, 'mousedown', this.move.mouseDown.bindAsEventListener(this)); - - this.dom.titre = create('span',this.dom.barre,0,'titre'); - - this.dom.button = create('div',this.dom.barre,0,'button'); - - this.dom.hide = create('span',this.dom.button,0,'hide'); - Event.observe(this.dom.hide, 'click', this.hide.bindAsEventListener(this)); - - this.dom.full = create('span',this.dom.button,0,'full'); - Event.observe(this.dom.full, 'click', this.full.bindAsEventListener(this)); - - this.dom.close = create('span',this.dom.button,0,'close'); - Event.observe(this.dom.close, 'click', this.close.bindAsEventListener(this)); - - this.dom.content = create('div',this.dom.win,0,'content'); - - this.dom.bottom = create('div',this.dom.win,0,'bottom'); - - this.dom.bottomleft = create('span',this.dom.bottom,0,'bottomleft'); - - this.dom.bottomcenter = create('span',this.dom.bottom,0,'bottomcenter'); - - this.dom.bottomright = create('span',this.dom.bottom,0,'bottomright'); - - Event.observe(this.dom.bottomright, 'mousedown', this.resize.mouseDown.bindAsEventListener(this)); - - this.x = this.dom.win.offsetLeft; - - this.y = this.dom.win.offsetTop; - - this.h = this.dom.win.offsetHeight; - - this.w = this.dom.win.offsetWidth; - - this.position = false; - - this.movePosition = false; - - Interface.dom.windows[this.id] = this.dom; - - //for(var i in this.dom) this.dom[i].windowId = this.id; - - if(typeof(content) == 'object') this.dom.content.appendChild(content); - else if(typeof(content) == 'string') this.dom.content.innerHTML = content; - - this.dom.titre.innerHTML = title; - }, - - focus : function() - { - this.dom.win.style.display = ''; - - var z = Number(this.dom.win.style.zIndex); - - for(var i in Interface.dom.windows) - { - if(Interface.dom.windows[i]) z = z > Number(Interface.dom.windows[i].win.style.zIndex) ? z : Number(Interface.dom.windows[i].win.style.zIndex); - } - - this.dom.win.style.zIndex = z+1; - }, - - hide : function() - { - this.dom.win.style.display = 'none'; - }, - - full : function() - { - if(this.position) - { - this.dom.win.style.left = this.position.left+'px'; - this.dom.win.style.top = this.position.top+'px'; - this.dom.win.style.width = this.position.width+'px'; - this.dom.win.style.height = this.position.height+'px'; - - this.position = false; - } - else - { - this.position = {left : this.dom.win.offsetLeft, top: this.dom.win.offsetTop, width: this.dom.win.offsetWidth, height: this.dom.win.offsetHeight}; - - this.dom.win.style.top = '0'; - this.dom.win.style.left = '0'; - this.dom.win.style.width = '100%'; - this.dom.win.style.height = (document.documentElement.offsetHeight - this.dom.barre.offsetHeight - 49) + 'px'; - } - this.focus(); - }, - - close : function() - { - if(typeof this.closeCallback == 'function') this.closeCallback(); - this.dom.deskbar.remove(); - this.dom.win.remove(); - delete this.dom; - this.dom = false; - Interface.dom.windows[this.id] = false; - return true; - }, - - resize : - { - mouseDown : function(event) - { - Interface.mouseFocus = this.dom; - - Interface.mouseFocus.resizePosition = [Interface.mouseFocus.win.offsetLeft, - Interface.mouseFocus.win.offsetTop]; - - Interface.dom.resize = create('div',document.body,'resize'); - - Interface.dom.resize.style.left = Interface.mouseFocus.win.offsetLeft + 'px'; - Interface.dom.resize.style.top = Interface.mouseFocus.win.offsetTop + 'px'; - Interface.dom.resize.style.width = (Event.pointerX(event) - Interface.mouseFocus.win.offsetLeft) + 'px'; - Interface.dom.resize.style.height = (Event.pointerY(event) - Interface.mouseFocus.win.offsetTop) + 'px'; - - Event.observe(document.body, 'mousemove',Interface.window.prototype.resize.mouseMove); - Event.observe(document.body, 'mouseup', Interface.window.prototype.resize.mouseUp); - }, - - mouseMove : function(event) - { - - var w = Event.pointerX(event) - Interface.mouseFocus.resizePosition[0]; - var h = Event.pointerY(event) - Interface.mouseFocus.resizePosition[1]; - Interface.dom.resize.style.width = (w > 0 ? w : 0) + 'px'; - Interface.dom.resize.style.height = (h > 0 ? h : 0) + 'px'; - }, - - mouseUp : function(event) - { - Interface.mouseFocus.win.style.width = (Event.pointerX(event) - Interface.mouseFocus.resizePosition[0] + 2) + 'px'; - Interface.mouseFocus.win.style.height = (Event.pointerY(event) - Interface.mouseFocus.resizePosition[1] - 51) + 'px'; - - Element.remove(Interface.dom.resize); - - Interface.mouseFocus.resizePosition = false; - Interface.mouseFocus = false; - - Event.stopObserving(document.body,'mousemove',Interface.window.prototype.resize.mouseMove); - Event.stopObserving(document.body,'mouseup',Interface.window.prototype.resize.mouseUp); - } - }, - - move : - { - mouseDown : function(event) - { - if(Event.element(event).parentNode == this.dom.button) return false; - - Interface.mouseFocus = this.dom; - - Effect.opacity(Interface.mouseFocus.win,60); - - Interface.mouseFocus.movePosition = [Event.pointerX(event) - Interface.mouseFocus.win.offsetLeft,Event.pointerY(event) - Interface.mouseFocus.win.offsetTop]; - - Event.observe(document.body, 'mousemove',Interface.window.prototype.move.mouseMove); - Event.observe(document.body, 'mouseup', Interface.window.prototype.move.mouseUp); - }, - - mouseMove : function(event) - { - - var x = Event.pointerX(event) - Interface.mouseFocus.movePosition[0]; - var y = Event.pointerY(event) - Interface.mouseFocus.movePosition[1]; - Interface.mouseFocus.win.style.left = (x > 0 ? x : 0) + 'px'; - Interface.mouseFocus.win.style.top = (y > 0 ? y : 0) + 'px'; - }, - - mouseUp : function(event) - { - Effect.opacity(Interface.mouseFocus.win,100); - Interface.mouseFocus.movePosition = false; - Interface.mouseFocus = false; - Event.stopObserving(document.body,'mousemove',Interface.window.prototype.move.mouseMove); - Event.stopObserving(document.body,'mouseup',Interface.window.prototype.move.mouseUp); - }, - - to : function(object,x,y) - { - - } - }, - - title : function(title) - { - if(typeof title != 'string') return this.titre; - - var old = this.title; - - this.titre = title; - this.dom.titre.innerHTML = title; - - return old; - }, - - content : function(content) - { - var old = this.dom.content.cloneNode(true); - - if(typeof(content) == 'object') { Element.remove(this.dom.content.firstChild); this.dom.content.appendChild(content); } - else if(typeof(content) == 'string') this.dom.content.innerHTML = content ; - else return this.dom.content; - - return old; - } - -}); - -Interface.menuList = [['Hello World',helloWorld], - ['Batiments',Interface.batiments.init], - ['Doubler',doubler], - //['Background',background], - ['Notification',notif], - ['Dialog',dialog]]; - - - -function dialog() - { - Interface.dialog('WTF??',function(){alert(':P')}); - } - -function background() - { - if($('background')) return false; - bg = create('div',document.body,'background'); - bg2 = create('div',bg,0,'content'); - } - -function doubler() - { - Interface.ressources.set('metal',Interface.ressources.metal*2); - Interface.ressources.set('cristal',Interface.ressources.cristal*2); - Interface.ressources.set('ions',Interface.ressources.ions*2); - Interface.ressources.set('energie',Interface.ressources.energie*2); - Interface.ressources.set('allEnergie',Interface.ressources.allEnergie*2); - } - -function notif() - { - Interface.notification('test! :P'); - } - -function helloWorld() - { - hw = new Interface.window('helloWorld','Hello World','Hello World!'); - } - -Interface.init(); \ No newline at end of file diff --git a/htdocs/n3p7bLn59Yco3d/js/load.js b/htdocs/n3p7bLn59Yco3d/js/load.js deleted file mode 100644 index 75455bb..0000000 --- a/htdocs/n3p7bLn59Yco3d/js/load.js +++ /dev/null @@ -1,10 +0,0 @@ -function include(fichier) - { - var script = document.createElement('script'); - script.setAttribute('src',fichier); - script.setAttribute('type','application/javascript'); - document.body.appendChild(script); - } - -include('js/prototype.js'); -include('js/api.js'); \ No newline at end of file diff --git a/htdocs/n3p7bLn59Yco3d/js/prototype.js b/htdocs/n3p7bLn59Yco3d/js/prototype.js deleted file mode 100644 index dfe8ab4..0000000 --- a/htdocs/n3p7bLn59Yco3d/js/prototype.js +++ /dev/null @@ -1,4320 +0,0 @@ -/* Prototype JavaScript framework, version 1.6.0.3 - * (c) 2005-2008 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://www.prototypejs.org/ - * - *--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.6.0.3', - - Browser: { - IE: !!(window.attachEvent && - navigator.userAgent.indexOf('Opera') === -1), - Opera: navigator.userAgent.indexOf('Opera') > -1, - WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, - Gecko: navigator.userAgent.indexOf('Gecko') > -1 && - navigator.userAgent.indexOf('KHTML') === -1, - MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) - }, - - BrowserFeatures: { - XPath: !!document.evaluate, - SelectorsAPI: !!document.querySelector, - ElementExtensions: !!window.HTMLElement, - SpecificElementExtensions: - document.createElement('div')['__proto__'] && - document.createElement('div')['__proto__'] !== - document.createElement('form')['__proto__'] - }, - - ScriptFragment: ']*>([\\S\\s]*?)<\/script>', - JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, - - emptyFunction: function() { }, - K: function(x) { return x } -}; - -if (Prototype.Browser.MobileSafari) - Prototype.BrowserFeatures.SpecificElementExtensions = false; - - -/* Based on Alex Arnell's inheritance implementation. */ -var Class = { - create: function() { - var parent = null, properties = $A(arguments); - if (Object.isFunction(properties[0])) - parent = properties.shift(); - - function klass() { - this.initialize.apply(this, arguments); - } - - Object.extend(klass, Class.Methods); - klass.superclass = parent; - klass.subclasses = []; - - if (parent) { - var subclass = function() { }; - subclass.prototype = parent.prototype; - klass.prototype = new subclass; - parent.subclasses.push(klass); - } - - for (var i = 0; i < properties.length; i++) - klass.addMethods(properties[i]); - - if (!klass.prototype.initialize) - klass.prototype.initialize = Prototype.emptyFunction; - - klass.prototype.constructor = klass; - - return klass; - } -}; - -Class.Methods = { - addMethods: function(source) { - var ancestor = this.superclass && this.superclass.prototype; - var properties = Object.keys(source); - - if (!Object.keys({ toString: true }).length) - properties.push("toString", "valueOf"); - - for (var i = 0, length = properties.length; i < length; i++) { - var property = properties[i], value = source[property]; - if (ancestor && Object.isFunction(value) && - value.argumentNames().first() == "$super") { - var method = value; - value = (function(m) { - return function() { return ancestor[m].apply(this, arguments) }; - })(property).wrap(method); - - value.valueOf = method.valueOf.bind(method); - value.toString = method.toString.bind(method); - } - this.prototype[property] = value; - } - - return this; - } -}; - -var Abstract = { }; - -Object.extend = function(destination, source) { - for (var property in source) - destination[property] = source[property]; - return destination; -}; - -Object.extend(Object, { - inspect: function(object) { - try { - if (Object.isUndefined(object)) return 'undefined'; - if (object === null) return 'null'; - return object.inspect ? object.inspect() : String(object); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } - }, - - toJSON: function(object) { - var type = typeof object; - switch (type) { - case 'undefined': - case 'function': - case 'unknown': return; - case 'boolean': return object.toString(); - } - - if (object === null) return 'null'; - if (object.toJSON) return object.toJSON(); - if (Object.isElement(object)) return; - - var results = []; - for (var property in object) { - var value = Object.toJSON(object[property]); - if (!Object.isUndefined(value)) - results.push(property.toJSON() + ': ' + value); - } - - return '{' + results.join(', ') + '}'; - }, - - toQueryString: function(object) { - return $H(object).toQueryString(); - }, - - toHTML: function(object) { - return object && object.toHTML ? object.toHTML() : String.interpret(object); - }, - - keys: function(object) { - var keys = []; - for (var property in object) - keys.push(property); - return keys; - }, - - values: function(object) { - var values = []; - for (var property in object) - values.push(object[property]); - return values; - }, - - clone: function(object) { - return Object.extend({ }, object); - }, - - isElement: function(object) { - return !!(object && object.nodeType == 1); - }, - - isArray: function(object) { - return object != null && typeof object == "object" && - 'splice' in object && 'join' in object; - }, - - isHash: function(object) { - return object instanceof Hash; - }, - - isFunction: function(object) { - return typeof object == "function"; - }, - - isString: function(object) { - return typeof object == "string"; - }, - - isNumber: function(object) { - return typeof object == "number"; - }, - - isUndefined: function(object) { - return typeof object == "undefined"; - } -}); - -Object.extend(Function.prototype, { - argumentNames: function() { - var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1] - .replace(/\s+/g, '').split(','); - return names.length == 1 && !names[0] ? [] : names; - }, - - bind: function() { - if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } - }, - - bindAsEventListener: function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function(event) { - return __method.apply(object, [event || window.event].concat(args)); - } - }, - - curry: function() { - if (!arguments.length) return this; - var __method = this, args = $A(arguments); - return function() { - return __method.apply(this, args.concat($A(arguments))); - } - }, - - delay: function() { - var __method = this, args = $A(arguments), timeout = args.shift() * 1000; - return window.setTimeout(function() { - return __method.apply(__method, args); - }, timeout); - }, - - defer: function() { - var args = [0.01].concat($A(arguments)); - return this.delay.apply(this, args); - }, - - wrap: function(wrapper) { - var __method = this; - return function() { - return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); - } - }, - - methodize: function() { - if (this._methodized) return this._methodized; - var __method = this; - return this._methodized = function() { - return __method.apply(null, [this].concat($A(arguments))); - }; - } -}); - -Date.prototype.toJSON = function() { - return '"' + this.getUTCFullYear() + '-' + - (this.getUTCMonth() + 1).toPaddedString(2) + '-' + - this.getUTCDate().toPaddedString(2) + 'T' + - this.getUTCHours().toPaddedString(2) + ':' + - this.getUTCMinutes().toPaddedString(2) + ':' + - this.getUTCSeconds().toPaddedString(2) + 'Z"'; -}; - -var Try = { - these: function() { - var returnValue; - - for (var i = 0, length = arguments.length; i < length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) { } - } - - return returnValue; - } -}; - -RegExp.prototype.match = RegExp.prototype.test; - -RegExp.escape = function(str) { - return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); -}; - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create({ - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - execute: function() { - this.callback(this); - }, - - stop: function() { - if (!this.timer) return; - clearInterval(this.timer); - this.timer = null; - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.execute(); - } finally { - this.currentlyExecuting = false; - } - } - } -}); -Object.extend(String, { - interpret: function(value) { - return value == null ? '' : String(value); - }, - specialChar: { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '\\': '\\\\' - } -}); - -Object.extend(String.prototype, { - gsub: function(pattern, replacement) { - var result = '', source = this, match; - replacement = arguments.callee.prepareReplacement(replacement); - - while (source.length > 0) { - if (match = source.match(pattern)) { - result += source.slice(0, match.index); - result += String.interpret(replacement(match)); - source = source.slice(match.index + match[0].length); - } else { - result += source, source = ''; - } - } - return result; - }, - - sub: function(pattern, replacement, count) { - replacement = this.gsub.prepareReplacement(replacement); - count = Object.isUndefined(count) ? 1 : count; - - return this.gsub(pattern, function(match) { - if (--count < 0) return match[0]; - return replacement(match); - }); - }, - - scan: function(pattern, iterator) { - this.gsub(pattern, iterator); - return String(this); - }, - - truncate: function(length, truncation) { - length = length || 30; - truncation = Object.isUndefined(truncation) ? '...' : truncation; - return this.length > length ? - this.slice(0, length - truncation.length) + truncation : String(this); - }, - - strip: function() { - return this.replace(/^\s+/, '').replace(/\s+$/, ''); - }, - - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(function(script) { return eval(script) }); - }, - - escapeHTML: function() { - var self = arguments.callee; - self.text.data = this; - return self.div.innerHTML; - }, - - unescapeHTML: function() { - var div = new Element('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? (div.childNodes.length > 1 ? - $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : - div.childNodes[0].nodeValue) : ''; - }, - - toQueryParams: function(separator) { - var match = this.strip().match(/([^?#]*)(#.*)?$/); - if (!match) return { }; - - return match[1].split(separator || '&').inject({ }, function(hash, pair) { - if ((pair = pair.split('='))[0]) { - var key = decodeURIComponent(pair.shift()); - var value = pair.length > 1 ? pair.join('=') : pair[0]; - if (value != undefined) value = decodeURIComponent(value); - - if (key in hash) { - if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; - hash[key].push(value); - } - else hash[key] = value; - } - return hash; - }); - }, - - toArray: function() { - return this.split(''); - }, - - succ: function() { - return this.slice(0, this.length - 1) + - String.fromCharCode(this.charCodeAt(this.length - 1) + 1); - }, - - times: function(count) { - return count < 1 ? '' : new Array(count + 1).join(this); - }, - - camelize: function() { - var parts = this.split('-'), len = parts.length; - if (len == 1) return parts[0]; - - var camelized = this.charAt(0) == '-' - ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) - : parts[0]; - - for (var i = 1; i < len; i++) - camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); - - return camelized; - }, - - capitalize: function() { - return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); - }, - - underscore: function() { - return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); - }, - - dasherize: function() { - return this.gsub(/_/,'-'); - }, - - inspect: function(useDoubleQuotes) { - var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { - var character = String.specialChar[match[0]]; - return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); - }); - if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; - return "'" + escapedString.replace(/'/g, '\\\'') + "'"; - }, - - toJSON: function() { - return this.inspect(true); - }, - - unfilterJSON: function(filter) { - return this.sub(filter || Prototype.JSONFilter, '#{1}'); - }, - - isJSON: function() { - var str = this; - if (str.blank()) return false; - str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); - return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); - }, - - evalJSON: function(sanitize) { - var json = this.unfilterJSON(); - try { - if (!sanitize || json.isJSON()) return eval('(' + json + ')'); - } catch (e) { } - throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); - }, - - include: function(pattern) { - return this.indexOf(pattern) > -1; - }, - - startsWith: function(pattern) { - return this.indexOf(pattern) === 0; - }, - - endsWith: function(pattern) { - var d = this.length - pattern.length; - return d >= 0 && this.lastIndexOf(pattern) === d; - }, - - empty: function() { - return this == ''; - }, - - blank: function() { - return /^\s*$/.test(this); - }, - - interpolate: function(object, pattern) { - return new Template(this, pattern).evaluate(object); - } -}); - -if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { - escapeHTML: function() { - return this.replace(/&/g,'&').replace(//g,'>'); - }, - unescapeHTML: function() { - return this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); - } -}); - -String.prototype.gsub.prepareReplacement = function(replacement) { - if (Object.isFunction(replacement)) return replacement; - var template = new Template(replacement); - return function(match) { return template.evaluate(match) }; -}; - -String.prototype.parseQuery = String.prototype.toQueryParams; - -Object.extend(String.prototype.escapeHTML, { - div: document.createElement('div'), - text: document.createTextNode('') -}); - -String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text); - -var Template = Class.create({ - initialize: function(template, pattern) { - this.template = template.toString(); - this.pattern = pattern || Template.Pattern; - }, - - evaluate: function(object) { - if (Object.isFunction(object.toTemplateReplacements)) - object = object.toTemplateReplacements(); - - return this.template.gsub(this.pattern, function(match) { - if (object == null) return ''; - - var before = match[1] || ''; - if (before == '\\') return match[2]; - - var ctx = object, expr = match[3]; - var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; - match = pattern.exec(expr); - if (match == null) return before; - - while (match != null) { - var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; - ctx = ctx[comp]; - if (null == ctx || '' == match[3]) break; - expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); - match = pattern.exec(expr); - } - - return before + String.interpret(ctx); - }); - } -}); -Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; - -var $break = { }; - -var Enumerable = { - each: function(iterator, context) { - var index = 0; - try { - this._each(function(value) { - iterator.call(context, value, index++); - }); - } catch (e) { - if (e != $break) throw e; - } - return this; - }, - - eachSlice: function(number, iterator, context) { - var index = -number, slices = [], array = this.toArray(); - if (number < 1) return array; - while ((index += number) < array.length) - slices.push(array.slice(index, index+number)); - return slices.collect(iterator, context); - }, - - all: function(iterator, context) { - iterator = iterator || Prototype.K; - var result = true; - this.each(function(value, index) { - result = result && !!iterator.call(context, value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator, context) { - iterator = iterator || Prototype.K; - var result = false; - this.each(function(value, index) { - if (result = !!iterator.call(context, value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator, context) { - iterator = iterator || Prototype.K; - var results = []; - this.each(function(value, index) { - results.push(iterator.call(context, value, index)); - }); - return results; - }, - - detect: function(iterator, context) { - var result; - this.each(function(value, index) { - if (iterator.call(context, value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator, context) { - var results = []; - this.each(function(value, index) { - if (iterator.call(context, value, index)) - results.push(value); - }); - return results; - }, - - grep: function(filter, iterator, context) { - iterator = iterator || Prototype.K; - var results = []; - - if (Object.isString(filter)) - filter = new RegExp(filter); - - this.each(function(value, index) { - if (filter.match(value)) - results.push(iterator.call(context, value, index)); - }); - return results; - }, - - include: function(object) { - if (Object.isFunction(this.indexOf)) - if (this.indexOf(object) != -1) return true; - - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inGroupsOf: function(number, fillWith) { - fillWith = Object.isUndefined(fillWith) ? null : fillWith; - return this.eachSlice(number, function(slice) { - while(slice.length < number) slice.push(fillWith); - return slice; - }); - }, - - inject: function(memo, iterator, context) { - this.each(function(value, index) { - memo = iterator.call(context, memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.map(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator, context) { - iterator = iterator || Prototype.K; - var result; - this.each(function(value, index) { - value = iterator.call(context, value, index); - if (result == null || value >= result) - result = value; - }); - return result; - }, - - min: function(iterator, context) { - iterator = iterator || Prototype.K; - var result; - this.each(function(value, index) { - value = iterator.call(context, value, index); - if (result == null || value < result) - result = value; - }); - return result; - }, - - partition: function(iterator, context) { - iterator = iterator || Prototype.K; - var trues = [], falses = []; - this.each(function(value, index) { - (iterator.call(context, value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator, context) { - var results = []; - this.each(function(value, index) { - if (!iterator.call(context, value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator, context) { - return this.map(function(value, index) { - return { - value: value, - criteria: iterator.call(context, value, index) - }; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.map(); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (Object.isFunction(args.last())) - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - return iterator(collections.pluck(index)); - }); - }, - - size: function() { - return this.toArray().length; - }, - - inspect: function() { - return '#'; - } -}; - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - filter: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray, - every: Enumerable.all, - some: Enumerable.any -}); -function $A(iterable) { - if (!iterable) return []; - if (iterable.toArray) return iterable.toArray(); - var length = iterable.length || 0, results = new Array(length); - while (length--) results[length] = iterable[length]; - return results; -} - -if (Prototype.Browser.WebKit) { - $A = function(iterable) { - if (!iterable) return []; - // In Safari, only use the `toArray` method if it's not a NodeList. - // A NodeList is a function, has an function `item` property, and a numeric - // `length` property. Adapted from Google Doctype. - if (!(typeof iterable === 'function' && typeof iterable.length === - 'number' && typeof iterable.item === 'function') && iterable.toArray) - return iterable.toArray(); - var length = iterable.length || 0, results = new Array(length); - while (length--) results[length] = iterable[length]; - return results; - }; -} - -Array.from = $A; - -Object.extend(Array.prototype, Enumerable); - -if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0, length = this.length; i < length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(Object.isArray(value) ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - reduce: function() { - return this.length > 1 ? this : this[0]; - }, - - uniq: function(sorted) { - return this.inject([], function(array, value, index) { - if (0 == index || (sorted ? array.last() != value : !array.include(value))) - array.push(value); - return array; - }); - }, - - intersect: function(array) { - return this.uniq().findAll(function(item) { - return array.detect(function(value) { return item === value }); - }); - }, - - clone: function() { - return [].concat(this); - }, - - size: function() { - return this.length; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - }, - - toJSON: function() { - var results = []; - this.each(function(object) { - var value = Object.toJSON(object); - if (!Object.isUndefined(value)) results.push(value); - }); - return '[' + results.join(', ') + ']'; - } -}); - -// use native browser JS 1.6 implementation if available -if (Object.isFunction(Array.prototype.forEach)) - Array.prototype._each = Array.prototype.forEach; - -if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { - i || (i = 0); - var length = this.length; - if (i < 0) i = length + i; - for (; i < length; i++) - if (this[i] === item) return i; - return -1; -}; - -if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { - i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; - var n = this.slice(0, i).reverse().indexOf(item); - return (n < 0) ? n : i - n - 1; -}; - -Array.prototype.toArray = Array.prototype.clone; - -function $w(string) { - if (!Object.isString(string)) return []; - string = string.strip(); - return string ? string.split(/\s+/) : []; -} - -if (Prototype.Browser.Opera){ - Array.prototype.concat = function() { - var array = []; - for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); - for (var i = 0, length = arguments.length; i < length; i++) { - if (Object.isArray(arguments[i])) { - for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) - array.push(arguments[i][j]); - } else { - array.push(arguments[i]); - } - } - return array; - }; -} -Object.extend(Number.prototype, { - toColorPart: function() { - return this.toPaddedString(2, 16); - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator, context) { - $R(0, this, true).each(iterator, context); - return this; - }, - - toPaddedString: function(length, radix) { - var string = this.toString(radix || 10); - return '0'.times(length - string.length) + string; - }, - - toJSON: function() { - return isFinite(this) ? this.toString() : 'null'; - } -}); - -$w('abs round ceil floor').each(function(method){ - Number.prototype[method] = Math[method].methodize(); -}); -function $H(object) { - return new Hash(object); -}; - -var Hash = Class.create(Enumerable, (function() { - - function toQueryPair(key, value) { - if (Object.isUndefined(value)) return key; - return key + '=' + encodeURIComponent(String.interpret(value)); - } - - return { - initialize: function(object) { - this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); - }, - - _each: function(iterator) { - for (var key in this._object) { - var value = this._object[key], pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - set: function(key, value) { - return this._object[key] = value; - }, - - get: function(key) { - // simulating poorly supported hasOwnProperty - if (this._object[key] !== Object.prototype[key]) - return this._object[key]; - }, - - unset: function(key) { - var value = this._object[key]; - delete this._object[key]; - return value; - }, - - toObject: function() { - return Object.clone(this._object); - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - index: function(value) { - var match = this.detect(function(pair) { - return pair.value === value; - }); - return match && match.key; - }, - - merge: function(object) { - return this.clone().update(object); - }, - - update: function(object) { - return new Hash(object).inject(this, function(result, pair) { - result.set(pair.key, pair.value); - return result; - }); - }, - - toQueryString: function() { - return this.inject([], function(results, pair) { - var key = encodeURIComponent(pair.key), values = pair.value; - - if (values && typeof values == 'object') { - if (Object.isArray(values)) - return results.concat(values.map(toQueryPair.curry(key))); - } else results.push(toQueryPair(key, values)); - return results; - }).join('&'); - }, - - inspect: function() { - return '#'; - }, - - toJSON: function() { - return Object.toJSON(this.toObject()); - }, - - clone: function() { - return new Hash(this); - } - } -})()); - -Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; -Hash.from = $H; -var ObjectRange = Class.create(Enumerable, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - while (this.include(value)) { - iterator(value); - value = value.succ(); - } - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -}; - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new XMLHttpRequest()}, - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')} - ) || false; - }, - - activeRequestCount: 0 -}; - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responder) { - if (!this.include(responder)) - this.responders.push(responder); - }, - - unregister: function(responder) { - this.responders = this.responders.without(responder); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (Object.isFunction(responder[callback])) { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) { } - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { Ajax.activeRequestCount++ }, - onComplete: function() { Ajax.activeRequestCount-- } -}); - -Ajax.Base = Class.create({ - initialize: function(options) { - this.options = { - method: 'post', - asynchronous: true, - contentType: 'application/x-www-form-urlencoded', - encoding: 'UTF-8', - parameters: '', - evalJSON: true, - evalJS: true - }; - Object.extend(this.options, options || { }); - - this.options.method = this.options.method.toLowerCase(); - - if (Object.isString(this.options.parameters)) - this.options.parameters = this.options.parameters.toQueryParams(); - else if (Object.isHash(this.options.parameters)) - this.options.parameters = this.options.parameters.toObject(); - } -}); - -Ajax.Request = Class.create(Ajax.Base, { - _complete: false, - - initialize: function($super, url, options) { - $super(options); - this.transport = Ajax.getTransport(); - this.request(url); - }, - - request: function(url) { - this.url = url; - this.method = this.options.method; - var params = Object.clone(this.options.parameters); - - if (!['get', 'post'].include(this.method)) { - // simulate other verbs over post - params['_method'] = this.method; - this.method = 'post'; - } - - this.parameters = params; - - if (params = Object.toQueryString(params)) { - // when GET, append parameters to URL - if (this.method == 'get') - this.url += (this.url.include('?') ? '&' : '?') + params; - else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - params += '&_='; - } - - try { - var response = new Ajax.Response(this); - if (this.options.onCreate) this.options.onCreate(response); - Ajax.Responders.dispatch('onCreate', this, response); - - this.transport.open(this.method.toUpperCase(), this.url, - this.options.asynchronous); - - if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); - - this.transport.onreadystatechange = this.onStateChange.bind(this); - this.setRequestHeaders(); - - this.body = this.method == 'post' ? (this.options.postBody || params) : null; - this.transport.send(this.body); - - /* Force Firefox to handle ready state 4 for synchronous requests */ - if (!this.options.asynchronous && this.transport.overrideMimeType) - this.onStateChange(); - - } - catch (e) { - this.dispatchException(e); - } - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState > 1 && !((readyState == 4) && this._complete)) - this.respondToReadyState(this.transport.readyState); - }, - - setRequestHeaders: function() { - var headers = { - 'X-Requested-With': 'XMLHttpRequest', - 'X-Prototype-Version': Prototype.Version, - 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' - }; - - if (this.method == 'post') { - headers['Content-type'] = this.options.contentType + - (this.options.encoding ? '; charset=' + this.options.encoding : ''); - - /* Force "Connection: close" for older Mozilla browsers to work - * around a bug where XMLHttpRequest sends an incorrect - * Content-length header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType && - (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) - headers['Connection'] = 'close'; - } - - // user-defined headers - if (typeof this.options.requestHeaders == 'object') { - var extras = this.options.requestHeaders; - - if (Object.isFunction(extras.push)) - for (var i = 0, length = extras.length; i < length; i += 2) - headers[extras[i]] = extras[i+1]; - else - $H(extras).each(function(pair) { headers[pair.key] = pair.value }); - } - - for (var name in headers) - this.transport.setRequestHeader(name, headers[name]); - }, - - success: function() { - var status = this.getStatus(); - return !status || (status >= 200 && status < 300); - }, - - getStatus: function() { - try { - return this.transport.status || 0; - } catch (e) { return 0 } - }, - - respondToReadyState: function(readyState) { - var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); - - if (state == 'Complete') { - try { - this._complete = true; - (this.options['on' + response.status] - || this.options['on' + (this.success() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(response, response.headerJSON); - } catch (e) { - this.dispatchException(e); - } - - var contentType = response.getHeader('Content-type'); - if (this.options.evalJS == 'force' - || (this.options.evalJS && this.isSameOrigin() && contentType - && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) - this.evalResponse(); - } - - try { - (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); - Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); - } catch (e) { - this.dispatchException(e); - } - - if (state == 'Complete') { - // avoid memory leak in MSIE: clean up - this.transport.onreadystatechange = Prototype.emptyFunction; - } - }, - - isSameOrigin: function() { - var m = this.url.match(/^\s*https?:\/\/[^\/]*/); - return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ - protocol: location.protocol, - domain: document.domain, - port: location.port ? ':' + location.port : '' - })); - }, - - getHeader: function(name) { - try { - return this.transport.getResponseHeader(name) || null; - } catch (e) { return null } - }, - - evalResponse: function() { - try { - return eval((this.transport.responseText || '').unfilterJSON()); - } catch (e) { - this.dispatchException(e); - } - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Response = Class.create({ - initialize: function(request){ - this.request = request; - var transport = this.transport = request.transport, - readyState = this.readyState = transport.readyState; - - if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { - this.status = this.getStatus(); - this.statusText = this.getStatusText(); - this.responseText = String.interpret(transport.responseText); - this.headerJSON = this._getHeaderJSON(); - } - - if(readyState == 4) { - var xml = transport.responseXML; - this.responseXML = Object.isUndefined(xml) ? null : xml; - this.responseJSON = this._getResponseJSON(); - } - }, - - status: 0, - statusText: '', - - getStatus: Ajax.Request.prototype.getStatus, - - getStatusText: function() { - try { - return this.transport.statusText || ''; - } catch (e) { return '' } - }, - - getHeader: Ajax.Request.prototype.getHeader, - - getAllHeaders: function() { - try { - return this.getAllResponseHeaders(); - } catch (e) { return null } - }, - - getResponseHeader: function(name) { - return this.transport.getResponseHeader(name); - }, - - getAllResponseHeaders: function() { - return this.transport.getAllResponseHeaders(); - }, - - _getHeaderJSON: function() { - var json = this.getHeader('X-JSON'); - if (!json) return null; - json = decodeURIComponent(escape(json)); - try { - return json.evalJSON(this.request.options.sanitizeJSON || - !this.request.isSameOrigin()); - } catch (e) { - this.request.dispatchException(e); - } - }, - - _getResponseJSON: function() { - var options = this.request.options; - if (!options.evalJSON || (options.evalJSON != 'force' && - !(this.getHeader('Content-type') || '').include('application/json')) || - this.responseText.blank()) - return null; - try { - return this.responseText.evalJSON(options.sanitizeJSON || - !this.request.isSameOrigin()); - } catch (e) { - this.request.dispatchException(e); - } - } -}); - -Ajax.Updater = Class.create(Ajax.Request, { - initialize: function($super, container, url, options) { - this.container = { - success: (container.success || container), - failure: (container.failure || (container.success ? null : container)) - }; - - options = Object.clone(options); - var onComplete = options.onComplete; - options.onComplete = (function(response, json) { - this.updateContent(response.responseText); - if (Object.isFunction(onComplete)) onComplete(response, json); - }).bind(this); - - $super(url, options); - }, - - updateContent: function(responseText) { - var receiver = this.container[this.success() ? 'success' : 'failure'], - options = this.options; - - if (!options.evalScripts) responseText = responseText.stripScripts(); - - if (receiver = $(receiver)) { - if (options.insertion) { - if (Object.isString(options.insertion)) { - var insertion = { }; insertion[options.insertion] = responseText; - receiver.insert(insertion); - } - else options.insertion(receiver, responseText); - } - else receiver.update(responseText); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { - initialize: function($super, container, url, options) { - $super(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = { }; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.options.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(response) { - if (this.options.decay) { - this.decay = (response.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = response.responseText; - } - this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -function $(element) { - if (arguments.length > 1) { - for (var i = 0, elements = [], length = arguments.length; i < length; i++) - elements.push($(arguments[i])); - return elements; - } - if (Object.isString(element)) - element = document.getElementById(element); - return Element.extend(element); -} - -if (Prototype.BrowserFeatures.XPath) { - document._getElementsByXPath = function(expression, parentElement) { - var results = []; - var query = document.evaluate(expression, $(parentElement) || document, - null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); - for (var i = 0, length = query.snapshotLength; i < length; i++) - results.push(Element.extend(query.snapshotItem(i))); - return results; - }; -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Node) var Node = { }; - -if (!Node.ELEMENT_NODE) { - // DOM level 2 ECMAScript Language Binding - Object.extend(Node, { - ELEMENT_NODE: 1, - ATTRIBUTE_NODE: 2, - TEXT_NODE: 3, - CDATA_SECTION_NODE: 4, - ENTITY_REFERENCE_NODE: 5, - ENTITY_NODE: 6, - PROCESSING_INSTRUCTION_NODE: 7, - COMMENT_NODE: 8, - DOCUMENT_NODE: 9, - DOCUMENT_TYPE_NODE: 10, - DOCUMENT_FRAGMENT_NODE: 11, - NOTATION_NODE: 12 - }); -} - -(function() { - var element = this.Element; - this.Element = function(tagName, attributes) { - attributes = attributes || { }; - tagName = tagName.toLowerCase(); - var cache = Element.cache; - if (Prototype.Browser.IE && attributes.name) { - tagName = '<' + tagName + ' name="' + attributes.name + '">'; - delete attributes.name; - return Element.writeAttribute(document.createElement(tagName), attributes); - } - if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); - return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); - }; - Object.extend(this.Element, element || { }); - if (element) this.Element.prototype = element.prototype; -}).call(window); - -Element.cache = { }; - -Element.Methods = { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function(element) { - element = $(element); - Element[Element.visible(element) ? 'hide' : 'show'](element); - return element; - }, - - hide: function(element) { - element = $(element); - element.style.display = 'none'; - return element; - }, - - show: function(element) { - element = $(element); - element.style.display = ''; - return element; - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - return element; - }, - - update: function(element, content) { - element = $(element); - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) return element.update().insert(content); - content = Object.toHTML(content); - element.innerHTML = content.stripScripts(); - content.evalScripts.bind(content).defer(); - return element; - }, - - replace: function(element, content) { - element = $(element); - if (content && content.toElement) content = content.toElement(); - else if (!Object.isElement(content)) { - content = Object.toHTML(content); - var range = element.ownerDocument.createRange(); - range.selectNode(element); - content.evalScripts.bind(content).defer(); - content = range.createContextualFragment(content.stripScripts()); - } - element.parentNode.replaceChild(content, element); - return element; - }, - - insert: function(element, insertions) { - element = $(element); - - if (Object.isString(insertions) || Object.isNumber(insertions) || - Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) - insertions = {bottom:insertions}; - - var content, insert, tagName, childNodes; - - for (var position in insertions) { - content = insertions[position]; - position = position.toLowerCase(); - insert = Element._insertionTranslations[position]; - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - insert(element, content); - continue; - } - - content = Object.toHTML(content); - - tagName = ((position == 'before' || position == 'after') - ? element.parentNode : element).tagName.toUpperCase(); - - childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - - if (position == 'top' || position == 'after') childNodes.reverse(); - childNodes.each(insert.curry(element)); - - content.evalScripts.bind(content).defer(); - } - - return element; - }, - - wrap: function(element, wrapper, attributes) { - element = $(element); - if (Object.isElement(wrapper)) - $(wrapper).writeAttribute(attributes || { }); - else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); - else wrapper = new Element('div', wrapper); - if (element.parentNode) - element.parentNode.replaceChild(wrapper, element); - wrapper.appendChild(element); - return wrapper; - }, - - inspect: function(element) { - element = $(element); - var result = '<' + element.tagName.toLowerCase(); - $H({'id': 'id', 'className': 'class'}).each(function(pair) { - var property = pair.first(), attribute = pair.last(); - var value = (element[property] || '').toString(); - if (value) result += ' ' + attribute + '=' + value.inspect(true); - }); - return result + '>'; - }, - - recursivelyCollect: function(element, property) { - element = $(element); - var elements = []; - while (element = element[property]) - if (element.nodeType == 1) - elements.push(Element.extend(element)); - return elements; - }, - - ancestors: function(element) { - return $(element).recursivelyCollect('parentNode'); - }, - - descendants: function(element) { - return $(element).select("*"); - }, - - firstDescendant: function(element) { - element = $(element).firstChild; - while (element && element.nodeType != 1) element = element.nextSibling; - return $(element); - }, - - immediateDescendants: function(element) { - if (!(element = $(element).firstChild)) return []; - while (element && element.nodeType != 1) element = element.nextSibling; - if (element) return [element].concat($(element).nextSiblings()); - return []; - }, - - previousSiblings: function(element) { - return $(element).recursivelyCollect('previousSibling'); - }, - - nextSiblings: function(element) { - return $(element).recursivelyCollect('nextSibling'); - }, - - siblings: function(element) { - element = $(element); - return element.previousSiblings().reverse().concat(element.nextSiblings()); - }, - - match: function(element, selector) { - if (Object.isString(selector)) - selector = new Selector(selector); - return selector.match($(element)); - }, - - up: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(element.parentNode); - var ancestors = element.ancestors(); - return Object.isNumber(expression) ? ancestors[expression] : - Selector.findElement(ancestors, expression, index); - }, - - down: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return element.firstDescendant(); - return Object.isNumber(expression) ? element.descendants()[expression] : - Element.select(element, expression)[index || 0]; - }, - - previous: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); - var previousSiblings = element.previousSiblings(); - return Object.isNumber(expression) ? previousSiblings[expression] : - Selector.findElement(previousSiblings, expression, index); - }, - - next: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); - var nextSiblings = element.nextSiblings(); - return Object.isNumber(expression) ? nextSiblings[expression] : - Selector.findElement(nextSiblings, expression, index); - }, - - select: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element, args); - }, - - adjacent: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element.parentNode, args).without(element); - }, - - identify: function(element) { - element = $(element); - var id = element.readAttribute('id'), self = arguments.callee; - if (id) return id; - do { id = 'anonymous_element_' + self.counter++ } while ($(id)); - element.writeAttribute('id', id); - return id; - }, - - readAttribute: function(element, name) { - element = $(element); - if (Prototype.Browser.IE) { - var t = Element._attributeTranslations.read; - if (t.values[name]) return t.values[name](element, name); - if (t.names[name]) name = t.names[name]; - if (name.include(':')) { - return (!element.attributes || !element.attributes[name]) ? null : - element.attributes[name].value; - } - } - return element.getAttribute(name); - }, - - writeAttribute: function(element, name, value) { - element = $(element); - var attributes = { }, t = Element._attributeTranslations.write; - - if (typeof name == 'object') attributes = name; - else attributes[name] = Object.isUndefined(value) ? true : value; - - for (var attr in attributes) { - name = t.names[attr] || attr; - value = attributes[attr]; - if (t.values[attr]) name = t.values[attr](element, value); - if (value === false || value === null) - element.removeAttribute(name); - else if (value === true) - element.setAttribute(name, name); - else element.setAttribute(name, value); - } - return element; - }, - - getHeight: function(element) { - return $(element).getDimensions().height; - }, - - getWidth: function(element) { - return $(element).getDimensions().width; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - var elementClassName = element.className; - return (elementClassName.length > 0 && (elementClassName == className || - new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - if (!element.hasClassName(className)) - element.className += (element.className ? ' ' : '') + className; - return element; - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - element.className = element.className.replace( - new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); - return element; - }, - - toggleClassName: function(element, className) { - if (!(element = $(element))) return; - return element[element.hasClassName(className) ? - 'removeClassName' : 'addClassName'](className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - var node = element.firstChild; - while (node) { - var nextNode = node.nextSibling; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - element.removeChild(node); - node = nextNode; - } - return element; - }, - - empty: function(element) { - return $(element).innerHTML.blank(); - }, - - descendantOf: function(element, ancestor) { - element = $(element), ancestor = $(ancestor); - - if (element.compareDocumentPosition) - return (element.compareDocumentPosition(ancestor) & 8) === 8; - - if (ancestor.contains) - return ancestor.contains(element) && ancestor !== element; - - while (element = element.parentNode) - if (element == ancestor) return true; - - return false; - }, - - scrollTo: function(element) { - element = $(element); - var pos = element.cumulativeOffset(); - window.scrollTo(pos[0], pos[1]); - return element; - }, - - getStyle: function(element, style) { - element = $(element); - style = style == 'float' ? 'cssFloat' : style.camelize(); - var value = element.style[style]; - if (!value || value == 'auto') { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css[style] : null; - } - if (style == 'opacity') return value ? parseFloat(value) : 1.0; - return value == 'auto' ? null : value; - }, - - getOpacity: function(element) { - return $(element).getStyle('opacity'); - }, - - setStyle: function(element, styles) { - element = $(element); - var elementStyle = element.style, match; - if (Object.isString(styles)) { - element.style.cssText += ';' + styles; - return styles.include('opacity') ? - element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; - } - for (var property in styles) - if (property == 'opacity') element.setOpacity(styles[property]); - else - elementStyle[(property == 'float' || property == 'cssFloat') ? - (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : - property] = styles[property]; - - return element; - }, - - setOpacity: function(element, value) { - element = $(element); - element.style.opacity = (value == 1 || value === '') ? '' : - (value < 0.00001) ? 0 : value; - return element; - }, - - getDimensions: function(element) { - element = $(element); - var display = element.getStyle('display'); - if (display != 'none' && display != null) // Safari bug - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - var originalDisplay = els.display; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = 'block'; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = originalDisplay; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (Prototype.Browser.Opera) { - element.style.top = 0; - element.style.left = 0; - } - } - return element; - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - return element; - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return element; - element._overflow = Element.getStyle(element, 'overflow') || 'auto'; - if (element._overflow !== 'hidden') - element.style.overflow = 'hidden'; - return element; - }, - - undoClipping: function(element) { - element = $(element); - if (!element._overflow) return element; - element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; - element._overflow = null; - return element; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - if (element.tagName.toUpperCase() == 'BODY') break; - var p = Element.getStyle(element, 'position'); - if (p !== 'static') break; - } - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - absolutize: function(element) { - element = $(element); - if (element.getStyle('position') == 'absolute') return element; - // Position.prepare(); // To be done manually by Scripty when it needs it. - - var offsets = element.positionedOffset(); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - return element; - }, - - relativize: function(element) { - element = $(element); - if (element.getStyle('position') == 'relative') return element; - // Position.prepare(); // To be done manually by Scripty when it needs it. - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - return element; - }, - - cumulativeScrollOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - getOffsetParent: function(element) { - if (element.offsetParent) return $(element.offsetParent); - if (element == document.body) return $(element); - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return $(element); - - return $(document.body); - }, - - viewportOffset: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent == document.body && - Element.getStyle(element, 'position') == 'absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } - } while (element = element.parentNode); - - return Element._returnOffset(valueL, valueT); - }, - - clonePosition: function(element, source) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || { }); - - // find page position of source - source = $(source); - var p = source.viewportOffset(); - - // find coordinate system to use - element = $(element); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(element, 'position') == 'absolute') { - parent = element.getOffsetParent(); - delta = parent.viewportOffset(); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if (options.setWidth) element.style.width = source.offsetWidth + 'px'; - if (options.setHeight) element.style.height = source.offsetHeight + 'px'; - return element; - } -}; - -Element.Methods.identify.counter = 1; - -Object.extend(Element.Methods, { - getElementsBySelector: Element.Methods.select, - childElements: Element.Methods.immediateDescendants -}); - -Element._attributeTranslations = { - write: { - names: { - className: 'class', - htmlFor: 'for' - }, - values: { } - } -}; - -if (Prototype.Browser.Opera) { - Element.Methods.getStyle = Element.Methods.getStyle.wrap( - function(proceed, element, style) { - switch (style) { - case 'left': case 'top': case 'right': case 'bottom': - if (proceed(element, 'position') === 'static') return null; - case 'height': case 'width': - // returns '0px' for hidden elements; we want it to return null - if (!Element.visible(element)) return null; - - // returns the border-box dimensions rather than the content-box - // dimensions, so we subtract padding and borders from the value - var dim = parseInt(proceed(element, style), 10); - - if (dim !== element['offset' + style.capitalize()]) - return dim + 'px'; - - var properties; - if (style === 'height') { - properties = ['border-top-width', 'padding-top', - 'padding-bottom', 'border-bottom-width']; - } - else { - properties = ['border-left-width', 'padding-left', - 'padding-right', 'border-right-width']; - } - return properties.inject(dim, function(memo, property) { - var val = proceed(element, property); - return val === null ? memo : memo - parseInt(val, 10); - }) + 'px'; - default: return proceed(element, style); - } - } - ); - - Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( - function(proceed, element, attribute) { - if (attribute === 'title') return element.title; - return proceed(element, attribute); - } - ); -} - -else if (Prototype.Browser.IE) { - // IE doesn't report offsets correctly for static elements, so we change them - // to "relative" to get the values, then change them back. - Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( - function(proceed, element) { - element = $(element); - // IE throws an error if element is not in document - try { element.offsetParent } - catch(e) { return $(document.body) } - var position = element.getStyle('position'); - if (position !== 'static') return proceed(element); - element.setStyle({ position: 'relative' }); - var value = proceed(element); - element.setStyle({ position: position }); - return value; - } - ); - - $w('positionedOffset viewportOffset').each(function(method) { - Element.Methods[method] = Element.Methods[method].wrap( - function(proceed, element) { - element = $(element); - try { element.offsetParent } - catch(e) { return Element._returnOffset(0,0) } - var position = element.getStyle('position'); - if (position !== 'static') return proceed(element); - // Trigger hasLayout on the offset parent so that IE6 reports - // accurate offsetTop and offsetLeft values for position: fixed. - var offsetParent = element.getOffsetParent(); - if (offsetParent && offsetParent.getStyle('position') === 'fixed') - offsetParent.setStyle({ zoom: 1 }); - element.setStyle({ position: 'relative' }); - var value = proceed(element); - element.setStyle({ position: position }); - return value; - } - ); - }); - - Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap( - function(proceed, element) { - try { element.offsetParent } - catch(e) { return Element._returnOffset(0,0) } - return proceed(element); - } - ); - - Element.Methods.getStyle = function(element, style) { - element = $(element); - style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); - var value = element.style[style]; - if (!value && element.currentStyle) value = element.currentStyle[style]; - - if (style == 'opacity') { - if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) - if (value[1]) return parseFloat(value[1]) / 100; - return 1.0; - } - - if (value == 'auto') { - if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) - return element['offset' + style.capitalize()] + 'px'; - return null; - } - return value; - }; - - Element.Methods.setOpacity = function(element, value) { - function stripAlpha(filter){ - return filter.replace(/alpha\([^\)]*\)/gi,''); - } - element = $(element); - var currentStyle = element.currentStyle; - if ((currentStyle && !currentStyle.hasLayout) || - (!currentStyle && element.style.zoom == 'normal')) - element.style.zoom = 1; - - var filter = element.getStyle('filter'), style = element.style; - if (value == 1 || value === '') { - (filter = stripAlpha(filter)) ? - style.filter = filter : style.removeAttribute('filter'); - return element; - } else if (value < 0.00001) value = 0; - style.filter = stripAlpha(filter) + - 'alpha(opacity=' + (value * 100) + ')'; - return element; - }; - - Element._attributeTranslations = { - read: { - names: { - 'class': 'className', - 'for': 'htmlFor' - }, - values: { - _getAttr: function(element, attribute) { - return element.getAttribute(attribute, 2); - }, - _getAttrNode: function(element, attribute) { - var node = element.getAttributeNode(attribute); - return node ? node.value : ""; - }, - _getEv: function(element, attribute) { - attribute = element.getAttribute(attribute); - return attribute ? attribute.toString().slice(23, -2) : null; - }, - _flag: function(element, attribute) { - return $(element).hasAttribute(attribute) ? attribute : null; - }, - style: function(element) { - return element.style.cssText.toLowerCase(); - }, - title: function(element) { - return element.title; - } - } - } - }; - - Element._attributeTranslations.write = { - names: Object.extend({ - cellpadding: 'cellPadding', - cellspacing: 'cellSpacing' - }, Element._attributeTranslations.read.names), - values: { - checked: function(element, value) { - element.checked = !!value; - }, - - style: function(element, value) { - element.style.cssText = value ? value : ''; - } - } - }; - - Element._attributeTranslations.has = {}; - - $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + - 'encType maxLength readOnly longDesc frameBorder').each(function(attr) { - Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; - Element._attributeTranslations.has[attr.toLowerCase()] = attr; - }); - - (function(v) { - Object.extend(v, { - href: v._getAttr, - src: v._getAttr, - type: v._getAttr, - action: v._getAttrNode, - disabled: v._flag, - checked: v._flag, - readonly: v._flag, - multiple: v._flag, - onload: v._getEv, - onunload: v._getEv, - onclick: v._getEv, - ondblclick: v._getEv, - onmousedown: v._getEv, - onmouseup: v._getEv, - onmouseover: v._getEv, - onmousemove: v._getEv, - onmouseout: v._getEv, - onfocus: v._getEv, - onblur: v._getEv, - onkeypress: v._getEv, - onkeydown: v._getEv, - onkeyup: v._getEv, - onsubmit: v._getEv, - onreset: v._getEv, - onselect: v._getEv, - onchange: v._getEv - }); - })(Element._attributeTranslations.read.values); -} - -else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { - Element.Methods.setOpacity = function(element, value) { - element = $(element); - element.style.opacity = (value == 1) ? 0.999999 : - (value === '') ? '' : (value < 0.00001) ? 0 : value; - return element; - }; -} - -else if (Prototype.Browser.WebKit) { - Element.Methods.setOpacity = function(element, value) { - element = $(element); - element.style.opacity = (value == 1 || value === '') ? '' : - (value < 0.00001) ? 0 : value; - - if (value == 1) - if(element.tagName.toUpperCase() == 'IMG' && element.width) { - element.width++; element.width--; - } else try { - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch (e) { } - - return element; - }; - - // Safari returns margins on body which is incorrect if the child is absolutely - // positioned. For performance reasons, redefine Element#cumulativeOffset for - // KHTML/WebKit only. - Element.Methods.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return Element._returnOffset(valueL, valueT); - }; -} - -if (Prototype.Browser.IE || Prototype.Browser.Opera) { - // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements - Element.Methods.update = function(element, content) { - element = $(element); - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) return element.update().insert(content); - - content = Object.toHTML(content); - var tagName = element.tagName.toUpperCase(); - - if (tagName in Element._insertionTranslations.tags) { - $A(element.childNodes).each(function(node) { element.removeChild(node) }); - Element._getContentFromAnonymousElement(tagName, content.stripScripts()) - .each(function(node) { element.appendChild(node) }); - } - else element.innerHTML = content.stripScripts(); - - content.evalScripts.bind(content).defer(); - return element; - }; -} - -if ('outerHTML' in document.createElement('div')) { - Element.Methods.replace = function(element, content) { - element = $(element); - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - element.parentNode.replaceChild(content, element); - return element; - } - - content = Object.toHTML(content); - var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); - - if (Element._insertionTranslations.tags[tagName]) { - var nextSibling = element.next(); - var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - parent.removeChild(element); - if (nextSibling) - fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); - else - fragments.each(function(node) { parent.appendChild(node) }); - } - else element.outerHTML = content.stripScripts(); - - content.evalScripts.bind(content).defer(); - return element; - }; -} - -Element._returnOffset = function(l, t) { - var result = [l, t]; - result.left = l; - result.top = t; - return result; -}; - -Element._getContentFromAnonymousElement = function(tagName, html) { - var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; - if (t) { - div.innerHTML = t[0] + html + t[1]; - t[2].times(function() { div = div.firstChild }); - } else div.innerHTML = html; - return $A(div.childNodes); -}; - -Element._insertionTranslations = { - before: function(element, node) { - element.parentNode.insertBefore(node, element); - }, - top: function(element, node) { - element.insertBefore(node, element.firstChild); - }, - bottom: function(element, node) { - element.appendChild(node); - }, - after: function(element, node) { - element.parentNode.insertBefore(node, element.nextSibling); - }, - tags: { - TABLE: ['', '
', 1], - TBODY: ['', '
', 2], - TR: ['', '
', 3], - TD: ['
', '
', 4], - SELECT: ['', 1] - } -}; - -(function() { - Object.extend(this.tags, { - THEAD: this.tags.TBODY, - TFOOT: this.tags.TBODY, - TH: this.tags.TD - }); -}).call(Element._insertionTranslations); - -Element.Methods.Simulated = { - hasAttribute: function(element, attribute) { - attribute = Element._attributeTranslations.has[attribute] || attribute; - var node = $(element).getAttributeNode(attribute); - return !!(node && node.specified); - } -}; - -Element.Methods.ByTag = { }; - -Object.extend(Element, Element.Methods); - -if (!Prototype.BrowserFeatures.ElementExtensions && - document.createElement('div')['__proto__']) { - window.HTMLElement = { }; - window.HTMLElement.prototype = document.createElement('div')['__proto__']; - Prototype.BrowserFeatures.ElementExtensions = true; -} - -Element.extend = (function() { - if (Prototype.BrowserFeatures.SpecificElementExtensions) - return Prototype.K; - - var Methods = { }, ByTag = Element.Methods.ByTag; - - var extend = Object.extend(function(element) { - if (!element || element._extendedByPrototype || - element.nodeType != 1 || element == window) return element; - - var methods = Object.clone(Methods), - tagName = element.tagName.toUpperCase(), property, value; - - // extend methods for specific tags - if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); - - for (property in methods) { - value = methods[property]; - if (Object.isFunction(value) && !(property in element)) - element[property] = value.methodize(); - } - - element._extendedByPrototype = Prototype.emptyFunction; - return element; - - }, { - refresh: function() { - // extend methods for all tags (Safari doesn't need this) - if (!Prototype.BrowserFeatures.ElementExtensions) { - Object.extend(Methods, Element.Methods); - Object.extend(Methods, Element.Methods.Simulated); - } - } - }); - - extend.refresh(); - return extend; -})(); - -Element.hasAttribute = function(element, attribute) { - if (element.hasAttribute) return element.hasAttribute(attribute); - return Element.Methods.Simulated.hasAttribute(element, attribute); -}; - -Element.addMethods = function(methods) { - var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; - - if (!methods) { - Object.extend(Form, Form.Methods); - Object.extend(Form.Element, Form.Element.Methods); - Object.extend(Element.Methods.ByTag, { - "FORM": Object.clone(Form.Methods), - "INPUT": Object.clone(Form.Element.Methods), - "SELECT": Object.clone(Form.Element.Methods), - "TEXTAREA": Object.clone(Form.Element.Methods) - }); - } - - if (arguments.length == 2) { - var tagName = methods; - methods = arguments[1]; - } - - if (!tagName) Object.extend(Element.Methods, methods || { }); - else { - if (Object.isArray(tagName)) tagName.each(extend); - else extend(tagName); - } - - function extend(tagName) { - tagName = tagName.toUpperCase(); - if (!Element.Methods.ByTag[tagName]) - Element.Methods.ByTag[tagName] = { }; - Object.extend(Element.Methods.ByTag[tagName], methods); - } - - function copy(methods, destination, onlyIfAbsent) { - onlyIfAbsent = onlyIfAbsent || false; - for (var property in methods) { - var value = methods[property]; - if (!Object.isFunction(value)) continue; - if (!onlyIfAbsent || !(property in destination)) - destination[property] = value.methodize(); - } - } - - function findDOMClass(tagName) { - var klass; - var trans = { - "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", - "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", - "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", - "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", - "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": - "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": - "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": - "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": - "FrameSet", "IFRAME": "IFrame" - }; - if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; - if (window[klass]) return window[klass]; - klass = 'HTML' + tagName + 'Element'; - if (window[klass]) return window[klass]; - klass = 'HTML' + tagName.capitalize() + 'Element'; - if (window[klass]) return window[klass]; - - window[klass] = { }; - window[klass].prototype = document.createElement(tagName)['__proto__']; - return window[klass]; - } - - if (F.ElementExtensions) { - copy(Element.Methods, HTMLElement.prototype); - copy(Element.Methods.Simulated, HTMLElement.prototype, true); - } - - if (F.SpecificElementExtensions) { - for (var tag in Element.Methods.ByTag) { - var klass = findDOMClass(tag); - if (Object.isUndefined(klass)) continue; - copy(T[tag], klass.prototype); - } - } - - Object.extend(Element, Element.Methods); - delete Element.ByTag; - - if (Element.extend.refresh) Element.extend.refresh(); - Element.cache = { }; -}; - -document.viewport = { - getDimensions: function() { - var dimensions = { }, B = Prototype.Browser; - $w('width height').each(function(d) { - var D = d.capitalize(); - if (B.WebKit && !document.evaluate) { - // Safari <3.0 needs self.innerWidth/Height - dimensions[d] = self['inner' + D]; - } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) { - // Opera <9.5 needs document.body.clientWidth/Height - dimensions[d] = document.body['client' + D] - } else { - dimensions[d] = document.documentElement['client' + D]; - } - }); - return dimensions; - }, - - getWidth: function() { - return this.getDimensions().width; - }, - - getHeight: function() { - return this.getDimensions().height; - }, - - getScrollOffsets: function() { - return Element._returnOffset( - window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, - window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); - } -}; -/* Portions of the Selector class are derived from Jack Slocum's DomQuery, - * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style - * license. Please see http://www.yui-ext.com/ for more information. */ - -var Selector = Class.create({ - initialize: function(expression) { - this.expression = expression.strip(); - - if (this.shouldUseSelectorsAPI()) { - this.mode = 'selectorsAPI'; - } else if (this.shouldUseXPath()) { - this.mode = 'xpath'; - this.compileXPathMatcher(); - } else { - this.mode = "normal"; - this.compileMatcher(); - } - - }, - - shouldUseXPath: function() { - if (!Prototype.BrowserFeatures.XPath) return false; - - var e = this.expression; - - // Safari 3 chokes on :*-of-type and :empty - if (Prototype.Browser.WebKit && - (e.include("-of-type") || e.include(":empty"))) - return false; - - // XPath can't do namespaced attributes, nor can it read - // the "checked" property from DOM nodes - if ((/(\[[\w-]*?:|:checked)/).test(e)) - return false; - - return true; - }, - - shouldUseSelectorsAPI: function() { - if (!Prototype.BrowserFeatures.SelectorsAPI) return false; - - if (!Selector._div) Selector._div = new Element('div'); - - // Make sure the browser treats the selector as valid. Test on an - // isolated element to minimize cost of this check. - try { - Selector._div.querySelector(this.expression); - } catch(e) { - return false; - } - - return true; - }, - - compileMatcher: function() { - var e = this.expression, ps = Selector.patterns, h = Selector.handlers, - c = Selector.criteria, le, p, m; - - if (Selector._cache[e]) { - this.matcher = Selector._cache[e]; - return; - } - - this.matcher = ["this.matcher = function(root) {", - "var r = root, h = Selector.handlers, c = false, n;"]; - - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - p = ps[i]; - if (m = e.match(p)) { - this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : - new Template(c[i]).evaluate(m)); - e = e.replace(m[0], ''); - break; - } - } - } - - this.matcher.push("return h.unique(n);\n}"); - eval(this.matcher.join('\n')); - Selector._cache[this.expression] = this.matcher; - }, - - compileXPathMatcher: function() { - var e = this.expression, ps = Selector.patterns, - x = Selector.xpath, le, m; - - if (Selector._cache[e]) { - this.xpath = Selector._cache[e]; return; - } - - this.matcher = ['.//*']; - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - if (m = e.match(ps[i])) { - this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : - new Template(x[i]).evaluate(m)); - e = e.replace(m[0], ''); - break; - } - } - } - - this.xpath = this.matcher.join(''); - Selector._cache[this.expression] = this.xpath; - }, - - findElements: function(root) { - root = root || document; - var e = this.expression, results; - - switch (this.mode) { - case 'selectorsAPI': - // querySelectorAll queries document-wide, then filters to descendants - // of the context element. That's not what we want. - // Add an explicit context to the selector if necessary. - if (root !== document) { - var oldId = root.id, id = $(root).identify(); - e = "#" + id + " " + e; - } - - results = $A(root.querySelectorAll(e)).map(Element.extend); - root.id = oldId; - - return results; - case 'xpath': - return document._getElementsByXPath(this.xpath, root); - default: - return this.matcher(root); - } - }, - - match: function(element) { - this.tokens = []; - - var e = this.expression, ps = Selector.patterns, as = Selector.assertions; - var le, p, m; - - while (e && le !== e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - p = ps[i]; - if (m = e.match(p)) { - // use the Selector.assertions methods unless the selector - // is too complex. - if (as[i]) { - this.tokens.push([i, Object.clone(m)]); - e = e.replace(m[0], ''); - } else { - // reluctantly do a document-wide search - // and look for a match in the array - return this.findElements(document).include(element); - } - } - } - } - - var match = true, name, matches; - for (var i = 0, token; token = this.tokens[i]; i++) { - name = token[0], matches = token[1]; - if (!Selector.assertions[name](element, matches)) { - match = false; break; - } - } - - return match; - }, - - toString: function() { - return this.expression; - }, - - inspect: function() { - return "#"; - } -}); - -Object.extend(Selector, { - _cache: { }, - - xpath: { - descendant: "//*", - child: "/*", - adjacent: "/following-sibling::*[1]", - laterSibling: '/following-sibling::*', - tagName: function(m) { - if (m[1] == '*') return ''; - return "[local-name()='" + m[1].toLowerCase() + - "' or local-name()='" + m[1].toUpperCase() + "']"; - }, - className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", - id: "[@id='#{1}']", - attrPresence: function(m) { - m[1] = m[1].toLowerCase(); - return new Template("[@#{1}]").evaluate(m); - }, - attr: function(m) { - m[1] = m[1].toLowerCase(); - m[3] = m[5] || m[6]; - return new Template(Selector.xpath.operators[m[2]]).evaluate(m); - }, - pseudo: function(m) { - var h = Selector.xpath.pseudos[m[1]]; - if (!h) return ''; - if (Object.isFunction(h)) return h(m); - return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); - }, - operators: { - '=': "[@#{1}='#{3}']", - '!=': "[@#{1}!='#{3}']", - '^=': "[starts-with(@#{1}, '#{3}')]", - '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", - '*=': "[contains(@#{1}, '#{3}')]", - '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", - '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" - }, - pseudos: { - 'first-child': '[not(preceding-sibling::*)]', - 'last-child': '[not(following-sibling::*)]', - 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', - 'empty': "[count(*) = 0 and (count(text()) = 0)]", - 'checked': "[@checked]", - 'disabled': "[(@disabled) and (@type!='hidden')]", - 'enabled': "[not(@disabled) and (@type!='hidden')]", - 'not': function(m) { - var e = m[6], p = Selector.patterns, - x = Selector.xpath, le, v; - - var exclusion = []; - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in p) { - if (m = e.match(p[i])) { - v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); - exclusion.push("(" + v.substring(1, v.length - 1) + ")"); - e = e.replace(m[0], ''); - break; - } - } - } - return "[not(" + exclusion.join(" and ") + ")]"; - }, - 'nth-child': function(m) { - return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); - }, - 'nth-last-child': function(m) { - return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); - }, - 'nth-of-type': function(m) { - return Selector.xpath.pseudos.nth("position() ", m); - }, - 'nth-last-of-type': function(m) { - return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); - }, - 'first-of-type': function(m) { - m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); - }, - 'last-of-type': function(m) { - m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); - }, - 'only-of-type': function(m) { - var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); - }, - nth: function(fragment, m) { - var mm, formula = m[6], predicate; - if (formula == 'even') formula = '2n+0'; - if (formula == 'odd') formula = '2n+1'; - if (mm = formula.match(/^(\d+)$/)) // digit only - return '[' + fragment + "= " + mm[1] + ']'; - if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b - if (mm[1] == "-") mm[1] = -1; - var a = mm[1] ? Number(mm[1]) : 1; - var b = mm[2] ? Number(mm[2]) : 0; - predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + - "((#{fragment} - #{b}) div #{a} >= 0)]"; - return new Template(predicate).evaluate({ - fragment: fragment, a: a, b: b }); - } - } - } - }, - - criteria: { - tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', - className: 'n = h.className(n, r, "#{1}", c); c = false;', - id: 'n = h.id(n, r, "#{1}", c); c = false;', - attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', - attr: function(m) { - m[3] = (m[5] || m[6]); - return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); - }, - pseudo: function(m) { - if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); - return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); - }, - descendant: 'c = "descendant";', - child: 'c = "child";', - adjacent: 'c = "adjacent";', - laterSibling: 'c = "laterSibling";' - }, - - patterns: { - // combinators must be listed first - // (and descendant needs to be last combinator) - laterSibling: /^\s*~\s*/, - child: /^\s*>\s*/, - adjacent: /^\s*\+\s*/, - descendant: /^\s/, - - // selectors follow - tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, - id: /^#([\w\-\*]+)(\b|$)/, - className: /^\.([\w\-\*]+)(\b|$)/, - pseudo: -/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, - attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/, - attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ - }, - - // for Selector.match and Element#match - assertions: { - tagName: function(element, matches) { - return matches[1].toUpperCase() == element.tagName.toUpperCase(); - }, - - className: function(element, matches) { - return Element.hasClassName(element, matches[1]); - }, - - id: function(element, matches) { - return element.id === matches[1]; - }, - - attrPresence: function(element, matches) { - return Element.hasAttribute(element, matches[1]); - }, - - attr: function(element, matches) { - var nodeValue = Element.readAttribute(element, matches[1]); - return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); - } - }, - - handlers: { - // UTILITY FUNCTIONS - // joins two collections - concat: function(a, b) { - for (var i = 0, node; node = b[i]; i++) - a.push(node); - return a; - }, - - // marks an array of nodes for counting - mark: function(nodes) { - var _true = Prototype.emptyFunction; - for (var i = 0, node; node = nodes[i]; i++) - node._countedByPrototype = _true; - return nodes; - }, - - unmark: function(nodes) { - for (var i = 0, node; node = nodes[i]; i++) - node._countedByPrototype = undefined; - return nodes; - }, - - // mark each child node with its position (for nth calls) - // "ofType" flag indicates whether we're indexing for nth-of-type - // rather than nth-child - index: function(parentNode, reverse, ofType) { - parentNode._countedByPrototype = Prototype.emptyFunction; - if (reverse) { - for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { - var node = nodes[i]; - if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; - } - } else { - for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) - if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; - } - }, - - // filters out duplicates and extends all nodes - unique: function(nodes) { - if (nodes.length == 0) return nodes; - var results = [], n; - for (var i = 0, l = nodes.length; i < l; i++) - if (!(n = nodes[i])._countedByPrototype) { - n._countedByPrototype = Prototype.emptyFunction; - results.push(Element.extend(n)); - } - return Selector.handlers.unmark(results); - }, - - // COMBINATOR FUNCTIONS - descendant: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - h.concat(results, node.getElementsByTagName('*')); - return results; - }, - - child: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) { - for (var j = 0, child; child = node.childNodes[j]; j++) - if (child.nodeType == 1 && child.tagName != '!') results.push(child); - } - return results; - }, - - adjacent: function(nodes) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - var next = this.nextElementSibling(node); - if (next) results.push(next); - } - return results; - }, - - laterSibling: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - h.concat(results, Element.nextSiblings(node)); - return results; - }, - - nextElementSibling: function(node) { - while (node = node.nextSibling) - if (node.nodeType == 1) return node; - return null; - }, - - previousElementSibling: function(node) { - while (node = node.previousSibling) - if (node.nodeType == 1) return node; - return null; - }, - - // TOKEN FUNCTIONS - tagName: function(nodes, root, tagName, combinator) { - var uTagName = tagName.toUpperCase(); - var results = [], h = Selector.handlers; - if (nodes) { - if (combinator) { - // fastlane for ordinary descendant combinators - if (combinator == "descendant") { - for (var i = 0, node; node = nodes[i]; i++) - h.concat(results, node.getElementsByTagName(tagName)); - return results; - } else nodes = this[combinator](nodes); - if (tagName == "*") return nodes; - } - for (var i = 0, node; node = nodes[i]; i++) - if (node.tagName.toUpperCase() === uTagName) results.push(node); - return results; - } else return root.getElementsByTagName(tagName); - }, - - id: function(nodes, root, id, combinator) { - var targetNode = $(id), h = Selector.handlers; - if (!targetNode) return []; - if (!nodes && root == document) return [targetNode]; - if (nodes) { - if (combinator) { - if (combinator == 'child') { - for (var i = 0, node; node = nodes[i]; i++) - if (targetNode.parentNode == node) return [targetNode]; - } else if (combinator == 'descendant') { - for (var i = 0, node; node = nodes[i]; i++) - if (Element.descendantOf(targetNode, node)) return [targetNode]; - } else if (combinator == 'adjacent') { - for (var i = 0, node; node = nodes[i]; i++) - if (Selector.handlers.previousElementSibling(targetNode) == node) - return [targetNode]; - } else nodes = h[combinator](nodes); - } - for (var i = 0, node; node = nodes[i]; i++) - if (node == targetNode) return [targetNode]; - return []; - } - return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; - }, - - className: function(nodes, root, className, combinator) { - if (nodes && combinator) nodes = this[combinator](nodes); - return Selector.handlers.byClassName(nodes, root, className); - }, - - byClassName: function(nodes, root, className) { - if (!nodes) nodes = Selector.handlers.descendant([root]); - var needle = ' ' + className + ' '; - for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { - nodeClassName = node.className; - if (nodeClassName.length == 0) continue; - if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) - results.push(node); - } - return results; - }, - - attrPresence: function(nodes, root, attr, combinator) { - if (!nodes) nodes = root.getElementsByTagName("*"); - if (nodes && combinator) nodes = this[combinator](nodes); - var results = []; - for (var i = 0, node; node = nodes[i]; i++) - if (Element.hasAttribute(node, attr)) results.push(node); - return results; - }, - - attr: function(nodes, root, attr, value, operator, combinator) { - if (!nodes) nodes = root.getElementsByTagName("*"); - if (nodes && combinator) nodes = this[combinator](nodes); - var handler = Selector.operators[operator], results = []; - for (var i = 0, node; node = nodes[i]; i++) { - var nodeValue = Element.readAttribute(node, attr); - if (nodeValue === null) continue; - if (handler(nodeValue, value)) results.push(node); - } - return results; - }, - - pseudo: function(nodes, name, value, root, combinator) { - if (nodes && combinator) nodes = this[combinator](nodes); - if (!nodes) nodes = root.getElementsByTagName("*"); - return Selector.pseudos[name](nodes, value, root); - } - }, - - pseudos: { - 'first-child': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - if (Selector.handlers.previousElementSibling(node)) continue; - results.push(node); - } - return results; - }, - 'last-child': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - if (Selector.handlers.nextElementSibling(node)) continue; - results.push(node); - } - return results; - }, - 'only-child': function(nodes, value, root) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) - results.push(node); - return results; - }, - 'nth-child': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root); - }, - 'nth-last-child': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, true); - }, - 'nth-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, false, true); - }, - 'nth-last-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, true, true); - }, - 'first-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, "1", root, false, true); - }, - 'last-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, "1", root, true, true); - }, - 'only-of-type': function(nodes, formula, root) { - var p = Selector.pseudos; - return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); - }, - - // handles the an+b logic - getIndices: function(a, b, total) { - if (a == 0) return b > 0 ? [b] : []; - return $R(1, total).inject([], function(memo, i) { - if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); - return memo; - }); - }, - - // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type - nth: function(nodes, formula, root, reverse, ofType) { - if (nodes.length == 0) return []; - if (formula == 'even') formula = '2n+0'; - if (formula == 'odd') formula = '2n+1'; - var h = Selector.handlers, results = [], indexed = [], m; - h.mark(nodes); - for (var i = 0, node; node = nodes[i]; i++) { - if (!node.parentNode._countedByPrototype) { - h.index(node.parentNode, reverse, ofType); - indexed.push(node.parentNode); - } - } - if (formula.match(/^\d+$/)) { // just a number - formula = Number(formula); - for (var i = 0, node; node = nodes[i]; i++) - if (node.nodeIndex == formula) results.push(node); - } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b - if (m[1] == "-") m[1] = -1; - var a = m[1] ? Number(m[1]) : 1; - var b = m[2] ? Number(m[2]) : 0; - var indices = Selector.pseudos.getIndices(a, b, nodes.length); - for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { - for (var j = 0; j < l; j++) - if (node.nodeIndex == indices[j]) results.push(node); - } - } - h.unmark(nodes); - h.unmark(indexed); - return results; - }, - - 'empty': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - // IE treats comments as element nodes - if (node.tagName == '!' || node.firstChild) continue; - results.push(node); - } - return results; - }, - - 'not': function(nodes, selector, root) { - var h = Selector.handlers, selectorType, m; - var exclusions = new Selector(selector).findElements(root); - h.mark(exclusions); - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node._countedByPrototype) results.push(node); - h.unmark(exclusions); - return results; - }, - - 'enabled': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node.disabled && (!node.type || node.type !== 'hidden')) - results.push(node); - return results; - }, - - 'disabled': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (node.disabled) results.push(node); - return results; - }, - - 'checked': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (node.checked) results.push(node); - return results; - } - }, - - operators: { - '=': function(nv, v) { return nv == v; }, - '!=': function(nv, v) { return nv != v; }, - '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); }, - '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); }, - '*=': function(nv, v) { return nv == v || nv && nv.include(v); }, - '$=': function(nv, v) { return nv.endsWith(v); }, - '*=': function(nv, v) { return nv.include(v); }, - '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, - '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() + - '-').include('-' + (v || "").toUpperCase() + '-'); } - }, - - split: function(expression) { - var expressions = []; - expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { - expressions.push(m[1].strip()); - }); - return expressions; - }, - - matchElements: function(elements, expression) { - var matches = $$(expression), h = Selector.handlers; - h.mark(matches); - for (var i = 0, results = [], element; element = elements[i]; i++) - if (element._countedByPrototype) results.push(element); - h.unmark(matches); - return results; - }, - - findElement: function(elements, expression, index) { - if (Object.isNumber(expression)) { - index = expression; expression = false; - } - return Selector.matchElements(elements, expression || '*')[index || 0]; - }, - - findChildElements: function(element, expressions) { - expressions = Selector.split(expressions.join(',')); - var results = [], h = Selector.handlers; - for (var i = 0, l = expressions.length, selector; i < l; i++) { - selector = new Selector(expressions[i].strip()); - h.concat(results, selector.findElements(element)); - } - return (l > 1) ? h.unique(results) : results; - } -}); - -if (Prototype.Browser.IE) { - Object.extend(Selector.handlers, { - // IE returns comment nodes on getElementsByTagName("*"). - // Filter them out. - concat: function(a, b) { - for (var i = 0, node; node = b[i]; i++) - if (node.tagName !== "!") a.push(node); - return a; - }, - - // IE improperly serializes _countedByPrototype in (inner|outer)HTML. - unmark: function(nodes) { - for (var i = 0, node; node = nodes[i]; i++) - node.removeAttribute('_countedByPrototype'); - return nodes; - } - }); -} - -function $$() { - return Selector.findChildElements(document, $A(arguments)); -} -var Form = { - reset: function(form) { - $(form).reset(); - return form; - }, - - serializeElements: function(elements, options) { - if (typeof options != 'object') options = { hash: !!options }; - else if (Object.isUndefined(options.hash)) options.hash = true; - var key, value, submitted = false, submit = options.submit; - - var data = elements.inject({ }, function(result, element) { - if (!element.disabled && element.name) { - key = element.name; value = $(element).getValue(); - if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && - submit !== false && (!submit || key == submit) && (submitted = true)))) { - if (key in result) { - // a key is already present; construct an array of values - if (!Object.isArray(result[key])) result[key] = [result[key]]; - result[key].push(value); - } - else result[key] = value; - } - } - return result; - }); - - return options.hash ? data : Object.toQueryString(data); - } -}; - -Form.Methods = { - serialize: function(form, options) { - return Form.serializeElements(Form.getElements(form), options); - }, - - getElements: function(form) { - return $A($(form).getElementsByTagName('*')).inject([], - function(elements, child) { - if (Form.Element.Serializers[child.tagName.toLowerCase()]) - elements.push(Element.extend(child)); - return elements; - } - ); - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) return $A(inputs).map(Element.extend); - - for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || (name && input.name != name)) - continue; - matchingInputs.push(Element.extend(input)); - } - - return matchingInputs; - }, - - disable: function(form) { - form = $(form); - Form.getElements(form).invoke('disable'); - return form; - }, - - enable: function(form) { - form = $(form); - Form.getElements(form).invoke('enable'); - return form; - }, - - findFirstElement: function(form) { - var elements = $(form).getElements().findAll(function(element) { - return 'hidden' != element.type && !element.disabled; - }); - var firstByIndex = elements.findAll(function(element) { - return element.hasAttribute('tabIndex') && element.tabIndex >= 0; - }).sortBy(function(element) { return element.tabIndex }).first(); - - return firstByIndex ? firstByIndex : elements.find(function(element) { - return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - form = $(form); - form.findFirstElement().activate(); - return form; - }, - - request: function(form, options) { - form = $(form), options = Object.clone(options || { }); - - var params = options.parameters, action = form.readAttribute('action') || ''; - if (action.blank()) action = window.location.href; - options.parameters = form.serialize(true); - - if (params) { - if (Object.isString(params)) params = params.toQueryParams(); - Object.extend(options.parameters, params); - } - - if (form.hasAttribute('method') && !options.method) - options.method = form.method; - - return new Ajax.Request(action, options); - } -}; - -/*--------------------------------------------------------------------------*/ - -Form.Element = { - focus: function(element) { - $(element).focus(); - return element; - }, - - select: function(element) { - $(element).select(); - return element; - } -}; - -Form.Element.Methods = { - serialize: function(element) { - element = $(element); - if (!element.disabled && element.name) { - var value = element.getValue(); - if (value != undefined) { - var pair = { }; - pair[element.name] = value; - return Object.toQueryString(pair); - } - } - return ''; - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - return Form.Element.Serializers[method](element); - }, - - setValue: function(element, value) { - element = $(element); - var method = element.tagName.toLowerCase(); - Form.Element.Serializers[method](element, value); - return element; - }, - - clear: function(element) { - $(element).value = ''; - return element; - }, - - present: function(element) { - return $(element).value != ''; - }, - - activate: function(element) { - element = $(element); - try { - element.focus(); - if (element.select && (element.tagName.toLowerCase() != 'input' || - !['button', 'reset', 'submit'].include(element.type))) - element.select(); - } catch (e) { } - return element; - }, - - disable: function(element) { - element = $(element); - element.disabled = true; - return element; - }, - - enable: function(element) { - element = $(element); - element.disabled = false; - return element; - } -}; - -/*--------------------------------------------------------------------------*/ - -var Field = Form.Element; -var $F = Form.Element.Methods.getValue; - -/*--------------------------------------------------------------------------*/ - -Form.Element.Serializers = { - input: function(element, value) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element, value); - default: - return Form.Element.Serializers.textarea(element, value); - } - }, - - inputSelector: function(element, value) { - if (Object.isUndefined(value)) return element.checked ? element.value : null; - else element.checked = !!value; - }, - - textarea: function(element, value) { - if (Object.isUndefined(value)) return element.value; - else element.value = value; - }, - - select: function(element, value) { - if (Object.isUndefined(value)) - return this[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - else { - var opt, currentValue, single = !Object.isArray(value); - for (var i = 0, length = element.length; i < length; i++) { - opt = element.options[i]; - currentValue = this.optionValue(opt); - if (single) { - if (currentValue == value) { - opt.selected = true; - return; - } - } - else opt.selected = value.include(currentValue); - } - } - }, - - selectOne: function(element) { - var index = element.selectedIndex; - return index >= 0 ? this.optionValue(element.options[index]) : null; - }, - - selectMany: function(element) { - var values, length = element.length; - if (!length) return null; - - for (var i = 0, values = []; i < length; i++) { - var opt = element.options[i]; - if (opt.selected) values.push(this.optionValue(opt)); - } - return values; - }, - - optionValue: function(opt) { - // extend element because hasAttribute may not be native - return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; - } -}; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = Class.create(PeriodicalExecuter, { - initialize: function($super, element, frequency, callback) { - $super(callback, frequency); - this.element = $(element); - this.lastValue = this.getValue(); - }, - - execute: function() { - var value = this.getValue(); - if (Object.isString(this.lastValue) && Object.isString(value) ? - this.lastValue != value : String(this.lastValue) != String(value)) { - this.callback(this.element, value); - this.lastValue = value; - } - } -}); - -Form.Element.Observer = Class.create(Abstract.TimedObserver, { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(Abstract.TimedObserver, { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = Class.create({ - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - Form.getElements(this.element).each(this.registerCallback, this); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - default: - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -}); - -Form.Element.EventObserver = Class.create(Abstract.EventObserver, { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(Abstract.EventObserver, { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) var Event = { }; - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - KEY_HOME: 36, - KEY_END: 35, - KEY_PAGEUP: 33, - KEY_PAGEDOWN: 34, - KEY_INSERT: 45, - - cache: { }, - - relatedTarget: function(event) { - var element; - switch(event.type) { - case 'mouseover': element = event.fromElement; break; - case 'mouseout': element = event.toElement; break; - default: return null; - } - return Element.extend(element); - } -}); - -Event.Methods = (function() { - var isButton; - - if (Prototype.Browser.IE) { - var buttonMap = { 0: 1, 1: 4, 2: 2 }; - isButton = function(event, code) { - return event.button == buttonMap[code]; - }; - - } else if (Prototype.Browser.WebKit) { - isButton = function(event, code) { - switch (code) { - case 0: return event.which == 1 && !event.metaKey; - case 1: return event.which == 1 && event.metaKey; - default: return false; - } - }; - - } else { - isButton = function(event, code) { - return event.which ? (event.which === code + 1) : (event.button === code); - }; - } - - return { - isLeftClick: function(event) { return isButton(event, 0) }, - isMiddleClick: function(event) { return isButton(event, 1) }, - isRightClick: function(event) { return isButton(event, 2) }, - - element: function(event) { - event = Event.extend(event); - - var node = event.target, - type = event.type, - currentTarget = event.currentTarget; - - if (currentTarget && currentTarget.tagName) { - // Firefox screws up the "click" event when moving between radio buttons - // via arrow keys. It also screws up the "load" and "error" events on images, - // reporting the document as the target instead of the original image. - if (type === 'load' || type === 'error' || - (type === 'click' && currentTarget.tagName.toLowerCase() === 'input' - && currentTarget.type === 'radio')) - node = currentTarget; - } - if (node.nodeType == Node.TEXT_NODE) node = node.parentNode; - return Element.extend(node); - }, - - findElement: function(event, expression) { - var element = Event.element(event); - if (!expression) return element; - var elements = [element].concat(element.ancestors()); - return Selector.findElement(elements, expression, 0); - }, - - pointer: function(event) { - var docElement = document.documentElement, - body = document.body || { scrollLeft: 0, scrollTop: 0 }; - return { - x: event.pageX || (event.clientX + - (docElement.scrollLeft || body.scrollLeft) - - (docElement.clientLeft || 0)), - y: event.pageY || (event.clientY + - (docElement.scrollTop || body.scrollTop) - - (docElement.clientTop || 0)) - }; - }, - - pointerX: function(event) { return Event.pointer(event).x }, - pointerY: function(event) { return Event.pointer(event).y }, - - stop: function(event) { - Event.extend(event); - event.preventDefault(); - event.stopPropagation(); - event.stopped = true; - } - }; -})(); - -Event.extend = (function() { - var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { - m[name] = Event.Methods[name].methodize(); - return m; - }); - - if (Prototype.Browser.IE) { - Object.extend(methods, { - stopPropagation: function() { this.cancelBubble = true }, - preventDefault: function() { this.returnValue = false }, - inspect: function() { return "[object Event]" } - }); - - return function(event) { - if (!event) return false; - if (event._extendedByPrototype) return event; - - event._extendedByPrototype = Prototype.emptyFunction; - var pointer = Event.pointer(event); - Object.extend(event, { - target: event.srcElement, - relatedTarget: Event.relatedTarget(event), - pageX: pointer.x, - pageY: pointer.y - }); - return Object.extend(event, methods); - }; - - } else { - Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__']; - Object.extend(Event.prototype, methods); - return Prototype.K; - } -})(); - -Object.extend(Event, (function() { - var cache = Event.cache; - - function getEventID(element) { - if (element._prototypeEventID) return element._prototypeEventID[0]; - arguments.callee.id = arguments.callee.id || 1; - return element._prototypeEventID = [++arguments.callee.id]; - } - - function getDOMEventName(eventName) { - if (eventName && eventName.include(':')) return "dataavailable"; - return eventName; - } - - function getCacheForID(id) { - return cache[id] = cache[id] || { }; - } - - function getWrappersForEventName(id, eventName) { - var c = getCacheForID(id); - return c[eventName] = c[eventName] || []; - } - - function createWrapper(element, eventName, handler) { - var id = getEventID(element); - var c = getWrappersForEventName(id, eventName); - if (c.pluck("handler").include(handler)) return false; - - var wrapper = function(event) { - if (!Event || !Event.extend || - (event.eventName && event.eventName != eventName)) - return false; - - Event.extend(event); - handler.call(element, event); - }; - - wrapper.handler = handler; - c.push(wrapper); - return wrapper; - } - - function findWrapper(id, eventName, handler) { - var c = getWrappersForEventName(id, eventName); - return c.find(function(wrapper) { return wrapper.handler == handler }); - } - - function destroyWrapper(id, eventName, handler) { - var c = getCacheForID(id); - if (!c[eventName]) return false; - c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); - } - - function destroyCache() { - for (var id in cache) - for (var eventName in cache[id]) - cache[id][eventName] = null; - } - - - // Internet Explorer needs to remove event handlers on page unload - // in order to avoid memory leaks. - if (window.attachEvent) { - window.attachEvent("onunload", destroyCache); - } - - // Safari has a dummy event handler on page unload so that it won't - // use its bfcache. Safari <= 3.1 has an issue with restoring the "document" - // object when page is returned to via the back button using its bfcache. - if (Prototype.Browser.WebKit) { - window.addEventListener('unload', Prototype.emptyFunction, false); - } - - return { - observe: function(element, eventName, handler) { - element = $(element); - var name = getDOMEventName(eventName); - - var wrapper = createWrapper(element, eventName, handler); - if (!wrapper) return element; - - if (element.addEventListener) { - element.addEventListener(name, wrapper, false); - } else { - element.attachEvent("on" + name, wrapper); - } - - return element; - }, - - stopObserving: function(element, eventName, handler) { - element = $(element); - var id = getEventID(element), name = getDOMEventName(eventName); - - if (!handler && eventName) { - getWrappersForEventName(id, eventName).each(function(wrapper) { - element.stopObserving(eventName, wrapper.handler); - }); - return element; - - } else if (!eventName) { - Object.keys(getCacheForID(id)).each(function(eventName) { - element.stopObserving(eventName); - }); - return element; - } - - var wrapper = findWrapper(id, eventName, handler); - if (!wrapper) return element; - - if (element.removeEventListener) { - element.removeEventListener(name, wrapper, false); - } else { - element.detachEvent("on" + name, wrapper); - } - - destroyWrapper(id, eventName, handler); - - return element; - }, - - fire: function(element, eventName, memo) { - element = $(element); - if (element == document && document.createEvent && !element.dispatchEvent) - element = document.documentElement; - - var event; - if (document.createEvent) { - event = document.createEvent("HTMLEvents"); - event.initEvent("dataavailable", true, true); - } else { - event = document.createEventObject(); - event.eventType = "ondataavailable"; - } - - event.eventName = eventName; - event.memo = memo || { }; - - if (document.createEvent) { - element.dispatchEvent(event); - } else { - element.fireEvent(event.eventType, event); - } - - return Event.extend(event); - } - }; -})()); - -Object.extend(Event, Event.Methods); - -Element.addMethods({ - fire: Event.fire, - observe: Event.observe, - stopObserving: Event.stopObserving -}); - -Object.extend(document, { - fire: Element.Methods.fire.methodize(), - observe: Element.Methods.observe.methodize(), - stopObserving: Element.Methods.stopObserving.methodize(), - loaded: false -}); - -(function() { - /* Support for the DOMContentLoaded event is based on work by Dan Webb, - Matthias Miller, Dean Edwards and John Resig. */ - - var timer; - - function fireContentLoadedEvent() { - if (document.loaded) return; - if (timer) window.clearInterval(timer); - document.fire("dom:loaded"); - document.loaded = true; - } - - if (document.addEventListener) { - if (Prototype.Browser.WebKit) { - timer = window.setInterval(function() { - if (/loaded|complete/.test(document.readyState)) - fireContentLoadedEvent(); - }, 0); - - Event.observe(window, "load", fireContentLoadedEvent); - - } else { - document.addEventListener("DOMContentLoaded", - fireContentLoadedEvent, false); - } - - } else { - document.write(" -
'); - -$template->assign('analyst', ' - - -'); - -//Récupération du cache -if (file_exists(_FCORE."../game/cache/nbcovie.cache") && file_exists(_FCORE."../game/cache/nbhumain.cache") && time() - filemtime(_FCORE."../game/cache/nbcovie.cache") < 300) { - $nbcovie['covenants'] = file_get_contents(_FCORE."../game/cache/nbcovie.cache"); - $nbhumain['humains'] = file_get_contents(_FCORE."../game/cache/nbhumain.cache"); -} -if (file_exists(_FCORE."../game/cache/inline.cache") && time() - filemtime(_FCORE."../game/cache/inline.cache") < 60) $enligne['enligne'] = file_get_contents(_FCORE."../game/cache/inline.cache"); - -$bdd = new BDD(); -$bdd->connexion(); - -if (!isset($nbcovie) || !isset($nbhumain)) { - $nbcovie = $bdd->unique_query("SELECT COUNT(id) AS covenants FROM $table_user WHERE race = 'covenant';"); - $nbhumain = $bdd->unique_query("SELECT COUNT(id) AS humains FROM $table_user WHERE race = 'humain';"); - file_put_contents(_FCORE."../game/cache/nbcovie.cache", $nbcovie['covenants']); - file_put_contents(_FCORE."../game/cache/nbhumain.cache", $nbhumain['humains']); -} - -//Nombre de joueur(s) en ligne ^^ -if (!isset($enligne)) { - $enligne = $bdd->unique_query("SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0';"); - file_put_contents(_FCORE."../game/cache/inline.cache", $enligne['enligne']); -} - -//Bandeau d'informations -$template->assign('messdem', $bdd->unique_query("SELECT titre FROM $table_messages_demarrage ORDER BY id DESC LIMIT 1;")); -$infos = $bdd->query("SELECT * FROM $table_infoshead ORDER BY id DESC;"); - -$bdd->deconnexion(); - -//Evite les attaques CSRF -if (!empty($_SERVER['HTTP_REFERER']) && !ereg(time().'http://'.$_SERVER['HTTP_HOST'], time().$_SERVER['HTTP_REFERER']) && !defined('xCSRF')) { - file_log("Possibilité d'attaque CSRF\n".var_export($_REQUEST,TRUE), 2); - unset($_POST, $_GET); - $_GET = $_POST = array(); -} - -function limite($txt, $limit){ - if (strlen($txt) > $limit) return true; - else return false; -} - -//Affichage du header -$template->assign('infos',$infos); -$template->assign('nbinfos',$bdd->num_rows-1); -$template->assign('enligne',$enligne['enligne']); -$template->assign('count',array('humains' => $nbhumain['humains'], 'covenants' => $nbcovie['covenants'], 'serveurs' => 'cette')); -$template->assign('version', $config['version']); -$template->assign('first_page', $config['first_page']); -?> diff --git a/onyx/config.xconf b/onyx/config.xconf deleted file mode 100644 index 5113631..0000000 --- a/onyx/config.xconf +++ /dev/null @@ -1,106 +0,0 @@ -actif: "1" -stnb: "0" -dureestnb: "300" -titre: "Halo-Battle" -bddactif: "1" -url_rewriting : "1" -session: "1" -session_time: "1000" -session_name: "hbsession" -session_max: "20" -session_table: "sessions" - -serveur_name: "Béta #1" -locales: "fr_FR" -lang: "FRA" - -db_type: "mysql" -db_prefix: "" -db_crypt: "0" -db_cle: "vb45klo8zw" -db_log: "1" -db_injection: "0" -no_db: "no_db" -no_db_message: "Connexion à la base de donnée impossible" - -log_error: "1" -hide_error: "0" - -version: "1.10 Béta" -flottes: "0" -attaques: "1" -galaxie: "1" -nb_amas: "1" -nb_systeme: "99" -nb_planete: "12" -first_page: "" -url_images: "" -time_maintenance: "20000" -mail_admin: "admin@halo-battle.s-fr.com" -mail_support: "technique@halo-battle.s-fr.com" - -cache[dir]: "cache/" -cache[signatures]: "43200" - -link[self]: "./" -link[accueil]: "http://www.halo-battle.fr/" -link[blog]: "http://www.halo-battle.fr/ark/" -link[jeu]: "http://www.halo-battle.fr/" -link[inscription]: "?p=inscription" -link[forum]: "http://www.halo-battle.fr/forum/index.php" -link[oubliemdp]: "?p=oubliemdp" -link[operateur]: "?p=operateur" - -menu[accueil]: "?p=accueil" -menu[operateur]: "?p=operateur" -menu[batiments]: "?p=batiments" -menu[caserne]: "?p=caserne" -menu[chantierspatial]: "?p=chantierspatial" -menu[chantierterrestre]: "?p=chantierterrestre" -menu[defenses]: "?p=defenses" -menu[laboratoire]: "?p=laboratoire" -menu[arbre]: "?p=arbre" -menu[ressources]: "?p=ressources" -menu[gestion]: "?p=gestion" -menu[marche]: "?p=marche" -menu[bourse]: "?p=bourse" -menu[flotte]: "?p=flotte" -menu[armee]: "?p=prochainement" -menu[bourse]: "?p=bourse" -menu[carte]: "?p=carte" -menu[options]: "?p=options" -menu[messages]: "?p=messagerie" -menu[envoie]: "?p=envoyer" -menu[alliance]: "?p=alliances" -menu[classement]: "?p=classement" -menu[chat]: "?p=chat" -menu[forums]: "http://www.halo-battle.fr/forum/" -menu[bugs]: "http://www.halo-battle.fr/tester/" -menu[faq]: "?p=faq" -menu[bourse]: "?p=bourse" -menu[deconnexion]: "?p=deconnexion" - -menuadmin[accueil]: "?p=accueil" - -smiley_dir: "./images/smile/" -smiley[wink]: ":wink:" -smiley[biggrin]: ":D" -smiley[smile]: ":-)" -smiley[razz]: ":P" -smiley[eek]: ":shock:" -smiley[cool]: "8-)" -smiley[twisted]: ":twisted:" -smiley[evil]: ":evil:" -smiley[mad]: ":-x" -smiley[confused]: ":-?" -smiley[sad]: ":-(" -smiley[surprised]: ":-O" -smiley[neutral]: ":-|" -smiley[redface]: ":oops:" -smiley[rolleyes]: ":roll:" -smiley[lol]: ":lol:" - -template[dir]: "../templates/" -template[compile]: "tpl_compile/" -template[config]: "tpl_config/" -template[cache]: "tpl_cache/" \ No newline at end of file diff --git a/onyx/kernel.php b/onyx/kernel.php deleted file mode 100644 index b59c04d..0000000 --- a/onyx/kernel.php +++ /dev/null @@ -1,347 +0,0 @@ -$1'; - - $pattern[] = '#\\[size=([1-3][0-9])\\](.+?)\\[/size\\]#us'; - $replace[] = '$2'; - - $pattern[] = '#\\[color=(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow|\\#[0-9A-Fa-f]{6})\\](.+?)\\[/color\\]#us'; - $replace[] = '$2'; - - $pattern[] = '#\\[img\\]http(s)?://([a-zA-Z0-9_/.%*+~,;:\\#-]+)\\[/img\\]#u'; - $replace[] = '$2'; - - default: - case 0: - $pattern[] = '#\\[url=(?:http(s)?://)?([a-zA-Z0-9_/.%*+~,;:?&=\\#-]+)\\](.+?)\\[/url\\]#u'; - $replace[] = '$3'; - - $pattern[] = '#\\[url\\](?:http(s)?://)?([a-zA-Z0-9_/.%*+~,;:?&=\\#-]+)\\[/url\\]#u'; - $replace[] = '$2'; - - $pattern[] = '#\\[cite\\](.+?)\\[/cite\\]#us'; - $replace[] = '$1'; - - $pattern[] = '#\\[u\\](.+?)\\[/u\\]#us'; - $replace[] = '$1'; - - $pattern[] = '#\\[i\\](.+?)\\[/i\\]#us'; - $replace[] = '$1'; - - $pattern[] = '#\\[b\\](.+?)\\[/b\\]#us'; - $replace[] = '$1'; - - foreach($config['smiley'] as $keys => $values) - { - $pattern[] = '#'.preg_quote($values).'#u'; - $replace[] = ''.$keys.''; - } - } - - $pattern = array_reverse($pattern); - $replace = array_reverse($replace); - - $var = preg_replace($pattern,$replace,$var); - return $var; -} - -require_once(_FCORE."access.php"); - -if($config['db_crypt'] == '1') -{ - foreach($var___db as $key => $value) - { - $var___db[$key]['password'] = cxor(base64_decode($value['password']),hash_var($config['db_cle'])); - } -} - -define('SMARTY_DIR',_FCORE.'smarty/'); - -require_once(SMARTY_DIR."Smarty.class.php"); - -switch($config['db_type']) -{ - case 'mysql' : - case 'postgresql' : - - $db = $config['db_type']; - require_once(_FCORE."bdd.$db.class.php"); - require_once(_FCORE."session.$db.class.php"); -} - -define('_TEMPLATE_DIR',_FCORE.$config['template']['dir']); -define('_TEMPLATE_COMPILE',_FCORE.$config['template']['compile']); -define('_TEMPLATE_CONFIG',_FCORE.$config['template']['config']); -define('_TEMPLATE_CACHE',_FCORE.$config['template']['cache']); - -class Template extends Smarty -{ - var $template_dir = _TEMPLATE_DIR; - var $compile_dir = _TEMPLATE_COMPILE; - var $config_dir = _TEMPLATE_CONFIG; - var $cache_dir = _TEMPLATE_CACHE; -} - -function no_db() -{ - global $config; - die($config['no_db_message']); -} - -?> diff --git a/onyx/logs/03-01-2009.xlog b/onyx/logs/03-01-2009.xlog deleted file mode 100644 index 5d81d32..0000000 --- a/onyx/logs/03-01-2009.xlog +++ /dev/null @@ -1,61 +0,0 @@ -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230992988 AND active = 1 }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x3b03171c30ecda46293da5392d7e488be5a09e71d6327304814dc1e574770688,1230993988,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS covenants FROM user WHERE race = 'covenant'; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS humains FROM user WHERE race = 'humain'; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:46:28] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:09] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230993029 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:09] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:09] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x3b03171c30ecda46293da5392d7e488be5a09e71d6327304814dc1e574770688 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:09] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xd153e99bed57c07a5ecddd75c7bc80f69d67f28107b052a1c0836017dee4c2ab,1230994029,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:09] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:09] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[15:47:16] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230993036 AND active = 1 }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:47:16] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:47:16] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xd153e99bed57c07a5ecddd75c7bc80f69d67f28107b052a1c0836017dee4c2ab AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:47:16] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x6a3e953751f4487d76b099018e66ca4fbde7ff8ba3a6737a897e14a59c74152a,1230994036,0x7f000101,0,0,1) }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:47:16] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:47:16] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230993142 AND active = 1 }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x6a3e953751f4487d76b099018e66ca4fbde7ff8ba3a6737a897e14a59c74152a AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x45fe2a1fb9acb032c0a6f52ccfb8c95dcb4a21074cd97530b4a7f83934bcf54e,1230994142,0x7f000101,0,0,1) }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT nombre FROM securite_identification WHERE ip = '127.0.1.1'; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT mdp_var, mdp FROM user WHERE pseudo = 'nemunaire'; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:02] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO securite_identification VALUES ('127.0.1.1', '1', '1230994142'); }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230993153 AND active = 1 }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x45fe2a1fb9acb032c0a6f52ccfb8c95dcb4a21074cd97530b4a7f83934bcf54e AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x8c36f3f24b4bb14e030aeabd7c7e16ba33e63222f02bbc7b37b545a398b4b200,1230994153,0x7f000101,0,0,1) }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT nombre FROM securite_identification WHERE ip = '127.0.1.1'; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT mdp_var, mdp FROM user WHERE pseudo = 'nemunaire'; }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[15:49:13] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO securite_identification VALUES ('127.0.1.1', '1', '1230994153'); }. [127.0.1.1] [POST] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [http://halo-battle.local/?p=connexion] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230995639 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x4abc6c0d58406171eb451f8356b6b1481267c5bcf57a4ef68142d05312b41763,1230996639,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS covenants FROM user WHERE race = 'covenant'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS humains FROM user WHERE race = 'humain'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:39] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:40] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1230995640 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:40] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:40] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x4abc6c0d58406171eb451f8356b6b1481267c5bcf57a4ef68142d05312b41763 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:40] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xc6028789389fece1fda147af0088157a1a0c93168612e1c2f031c8233dc627f5,1230996640,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:40] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[16:30:40] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231018124 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x2fc93e3d667d2679c122dc12f276913af900e4fd0889aefce9832a6d289f679f,1231019124,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS covenants FROM user WHERE race = 'covenant'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS humains FROM user WHERE race = 'humain'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] -[22:45:24] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5] [] diff --git a/onyx/logs/04-01-2009.xlog b/onyx/logs/04-01-2009.xlog deleted file mode 100644 index 20b1191..0000000 --- a/onyx/logs/04-01-2009.xlog +++ /dev/null @@ -1,81 +0,0 @@ -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231061342 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xc147fd2a78c22988beab41517ce4b92c84cb3c6d70503eb36cf40ce2038fe54b,1231062342,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS covenants FROM user WHERE race = 'covenant'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS humains FROM user WHERE race = 'humain'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:42] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:45] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231061345 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:45] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:45] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xc147fd2a78c22988beab41517ce4b92c84cb3c6d70503eb36cf40ce2038fe54b AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:45] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xb0fb73e4241b54a670fee9739a0e90e35989917290eabd7f9cfcd02b1ee569db,1231062345,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:45] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:45:45] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062112 AND active = 1 }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xb0fb73e4241b54a670fee9739a0e90e35989917290eabd7f9cfcd02b1ee569db AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xec9f8809204f27c06498c027aa2c90da590418a5138e837d28f8de19aafd9a4d,1231063112,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS covenants FROM user WHERE race = 'covenant'; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS humains FROM user WHERE race = 'humain'; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:32] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=connexion] -[10:58:34] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062114 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:34] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:34] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xec9f8809204f27c06498c027aa2c90da590418a5138e837d28f8de19aafd9a4d AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:34] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x03c1bf38b78b9bb873737ffeb5fd81b81710385ccc530e43a27c144f732e8f3d,1231063114,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:34] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:34] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062116 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x03c1bf38b78b9bb873737ffeb5fd81b81710385ccc530e43a27c144f732e8f3d AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xbac43e87d978f7092ba1d4a2edc870e6e96e3e64b3634d1724aa7c511769c2e9,1231063116,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062116 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xbac43e87d978f7092ba1d4a2edc870e6e96e3e64b3634d1724aa7c511769c2e9 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x664317d1969130e117ddc2bff0a317597515c9d9b4d16e91018ba7eaf4509d8b,1231063116,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[10:58:36] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062376 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x664317d1969130e117ddc2bff0a317597515c9d9b4d16e91018ba7eaf4509d8b AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xd637703949632228dc11806f64d9d64ef6a433dd2e5176a521c3b58aa4c15810,1231063376,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS covenants FROM user WHERE race = 'covenant'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(id) AS humains FROM user WHERE race = 'humain'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0'; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:56] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062377 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xd637703949632228dc11806f64d9d64ef6a433dd2e5176a521c3b58aa4c15810 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x737b64231c2212a752aadcd9970ab80327db017fdb0d0a2af1121ee696753a61,1231063377,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062377 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x737b64231c2212a752aadcd9970ab80327db017fdb0d0a2af1121ee696753a61 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x423a6d39551e6f59d1d2706074072c58a5d2918d28866c7ac1cfcea45bf71107,1231063377,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062377 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x423a6d39551e6f59d1d2706074072c58a5d2918d28866c7ac1cfcea45bf71107 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0xfe3eada59a4e1f81e423ee9ad23a0db96846630c782b3c7b7b454201dddfbf93,1231063377,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062377 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0xfe3eada59a4e1f81e423ee9ad23a0db96846630c782b3c7b7b454201dddfbf93 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x41bf85089e703734b2317e13b4d4af11b6fdaf3f91e089fd034d08e3ecabcf15,1231063377,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:57] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:58] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE time < 1231062378 AND active = 1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:58] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { DELETE FROM sessions WHERE ip = (SELECT * FROM (SELECT ip FROM sessions GROUP BY ip HAVING COUNT(ip) > 20) AS tmp) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:58] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT session,level,var FROM sessions WHERE session= 0x41bf85089e703734b2317e13b4d4af11b6fdaf3f91e089fd034d08e3ecabcf15 AND ip= 0x7f000101 AND active=1 }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:58] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { INSERT INTO sessions(session,time,ip,var,level,active) VALUES(0x15f7bd3f6f43f25a60df55808d1698104f5c195749305d04de6bd32874c09b89,1231063378,0x7f000101,0,0,1) }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:58] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT titre FROM messages_demarrage ORDER BY id DESC LIMIT 1; }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:02:58] AVERTISSEMENT : Erreur Mysql: " No database selected ", avec la requète: { SELECT * FROM infoshead }. [127.0.1.1] [GET] [/?p=connexion] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [] -[11:34:32] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 ", avec la requète: { SELECT id FROM planete WHERE id_user = 8 AND id = ; }. [127.0.1.1] [POST] [/?p=accueil] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=accueil] diff --git a/onyx/logs/09-01-2009.xlog b/onyx/logs/09-01-2009.xlog deleted file mode 100644 index 63aa8da..0000000 --- a/onyx/logs/09-01-2009.xlog +++ /dev/null @@ -1,8 +0,0 @@ -[23:17:28] AVERTISSEMENT : Erreur Mysql: " Unknown column 'nom' in 'field list' ", avec la requète: { SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM alliances WHERE galaxie = 1 AND ss = 7; }. [127.0.1.1] [GET] [/?p=carte] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=accueil] -[23:17:30] AVERTISSEMENT : Erreur Mysql: " Unknown column 'alliances.nom' in 'field list' ", avec la requète: { SELECT user.pseudo, user.auth_level, user.race, user.place_points, user.points, user.batiments, user.flotte, alliances.tag, alliances.nom FROM user INNER JOIN alliances ON user.id_alliance = alliances.id WHERE user.id = 8; }. [127.0.1.1] [GET] [/sign.php?i=8] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=options] -[23:17:35] AVERTISSEMENT : Erreur Mysql: " Unknown column 'A.nom' in 'field list' ", avec la requète: { SELECT C.points, U.pseudo, U.race, A.tag, A.nom FROM classement1 C INNER JOIN user U ON C.id_user = U.id LEFT OUTER JOIN alliances A ON A.id = U.id_alliance ORDER BY C.points DESC LIMIT 100 OFFSET 0; }. [127.0.1.1] [GET] [/?p=classement] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=alliances] -[23:24:43] AVERTISSEMENT : Erreur Mysql: " Unknown column 'nom' in 'field list' ", avec la requète: { SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM alliances WHERE galaxie = 1 AND ss = 7; }. [127.0.1.1] [GET] [/?p=carte] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=flotte] -[23:24:46] AVERTISSEMENT : Erreur Mysql: " Unknown column 'alliances.nom' in 'field list' ", avec la requète: { SELECT user.pseudo, user.auth_level, user.race, user.place_points, user.points, user.batiments, user.flotte, alliances.tag, alliances.nom FROM user INNER JOIN alliances ON user.id_alliance = alliances.id WHERE user.id = 8; }. [127.0.1.1] [GET] [/sign.php?i=8] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=options] -[23:24:56] AVERTISSEMENT : Erreur Mysql: " Unknown column 'A.nom' in 'field list' ", avec la requète: { SELECT C.points, U.pseudo, U.race, A.tag, A.nom FROM classement1 C INNER JOIN user U ON C.id_user = U.id LEFT OUTER JOIN alliances A ON A.id = U.id_alliance ORDER BY C.points DESC LIMIT 100 OFFSET 0; }. [127.0.1.1] [GET] [/?p=classement] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=alliances] -[23:24:57] AVERTISSEMENT : Erreur Mysql: " Unknown column 'A.nom' in 'field list' ", avec la requète: { SELECT C.points, U.pseudo, U.race, A.tag, A.nom FROM classement1 C INNER JOIN user U ON C.id_user = U.id LEFT OUTER JOIN alliances A ON A.id = U.id_alliance ORDER BY C.points DESC LIMIT 100 OFFSET 0; }. [127.0.1.1] [GET] [/?p=classement] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=classement] -[23:25:20] AVERTISSEMENT : Erreur Mysql: " Unknown column 'nom' in 'field list' ", avec la requète: { SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM alliances WHERE galaxie = 1 AND ss = 7; }. [127.0.1.1] [GET] [/?p=carte&galaxie=1&ss=7] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=accueil] diff --git a/onyx/logs/10-01-2009.xlog b/onyx/logs/10-01-2009.xlog deleted file mode 100644 index 90384a2..0000000 --- a/onyx/logs/10-01-2009.xlog +++ /dev/null @@ -1,3 +0,0 @@ -[13:36:31] AVERTISSEMENT : Erreur Mysql: " Unknown column 'A.nom' in 'field list' ", avec la requète: { SELECT C.points, U.pseudo, U.race, A.tag, A.nom FROM classement0 C INNER JOIN user U ON C.id_user = U.id LEFT OUTER JOIN alliances A ON A.id = U.id_alliance ORDER BY C.points DESC LIMIT 100 OFFSET 0; }. [127.0.1.1] [GET] [/?p=classement] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=laboratoire] -[13:36:32] AVERTISSEMENT : Erreur Mysql: " Table 'halo_battle.bourse_ressources' doesn't exist ", avec la requète: { SELECT id, dispo FROM bourse_ressources; }. [127.0.1.1] [GET] [/?p=marche] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=classement] -[13:36:32] AVERTISSEMENT : Erreur Mysql: " Table 'halo_battle.bourse_ressources' doesn't exist ", avec la requète: { SELECT id, graph, dispo FROM bourse_ressources WHERE id = 0; }. [127.0.1.1] [GET] [/bourser.php?a=&r=humain] [Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.5) Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5 FirePHP/0.2.1] [http://halo-battle.local/?p=marche] diff --git a/onyx/profiles/admin.xconf b/onyx/profiles/admin.xconf deleted file mode 100644 index 87586ce..0000000 --- a/onyx/profiles/admin.xconf +++ /dev/null @@ -1,23 +0,0 @@ -menuadmin[accueil]: "?p=accueil" -menuadmin[courrier]: "?p=courrier" -menuadmin[webmail]: "http://91.121.132.185/tools/webmail/" - -menuadmin[vip]: "?p=vip" -menuadmin[vflottes]: "?p=vflotte" -menuadmin[vplanetes]: "?p=vplanetes" -menuadmin[vjoueurs]: "?p=vjoueurs" -menuadmin[valliances]: "?p=valliances" -menuadmin[vrapports]: "?p=vrapports" - -menuadmin[sjoueurs]: "?p=sjoueurs" -menuadmin[sancp]: "?p=sancp" -menuadmin[controle]: "?p=cjoueurs" -menuadmin[djoueurs]: "?p=djoueurs" -menuadmin[inscription]: "?p=inscription" - -menuadmin[bandeau]: "?p=bandeau" -menuadmin[demarrage]: "?p=demarrage" -menuadmin[versions]: "?p=version" - -menu[operateur]: "./" -menu[faq]: "./" \ No newline at end of file diff --git a/onyx/profiles/servers.xconf b/onyx/profiles/servers.xconf deleted file mode 100644 index f084968..0000000 --- a/onyx/profiles/servers.xconf +++ /dev/null @@ -1,5 +0,0 @@ -server_name[]: "Alpha" -server_url[]: "http://halo-battle.fr/" - -server_name[]: "de béta-test #1" -server_url[]: "http://hb.s-fr.com/" \ No newline at end of file diff --git a/onyx/session.class.php b/onyx/session.class.php deleted file mode 100644 index 897d919..0000000 --- a/onyx/session.class.php +++ /dev/null @@ -1,146 +0,0 @@ -connexion(); - - #$db->control($config['db_prefix']."sessions"); - - $time = time()-$config['session_time']; - $table = $config['db_prefix']."sessions"; - $db->query("DELETE FROM $table WHERE time < $time AND active = True;"); - - $db->deconnexion(); - } - } - - function new_cookie() - { - global $config; - - if($config['session']=='1') - { - $db = new bdd(); - $db->connexion(); - - $time = time(); - $xid = random(); - $sess_cookie = random(256); - $ip = encode_ip(); - $table = $config['db_prefix']."sessions"; - $db->query("INSERT INTO $table(xid,session,time,ip,var_session,level,hash,active) VALUES('$xid','$sess_cookie','$time','$ip','','1','',True) "); - $db->hash($table,"xid = '$xid'"); - - $this->xid = $xid; - $this->cookie = $sess_cookie; - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),$sess_cookie); - - $db->deconnexion(); - } - } - - function load() - { - $this->clean(); - - global $config; - - if($config['session']=='1') - { - - if($cookie = gpc($config['session_name'],'cookie')) - { - $db = new bdd(); - $db->connexion(); - - $db->escape($cookie); - - $table = $config['db_prefix']."sessions"; - $db->check($table,"session = '$cookie'"); - $query = $db->unique_query("SELECT * FROM $table WHERE session='$cookie' AND active = True;"); - - if($db->num_rows == 1 && $query['ip'] == encode_ip()) - { - - $this->xid = $query['xid']; - $this->cookie = $query['session']; - $this->level = $query['level']; - $this->values = unserialize($query['var_session']); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),$this->cookie); - } - else $this->new_cookie(); - - $db->deconnexion(); - } - else $this->new_cookie(); - } - } - - function put() - { - global $config; - - if($config['session']=='1' && !empty($this->xid)) - { - $db = new bdd(); - $db->connexion(); - - $time = time(); - - $var_session = serialize($this->values); - - $db->escape($var_session); - - $xid = $this->xid; - - $table = $config['db_prefix']."sessions"; - $db->query("UPDATE $table SET time='$time', var_session='$var_session' WHERE xid='$xid'"); - $db->hash($table,"xid = '$xid'"); - - $db->deconnexion(); - } - } - - function close() - { - global $config; - - if($config['session']=='1' && !empty($this->xid)) - { - $db = new bdd(); - $db->connexion(); - - $xid = $this->xid; - $table = $config['db_prefix']."sessions"; - $db->query("DELETE FROM $table WHERE xid = '$xid' AND active = True;"); - - $db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),$this->cookie,time()-3600); - - $this->xid = NULL; - $this->values = array(); - $this->level = 0; - } - } -} -?> \ No newline at end of file diff --git a/onyx/session.mysql.class.php b/onyx/session.mysql.class.php deleted file mode 100644 index aa8c584..0000000 --- a/onyx/session.mysql.class.php +++ /dev/null @@ -1,165 +0,0 @@ -db->connexion(); - - $this->db->query("DELETE FROM $table WHERE time < $time AND active = 1"); - - if($ipmax > 0) $this->db->query("DELETE FROM $table WHERE ip = (SELECT * FROM (SELECT ip FROM $table GROUP BY ip HAVING COUNT(ip) > $ipmax) AS tmp)"); - - $this->db->deconnexion(); - } - } - - function new_cookie() - { - global $config; - - if($config['session']=='1') - { - $time = time(); - - $level = (is_int($this->level) && strlen($this->level) <= 2) ? $this->level : 0 ; - - $sess_cookie = random(256); - $ip = encode_ip(); - - $this->cookie = $sess_cookie; - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->escape($sess_cookie); - - $this->db->query("INSERT INTO $table(session,time,ip,var,level,active) VALUES(0x$sess_cookie,$time,0x$ip,$level,0,1) "); - - $this->db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),base64_encode(hexstr($this->cookie))); - } - } - - function load() - { - $this->db = new BDD(); - - $this->clean(); - - global $config; - - if($config['session']=='1') - { - if(base64_decode(gpc($config['session_name'],'cookie'))) - { - $cookie = strhex(base64_decode(gpc($config['session_name'],'cookie'))); - $ip = encode_ip(); - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->escape($cookie); - - $query = $this->db->unique_query("SELECT session,level,var FROM $table WHERE session= 0x$cookie AND ip= 0x$ip AND active=1"); - - $this->db->deconnexion(); - - if($this->db->num_rows == 1) - { - $this->cookie = strhex($query['session']); - $this->level = $query['level']; - if(!empty($query['var'])) $this->values = unserialize($query['var']); - - $time = time(); - - $this->db->connexion(); - - $this->db->query("UPDATE $table SET time='$time' WHERE session= 0x$cookie"); - - $this->db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),base64_encode(hexstr($this->cookie))); - } - else $this->new_cookie(); - } - else $this->new_cookie(); - } - - } - - function put($uid = NULL) - { - global $config; - - if($config['session']=='1' && !empty($this->cookie)) - { - $var = serialize($this->values); - - $cookie = $this->cookie; - - $uid = empty($uid) ? '0' : md5($uid); - - $level = (is_numeric($this->level) && strlen($this->level) <= 2) ? $this->level : 0 ; - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->escape($var); - - if($uid != '0') $this->db->query("DELETE FROM $table WHERE uid = 0x$uid AND session != 0x$cookie AND active = 1"); - - $this->db->query("UPDATE $table SET var='$var', level='$level', uid= 0x$uid WHERE session= 0x$cookie"); - - $this->db->deconnexion(); - } - } - - function close() - { - global $config; - - if($config['session']=='1' && !empty($this->cookie)) - { - $cookie = $this->cookie; - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->query("DELETE FROM $table WHERE session = 0x$cookie AND active = 1"); - - $this->db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),'',time()-3600); - - $this->values = array(); - $this->level = 0; - } - } -} -?> \ No newline at end of file diff --git a/onyx/session.postgresql.class.php b/onyx/session.postgresql.class.php deleted file mode 100644 index 59a98d7..0000000 --- a/onyx/session.postgresql.class.php +++ /dev/null @@ -1,165 +0,0 @@ -db->connexion(); - - $this->db->query("DELETE FROM $table WHERE time < $time AND active = TRUE"); - - if($ipmax > 0) $this->db->query("DELETE FROM $table WHERE ip = (SELECT ip FROM $table GROUP BY ip HAVING COUNT(ip) > $ipmax)"); - - $this->db->deconnexion(); - } - } - - function new_cookie() - { - global $config; - - if($config['session']=='1') - { - $time = time(); - - $level = (is_int($this->level) && strlen($this->level) <= 2) ? $this->level : 0 ; - - $sess_cookie = random(256); - $ip = encode_ip(); - - $this->cookie = $sess_cookie; - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->escape($sess_cookie); - - $this->db->query("INSERT INTO $table(session,time,ip,var,level,active) VALUES(X'$sess_cookie',$time,X'$ip',$level,0,TRUE) "); - - $this->db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),base64_encode(hexstr($this->cookie))); - } - } - - function load() - { - $this->db = new bdd(); - - $this->clean(); - - global $config; - - if($config['session']=='1') - { - if(base64_decode(gpc($config['session_name'],'cookie'))) - { - $cookie = strhex(base64_decode(gpc($config['session_name'],'cookie'))); - $ip = encode_ip(); - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->escape($cookie); - - $query = $this->db->unique_query("SELECT session,level,var FROM $table WHERE session= X'$cookie' AND ip= X'$ip' AND active= TRUE"); - - $this->db->deconnexion(); - - if($this->db->num_rows == 1) - { - $this->cookie = bithex($query['session']); - $this->level = $query['level']; - if(!empty($query['var'])) $this->values = unserialize($query['var']); - - $time = time(); - - $this->db->connexion(); - - $this->db->query("UPDATE $table SET time='$time' WHERE session= X'$cookie'"); - - $this->db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),base64_encode(hexstr($this->cookie))); - } - else $this->new_cookie(); - } - else $this->new_cookie(); - } - - } - - function put($uid = NULL) - { - global $config; - - if($config['session']=='1' && !empty($this->cookie)) - { - $var = serialize($this->values); - - $cookie = $this->cookie; - - $uid = empty($uid) ? '0' : md5($uid); - - $level = (is_int($this->level) && strlen($this->level) <= 2) ? $this->level : 0 ; - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->escape($var); - - if($uid != '0') $this->db->query("DELETE FROM $table WHERE uid = X'$uid' AND session != X'$cookie' AND active = TRUE"); - - $this->db->query("UPDATE $table SET var='$var', level='$level', uid= X'$uid' WHERE session= X'$cookie'"); - - $this->db->deconnexion(); - } - } - - function close() - { - global $config; - - if($config['session']=='1' && !empty($this->cookie)) - { - $cookie = $this->cookie; - - $table = $config['session_table']; - - $this->db->connexion(); - - $this->db->query("DELETE FROM $table WHERE session = X'$cookie' AND active = TRUE"); - - $this->db->deconnexion(); - - cookie((empty($this->cookie_name)?$config['session_name']:$this->cookie_name),'',time()-3600); - - $this->values = array(); - $this->level = 0; - } - } -} -?> \ No newline at end of file diff --git a/onyx/smarty/Config_File.class.php b/onyx/smarty/Config_File.class.php deleted file mode 100644 index e3c3ca2..0000000 --- a/onyx/smarty/Config_File.class.php +++ /dev/null @@ -1,389 +0,0 @@ - - * @access public - * @package Smarty - */ - -/* $Id: Config_File.class.php 2702 2007-03-08 19:11:22Z mohrt $ */ - -/** - * Config file reading class - * @package Smarty - */ -class Config_File { - /**#@+ - * Options - * @var boolean - */ - /** - * Controls whether variables with the same name overwrite each other. - */ - var $overwrite = true; - - /** - * Controls whether config values of on/true/yes and off/false/no get - * converted to boolean values automatically. - */ - var $booleanize = true; - - /** - * Controls whether hidden config sections/vars are read from the file. - */ - var $read_hidden = true; - - /** - * Controls whether or not to fix mac or dos formatted newlines. - * If set to true, \r or \r\n will be changed to \n. - */ - var $fix_newlines = true; - /**#@-*/ - - /** @access private */ - var $_config_path = ""; - var $_config_data = array(); - /**#@-*/ - - /** - * Constructs a new config file class. - * - * @param string $config_path (optional) path to the config files - */ - function Config_File($config_path = NULL) - { - if (isset($config_path)) - $this->set_path($config_path); - } - - - /** - * Set the path where configuration files can be found. - * - * @param string $config_path path to the config files - */ - function set_path($config_path) - { - if (!empty($config_path)) { - if (!is_string($config_path) || !file_exists($config_path) || !is_dir($config_path)) { - $this->_trigger_error_msg("Bad config file path '$config_path'"); - return; - } - if(substr($config_path, -1) != DIRECTORY_SEPARATOR) { - $config_path .= DIRECTORY_SEPARATOR; - } - - $this->_config_path = $config_path; - } - } - - - /** - * Retrieves config info based on the file, section, and variable name. - * - * @param string $file_name config file to get info for - * @param string $section_name (optional) section to get info for - * @param string $var_name (optional) variable to get info for - * @return string|array a value or array of values - */ - function get($file_name, $section_name = NULL, $var_name = NULL) - { - if (empty($file_name)) { - $this->_trigger_error_msg('Empty config file name'); - return; - } else { - $file_name = $this->_config_path . $file_name; - if (!isset($this->_config_data[$file_name])) - $this->load_file($file_name, false); - } - - if (!empty($var_name)) { - if (empty($section_name)) { - return $this->_config_data[$file_name]["vars"][$var_name]; - } else { - if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name])) - return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]; - else - return array(); - } - } else { - if (empty($section_name)) { - return (array)$this->_config_data[$file_name]["vars"]; - } else { - if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"])) - return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"]; - else - return array(); - } - } - } - - - /** - * Retrieves config info based on the key. - * - * @param $file_name string config key (filename/section/var) - * @return string|array same as get() - * @uses get() retrieves information from config file and returns it - */ - function &get_key($config_key) - { - list($file_name, $section_name, $var_name) = explode('/', $config_key, 3); - $result = &$this->get($file_name, $section_name, $var_name); - return $result; - } - - /** - * Get all loaded config file names. - * - * @return array an array of loaded config file names - */ - function get_file_names() - { - return array_keys($this->_config_data); - } - - - /** - * Get all section names from a loaded file. - * - * @param string $file_name config file to get section names from - * @return array an array of section names from the specified file - */ - function get_section_names($file_name) - { - $file_name = $this->_config_path . $file_name; - if (!isset($this->_config_data[$file_name])) { - $this->_trigger_error_msg("Unknown config file '$file_name'"); - return; - } - - return array_keys($this->_config_data[$file_name]["sections"]); - } - - - /** - * Get all global or section variable names. - * - * @param string $file_name config file to get info for - * @param string $section_name (optional) section to get info for - * @return array an array of variables names from the specified file/section - */ - function get_var_names($file_name, $section = NULL) - { - if (empty($file_name)) { - $this->_trigger_error_msg('Empty config file name'); - return; - } else if (!isset($this->_config_data[$file_name])) { - $this->_trigger_error_msg("Unknown config file '$file_name'"); - return; - } - - if (empty($section)) - return array_keys($this->_config_data[$file_name]["vars"]); - else - return array_keys($this->_config_data[$file_name]["sections"][$section]["vars"]); - } - - - /** - * Clear loaded config data for a certain file or all files. - * - * @param string $file_name file to clear config data for - */ - function clear($file_name = NULL) - { - if ($file_name === NULL) - $this->_config_data = array(); - else if (isset($this->_config_data[$file_name])) - $this->_config_data[$file_name] = array(); - } - - - /** - * Load a configuration file manually. - * - * @param string $file_name file name to load - * @param boolean $prepend_path whether current config path should be - * prepended to the filename - */ - function load_file($file_name, $prepend_path = true) - { - if ($prepend_path && $this->_config_path != "") - $config_file = $this->_config_path . $file_name; - else - $config_file = $file_name; - - ini_set('track_errors', true); - $fp = @fopen($config_file, "r"); - if (!is_resource($fp)) { - $this->_trigger_error_msg("Could not open config file '$config_file'"); - return false; - } - - $contents = ($size = filesize($config_file)) ? fread($fp, $size) : ''; - fclose($fp); - - $this->_config_data[$config_file] = $this->parse_contents($contents); - return true; - } - - /** - * Store the contents of a file manually. - * - * @param string $config_file file name of the related contents - * @param string $contents the file-contents to parse - */ - function set_file_contents($config_file, $contents) - { - $this->_config_data[$config_file] = $this->parse_contents($contents); - return true; - } - - /** - * parse the source of a configuration file manually. - * - * @param string $contents the file-contents to parse - */ - function parse_contents($contents) - { - if($this->fix_newlines) { - // fix mac/dos formatted newlines - $contents = preg_replace('!\r\n?!', "\n", $contents); - } - - $config_data = array(); - $config_data['sections'] = array(); - $config_data['vars'] = array(); - - /* reference to fill with data */ - $vars =& $config_data['vars']; - - /* parse file line by line */ - preg_match_all('!^.*\r?\n?!m', $contents, $match); - $lines = $match[0]; - for ($i=0, $count=count($lines); $i<$count; $i++) { - $line = $lines[$i]; - if (empty($line)) continue; - - if ( substr($line, 0, 1) == '[' && preg_match('!^\[(.*?)\]!', $line, $match) ) { - /* section found */ - if (substr($match[1], 0, 1) == '.') { - /* hidden section */ - if ($this->read_hidden) { - $section_name = substr($match[1], 1); - } else { - /* break reference to $vars to ignore hidden section */ - unset($vars); - $vars = array(); - continue; - } - } else { - $section_name = $match[1]; - } - if (!isset($config_data['sections'][$section_name])) - $config_data['sections'][$section_name] = array('vars' => array()); - $vars =& $config_data['sections'][$section_name]['vars']; - continue; - } - - if (preg_match('/^\s*(\.?\w+)\s*=\s*(.*)/s', $line, $match)) { - /* variable found */ - $var_name = rtrim($match[1]); - if (strpos($match[2], '"""') === 0) { - /* handle multiline-value */ - $lines[$i] = substr($match[2], 3); - $var_value = ''; - while ($i<$count) { - if (($pos = strpos($lines[$i], '"""')) === false) { - $var_value .= $lines[$i++]; - } else { - /* end of multiline-value */ - $var_value .= substr($lines[$i], 0, $pos); - break; - } - } - $booleanize = false; - - } else { - /* handle simple value */ - $var_value = preg_replace('/^([\'"])(.*)\1$/', '\2', rtrim($match[2])); - $booleanize = $this->booleanize; - - } - $this->_set_config_var($vars, $var_name, $var_value, $booleanize); - } - /* else unparsable line / means it is a comment / means ignore it */ - } - return $config_data; - } - - /**#@+ @access private */ - /** - * @param array &$container - * @param string $var_name - * @param mixed $var_value - * @param boolean $booleanize determines whether $var_value is converted to - * to true/false - */ - function _set_config_var(&$container, $var_name, $var_value, $booleanize) - { - if (substr($var_name, 0, 1) == '.') { - if (!$this->read_hidden) - return; - else - $var_name = substr($var_name, 1); - } - - if (!preg_match("/^[a-zA-Z_]\w*$/", $var_name)) { - $this->_trigger_error_msg("Bad variable name '$var_name'"); - return; - } - - if ($booleanize) { - if (preg_match("/^(on|true|yes)$/i", $var_value)) - $var_value = true; - else if (preg_match("/^(off|false|no)$/i", $var_value)) - $var_value = false; - } - - if (!isset($container[$var_name]) || $this->overwrite) - $container[$var_name] = $var_value; - else { - settype($container[$var_name], 'array'); - $container[$var_name][] = $var_value; - } - } - - /** - * @uses trigger_error() creates a PHP warning/error - * @param string $error_msg - * @param integer $error_type one of - */ - function _trigger_error_msg($error_msg, $error_type = E_USER_WARNING) - { - trigger_error("Config_File error: $error_msg", $error_type); - } - /**#@-*/ -} - -?> diff --git a/onyx/smarty/Smarty.class.php b/onyx/smarty/Smarty.class.php deleted file mode 100644 index 5eda787..0000000 --- a/onyx/smarty/Smarty.class.php +++ /dev/null @@ -1,1960 +0,0 @@ - - * @author Andrei Zmievski - * @package Smarty - * @version 2.6.19 - */ - -/* $Id: Smarty.class.php 2722 2007-06-18 14:29:00Z danilo $ */ - -/** - * DIR_SEP isn't used anymore, but third party apps might - */ -if(!defined('DIR_SEP')) { - define('DIR_SEP', DIRECTORY_SEPARATOR); -} - -/** - * set SMARTY_DIR to absolute path to Smarty library files. - * if not defined, include_path will be used. Sets SMARTY_DIR only if user - * application has not already defined it. - */ - -if (!defined('SMARTY_DIR')) { - define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); -} - -if (!defined('SMARTY_CORE_DIR')) { - define('SMARTY_CORE_DIR', SMARTY_DIR . 'internals' . DIRECTORY_SEPARATOR); -} - -define('SMARTY_PHP_PASSTHRU', 0); -define('SMARTY_PHP_QUOTE', 1); -define('SMARTY_PHP_REMOVE', 2); -define('SMARTY_PHP_ALLOW', 3); - -/** - * @package Smarty - */ -class Smarty -{ - /**#@+ - * Smarty Configuration Section - */ - - /** - * The name of the directory where templates are located. - * - * @var string - */ - var $template_dir = 'templates'; - - /** - * The directory where compiled templates are located. - * - * @var string - */ - var $compile_dir = 'templates_c'; - - /** - * The directory where config files are located. - * - * @var string - */ - var $config_dir = 'configs'; - - /** - * An array of directories searched for plugins. - * - * @var array - */ - var $plugins_dir = array('plugins'); - - /** - * If debugging is enabled, a debug console window will display - * when the page loads (make sure your browser allows unrequested - * popup windows) - * - * @var boolean - */ - var $debugging = false; - - /** - * When set, smarty does uses this value as error_reporting-level. - * - * @var boolean - */ - var $error_reporting = null; - - /** - * This is the path to the debug console template. If not set, - * the default one will be used. - * - * @var string - */ - var $debug_tpl = ''; - - /** - * This determines if debugging is enable-able from the browser. - *
    - *
  • NONE => no debugging control allowed
  • - *
  • URL => enable debugging when SMARTY_DEBUG is found in the URL.
  • - *
- * @link http://www.foo.dom/index.php?SMARTY_DEBUG - * @var string - */ - var $debugging_ctrl = 'NONE'; - - /** - * This tells Smarty whether to check for recompiling or not. Recompiling - * does not need to happen unless a template or config file is changed. - * Typically you enable this during development, and disable for - * production. - * - * @var boolean - */ - var $compile_check = true; - - /** - * This forces templates to compile every time. Useful for development - * or debugging. - * - * @var boolean - */ - var $force_compile = false; - - /** - * This enables template caching. - *
    - *
  • 0 = no caching
  • - *
  • 1 = use class cache_lifetime value
  • - *
  • 2 = use cache_lifetime in cache file
  • - *
- * @var integer - */ - var $caching = 0; - - /** - * The name of the directory for cache files. - * - * @var string - */ - var $cache_dir = 'cache'; - - /** - * This is the number of seconds cached content will persist. - *
    - *
  • 0 = always regenerate cache
  • - *
  • -1 = never expires
  • - *
- * - * @var integer - */ - var $cache_lifetime = 3600; - - /** - * Only used when $caching is enabled. If true, then If-Modified-Since headers - * are respected with cached content, and appropriate HTTP headers are sent. - * This way repeated hits to a cached page do not send the entire page to the - * client every time. - * - * @var boolean - */ - var $cache_modified_check = false; - - /** - * This determines how Smarty handles "" tags in templates. - * possible values: - *
    - *
  • SMARTY_PHP_PASSTHRU -> print tags as plain text
  • - *
  • SMARTY_PHP_QUOTE -> escape tags as entities
  • - *
  • SMARTY_PHP_REMOVE -> remove php tags
  • - *
  • SMARTY_PHP_ALLOW -> execute php tags
  • - *
- * - * @var integer - */ - var $php_handling = SMARTY_PHP_PASSTHRU; - - /** - * This enables template security. When enabled, many things are restricted - * in the templates that normally would go unchecked. This is useful when - * untrusted parties are editing templates and you want a reasonable level - * of security. (no direct execution of PHP in templates for example) - * - * @var boolean - */ - var $security = false; - - /** - * This is the list of template directories that are considered secure. This - * is used only if {@link $security} is enabled. One directory per array - * element. {@link $template_dir} is in this list implicitly. - * - * @var array - */ - var $secure_dir = array(); - - /** - * These are the security settings for Smarty. They are used only when - * {@link $security} is enabled. - * - * @var array - */ - var $security_settings = array( - 'PHP_HANDLING' => false, - 'IF_FUNCS' => array('array', 'list', - 'isset', 'empty', - 'count', 'sizeof', - 'in_array', 'is_array', - 'true', 'false', 'null'), - 'INCLUDE_ANY' => false, - 'PHP_TAGS' => false, - 'MODIFIER_FUNCS' => array('count'), - 'ALLOW_CONSTANTS' => false - ); - - /** - * This is an array of directories where trusted php scripts reside. - * {@link $security} is disabled during their inclusion/execution. - * - * @var array - */ - var $trusted_dir = array(); - - /** - * The left delimiter used for the template tags. - * - * @var string - */ - var $left_delimiter = '{'; - - /** - * The right delimiter used for the template tags. - * - * @var string - */ - var $right_delimiter = '}'; - - /** - * The order in which request variables are registered, similar to - * variables_order in php.ini E = Environment, G = GET, P = POST, - * C = Cookies, S = Server - * - * @var string - */ - var $request_vars_order = 'EGPCS'; - - /** - * Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false) - * are uses as request-vars or $_*[]-vars. note: if - * request_use_auto_globals is true, then $request_vars_order has - * no effect, but the php-ini-value "gpc_order" - * - * @var boolean - */ - var $request_use_auto_globals = true; - - /** - * Set this if you want different sets of compiled files for the same - * templates. This is useful for things like different languages. - * Instead of creating separate sets of templates per language, you - * set different compile_ids like 'en' and 'de'. - * - * @var string - */ - var $compile_id = null; - - /** - * This tells Smarty whether or not to use sub dirs in the cache/ and - * templates_c/ directories. sub directories better organized, but - * may not work well with PHP safe mode enabled. - * - * @var boolean - * - */ - var $use_sub_dirs = false; - - /** - * This is a list of the modifiers to apply to all template variables. - * Put each modifier in a separate array element in the order you want - * them applied. example: array('escape:"htmlall"'); - * - * @var array - */ - var $default_modifiers = array(); - - /** - * This is the resource type to be used when not specified - * at the beginning of the resource path. examples: - * $smarty->display('file:index.tpl'); - * $smarty->display('db:index.tpl'); - * $smarty->display('index.tpl'); // will use default resource type - * {include file="file:index.tpl"} - * {include file="db:index.tpl"} - * {include file="index.tpl"} {* will use default resource type *} - * - * @var array - */ - var $default_resource_type = 'file'; - - /** - * The function used for cache file handling. If not set, built-in caching is used. - * - * @var null|string function name - */ - var $cache_handler_func = null; - - /** - * This indicates which filters are automatically loaded into Smarty. - * - * @var array array of filter names - */ - var $autoload_filters = array(); - - /**#@+ - * @var boolean - */ - /** - * This tells if config file vars of the same name overwrite each other or not. - * if disabled, same name variables are accumulated in an array. - */ - var $config_overwrite = true; - - /** - * This tells whether or not to automatically booleanize config file variables. - * If enabled, then the strings "on", "true", and "yes" are treated as boolean - * true, and "off", "false" and "no" are treated as boolean false. - */ - var $config_booleanize = true; - - /** - * This tells whether hidden sections [.foobar] are readable from the - * tempalates or not. Normally you would never allow this since that is - * the point behind hidden sections: the application can access them, but - * the templates cannot. - */ - var $config_read_hidden = false; - - /** - * This tells whether or not automatically fix newlines in config files. - * It basically converts \r (mac) or \r\n (dos) to \n - */ - var $config_fix_newlines = true; - /**#@-*/ - - /** - * If a template cannot be found, this PHP function will be executed. - * Useful for creating templates on-the-fly or other special action. - * - * @var string function name - */ - var $default_template_handler_func = ''; - - /** - * The file that contains the compiler class. This can a full - * pathname, or relative to the php_include path. - * - * @var string - */ - var $compiler_file = 'Smarty_Compiler.class.php'; - - /** - * The class used for compiling templates. - * - * @var string - */ - var $compiler_class = 'Smarty_Compiler'; - - /** - * The class used to load config vars. - * - * @var string - */ - var $config_class = 'Config_File'; - -/**#@+ - * END Smarty Configuration Section - * There should be no need to touch anything below this line. - * @access private - */ - /** - * where assigned template vars are kept - * - * @var array - */ - var $_tpl_vars = array(); - - /** - * stores run-time $smarty.* vars - * - * @var null|array - */ - var $_smarty_vars = null; - - /** - * keeps track of sections - * - * @var array - */ - var $_sections = array(); - - /** - * keeps track of foreach blocks - * - * @var array - */ - var $_foreach = array(); - - /** - * keeps track of tag hierarchy - * - * @var array - */ - var $_tag_stack = array(); - - /** - * configuration object - * - * @var Config_file - */ - var $_conf_obj = null; - - /** - * loaded configuration settings - * - * @var array - */ - var $_config = array(array('vars' => array(), 'files' => array())); - - /** - * md5 checksum of the string 'Smarty' - * - * @var string - */ - var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f'; - - /** - * Smarty version number - * - * @var string - */ - var $_version = '2.6.19'; - - /** - * current template inclusion depth - * - * @var integer - */ - var $_inclusion_depth = 0; - - /** - * for different compiled templates - * - * @var string - */ - var $_compile_id = null; - - /** - * text in URL to enable debug mode - * - * @var string - */ - var $_smarty_debug_id = 'SMARTY_DEBUG'; - - /** - * debugging information for debug console - * - * @var array - */ - var $_smarty_debug_info = array(); - - /** - * info that makes up a cache file - * - * @var array - */ - var $_cache_info = array(); - - /** - * default file permissions - * - * @var integer - */ - var $_file_perms = 0644; - - /** - * default dir permissions - * - * @var integer - */ - var $_dir_perms = 0771; - - /** - * registered objects - * - * @var array - */ - var $_reg_objects = array(); - - /** - * table keeping track of plugins - * - * @var array - */ - var $_plugins = array( - 'modifier' => array(), - 'function' => array(), - 'block' => array(), - 'compiler' => array(), - 'prefilter' => array(), - 'postfilter' => array(), - 'outputfilter' => array(), - 'resource' => array(), - 'insert' => array()); - - - /** - * cache serials - * - * @var array - */ - var $_cache_serials = array(); - - /** - * name of optional cache include file - * - * @var string - */ - var $_cache_include = null; - - /** - * indicate if the current code is used in a compiled - * include - * - * @var string - */ - var $_cache_including = false; - - /**#@-*/ - /** - * The class constructor. - */ - function Smarty() - { - $this->assign('SCRIPT_NAME', isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] - : @$GLOBALS['HTTP_SERVER_VARS']['SCRIPT_NAME']); - } - - /** - * assigns values to template variables - * - * @param array|string $tpl_var the template variable name(s) - * @param mixed $value the value to assign - */ - function assign($tpl_var, $value = null) - { - if (is_array($tpl_var)){ - foreach ($tpl_var as $key => $val) { - if ($key != '') { - $this->_tpl_vars[$key] = $val; - } - } - } else { - if ($tpl_var != '') - $this->_tpl_vars[$tpl_var] = $value; - } - } - - /** - * assigns values to template variables by reference - * - * @param string $tpl_var the template variable name - * @param mixed $value the referenced value to assign - */ - function assign_by_ref($tpl_var, &$value) - { - if ($tpl_var != '') - $this->_tpl_vars[$tpl_var] = &$value; - } - - /** - * appends values to template variables - * - * @param array|string $tpl_var the template variable name(s) - * @param mixed $value the value to append - */ - function append($tpl_var, $value=null, $merge=false) - { - if (is_array($tpl_var)) { - // $tpl_var is an array, ignore $value - foreach ($tpl_var as $_key => $_val) { - if ($_key != '') { - if(!@is_array($this->_tpl_vars[$_key])) { - settype($this->_tpl_vars[$_key],'array'); - } - if($merge && is_array($_val)) { - foreach($_val as $_mkey => $_mval) { - $this->_tpl_vars[$_key][$_mkey] = $_mval; - } - } else { - $this->_tpl_vars[$_key][] = $_val; - } - } - } - } else { - if ($tpl_var != '' && isset($value)) { - if(!@is_array($this->_tpl_vars[$tpl_var])) { - settype($this->_tpl_vars[$tpl_var],'array'); - } - if($merge && is_array($value)) { - foreach($value as $_mkey => $_mval) { - $this->_tpl_vars[$tpl_var][$_mkey] = $_mval; - } - } else { - $this->_tpl_vars[$tpl_var][] = $value; - } - } - } - } - - /** - * appends values to template variables by reference - * - * @param string $tpl_var the template variable name - * @param mixed $value the referenced value to append - */ - function append_by_ref($tpl_var, &$value, $merge=false) - { - if ($tpl_var != '' && isset($value)) { - if(!@is_array($this->_tpl_vars[$tpl_var])) { - settype($this->_tpl_vars[$tpl_var],'array'); - } - if ($merge && is_array($value)) { - foreach($value as $_key => $_val) { - $this->_tpl_vars[$tpl_var][$_key] = &$value[$_key]; - } - } else { - $this->_tpl_vars[$tpl_var][] = &$value; - } - } - } - - - /** - * clear the given assigned template variable. - * - * @param string $tpl_var the template variable to clear - */ - function clear_assign($tpl_var) - { - if (is_array($tpl_var)) - foreach ($tpl_var as $curr_var) - unset($this->_tpl_vars[$curr_var]); - else - unset($this->_tpl_vars[$tpl_var]); - } - - - /** - * Registers custom function to be used in templates - * - * @param string $function the name of the template function - * @param string $function_impl the name of the PHP function to register - */ - function register_function($function, $function_impl, $cacheable=true, $cache_attrs=null) - { - $this->_plugins['function'][$function] = - array($function_impl, null, null, false, $cacheable, $cache_attrs); - - } - - /** - * Unregisters custom function - * - * @param string $function name of template function - */ - function unregister_function($function) - { - unset($this->_plugins['function'][$function]); - } - - /** - * Registers object to be used in templates - * - * @param string $object name of template object - * @param object &$object_impl the referenced PHP object to register - * @param null|array $allowed list of allowed methods (empty = all) - * @param boolean $smarty_args smarty argument format, else traditional - * @param null|array $block_functs list of methods that are block format - */ - function register_object($object, &$object_impl, $allowed = array(), $smarty_args = true, $block_methods = array()) - { - settype($allowed, 'array'); - settype($smarty_args, 'boolean'); - $this->_reg_objects[$object] = - array(&$object_impl, $allowed, $smarty_args, $block_methods); - } - - /** - * Unregisters object - * - * @param string $object name of template object - */ - function unregister_object($object) - { - unset($this->_reg_objects[$object]); - } - - - /** - * Registers block function to be used in templates - * - * @param string $block name of template block - * @param string $block_impl PHP function to register - */ - function register_block($block, $block_impl, $cacheable=true, $cache_attrs=null) - { - $this->_plugins['block'][$block] = - array($block_impl, null, null, false, $cacheable, $cache_attrs); - } - - /** - * Unregisters block function - * - * @param string $block name of template function - */ - function unregister_block($block) - { - unset($this->_plugins['block'][$block]); - } - - /** - * Registers compiler function - * - * @param string $function name of template function - * @param string $function_impl name of PHP function to register - */ - function register_compiler_function($function, $function_impl, $cacheable=true) - { - $this->_plugins['compiler'][$function] = - array($function_impl, null, null, false, $cacheable); - } - - /** - * Unregisters compiler function - * - * @param string $function name of template function - */ - function unregister_compiler_function($function) - { - unset($this->_plugins['compiler'][$function]); - } - - /** - * Registers modifier to be used in templates - * - * @param string $modifier name of template modifier - * @param string $modifier_impl name of PHP function to register - */ - function register_modifier($modifier, $modifier_impl) - { - $this->_plugins['modifier'][$modifier] = - array($modifier_impl, null, null, false); - } - - /** - * Unregisters modifier - * - * @param string $modifier name of template modifier - */ - function unregister_modifier($modifier) - { - unset($this->_plugins['modifier'][$modifier]); - } - - /** - * Registers a resource to fetch a template - * - * @param string $type name of resource - * @param array $functions array of functions to handle resource - */ - function register_resource($type, $functions) - { - if (count($functions)==4) { - $this->_plugins['resource'][$type] = - array($functions, false); - - } elseif (count($functions)==5) { - $this->_plugins['resource'][$type] = - array(array(array(&$functions[0], $functions[1]) - ,array(&$functions[0], $functions[2]) - ,array(&$functions[0], $functions[3]) - ,array(&$functions[0], $functions[4])) - ,false); - - } else { - $this->trigger_error("malformed function-list for '$type' in register_resource"); - - } - } - - /** - * Unregisters a resource - * - * @param string $type name of resource - */ - function unregister_resource($type) - { - unset($this->_plugins['resource'][$type]); - } - - /** - * Registers a prefilter function to apply - * to a template before compiling - * - * @param callback $function - */ - function register_prefilter($function) - { - $this->_plugins['prefilter'][$this->_get_filter_name($function)] - = array($function, null, null, false); - } - - /** - * Unregisters a prefilter function - * - * @param callback $function - */ - function unregister_prefilter($function) - { - unset($this->_plugins['prefilter'][$this->_get_filter_name($function)]); - } - - /** - * Registers a postfilter function to apply - * to a compiled template after compilation - * - * @param callback $function - */ - function register_postfilter($function) - { - $this->_plugins['postfilter'][$this->_get_filter_name($function)] - = array($function, null, null, false); - } - - /** - * Unregisters a postfilter function - * - * @param callback $function - */ - function unregister_postfilter($function) - { - unset($this->_plugins['postfilter'][$this->_get_filter_name($function)]); - } - - /** - * Registers an output filter function to apply - * to a template output - * - * @param callback $function - */ - function register_outputfilter($function) - { - $this->_plugins['outputfilter'][$this->_get_filter_name($function)] - = array($function, null, null, false); - } - - /** - * Unregisters an outputfilter function - * - * @param callback $function - */ - function unregister_outputfilter($function) - { - unset($this->_plugins['outputfilter'][$this->_get_filter_name($function)]); - } - - /** - * load a filter of specified type and name - * - * @param string $type filter type - * @param string $name filter name - */ - function load_filter($type, $name) - { - switch ($type) { - case 'output': - $_params = array('plugins' => array(array($type . 'filter', $name, null, null, false))); - require_once(SMARTY_CORE_DIR . 'core.load_plugins.php'); - smarty_core_load_plugins($_params, $this); - break; - - case 'pre': - case 'post': - if (!isset($this->_plugins[$type . 'filter'][$name])) - $this->_plugins[$type . 'filter'][$name] = false; - break; - } - } - - /** - * clear cached content for the given template and cache id - * - * @param string $tpl_file name of template file - * @param string $cache_id name of cache_id - * @param string $compile_id name of compile_id - * @param string $exp_time expiration time - * @return boolean - */ - function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null) - { - - if (!isset($compile_id)) - $compile_id = $this->compile_id; - - if (!isset($tpl_file)) - $compile_id = null; - - $_auto_id = $this->_get_auto_id($cache_id, $compile_id); - - if (!empty($this->cache_handler_func)) { - return call_user_func_array($this->cache_handler_func, - array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time)); - } else { - $_params = array('auto_base' => $this->cache_dir, - 'auto_source' => $tpl_file, - 'auto_id' => $_auto_id, - 'exp_time' => $exp_time); - require_once(SMARTY_CORE_DIR . 'core.rm_auto.php'); - return smarty_core_rm_auto($_params, $this); - } - - } - - - /** - * clear the entire contents of cache (all templates) - * - * @param string $exp_time expire time - * @return boolean results of {@link smarty_core_rm_auto()} - */ - function clear_all_cache($exp_time = null) - { - return $this->clear_cache(null, null, null, $exp_time); - } - - - /** - * test to see if valid cache exists for this template - * - * @param string $tpl_file name of template file - * @param string $cache_id - * @param string $compile_id - * @return string|false results of {@link _read_cache_file()} - */ - function is_cached($tpl_file, $cache_id = null, $compile_id = null) - { - if (!$this->caching) - return false; - - if (!isset($compile_id)) - $compile_id = $this->compile_id; - - $_params = array( - 'tpl_file' => $tpl_file, - 'cache_id' => $cache_id, - 'compile_id' => $compile_id - ); - require_once(SMARTY_CORE_DIR . 'core.read_cache_file.php'); - return smarty_core_read_cache_file($_params, $this); - } - - - /** - * clear all the assigned template variables. - * - */ - function clear_all_assign() - { - $this->_tpl_vars = array(); - } - - /** - * clears compiled version of specified template resource, - * or all compiled template files if one is not specified. - * This function is for advanced use only, not normally needed. - * - * @param string $tpl_file - * @param string $compile_id - * @param string $exp_time - * @return boolean results of {@link smarty_core_rm_auto()} - */ - function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null) - { - if (!isset($compile_id)) { - $compile_id = $this->compile_id; - } - $_params = array('auto_base' => $this->compile_dir, - 'auto_source' => $tpl_file, - 'auto_id' => $compile_id, - 'exp_time' => $exp_time, - 'extensions' => array('.inc', '.php')); - require_once(SMARTY_CORE_DIR . 'core.rm_auto.php'); - return smarty_core_rm_auto($_params, $this); - } - - /** - * Checks whether requested template exists. - * - * @param string $tpl_file - * @return boolean - */ - function template_exists($tpl_file) - { - $_params = array('resource_name' => $tpl_file, 'quiet'=>true, 'get_source'=>false); - return $this->_fetch_resource_info($_params); - } - - /** - * Returns an array containing template variables - * - * @param string $name - * @param string $type - * @return array - */ - function &get_template_vars($name=null) - { - if(!isset($name)) { - return $this->_tpl_vars; - } elseif(isset($this->_tpl_vars[$name])) { - return $this->_tpl_vars[$name]; - } else { - // var non-existant, return valid reference - $_tmp = null; - return $_tmp; - } - } - - /** - * Returns an array containing config variables - * - * @param string $name - * @param string $type - * @return array - */ - function &get_config_vars($name=null) - { - if(!isset($name) && is_array($this->_config[0])) { - return $this->_config[0]['vars']; - } else if(isset($this->_config[0]['vars'][$name])) { - return $this->_config[0]['vars'][$name]; - } else { - // var non-existant, return valid reference - $_tmp = null; - return $_tmp; - } - } - - /** - * trigger Smarty error - * - * @param string $error_msg - * @param integer $error_type - */ - function trigger_error($error_msg, $error_type = E_USER_WARNING) - { - trigger_error("Smarty error: $error_msg", $error_type); - } - - - /** - * executes & displays the template results - * - * @param string $resource_name - * @param string $cache_id - * @param string $compile_id - */ - function display($resource_name, $cache_id = null, $compile_id = null) - { - $this->fetch($resource_name, $cache_id, $compile_id, true); - } - - /** - * executes & returns or displays the template results - * - * @param string $resource_name - * @param string $cache_id - * @param string $compile_id - * @param boolean $display - */ - function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false) - { - static $_cache_info = array(); - - $_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting) - ? $this->error_reporting : error_reporting() & ~E_NOTICE); - - if (!$this->debugging && $this->debugging_ctrl == 'URL') { - $_query_string = $this->request_use_auto_globals ? $_SERVER['QUERY_STRING'] : $GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING']; - if (@strstr($_query_string, $this->_smarty_debug_id)) { - if (@strstr($_query_string, $this->_smarty_debug_id . '=on')) { - // enable debugging for this browser session - @setcookie('SMARTY_DEBUG', true); - $this->debugging = true; - } elseif (@strstr($_query_string, $this->_smarty_debug_id . '=off')) { - // disable debugging for this browser session - @setcookie('SMARTY_DEBUG', false); - $this->debugging = false; - } else { - // enable debugging for this page - $this->debugging = true; - } - } else { - $this->debugging = (bool)($this->request_use_auto_globals ? @$_COOKIE['SMARTY_DEBUG'] : @$GLOBALS['HTTP_COOKIE_VARS']['SMARTY_DEBUG']); - } - } - - if ($this->debugging) { - // capture time for debugging info - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $_debug_start_time = smarty_core_get_microtime($_params, $this); - $this->_smarty_debug_info[] = array('type' => 'template', - 'filename' => $resource_name, - 'depth' => 0); - $_included_tpls_idx = count($this->_smarty_debug_info) - 1; - } - - if (!isset($compile_id)) { - $compile_id = $this->compile_id; - } - - $this->_compile_id = $compile_id; - $this->_inclusion_depth = 0; - - if ($this->caching) { - // save old cache_info, initialize cache_info - array_push($_cache_info, $this->_cache_info); - $this->_cache_info = array(); - $_params = array( - 'tpl_file' => $resource_name, - 'cache_id' => $cache_id, - 'compile_id' => $compile_id, - 'results' => null - ); - require_once(SMARTY_CORE_DIR . 'core.read_cache_file.php'); - if (smarty_core_read_cache_file($_params, $this)) { - $_smarty_results = $_params['results']; - if (!empty($this->_cache_info['insert_tags'])) { - $_params = array('plugins' => $this->_cache_info['insert_tags']); - require_once(SMARTY_CORE_DIR . 'core.load_plugins.php'); - smarty_core_load_plugins($_params, $this); - $_params = array('results' => $_smarty_results); - require_once(SMARTY_CORE_DIR . 'core.process_cached_inserts.php'); - $_smarty_results = smarty_core_process_cached_inserts($_params, $this); - } - if (!empty($this->_cache_info['cache_serials'])) { - $_params = array('results' => $_smarty_results); - require_once(SMARTY_CORE_DIR . 'core.process_compiled_include.php'); - $_smarty_results = smarty_core_process_compiled_include($_params, $this); - } - - - if ($display) { - if ($this->debugging) - { - // capture time for debugging info - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $_debug_start_time; - require_once(SMARTY_CORE_DIR . 'core.display_debug_console.php'); - $_smarty_results .= smarty_core_display_debug_console($_params, $this); - } - if ($this->cache_modified_check) { - $_server_vars = ($this->request_use_auto_globals) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS']; - $_last_modified_date = @substr($_server_vars['HTTP_IF_MODIFIED_SINCE'], 0, strpos($_server_vars['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3); - $_gmt_mtime = gmdate('D, d M Y H:i:s', $this->_cache_info['timestamp']).' GMT'; - if (@count($this->_cache_info['insert_tags']) == 0 - && !$this->_cache_serials - && $_gmt_mtime == $_last_modified_date) { - if (php_sapi_name()=='cgi') - header('Status: 304 Not Modified'); - else - header('HTTP/1.1 304 Not Modified'); - - } else { - header('Last-Modified: '.$_gmt_mtime); - echo $_smarty_results; - } - } else { - echo $_smarty_results; - } - error_reporting($_smarty_old_error_level); - // restore initial cache_info - $this->_cache_info = array_pop($_cache_info); - return true; - } else { - error_reporting($_smarty_old_error_level); - // restore initial cache_info - $this->_cache_info = array_pop($_cache_info); - return $_smarty_results; - } - } else { - $this->_cache_info['template'][$resource_name] = true; - if ($this->cache_modified_check && $display) { - header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); - } - } - } - - // load filters that are marked as autoload - if (count($this->autoload_filters)) { - foreach ($this->autoload_filters as $_filter_type => $_filters) { - foreach ($_filters as $_filter) { - $this->load_filter($_filter_type, $_filter); - } - } - } - - $_smarty_compile_path = $this->_get_compile_path($resource_name); - - // if we just need to display the results, don't perform output - // buffering - for speed - $_cache_including = $this->_cache_including; - $this->_cache_including = false; - if ($display && !$this->caching && count($this->_plugins['outputfilter']) == 0) { - if ($this->_is_compiled($resource_name, $_smarty_compile_path) - || $this->_compile_resource($resource_name, $_smarty_compile_path)) - { - include($_smarty_compile_path); - } - } else { - ob_start(); - if ($this->_is_compiled($resource_name, $_smarty_compile_path) - || $this->_compile_resource($resource_name, $_smarty_compile_path)) - { - include($_smarty_compile_path); - } - $_smarty_results = ob_get_contents(); - ob_end_clean(); - - foreach ((array)$this->_plugins['outputfilter'] as $_output_filter) { - $_smarty_results = call_user_func_array($_output_filter[0], array($_smarty_results, &$this)); - } - } - - if ($this->caching) { - $_params = array('tpl_file' => $resource_name, - 'cache_id' => $cache_id, - 'compile_id' => $compile_id, - 'results' => $_smarty_results); - require_once(SMARTY_CORE_DIR . 'core.write_cache_file.php'); - smarty_core_write_cache_file($_params, $this); - require_once(SMARTY_CORE_DIR . 'core.process_cached_inserts.php'); - $_smarty_results = smarty_core_process_cached_inserts($_params, $this); - - if ($this->_cache_serials) { - // strip nocache-tags from output - $_smarty_results = preg_replace('!(\{/?nocache\:[0-9a-f]{32}#\d+\})!s' - ,'' - ,$_smarty_results); - } - // restore initial cache_info - $this->_cache_info = array_pop($_cache_info); - } - $this->_cache_including = $_cache_including; - - if ($display) { - if (isset($_smarty_results)) { echo $_smarty_results; } - if ($this->debugging) { - // capture time for debugging info - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = (smarty_core_get_microtime($_params, $this) - $_debug_start_time); - require_once(SMARTY_CORE_DIR . 'core.display_debug_console.php'); - echo smarty_core_display_debug_console($_params, $this); - } - error_reporting($_smarty_old_error_level); - return; - } else { - error_reporting($_smarty_old_error_level); - if (isset($_smarty_results)) { return $_smarty_results; } - } - } - - /** - * load configuration values - * - * @param string $file - * @param string $section - * @param string $scope - */ - function config_load($file, $section = null, $scope = 'global') - { - require_once($this->_get_plugin_filepath('function', 'config_load')); - smarty_function_config_load(array('file' => $file, 'section' => $section, 'scope' => $scope), $this); - } - - /** - * return a reference to a registered object - * - * @param string $name - * @return object - */ - function &get_registered_object($name) { - if (!isset($this->_reg_objects[$name])) - $this->_trigger_fatal_error("'$name' is not a registered object"); - - if (!is_object($this->_reg_objects[$name][0])) - $this->_trigger_fatal_error("registered '$name' is not an object"); - - return $this->_reg_objects[$name][0]; - } - - /** - * clear configuration values - * - * @param string $var - */ - function clear_config($var = null) - { - if(!isset($var)) { - // clear all values - $this->_config = array(array('vars' => array(), - 'files' => array())); - } else { - unset($this->_config[0]['vars'][$var]); - } - } - - /** - * get filepath of requested plugin - * - * @param string $type - * @param string $name - * @return string|false - */ - function _get_plugin_filepath($type, $name) - { - $_params = array('type' => $type, 'name' => $name); - require_once(SMARTY_CORE_DIR . 'core.assemble_plugin_filepath.php'); - return smarty_core_assemble_plugin_filepath($_params, $this); - } - - /** - * test if resource needs compiling - * - * @param string $resource_name - * @param string $compile_path - * @return boolean - */ - function _is_compiled($resource_name, $compile_path) - { - if (!$this->force_compile && file_exists($compile_path)) { - if (!$this->compile_check) { - // no need to check compiled file - return true; - } else { - // get file source and timestamp - $_params = array('resource_name' => $resource_name, 'get_source'=>false); - if (!$this->_fetch_resource_info($_params)) { - return false; - } - if ($_params['resource_timestamp'] <= filemtime($compile_path)) { - // template not expired, no recompile - return true; - } else { - // compile template - return false; - } - } - } else { - // compiled template does not exist, or forced compile - return false; - } - } - - /** - * compile the template - * - * @param string $resource_name - * @param string $compile_path - * @return boolean - */ - function _compile_resource($resource_name, $compile_path) - { - - $_params = array('resource_name' => $resource_name); - if (!$this->_fetch_resource_info($_params)) { - return false; - } - - $_source_content = $_params['source_content']; - $_cache_include = substr($compile_path, 0, -4).'.inc'; - - if ($this->_compile_source($resource_name, $_source_content, $_compiled_content, $_cache_include)) { - // if a _cache_serial was set, we also have to write an include-file: - if ($this->_cache_include_info) { - require_once(SMARTY_CORE_DIR . 'core.write_compiled_include.php'); - smarty_core_write_compiled_include(array_merge($this->_cache_include_info, array('compiled_content'=>$_compiled_content, 'resource_name'=>$resource_name)), $this); - } - - $_params = array('compile_path'=>$compile_path, 'compiled_content' => $_compiled_content); - require_once(SMARTY_CORE_DIR . 'core.write_compiled_resource.php'); - smarty_core_write_compiled_resource($_params, $this); - - return true; - } else { - return false; - } - - } - - /** - * compile the given source - * - * @param string $resource_name - * @param string $source_content - * @param string $compiled_content - * @return boolean - */ - function _compile_source($resource_name, &$source_content, &$compiled_content, $cache_include_path=null) - { - if (file_exists(SMARTY_DIR . $this->compiler_file)) { - require_once(SMARTY_DIR . $this->compiler_file); - } else { - // use include_path - require_once($this->compiler_file); - } - - - $smarty_compiler = new $this->compiler_class; - - $smarty_compiler->template_dir = $this->template_dir; - $smarty_compiler->compile_dir = $this->compile_dir; - $smarty_compiler->plugins_dir = $this->plugins_dir; - $smarty_compiler->config_dir = $this->config_dir; - $smarty_compiler->force_compile = $this->force_compile; - $smarty_compiler->caching = $this->caching; - $smarty_compiler->php_handling = $this->php_handling; - $smarty_compiler->left_delimiter = $this->left_delimiter; - $smarty_compiler->right_delimiter = $this->right_delimiter; - $smarty_compiler->_version = $this->_version; - $smarty_compiler->security = $this->security; - $smarty_compiler->secure_dir = $this->secure_dir; - $smarty_compiler->security_settings = $this->security_settings; - $smarty_compiler->trusted_dir = $this->trusted_dir; - $smarty_compiler->use_sub_dirs = $this->use_sub_dirs; - $smarty_compiler->_reg_objects = &$this->_reg_objects; - $smarty_compiler->_plugins = &$this->_plugins; - $smarty_compiler->_tpl_vars = &$this->_tpl_vars; - $smarty_compiler->default_modifiers = $this->default_modifiers; - $smarty_compiler->compile_id = $this->_compile_id; - $smarty_compiler->_config = $this->_config; - $smarty_compiler->request_use_auto_globals = $this->request_use_auto_globals; - - if (isset($cache_include_path) && isset($this->_cache_serials[$cache_include_path])) { - $smarty_compiler->_cache_serial = $this->_cache_serials[$cache_include_path]; - } - $smarty_compiler->_cache_include = $cache_include_path; - - - $_results = $smarty_compiler->_compile_file($resource_name, $source_content, $compiled_content); - - if ($smarty_compiler->_cache_serial) { - $this->_cache_include_info = array( - 'cache_serial'=>$smarty_compiler->_cache_serial - ,'plugins_code'=>$smarty_compiler->_plugins_code - ,'include_file_path' => $cache_include_path); - - } else { - $this->_cache_include_info = null; - - } - - return $_results; - } - - /** - * Get the compile path for this resource - * - * @param string $resource_name - * @return string results of {@link _get_auto_filename()} - */ - function _get_compile_path($resource_name) - { - return $this->_get_auto_filename($this->compile_dir, $resource_name, - $this->_compile_id) . '.php'; - } - - /** - * fetch the template info. Gets timestamp, and source - * if get_source is true - * - * sets $source_content to the source of the template, and - * $resource_timestamp to its time stamp - * @param string $resource_name - * @param string $source_content - * @param integer $resource_timestamp - * @param boolean $get_source - * @param boolean $quiet - * @return boolean - */ - - function _fetch_resource_info(&$params) - { - if(!isset($params['get_source'])) { $params['get_source'] = true; } - if(!isset($params['quiet'])) { $params['quiet'] = false; } - - $_return = false; - $_params = array('resource_name' => $params['resource_name']) ; - if (isset($params['resource_base_path'])) - $_params['resource_base_path'] = $params['resource_base_path']; - else - $_params['resource_base_path'] = $this->template_dir; - - if ($this->_parse_resource_name($_params)) { - $_resource_type = $_params['resource_type']; - $_resource_name = $_params['resource_name']; - switch ($_resource_type) { - case 'file': - if ($params['get_source']) { - $params['source_content'] = $this->_read_file($_resource_name); - } - $params['resource_timestamp'] = filemtime($_resource_name); - $_return = is_file($_resource_name); - break; - - default: - // call resource functions to fetch the template source and timestamp - if ($params['get_source']) { - $_source_return = isset($this->_plugins['resource'][$_resource_type]) && - call_user_func_array($this->_plugins['resource'][$_resource_type][0][0], - array($_resource_name, &$params['source_content'], &$this)); - } else { - $_source_return = true; - } - - $_timestamp_return = isset($this->_plugins['resource'][$_resource_type]) && - call_user_func_array($this->_plugins['resource'][$_resource_type][0][1], - array($_resource_name, &$params['resource_timestamp'], &$this)); - - $_return = $_source_return && $_timestamp_return; - break; - } - } - - if (!$_return) { - // see if we can get a template with the default template handler - if (!empty($this->default_template_handler_func)) { - if (!is_callable($this->default_template_handler_func)) { - $this->trigger_error("default template handler function \"$this->default_template_handler_func\" doesn't exist."); - } else { - $_return = call_user_func_array( - $this->default_template_handler_func, - array($_params['resource_type'], $_params['resource_name'], &$params['source_content'], &$params['resource_timestamp'], &$this)); - } - } - } - - if (!$_return) { - if (!$params['quiet']) { - $this->trigger_error('unable to read resource: "' . $params['resource_name'] . '"'); - } - } else if ($_return && $this->security) { - require_once(SMARTY_CORE_DIR . 'core.is_secure.php'); - if (!smarty_core_is_secure($_params, $this)) { - if (!$params['quiet']) - $this->trigger_error('(secure mode) accessing "' . $params['resource_name'] . '" is not allowed'); - $params['source_content'] = null; - $params['resource_timestamp'] = null; - return false; - } - } - return $_return; - } - - - /** - * parse out the type and name from the resource - * - * @param string $resource_base_path - * @param string $resource_name - * @param string $resource_type - * @param string $resource_name - * @return boolean - */ - - function _parse_resource_name(&$params) - { - - // split tpl_path by the first colon - $_resource_name_parts = explode(':', $params['resource_name'], 2); - - if (count($_resource_name_parts) == 1) { - // no resource type given - $params['resource_type'] = $this->default_resource_type; - $params['resource_name'] = $_resource_name_parts[0]; - } else { - if(strlen($_resource_name_parts[0]) == 1) { - // 1 char is not resource type, but part of filepath - $params['resource_type'] = $this->default_resource_type; - $params['resource_name'] = $params['resource_name']; - } else { - $params['resource_type'] = $_resource_name_parts[0]; - $params['resource_name'] = $_resource_name_parts[1]; - } - } - - if ($params['resource_type'] == 'file') { - if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $params['resource_name'])) { - // relative pathname to $params['resource_base_path'] - // use the first directory where the file is found - foreach ((array)$params['resource_base_path'] as $_curr_path) { - $_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name']; - if (file_exists($_fullpath) && is_file($_fullpath)) { - $params['resource_name'] = $_fullpath; - return true; - } - // didn't find the file, try include_path - $_params = array('file_path' => $_fullpath); - require_once(SMARTY_CORE_DIR . 'core.get_include_path.php'); - if(smarty_core_get_include_path($_params, $this)) { - $params['resource_name'] = $_params['new_file_path']; - return true; - } - } - return false; - } else { - /* absolute path */ - return file_exists($params['resource_name']); - } - } elseif (empty($this->_plugins['resource'][$params['resource_type']])) { - $_params = array('type' => $params['resource_type']); - require_once(SMARTY_CORE_DIR . 'core.load_resource_plugin.php'); - smarty_core_load_resource_plugin($_params, $this); - } - - return true; - } - - - /** - * Handle modifiers - * - * @param string|null $modifier_name - * @param array|null $map_array - * @return string result of modifiers - */ - function _run_mod_handler() - { - $_args = func_get_args(); - list($_modifier_name, $_map_array) = array_splice($_args, 0, 2); - list($_func_name, $_tpl_file, $_tpl_line) = - $this->_plugins['modifier'][$_modifier_name]; - - $_var = $_args[0]; - foreach ($_var as $_key => $_val) { - $_args[0] = $_val; - $_var[$_key] = call_user_func_array($_func_name, $_args); - } - return $_var; - } - - /** - * Remove starting and ending quotes from the string - * - * @param string $string - * @return string - */ - function _dequote($string) - { - if ((substr($string, 0, 1) == "'" || substr($string, 0, 1) == '"') && - substr($string, -1) == substr($string, 0, 1)) - return substr($string, 1, -1); - else - return $string; - } - - - /** - * read in a file - * - * @param string $filename - * @return string - */ - function _read_file($filename) - { - if ( file_exists($filename) && ($fd = @fopen($filename, 'rb')) ) { - $contents = ''; - while (!feof($fd)) { - $contents .= fread($fd, 8192); - } - fclose($fd); - return $contents; - } else { - return false; - } - } - - /** - * get a concrete filename for automagically created content - * - * @param string $auto_base - * @param string $auto_source - * @param string $auto_id - * @return string - * @staticvar string|null - * @staticvar string|null - */ - function _get_auto_filename($auto_base, $auto_source = null, $auto_id = null) - { - $_compile_dir_sep = $this->use_sub_dirs ? DIRECTORY_SEPARATOR : '^'; - $_return = $auto_base . DIRECTORY_SEPARATOR; - - if(isset($auto_id)) { - // make auto_id safe for directory names - $auto_id = str_replace('%7C',$_compile_dir_sep,(urlencode($auto_id))); - // split into separate directories - $_return .= $auto_id . $_compile_dir_sep; - } - - if(isset($auto_source)) { - // make source name safe for filename - $_filename = urlencode(basename($auto_source)); - $_crc32 = sprintf('%08X', crc32($auto_source)); - // prepend %% to avoid name conflicts with - // with $params['auto_id'] names - $_crc32 = substr($_crc32, 0, 2) . $_compile_dir_sep . - substr($_crc32, 0, 3) . $_compile_dir_sep . $_crc32; - $_return .= '%%' . $_crc32 . '%%' . $_filename; - } - - return $_return; - } - - /** - * unlink a file, possibly using expiration time - * - * @param string $resource - * @param integer $exp_time - */ - function _unlink($resource, $exp_time = null) - { - if(isset($exp_time)) { - if(time() - @filemtime($resource) >= $exp_time) { - return @unlink($resource); - } - } else { - return @unlink($resource); - } - } - - /** - * returns an auto_id for auto-file-functions - * - * @param string $cache_id - * @param string $compile_id - * @return string|null - */ - function _get_auto_id($cache_id=null, $compile_id=null) { - if (isset($cache_id)) - return (isset($compile_id)) ? $cache_id . '|' . $compile_id : $cache_id; - elseif(isset($compile_id)) - return $compile_id; - else - return null; - } - - /** - * trigger Smarty plugin error - * - * @param string $error_msg - * @param string $tpl_file - * @param integer $tpl_line - * @param string $file - * @param integer $line - * @param integer $error_type - */ - function _trigger_fatal_error($error_msg, $tpl_file = null, $tpl_line = null, - $file = null, $line = null, $error_type = E_USER_ERROR) - { - if(isset($file) && isset($line)) { - $info = ' ('.basename($file).", line $line)"; - } else { - $info = ''; - } - if (isset($tpl_line) && isset($tpl_file)) { - $this->trigger_error('[in ' . $tpl_file . ' line ' . $tpl_line . "]: $error_msg$info", $error_type); - } else { - $this->trigger_error($error_msg . $info, $error_type); - } - } - - - /** - * callback function for preg_replace, to call a non-cacheable block - * @return string - */ - function _process_compiled_include_callback($match) { - $_func = '_smarty_tplfunc_'.$match[2].'_'.$match[3]; - ob_start(); - $_func($this); - $_ret = ob_get_contents(); - ob_end_clean(); - return $_ret; - } - - - /** - * called for included templates - * - * @param string $_smarty_include_tpl_file - * @param string $_smarty_include_vars - */ - - // $_smarty_include_tpl_file, $_smarty_include_vars - - function _smarty_include($params) - { - if ($this->debugging) { - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $debug_start_time = smarty_core_get_microtime($_params, $this); - $this->_smarty_debug_info[] = array('type' => 'template', - 'filename' => $params['smarty_include_tpl_file'], - 'depth' => ++$this->_inclusion_depth); - $included_tpls_idx = count($this->_smarty_debug_info) - 1; - } - - $this->_tpl_vars = array_merge($this->_tpl_vars, $params['smarty_include_vars']); - - // config vars are treated as local, so push a copy of the - // current ones onto the front of the stack - array_unshift($this->_config, $this->_config[0]); - - $_smarty_compile_path = $this->_get_compile_path($params['smarty_include_tpl_file']); - - - if ($this->_is_compiled($params['smarty_include_tpl_file'], $_smarty_compile_path) - || $this->_compile_resource($params['smarty_include_tpl_file'], $_smarty_compile_path)) - { - include($_smarty_compile_path); - } - - // pop the local vars off the front of the stack - array_shift($this->_config); - - $this->_inclusion_depth--; - - if ($this->debugging) { - // capture time for debugging info - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $this->_smarty_debug_info[$included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $debug_start_time; - } - - if ($this->caching) { - $this->_cache_info['template'][$params['smarty_include_tpl_file']] = true; - } - } - - - /** - * get or set an array of cached attributes for function that is - * not cacheable - * @return array - */ - function &_smarty_cache_attrs($cache_serial, $count) { - $_cache_attrs =& $this->_cache_info['cache_attrs'][$cache_serial][$count]; - - if ($this->_cache_including) { - /* return next set of cache_attrs */ - $_return = current($_cache_attrs); - next($_cache_attrs); - return $_return; - - } else { - /* add a reference to a new set of cache_attrs */ - $_cache_attrs[] = array(); - return $_cache_attrs[count($_cache_attrs)-1]; - - } - - } - - - /** - * wrapper for include() retaining $this - * @return mixed - */ - function _include($filename, $once=false, $params=null) - { - if ($once) { - return include_once($filename); - } else { - return include($filename); - } - } - - - /** - * wrapper for eval() retaining $this - * @return mixed - */ - function _eval($code, $params=null) - { - return eval($code); - } - - /** - * Extracts the filter name from the given callback - * - * @param callback $function - * @return string - */ - function _get_filter_name($function) - { - if (is_array($function)) { - $_class_name = (is_object($function[0]) ? - get_class($function[0]) : $function[0]); - return $_class_name . '_' . $function[1]; - } - else { - return $function; - } - } - - /**#@-*/ - -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/Smarty_Compiler.class.php b/onyx/smarty/Smarty_Compiler.class.php deleted file mode 100644 index 52466d3..0000000 --- a/onyx/smarty/Smarty_Compiler.class.php +++ /dev/null @@ -1,2325 +0,0 @@ - - * @author Andrei Zmievski - * @version 2.6.19 - * @copyright 2001-2005 New Digital Group, Inc. - * @package Smarty - */ - -/* $Id: Smarty_Compiler.class.php 2736 2007-09-16 14:47:53Z mohrt $ */ - -/** - * Template compiling class - * @package Smarty - */ -class Smarty_Compiler extends Smarty { - - // internal vars - /**#@+ - * @access private - */ - var $_folded_blocks = array(); // keeps folded template blocks - var $_current_file = null; // the current template being compiled - var $_current_line_no = 1; // line number for error messages - var $_capture_stack = array(); // keeps track of nested capture buffers - var $_plugin_info = array(); // keeps track of plugins to load - var $_init_smarty_vars = false; - var $_permitted_tokens = array('true','false','yes','no','on','off','null'); - var $_db_qstr_regexp = null; // regexps are setup in the constructor - var $_si_qstr_regexp = null; - var $_qstr_regexp = null; - var $_func_regexp = null; - var $_reg_obj_regexp = null; - var $_var_bracket_regexp = null; - var $_num_const_regexp = null; - var $_dvar_guts_regexp = null; - var $_dvar_regexp = null; - var $_cvar_regexp = null; - var $_svar_regexp = null; - var $_avar_regexp = null; - var $_mod_regexp = null; - var $_var_regexp = null; - var $_parenth_param_regexp = null; - var $_func_call_regexp = null; - var $_obj_ext_regexp = null; - var $_obj_start_regexp = null; - var $_obj_params_regexp = null; - var $_obj_call_regexp = null; - var $_cacheable_state = 0; - var $_cache_attrs_count = 0; - var $_nocache_count = 0; - var $_cache_serial = null; - var $_cache_include = null; - - var $_strip_depth = 0; - var $_additional_newline = "\n"; - - /**#@-*/ - /** - * The class constructor. - */ - function Smarty_Compiler() - { - // matches double quoted strings: - // "foobar" - // "foo\"bar" - $this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"'; - - // matches single quoted strings: - // 'foobar' - // 'foo\'bar' - $this->_si_qstr_regexp = '\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\''; - - // matches single or double quoted strings - $this->_qstr_regexp = '(?:' . $this->_db_qstr_regexp . '|' . $this->_si_qstr_regexp . ')'; - - // matches bracket portion of vars - // [0] - // [foo] - // [$bar] - $this->_var_bracket_regexp = '\[\$?[\w\.]+\]'; - - // matches numerical constants - // 30 - // -12 - // 13.22 - $this->_num_const_regexp = '(?:\-?\d+(?:\.\d+)?)'; - - // matches $ vars (not objects): - // $foo - // $foo.bar - // $foo.bar.foobar - // $foo[0] - // $foo[$bar] - // $foo[5][blah] - // $foo[5].bar[$foobar][4] - $this->_dvar_math_regexp = '(?:[\+\*\/\%]|(?:-(?!>)))'; - $this->_dvar_math_var_regexp = '[\$\w\.\+\-\*\/\%\d\>\[\]]'; - $this->_dvar_guts_regexp = '\w+(?:' . $this->_var_bracket_regexp - . ')*(?:\.\$?\w+(?:' . $this->_var_bracket_regexp . ')*)*(?:' . $this->_dvar_math_regexp . '(?:' . $this->_num_const_regexp . '|' . $this->_dvar_math_var_regexp . ')*)?'; - $this->_dvar_regexp = '\$' . $this->_dvar_guts_regexp; - - // matches config vars: - // #foo# - // #foobar123_foo# - $this->_cvar_regexp = '\#\w+\#'; - - // matches section vars: - // %foo.bar% - $this->_svar_regexp = '\%\w+\.\w+\%'; - - // matches all valid variables (no quotes, no modifiers) - $this->_avar_regexp = '(?:' . $this->_dvar_regexp . '|' - . $this->_cvar_regexp . '|' . $this->_svar_regexp . ')'; - - // matches valid variable syntax: - // $foo - // $foo - // #foo# - // #foo# - // "text" - // "text" - $this->_var_regexp = '(?:' . $this->_avar_regexp . '|' . $this->_qstr_regexp . ')'; - - // matches valid object call (one level of object nesting allowed in parameters): - // $foo->bar - // $foo->bar() - // $foo->bar("text") - // $foo->bar($foo, $bar, "text") - // $foo->bar($foo, "foo") - // $foo->bar->foo() - // $foo->bar->foo->bar() - // $foo->bar($foo->bar) - // $foo->bar($foo->bar()) - // $foo->bar($foo->bar($blah,$foo,44,"foo",$foo[0].bar)) - $this->_obj_ext_regexp = '\->(?:\$?' . $this->_dvar_guts_regexp . ')'; - $this->_obj_restricted_param_regexp = '(?:' - . '(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')(?:' . $this->_obj_ext_regexp . '(?:\((?:(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')' - . '(?:\s*,\s*(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . '))*)?\))?)*)'; - $this->_obj_single_param_regexp = '(?:\w+|' . $this->_obj_restricted_param_regexp . '(?:\s*,\s*(?:(?:\w+|' - . $this->_var_regexp . $this->_obj_restricted_param_regexp . ')))*)'; - $this->_obj_params_regexp = '\((?:' . $this->_obj_single_param_regexp - . '(?:\s*,\s*' . $this->_obj_single_param_regexp . ')*)?\)'; - $this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)'; - $this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?(?:' . $this->_dvar_math_regexp . '(?:' . $this->_num_const_regexp . '|' . $this->_dvar_math_var_regexp . ')*)?)'; - - // matches valid modifier syntax: - // |foo - // |@foo - // |foo:"bar" - // |foo:$bar - // |foo:"bar":$foobar - // |foo|bar - // |foo:$foo->bar - $this->_mod_regexp = '(?:\|@?\w+(?::(?:\w+|' . $this->_num_const_regexp . '|' - . $this->_obj_call_regexp . '|' . $this->_avar_regexp . '|' . $this->_qstr_regexp .'))*)'; - - // matches valid function name: - // foo123 - // _foo_bar - $this->_func_regexp = '[a-zA-Z_]\w*'; - - // matches valid registered object: - // foo->bar - $this->_reg_obj_regexp = '[a-zA-Z_]\w*->[a-zA-Z_]\w*'; - - // matches valid parameter values: - // true - // $foo - // $foo|bar - // #foo# - // #foo#|bar - // "text" - // "text"|bar - // $foo->bar - $this->_param_regexp = '(?:\s*(?:' . $this->_obj_call_regexp . '|' - . $this->_var_regexp . '|' . $this->_num_const_regexp . '|\w+)(?>' . $this->_mod_regexp . '*)\s*)'; - - // matches valid parenthesised function parameters: - // - // "text" - // $foo, $bar, "text" - // $foo|bar, "foo"|bar, $foo->bar($foo)|bar - $this->_parenth_param_regexp = '(?:\((?:\w+|' - . $this->_param_regexp . '(?:\s*,\s*(?:(?:\w+|' - . $this->_param_regexp . ')))*)?\))'; - - // matches valid function call: - // foo() - // foo_bar($foo) - // _foo_bar($foo,"bar") - // foo123($foo,$foo->bar(),"foo") - $this->_func_call_regexp = '(?:' . $this->_func_regexp . '\s*(?:' - . $this->_parenth_param_regexp . '))'; - } - - /** - * compile a resource - * - * sets $compiled_content to the compiled source - * @param string $resource_name - * @param string $source_content - * @param string $compiled_content - * @return true - */ - function _compile_file($resource_name, $source_content, &$compiled_content) - { - - if ($this->security) { - // do not allow php syntax to be executed unless specified - if ($this->php_handling == SMARTY_PHP_ALLOW && - !$this->security_settings['PHP_HANDLING']) { - $this->php_handling = SMARTY_PHP_PASSTHRU; - } - } - - $this->_load_filters(); - - $this->_current_file = $resource_name; - $this->_current_line_no = 1; - $ldq = preg_quote($this->left_delimiter, '~'); - $rdq = preg_quote($this->right_delimiter, '~'); - - // run template source through prefilter functions - if (count($this->_plugins['prefilter']) > 0) { - foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) { - if ($prefilter === false) continue; - if ($prefilter[3] || is_callable($prefilter[0])) { - $source_content = call_user_func_array($prefilter[0], - array($source_content, &$this)); - $this->_plugins['prefilter'][$filter_name][3] = true; - } else { - $this->_trigger_fatal_error("[plugin] prefilter '$filter_name' is not implemented"); - } - } - } - - /* fetch all special blocks */ - $search = "~{$ldq}\*(.*?)\*{$rdq}|{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}|{$ldq}\s*php\s*{$rdq}(.*?){$ldq}\s*/php\s*{$rdq}~s"; - - preg_match_all($search, $source_content, $match, PREG_SET_ORDER); - $this->_folded_blocks = $match; - reset($this->_folded_blocks); - - /* replace special blocks by "{php}" */ - $source_content = preg_replace($search.'e', "'" - . $this->_quote_replace($this->left_delimiter) . 'php' - . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'" - . $this->_quote_replace($this->right_delimiter) - . "'" - , $source_content); - - /* Gather all template tags. */ - preg_match_all("~{$ldq}\s*(.*?)\s*{$rdq}~s", $source_content, $_match); - $template_tags = $_match[1]; - /* Split content by template tags to obtain non-template content. */ - $text_blocks = preg_split("~{$ldq}.*?{$rdq}~s", $source_content); - - /* loop through text blocks */ - for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb < $for_max; $curr_tb++) { - /* match anything resembling php tags */ - if (preg_match_all('~(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?\s*php\s*[\"\']?)~is', $text_blocks[$curr_tb], $sp_match)) { - /* replace tags with placeholders to prevent recursive replacements */ - $sp_match[1] = array_unique($sp_match[1]); - usort($sp_match[1], '_smarty_sort_length'); - for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) { - $text_blocks[$curr_tb] = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$text_blocks[$curr_tb]); - } - /* process each one */ - for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) { - if ($this->php_handling == SMARTY_PHP_PASSTHRU) { - /* echo php contents */ - $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', ''."\n", $text_blocks[$curr_tb]); - } else if ($this->php_handling == SMARTY_PHP_QUOTE) { - /* quote php tags */ - $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', htmlspecialchars($sp_match[1][$curr_sp]), $text_blocks[$curr_tb]); - } else if ($this->php_handling == SMARTY_PHP_REMOVE) { - /* remove php tags */ - $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '', $text_blocks[$curr_tb]); - } else { - /* SMARTY_PHP_ALLOW, but echo non php starting tags */ - $sp_match[1][$curr_sp] = preg_replace('~(<\?(?!php|=|$))~i', ''."\n", $sp_match[1][$curr_sp]); - $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', $sp_match[1][$curr_sp], $text_blocks[$curr_tb]); - } - } - } - } - - /* Compile the template tags into PHP code. */ - $compiled_tags = array(); - for ($i = 0, $for_max = count($template_tags); $i < $for_max; $i++) { - $this->_current_line_no += substr_count($text_blocks[$i], "\n"); - $compiled_tags[] = $this->_compile_tag($template_tags[$i]); - $this->_current_line_no += substr_count($template_tags[$i], "\n"); - } - if (count($this->_tag_stack)>0) { - list($_open_tag, $_line_no) = end($this->_tag_stack); - $this->_syntax_error("unclosed tag \{$_open_tag} (opened line $_line_no).", E_USER_ERROR, __FILE__, __LINE__); - return; - } - - /* Reformat $text_blocks between 'strip' and '/strip' tags, - removing spaces, tabs and newlines. */ - $strip = false; - for ($i = 0, $for_max = count($compiled_tags); $i < $for_max; $i++) { - if ($compiled_tags[$i] == '{strip}') { - $compiled_tags[$i] = ''; - $strip = true; - /* remove leading whitespaces */ - $text_blocks[$i + 1] = ltrim($text_blocks[$i + 1]); - } - if ($strip) { - /* strip all $text_blocks before the next '/strip' */ - for ($j = $i + 1; $j < $for_max; $j++) { - /* remove leading and trailing whitespaces of each line */ - $text_blocks[$j] = preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $text_blocks[$j]); - if ($compiled_tags[$j] == '{/strip}') { - /* remove trailing whitespaces from the last text_block */ - $text_blocks[$j] = rtrim($text_blocks[$j]); - } - $text_blocks[$j] = ""\'", "\\"=>"\\\\")) . "'; ?>"; - if ($compiled_tags[$j] == '{/strip}') { - $compiled_tags[$j] = "\n"; /* slurped by php, but necessary - if a newline is following the closing strip-tag */ - $strip = false; - $i = $j; - break; - } - } - } - } - $compiled_content = ''; - - $tag_guard = '%%%SMARTYOTG' . md5(uniqid(rand(), true)) . '%%%'; - - /* Interleave the compiled contents and text blocks to get the final result. */ - for ($i = 0, $for_max = count($compiled_tags); $i < $for_max; $i++) { - if ($compiled_tags[$i] == '') { - // tag result empty, remove first newline from following text block - $text_blocks[$i+1] = preg_replace('~^(\r\n|\r|\n)~', '', $text_blocks[$i+1]); - } - // replace legit PHP tags with placeholder - $text_blocks[$i] = str_replace('\n", $compiled_content); - $compiled_content = preg_replace("~(?\n", $compiled_content); - - // recover legit tags - $compiled_content = str_replace($tag_guard, '_cache_serial)) { - $compiled_content = "_cache_serials['".$this->_cache_include."'] = '".$this->_cache_serial."'; ?>" . $compiled_content; - } - - // run compiled template through postfilter functions - if (count($this->_plugins['postfilter']) > 0) { - foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) { - if ($postfilter === false) continue; - if ($postfilter[3] || is_callable($postfilter[0])) { - $compiled_content = call_user_func_array($postfilter[0], - array($compiled_content, &$this)); - $this->_plugins['postfilter'][$filter_name][3] = true; - } else { - $this->_trigger_fatal_error("Smarty plugin error: postfilter '$filter_name' is not implemented"); - } - } - } - - // put header at the top of the compiled template - $template_header = "_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n"; - $template_header .= " compiled from ".strtr(urlencode($resource_name), array('%2F'=>'/', '%3A'=>':'))." */ ?>\n"; - - /* Emit code to load needed plugins. */ - $this->_plugins_code = ''; - if (count($this->_plugin_info)) { - $_plugins_params = "array('plugins' => array("; - foreach ($this->_plugin_info as $plugin_type => $plugins) { - foreach ($plugins as $plugin_name => $plugin_info) { - $_plugins_params .= "array('$plugin_type', '$plugin_name', '" . strtr($plugin_info[0], array("'" => "\\'", "\\" => "\\\\")) . "', $plugin_info[1], "; - $_plugins_params .= $plugin_info[2] ? 'true),' : 'false),'; - } - } - $_plugins_params .= '))'; - $plugins_code = "\n"; - $template_header .= $plugins_code; - $this->_plugin_info = array(); - $this->_plugins_code = $plugins_code; - } - - if ($this->_init_smarty_vars) { - $template_header .= "\n"; - $this->_init_smarty_vars = false; - } - - $compiled_content = $template_header . $compiled_content; - return true; - } - - /** - * Compile a template tag - * - * @param string $template_tag - * @return string - */ - function _compile_tag($template_tag) - { - /* Matched comment. */ - if (substr($template_tag, 0, 1) == '*' && substr($template_tag, -1) == '*') - return ''; - - /* Split tag into two three parts: command, command modifiers and the arguments. */ - if(! preg_match('~^(?:(' . $this->_num_const_regexp . '|' . $this->_obj_call_regexp . '|' . $this->_var_regexp - . '|\/?' . $this->_reg_obj_regexp . '|\/?' . $this->_func_regexp . ')(' . $this->_mod_regexp . '*)) - (?:\s+(.*))?$ - ~xs', $template_tag, $match)) { - $this->_syntax_error("unrecognized tag: $template_tag", E_USER_ERROR, __FILE__, __LINE__); - } - - $tag_command = $match[1]; - $tag_modifier = isset($match[2]) ? $match[2] : null; - $tag_args = isset($match[3]) ? $match[3] : null; - - if (preg_match('~^' . $this->_num_const_regexp . '|' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '$~', $tag_command)) { - /* tag name is a variable or object */ - $_return = $this->_parse_var_props($tag_command . $tag_modifier); - return "" . $this->_additional_newline; - } - - /* If the tag name is a registered object, we process it. */ - if (preg_match('~^\/?' . $this->_reg_obj_regexp . '$~', $tag_command)) { - return $this->_compile_registered_object_tag($tag_command, $this->_parse_attrs($tag_args), $tag_modifier); - } - - switch ($tag_command) { - case 'include': - return $this->_compile_include_tag($tag_args); - - case 'include_php': - return $this->_compile_include_php_tag($tag_args); - - case 'if': - $this->_push_tag('if'); - return $this->_compile_if_tag($tag_args); - - case 'else': - list($_open_tag) = end($this->_tag_stack); - if ($_open_tag != 'if' && $_open_tag != 'elseif') - $this->_syntax_error('unexpected {else}', E_USER_ERROR, __FILE__, __LINE__); - else - $this->_push_tag('else'); - return ''; - - case 'elseif': - list($_open_tag) = end($this->_tag_stack); - if ($_open_tag != 'if' && $_open_tag != 'elseif') - $this->_syntax_error('unexpected {elseif}', E_USER_ERROR, __FILE__, __LINE__); - if ($_open_tag == 'if') - $this->_push_tag('elseif'); - return $this->_compile_if_tag($tag_args, true); - - case '/if': - $this->_pop_tag('if'); - return ''; - - case 'capture': - return $this->_compile_capture_tag(true, $tag_args); - - case '/capture': - return $this->_compile_capture_tag(false); - - case 'ldelim': - return $this->left_delimiter; - - case 'rdelim': - return $this->right_delimiter; - - case 'section': - $this->_push_tag('section'); - return $this->_compile_section_start($tag_args); - - case 'sectionelse': - $this->_push_tag('sectionelse'); - return ""; - break; - - case '/section': - $_open_tag = $this->_pop_tag('section'); - if ($_open_tag == 'sectionelse') - return ""; - else - return ""; - - case 'foreach': - $this->_push_tag('foreach'); - return $this->_compile_foreach_start($tag_args); - break; - - case 'foreachelse': - $this->_push_tag('foreachelse'); - return ""; - - case '/foreach': - $_open_tag = $this->_pop_tag('foreach'); - if ($_open_tag == 'foreachelse') - return ""; - else - return ""; - break; - - case 'strip': - case '/strip': - if (substr($tag_command, 0, 1)=='/') { - $this->_pop_tag('strip'); - if (--$this->_strip_depth==0) { /* outermost closing {/strip} */ - $this->_additional_newline = "\n"; - return '{' . $tag_command . '}'; - } - } else { - $this->_push_tag('strip'); - if ($this->_strip_depth++==0) { /* outermost opening {strip} */ - $this->_additional_newline = ""; - return '{' . $tag_command . '}'; - } - } - return ''; - - case 'php': - /* handle folded tags replaced by {php} */ - list(, $block) = each($this->_folded_blocks); - $this->_current_line_no += substr_count($block[0], "\n"); - /* the number of matched elements in the regexp in _compile_file() - determins the type of folded tag that was found */ - switch (count($block)) { - case 2: /* comment */ - return ''; - - case 3: /* literal */ - return ""\'", "\\"=>"\\\\")) . "'; ?>" . $this->_additional_newline; - - case 4: /* php */ - if ($this->security && !$this->security_settings['PHP_TAGS']) { - $this->_syntax_error("(secure mode) php tags not permitted", E_USER_WARNING, __FILE__, __LINE__); - return; - } - return ''; - } - break; - - case 'insert': - return $this->_compile_insert_tag($tag_args); - - default: - if ($this->_compile_compiler_tag($tag_command, $tag_args, $output)) { - return $output; - } else if ($this->_compile_block_tag($tag_command, $tag_args, $tag_modifier, $output)) { - return $output; - } else if ($this->_compile_custom_tag($tag_command, $tag_args, $tag_modifier, $output)) { - return $output; - } else { - $this->_syntax_error("unrecognized tag '$tag_command'", E_USER_ERROR, __FILE__, __LINE__); - } - - } - } - - - /** - * compile the custom compiler tag - * - * sets $output to the compiled custom compiler tag - * @param string $tag_command - * @param string $tag_args - * @param string $output - * @return boolean - */ - function _compile_compiler_tag($tag_command, $tag_args, &$output) - { - $found = false; - $have_function = true; - - /* - * First we check if the compiler function has already been registered - * or loaded from a plugin file. - */ - if (isset($this->_plugins['compiler'][$tag_command])) { - $found = true; - $plugin_func = $this->_plugins['compiler'][$tag_command][0]; - if (!is_callable($plugin_func)) { - $message = "compiler function '$tag_command' is not implemented"; - $have_function = false; - } - } - /* - * Otherwise we need to load plugin file and look for the function - * inside it. - */ - else if ($plugin_file = $this->_get_plugin_filepath('compiler', $tag_command)) { - $found = true; - - include_once $plugin_file; - - $plugin_func = 'smarty_compiler_' . $tag_command; - if (!is_callable($plugin_func)) { - $message = "plugin function $plugin_func() not found in $plugin_file\n"; - $have_function = false; - } else { - $this->_plugins['compiler'][$tag_command] = array($plugin_func, null, null, null, true); - } - } - - /* - * True return value means that we either found a plugin or a - * dynamically registered function. False means that we didn't and the - * compiler should now emit code to load custom function plugin for this - * tag. - */ - if ($found) { - if ($have_function) { - $output = call_user_func_array($plugin_func, array($tag_args, &$this)); - if($output != '') { - $output = '_push_cacheable_state('compiler', $tag_command) - . $output - . $this->_pop_cacheable_state('compiler', $tag_command) . ' ?>'; - } - } else { - $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__); - } - return true; - } else { - return false; - } - } - - - /** - * compile block function tag - * - * sets $output to compiled block function tag - * @param string $tag_command - * @param string $tag_args - * @param string $tag_modifier - * @param string $output - * @return boolean - */ - function _compile_block_tag($tag_command, $tag_args, $tag_modifier, &$output) - { - if (substr($tag_command, 0, 1) == '/') { - $start_tag = false; - $tag_command = substr($tag_command, 1); - } else - $start_tag = true; - - $found = false; - $have_function = true; - - /* - * First we check if the block function has already been registered - * or loaded from a plugin file. - */ - if (isset($this->_plugins['block'][$tag_command])) { - $found = true; - $plugin_func = $this->_plugins['block'][$tag_command][0]; - if (!is_callable($plugin_func)) { - $message = "block function '$tag_command' is not implemented"; - $have_function = false; - } - } - /* - * Otherwise we need to load plugin file and look for the function - * inside it. - */ - else if ($plugin_file = $this->_get_plugin_filepath('block', $tag_command)) { - $found = true; - - include_once $plugin_file; - - $plugin_func = 'smarty_block_' . $tag_command; - if (!function_exists($plugin_func)) { - $message = "plugin function $plugin_func() not found in $plugin_file\n"; - $have_function = false; - } else { - $this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true); - - } - } - - if (!$found) { - return false; - } else if (!$have_function) { - $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__); - return true; - } - - /* - * Even though we've located the plugin function, compilation - * happens only once, so the plugin will still need to be loaded - * at runtime for future requests. - */ - $this->_add_plugin('block', $tag_command); - - if ($start_tag) - $this->_push_tag($tag_command); - else - $this->_pop_tag($tag_command); - - if ($start_tag) { - $output = '_push_cacheable_state('block', $tag_command); - $attrs = $this->_parse_attrs($tag_args); - $_cache_attrs=''; - $arg_list = $this->_compile_arg_list('block', $tag_command, $attrs, $_cache_attrs); - $output .= "$_cache_attrs\$this->_tag_stack[] = array('$tag_command', array(".implode(',', $arg_list).')); '; - $output .= '$_block_repeat=true;' . $this->_compile_plugin_call('block', $tag_command).'($this->_tag_stack[count($this->_tag_stack)-1][1], null, $this, $_block_repeat);'; - $output .= 'while ($_block_repeat) { ob_start(); ?>'; - } else { - $output = '_compile_plugin_call('block', $tag_command).'($this->_tag_stack[count($this->_tag_stack)-1][1], $_block_content, $this, $_block_repeat)'; - if ($tag_modifier != '') { - $this->_parse_modifiers($_out_tag_text, $tag_modifier); - } - $output .= '$_block_repeat=false;echo ' . $_out_tag_text . '; } '; - $output .= " array_pop(\$this->_tag_stack); " . $this->_pop_cacheable_state('block', $tag_command) . '?>'; - } - - return true; - } - - - /** - * compile custom function tag - * - * @param string $tag_command - * @param string $tag_args - * @param string $tag_modifier - * @return string - */ - function _compile_custom_tag($tag_command, $tag_args, $tag_modifier, &$output) - { - $found = false; - $have_function = true; - - /* - * First we check if the custom function has already been registered - * or loaded from a plugin file. - */ - if (isset($this->_plugins['function'][$tag_command])) { - $found = true; - $plugin_func = $this->_plugins['function'][$tag_command][0]; - if (!is_callable($plugin_func)) { - $message = "custom function '$tag_command' is not implemented"; - $have_function = false; - } - } - /* - * Otherwise we need to load plugin file and look for the function - * inside it. - */ - else if ($plugin_file = $this->_get_plugin_filepath('function', $tag_command)) { - $found = true; - - include_once $plugin_file; - - $plugin_func = 'smarty_function_' . $tag_command; - if (!function_exists($plugin_func)) { - $message = "plugin function $plugin_func() not found in $plugin_file\n"; - $have_function = false; - } else { - $this->_plugins['function'][$tag_command] = array($plugin_func, null, null, null, true); - - } - } - - if (!$found) { - return false; - } else if (!$have_function) { - $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__); - return true; - } - - /* declare plugin to be loaded on display of the template that - we compile right now */ - $this->_add_plugin('function', $tag_command); - - $_cacheable_state = $this->_push_cacheable_state('function', $tag_command); - $attrs = $this->_parse_attrs($tag_args); - $_cache_attrs = ''; - $arg_list = $this->_compile_arg_list('function', $tag_command, $attrs, $_cache_attrs); - - $output = $this->_compile_plugin_call('function', $tag_command).'(array('.implode(',', $arg_list)."), \$this)"; - if($tag_modifier != '') { - $this->_parse_modifiers($output, $tag_modifier); - } - - if($output != '') { - $output = '_pop_cacheable_state('function', $tag_command) . "?>" . $this->_additional_newline; - } - - return true; - } - - /** - * compile a registered object tag - * - * @param string $tag_command - * @param array $attrs - * @param string $tag_modifier - * @return string - */ - function _compile_registered_object_tag($tag_command, $attrs, $tag_modifier) - { - if (substr($tag_command, 0, 1) == '/') { - $start_tag = false; - $tag_command = substr($tag_command, 1); - } else { - $start_tag = true; - } - - list($object, $obj_comp) = explode('->', $tag_command); - - $arg_list = array(); - if(count($attrs)) { - $_assign_var = false; - foreach ($attrs as $arg_name => $arg_value) { - if($arg_name == 'assign') { - $_assign_var = $arg_value; - unset($attrs['assign']); - continue; - } - if (is_bool($arg_value)) - $arg_value = $arg_value ? 'true' : 'false'; - $arg_list[] = "'$arg_name' => $arg_value"; - } - } - - if($this->_reg_objects[$object][2]) { - // smarty object argument format - $args = "array(".implode(',', (array)$arg_list)."), \$this"; - } else { - // traditional argument format - $args = implode(',', array_values($attrs)); - if (empty($args)) { - $args = ''; - } - } - - $prefix = ''; - $postfix = ''; - $newline = ''; - if(!is_object($this->_reg_objects[$object][0])) { - $this->_trigger_fatal_error("registered '$object' is not an object" , $this->_current_file, $this->_current_line_no, __FILE__, __LINE__); - } elseif(!empty($this->_reg_objects[$object][1]) && !in_array($obj_comp, $this->_reg_objects[$object][1])) { - $this->_trigger_fatal_error("'$obj_comp' is not a registered component of object '$object'", $this->_current_file, $this->_current_line_no, __FILE__, __LINE__); - } elseif(method_exists($this->_reg_objects[$object][0], $obj_comp)) { - // method - if(in_array($obj_comp, $this->_reg_objects[$object][3])) { - // block method - if ($start_tag) { - $prefix = "\$this->_tag_stack[] = array('$obj_comp', $args); "; - $prefix .= "\$_block_repeat=true; \$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], null, \$this, \$_block_repeat); "; - $prefix .= "while (\$_block_repeat) { ob_start();"; - $return = null; - $postfix = ''; - } else { - $prefix = "\$_obj_block_content = ob_get_contents(); ob_end_clean(); \$_block_repeat=false;"; - $return = "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], \$_obj_block_content, \$this, \$_block_repeat)"; - $postfix = "} array_pop(\$this->_tag_stack);"; - } - } else { - // non-block method - $return = "\$this->_reg_objects['$object'][0]->$obj_comp($args)"; - } - } else { - // property - $return = "\$this->_reg_objects['$object'][0]->$obj_comp"; - } - - if($return != null) { - if($tag_modifier != '') { - $this->_parse_modifiers($return, $tag_modifier); - } - - if(!empty($_assign_var)) { - $output = "\$this->assign('" . $this->_dequote($_assign_var) ."', $return);"; - } else { - $output = 'echo ' . $return . ';'; - $newline = $this->_additional_newline; - } - } else { - $output = ''; - } - - return '" . $newline; - } - - /** - * Compile {insert ...} tag - * - * @param string $tag_args - * @return string - */ - function _compile_insert_tag($tag_args) - { - $attrs = $this->_parse_attrs($tag_args); - $name = $this->_dequote($attrs['name']); - - if (empty($name)) { - return $this->_syntax_error("missing insert name", E_USER_ERROR, __FILE__, __LINE__); - } - - if (!preg_match('~^\w+$~', $name)) { - return $this->_syntax_error("'insert: 'name' must be an insert function name", E_USER_ERROR, __FILE__, __LINE__); - } - - if (!empty($attrs['script'])) { - $delayed_loading = true; - } else { - $delayed_loading = false; - } - - foreach ($attrs as $arg_name => $arg_value) { - if (is_bool($arg_value)) - $arg_value = $arg_value ? 'true' : 'false'; - $arg_list[] = "'$arg_name' => $arg_value"; - } - - $this->_add_plugin('insert', $name, $delayed_loading); - - $_params = "array('args' => array(".implode(', ', (array)$arg_list)."))"; - - return "" . $this->_additional_newline; - } - - /** - * Compile {include ...} tag - * - * @param string $tag_args - * @return string - */ - function _compile_include_tag($tag_args) - { - $attrs = $this->_parse_attrs($tag_args); - $arg_list = array(); - - if (empty($attrs['file'])) { - $this->_syntax_error("missing 'file' attribute in include tag", E_USER_ERROR, __FILE__, __LINE__); - } - - foreach ($attrs as $arg_name => $arg_value) { - if ($arg_name == 'file') { - $include_file = $arg_value; - continue; - } else if ($arg_name == 'assign') { - $assign_var = $arg_value; - continue; - } - if (is_bool($arg_value)) - $arg_value = $arg_value ? 'true' : 'false'; - $arg_list[] = "'$arg_name' => $arg_value"; - } - - $output = '_tpl_vars;\n"; - - - $_params = "array('smarty_include_tpl_file' => " . $include_file . ", 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))"; - $output .= "\$this->_smarty_include($_params);\n" . - "\$this->_tpl_vars = \$_smarty_tpl_vars;\n" . - "unset(\$_smarty_tpl_vars);\n"; - - if (isset($assign_var)) { - $output .= "\$this->assign(" . $assign_var . ", ob_get_contents()); ob_end_clean();\n"; - } - - $output .= ' ?>'; - - return $output; - - } - - /** - * Compile {include ...} tag - * - * @param string $tag_args - * @return string - */ - function _compile_include_php_tag($tag_args) - { - $attrs = $this->_parse_attrs($tag_args); - - if (empty($attrs['file'])) { - $this->_syntax_error("missing 'file' attribute in include_php tag", E_USER_ERROR, __FILE__, __LINE__); - } - - $assign_var = (empty($attrs['assign'])) ? '' : $this->_dequote($attrs['assign']); - $once_var = (empty($attrs['once']) || $attrs['once']=='false') ? 'false' : 'true'; - - $arg_list = array(); - foreach($attrs as $arg_name => $arg_value) { - if($arg_name != 'file' AND $arg_name != 'once' AND $arg_name != 'assign') { - if(is_bool($arg_value)) - $arg_value = $arg_value ? 'true' : 'false'; - $arg_list[] = "'$arg_name' => $arg_value"; - } - } - - $_params = "array('smarty_file' => " . $attrs['file'] . ", 'smarty_assign' => '$assign_var', 'smarty_once' => $once_var, 'smarty_include_vars' => array(".implode(',', $arg_list)."))"; - - return "" . $this->_additional_newline; - } - - - /** - * Compile {section ...} tag - * - * @param string $tag_args - * @return string - */ - function _compile_section_start($tag_args) - { - $attrs = $this->_parse_attrs($tag_args); - $arg_list = array(); - - $output = '_syntax_error("missing section name", E_USER_ERROR, __FILE__, __LINE__); - } - - $output .= "unset(\$this->_sections[$section_name]);\n"; - $section_props = "\$this->_sections[$section_name]"; - - foreach ($attrs as $attr_name => $attr_value) { - switch ($attr_name) { - case 'loop': - $output .= "{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int)\$_loop); unset(\$_loop);\n"; - break; - - case 'show': - if (is_bool($attr_value)) - $show_attr_value = $attr_value ? 'true' : 'false'; - else - $show_attr_value = "(bool)$attr_value"; - $output .= "{$section_props}['show'] = $show_attr_value;\n"; - break; - - case 'name': - $output .= "{$section_props}['$attr_name'] = $attr_value;\n"; - break; - - case 'max': - case 'start': - $output .= "{$section_props}['$attr_name'] = (int)$attr_value;\n"; - break; - - case 'step': - $output .= "{$section_props}['$attr_name'] = ((int)$attr_value) == 0 ? 1 : (int)$attr_value;\n"; - break; - - default: - $this->_syntax_error("unknown section attribute - '$attr_name'", E_USER_ERROR, __FILE__, __LINE__); - break; - } - } - - if (!isset($attrs['show'])) - $output .= "{$section_props}['show'] = true;\n"; - - if (!isset($attrs['loop'])) - $output .= "{$section_props}['loop'] = 1;\n"; - - if (!isset($attrs['max'])) - $output .= "{$section_props}['max'] = {$section_props}['loop'];\n"; - else - $output .= "if ({$section_props}['max'] < 0)\n" . - " {$section_props}['max'] = {$section_props}['loop'];\n"; - - if (!isset($attrs['step'])) - $output .= "{$section_props}['step'] = 1;\n"; - - if (!isset($attrs['start'])) - $output .= "{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n"; - else { - $output .= "if ({$section_props}['start'] < 0)\n" . - " {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" . - "else\n" . - " {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n"; - } - - $output .= "if ({$section_props}['show']) {\n"; - if (!isset($attrs['start']) && !isset($attrs['step']) && !isset($attrs['max'])) { - $output .= " {$section_props}['total'] = {$section_props}['loop'];\n"; - } else { - $output .= " {$section_props}['total'] = min(ceil(({$section_props}['step'] > 0 ? {$section_props}['loop'] - {$section_props}['start'] : {$section_props}['start']+1)/abs({$section_props}['step'])), {$section_props}['max']);\n"; - } - $output .= " if ({$section_props}['total'] == 0)\n" . - " {$section_props}['show'] = false;\n" . - "} else\n" . - " {$section_props}['total'] = 0;\n"; - - $output .= "if ({$section_props}['show']):\n"; - $output .= " - for ({$section_props}['index'] = {$section_props}['start'], {$section_props}['iteration'] = 1; - {$section_props}['iteration'] <= {$section_props}['total']; - {$section_props}['index'] += {$section_props}['step'], {$section_props}['iteration']++):\n"; - $output .= "{$section_props}['rownum'] = {$section_props}['iteration'];\n"; - $output .= "{$section_props}['index_prev'] = {$section_props}['index'] - {$section_props}['step'];\n"; - $output .= "{$section_props}['index_next'] = {$section_props}['index'] + {$section_props}['step'];\n"; - $output .= "{$section_props}['first'] = ({$section_props}['iteration'] == 1);\n"; - $output .= "{$section_props}['last'] = ({$section_props}['iteration'] == {$section_props}['total']);\n"; - - $output .= "?>"; - - return $output; - } - - - /** - * Compile {foreach ...} tag. - * - * @param string $tag_args - * @return string - */ - function _compile_foreach_start($tag_args) - { - $attrs = $this->_parse_attrs($tag_args); - $arg_list = array(); - - if (empty($attrs['from'])) { - return $this->_syntax_error("foreach: missing 'from' attribute", E_USER_ERROR, __FILE__, __LINE__); - } - $from = $attrs['from']; - - if (empty($attrs['item'])) { - return $this->_syntax_error("foreach: missing 'item' attribute", E_USER_ERROR, __FILE__, __LINE__); - } - $item = $this->_dequote($attrs['item']); - if (!preg_match('~^\w+$~', $item)) { - return $this->_syntax_error("foreach: 'item' must be a variable name (literal string)", E_USER_ERROR, __FILE__, __LINE__); - } - - if (isset($attrs['key'])) { - $key = $this->_dequote($attrs['key']); - if (!preg_match('~^\w+$~', $key)) { - return $this->_syntax_error("foreach: 'key' must to be a variable name (literal string)", E_USER_ERROR, __FILE__, __LINE__); - } - $key_part = "\$this->_tpl_vars['$key'] => "; - } else { - $key = null; - $key_part = ''; - } - - if (isset($attrs['name'])) { - $name = $attrs['name']; - } else { - $name = null; - } - - $output = '_foreach[$name]"; - $output .= "{$foreach_props} = array('total' => count(\$_from), 'iteration' => 0);\n"; - $output .= "if ({$foreach_props}['total'] > 0):\n"; - $output .= " foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n"; - $output .= " {$foreach_props}['iteration']++;\n"; - } else { - $output .= "if (count(\$_from)):\n"; - $output .= " foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n"; - } - $output .= '?>'; - - return $output; - } - - - /** - * Compile {capture} .. {/capture} tags - * - * @param boolean $start true if this is the {capture} tag - * @param string $tag_args - * @return string - */ - - function _compile_capture_tag($start, $tag_args = '') - { - $attrs = $this->_parse_attrs($tag_args); - - if ($start) { - $buffer = isset($attrs['name']) ? $attrs['name'] : "'default'"; - $assign = isset($attrs['assign']) ? $attrs['assign'] : null; - $append = isset($attrs['append']) ? $attrs['append'] : null; - - $output = ""; - $this->_capture_stack[] = array($buffer, $assign, $append); - } else { - list($buffer, $assign, $append) = array_pop($this->_capture_stack); - $output = "_smarty_vars['capture'][$buffer] = ob_get_contents(); "; - if (isset($assign)) { - $output .= " \$this->assign($assign, ob_get_contents());"; - } - if (isset($append)) { - $output .= " \$this->append($append, ob_get_contents());"; - } - $output .= "ob_end_clean(); ?>"; - } - - return $output; - } - - /** - * Compile {if ...} tag - * - * @param string $tag_args - * @param boolean $elseif if true, uses elseif instead of if - * @return string - */ - function _compile_if_tag($tag_args, $elseif = false) - { - - /* Tokenize args for 'if' tag. */ - preg_match_all('~(?> - ' . $this->_obj_call_regexp . '(?:' . $this->_mod_regexp . '*)? | # valid object call - ' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)? | # var or quoted string - \-?0[xX][0-9a-fA-F]+|\-?\d+(?:\.\d+)?|\.\d+|!==|===|==|!=|<>|<<|>>|<=|>=|\&\&|\|\||\(|\)|,|\!|\^|=|\&|\~|<|>|\||\%|\+|\-|\/|\*|\@ | # valid non-word token - \b\w+\b | # valid word token - \S+ # anything else - )~x', $tag_args, $match); - - $tokens = $match[0]; - - if(empty($tokens)) { - $_error_msg = $elseif ? "'elseif'" : "'if'"; - $_error_msg .= ' statement requires arguments'; - $this->_syntax_error($_error_msg, E_USER_ERROR, __FILE__, __LINE__); - } - - - // make sure we have balanced parenthesis - $token_count = array_count_values($tokens); - if(isset($token_count['(']) && $token_count['('] != $token_count[')']) { - $this->_syntax_error("unbalanced parenthesis in if statement", E_USER_ERROR, __FILE__, __LINE__); - } - - $is_arg_stack = array(); - - for ($i = 0; $i < count($tokens); $i++) { - - $token = &$tokens[$i]; - - switch (strtolower($token)) { - case '!': - case '%': - case '!==': - case '==': - case '===': - case '>': - case '<': - case '!=': - case '<>': - case '<<': - case '>>': - case '<=': - case '>=': - case '&&': - case '||': - case '|': - case '^': - case '&': - case '~': - case ')': - case ',': - case '+': - case '-': - case '*': - case '/': - case '@': - break; - - case 'eq': - $token = '=='; - break; - - case 'ne': - case 'neq': - $token = '!='; - break; - - case 'lt': - $token = '<'; - break; - - case 'le': - case 'lte': - $token = '<='; - break; - - case 'gt': - $token = '>'; - break; - - case 'ge': - case 'gte': - $token = '>='; - break; - - case 'and': - $token = '&&'; - break; - - case 'or': - $token = '||'; - break; - - case 'not': - $token = '!'; - break; - - case 'mod': - $token = '%'; - break; - - case '(': - array_push($is_arg_stack, $i); - break; - - case 'is': - /* If last token was a ')', we operate on the parenthesized - expression. The start of the expression is on the stack. - Otherwise, we operate on the last encountered token. */ - if ($tokens[$i-1] == ')') - $is_arg_start = array_pop($is_arg_stack); - else - $is_arg_start = $i-1; - /* Construct the argument for 'is' expression, so it knows - what to operate on. */ - $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start)); - - /* Pass all tokens from next one until the end to the - 'is' expression parsing function. The function will - return modified tokens, where the first one is the result - of the 'is' expression and the rest are the tokens it - didn't touch. */ - $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i+1)); - - /* Replace the old tokens with the new ones. */ - array_splice($tokens, $is_arg_start, count($tokens), $new_tokens); - - /* Adjust argument start so that it won't change from the - current position for the next iteration. */ - $i = $is_arg_start; - break; - - default: - if(preg_match('~^' . $this->_func_regexp . '$~', $token) ) { - // function call - if($this->security && - !in_array($token, $this->security_settings['IF_FUNCS'])) { - $this->_syntax_error("(secure mode) '$token' not allowed in if statement", E_USER_ERROR, __FILE__, __LINE__); - } - } elseif(preg_match('~^' . $this->_var_regexp . '$~', $token) && (strpos('+-*/^%&|', substr($token, -1)) === false) && isset($tokens[$i+1]) && $tokens[$i+1] == '(') { - // variable function call - $this->_syntax_error("variable function call '$token' not allowed in if statement", E_USER_ERROR, __FILE__, __LINE__); - } elseif(preg_match('~^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)$~', $token)) { - // object or variable - $token = $this->_parse_var_props($token); - } elseif(is_numeric($token)) { - // number, skip it - } else { - $this->_syntax_error("unidentified token '$token'", E_USER_ERROR, __FILE__, __LINE__); - } - break; - } - } - - if ($elseif) - return ''; - else - return ''; - } - - - function _compile_arg_list($type, $name, $attrs, &$cache_code) { - $arg_list = array(); - - if (isset($type) && isset($name) - && isset($this->_plugins[$type]) - && isset($this->_plugins[$type][$name]) - && empty($this->_plugins[$type][$name][4]) - && is_array($this->_plugins[$type][$name][5]) - ) { - /* we have a list of parameters that should be cached */ - $_cache_attrs = $this->_plugins[$type][$name][5]; - $_count = $this->_cache_attrs_count++; - $cache_code = "\$_cache_attrs =& \$this->_smarty_cache_attrs('$this->_cache_serial','$_count');"; - - } else { - /* no parameters are cached */ - $_cache_attrs = null; - } - - foreach ($attrs as $arg_name => $arg_value) { - if (is_bool($arg_value)) - $arg_value = $arg_value ? 'true' : 'false'; - if (is_null($arg_value)) - $arg_value = 'null'; - if ($_cache_attrs && in_array($arg_name, $_cache_attrs)) { - $arg_list[] = "'$arg_name' => (\$this->_cache_including) ? \$_cache_attrs['$arg_name'] : (\$_cache_attrs['$arg_name']=$arg_value)"; - } else { - $arg_list[] = "'$arg_name' => $arg_value"; - } - } - return $arg_list; - } - - /** - * Parse is expression - * - * @param string $is_arg - * @param array $tokens - * @return array - */ - function _parse_is_expr($is_arg, $tokens) - { - $expr_end = 0; - $negate_expr = false; - - if (($first_token = array_shift($tokens)) == 'not') { - $negate_expr = true; - $expr_type = array_shift($tokens); - } else - $expr_type = $first_token; - - switch ($expr_type) { - case 'even': - if (isset($tokens[$expr_end]) && $tokens[$expr_end] == 'by') { - $expr_end++; - $expr_arg = $tokens[$expr_end++]; - $expr = "!(1 & ($is_arg / " . $this->_parse_var_props($expr_arg) . "))"; - } else - $expr = "!(1 & $is_arg)"; - break; - - case 'odd': - if (isset($tokens[$expr_end]) && $tokens[$expr_end] == 'by') { - $expr_end++; - $expr_arg = $tokens[$expr_end++]; - $expr = "(1 & ($is_arg / " . $this->_parse_var_props($expr_arg) . "))"; - } else - $expr = "(1 & $is_arg)"; - break; - - case 'div': - if (@$tokens[$expr_end] == 'by') { - $expr_end++; - $expr_arg = $tokens[$expr_end++]; - $expr = "!($is_arg % " . $this->_parse_var_props($expr_arg) . ")"; - } else { - $this->_syntax_error("expecting 'by' after 'div'", E_USER_ERROR, __FILE__, __LINE__); - } - break; - - default: - $this->_syntax_error("unknown 'is' expression - '$expr_type'", E_USER_ERROR, __FILE__, __LINE__); - break; - } - - if ($negate_expr) { - $expr = "!($expr)"; - } - - array_splice($tokens, 0, $expr_end, $expr); - - return $tokens; - } - - - /** - * Parse attribute string - * - * @param string $tag_args - * @return array - */ - function _parse_attrs($tag_args) - { - - /* Tokenize tag attributes. */ - preg_match_all('~(?:' . $this->_obj_call_regexp . '|' . $this->_qstr_regexp . ' | (?>[^"\'=\s]+) - )+ | - [=] - ~x', $tag_args, $match); - $tokens = $match[0]; - - $attrs = array(); - /* Parse state: - 0 - expecting attribute name - 1 - expecting '=' - 2 - expecting attribute value (not '=') */ - $state = 0; - - foreach ($tokens as $token) { - switch ($state) { - case 0: - /* If the token is a valid identifier, we set attribute name - and go to state 1. */ - if (preg_match('~^\w+$~', $token)) { - $attr_name = $token; - $state = 1; - } else - $this->_syntax_error("invalid attribute name: '$token'", E_USER_ERROR, __FILE__, __LINE__); - break; - - case 1: - /* If the token is '=', then we go to state 2. */ - if ($token == '=') { - $state = 2; - } else - $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__); - break; - - case 2: - /* If token is not '=', we set the attribute value and go to - state 0. */ - if ($token != '=') { - /* We booleanize the token if it's a non-quoted possible - boolean value. */ - if (preg_match('~^(on|yes|true)$~', $token)) { - $token = 'true'; - } else if (preg_match('~^(off|no|false)$~', $token)) { - $token = 'false'; - } else if ($token == 'null') { - $token = 'null'; - } else if (preg_match('~^' . $this->_num_const_regexp . '|0[xX][0-9a-fA-F]+$~', $token)) { - /* treat integer literally */ - } else if (!preg_match('~^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . ')*$~', $token)) { - /* treat as a string, double-quote it escaping quotes */ - $token = '"'.addslashes($token).'"'; - } - - $attrs[$attr_name] = $token; - $state = 0; - } else - $this->_syntax_error("'=' cannot be an attribute value", E_USER_ERROR, __FILE__, __LINE__); - break; - } - $last_token = $token; - } - - if($state != 0) { - if($state == 1) { - $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__); - } else { - $this->_syntax_error("missing attribute value", E_USER_ERROR, __FILE__, __LINE__); - } - } - - $this->_parse_vars_props($attrs); - - return $attrs; - } - - /** - * compile multiple variables and section properties tokens into - * PHP code - * - * @param array $tokens - */ - function _parse_vars_props(&$tokens) - { - foreach($tokens as $key => $val) { - $tokens[$key] = $this->_parse_var_props($val); - } - } - - /** - * compile single variable and section properties token into - * PHP code - * - * @param string $val - * @param string $tag_attrs - * @return string - */ - function _parse_var_props($val) - { - $val = trim($val); - - if(preg_match('~^(' . $this->_obj_call_regexp . '|' . $this->_dvar_regexp . ')(' . $this->_mod_regexp . '*)$~', $val, $match)) { - // $ variable or object - $return = $this->_parse_var($match[1]); - $modifiers = $match[2]; - if (!empty($this->default_modifiers) && !preg_match('~(^|\|)smarty:nodefaults($|\|)~',$modifiers)) { - $_default_mod_string = implode('|',(array)$this->default_modifiers); - $modifiers = empty($modifiers) ? $_default_mod_string : $_default_mod_string . '|' . $modifiers; - } - $this->_parse_modifiers($return, $modifiers); - return $return; - } elseif (preg_match('~^' . $this->_db_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$~', $val)) { - // double quoted text - preg_match('~^(' . $this->_db_qstr_regexp . ')('. $this->_mod_regexp . '*)$~', $val, $match); - $return = $this->_expand_quoted_text($match[1]); - if($match[2] != '') { - $this->_parse_modifiers($return, $match[2]); - } - return $return; - } - elseif(preg_match('~^' . $this->_num_const_regexp . '(?:' . $this->_mod_regexp . '*)$~', $val)) { - // numerical constant - preg_match('~^(' . $this->_num_const_regexp . ')('. $this->_mod_regexp . '*)$~', $val, $match); - if($match[2] != '') { - $this->_parse_modifiers($match[1], $match[2]); - return $match[1]; - } - } - elseif(preg_match('~^' . $this->_si_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$~', $val)) { - // single quoted text - preg_match('~^(' . $this->_si_qstr_regexp . ')('. $this->_mod_regexp . '*)$~', $val, $match); - if($match[2] != '') { - $this->_parse_modifiers($match[1], $match[2]); - return $match[1]; - } - } - elseif(preg_match('~^' . $this->_cvar_regexp . '(?:' . $this->_mod_regexp . '*)$~', $val)) { - // config var - return $this->_parse_conf_var($val); - } - elseif(preg_match('~^' . $this->_svar_regexp . '(?:' . $this->_mod_regexp . '*)$~', $val)) { - // section var - return $this->_parse_section_prop($val); - } - elseif(!in_array($val, $this->_permitted_tokens) && !is_numeric($val)) { - // literal string - return $this->_expand_quoted_text('"' . strtr($val, array('\\' => '\\\\', '"' => '\\"')) .'"'); - } - return $val; - } - - /** - * expand quoted text with embedded variables - * - * @param string $var_expr - * @return string - */ - function _expand_quoted_text($var_expr) - { - // if contains unescaped $, expand it - if(preg_match_all('~(?:\`(?_dvar_guts_regexp . '(?:' . $this->_obj_ext_regexp . ')*\`)|(?:(?_parse_var(str_replace('`','',$_var)) . ')."'; - } - $var_expr = strtr($var_expr, $_replace); - $_return = preg_replace('~\.""|(?_dvar_math_regexp.'|'.$this->_qstr_regexp.')~', $var_expr, -1, PREG_SPLIT_DELIM_CAPTURE); - - if(count($_math_vars) > 1) { - $_first_var = ""; - $_complete_var = ""; - $_output = ""; - // simple check if there is any math, to stop recursion (due to modifiers with "xx % yy" as parameter) - foreach($_math_vars as $_k => $_math_var) { - $_math_var = $_math_vars[$_k]; - - if(!empty($_math_var) || is_numeric($_math_var)) { - // hit a math operator, so process the stuff which came before it - if(preg_match('~^' . $this->_dvar_math_regexp . '$~', $_math_var)) { - $_has_math = true; - if(!empty($_complete_var) || is_numeric($_complete_var)) { - $_output .= $this->_parse_var($_complete_var); - } - - // just output the math operator to php - $_output .= $_math_var; - - if(empty($_first_var)) - $_first_var = $_complete_var; - - $_complete_var = ""; - } else { - $_complete_var .= $_math_var; - } - } - } - if($_has_math) { - if(!empty($_complete_var) || is_numeric($_complete_var)) - $_output .= $this->_parse_var($_complete_var); - - // get the modifiers working (only the last var from math + modifier is left) - $var_expr = $_complete_var; - } - } - - // prevent cutting of first digit in the number (we _definitly_ got a number if the first char is a digit) - if(is_numeric(substr($var_expr, 0, 1))) - $_var_ref = $var_expr; - else - $_var_ref = substr($var_expr, 1); - - if(!$_has_math) { - - // get [foo] and .foo and ->foo and (...) pieces - preg_match_all('~(?:^\w+)|' . $this->_obj_params_regexp . '|(?:' . $this->_var_bracket_regexp . ')|->\$?\w+|\.\$?\w+|\S+~', $_var_ref, $match); - - $_indexes = $match[0]; - $_var_name = array_shift($_indexes); - - /* Handle $smarty.* variable references as a special case. */ - if ($_var_name == 'smarty') { - /* - * If the reference could be compiled, use the compiled output; - * otherwise, fall back on the $smarty variable generated at - * run-time. - */ - if (($smarty_ref = $this->_compile_smarty_ref($_indexes)) !== null) { - $_output = $smarty_ref; - } else { - $_var_name = substr(array_shift($_indexes), 1); - $_output = "\$this->_smarty_vars['$_var_name']"; - } - } elseif(is_numeric($_var_name) && is_numeric(substr($var_expr, 0, 1))) { - // because . is the operator for accessing arrays thru inidizes we need to put it together again for floating point numbers - if(count($_indexes) > 0) - { - $_var_name .= implode("", $_indexes); - $_indexes = array(); - } - $_output = $_var_name; - } else { - $_output = "\$this->_tpl_vars['$_var_name']"; - } - - foreach ($_indexes as $_index) { - if (substr($_index, 0, 1) == '[') { - $_index = substr($_index, 1, -1); - if (is_numeric($_index)) { - $_output .= "[$_index]"; - } elseif (substr($_index, 0, 1) == '$') { - if (strpos($_index, '.') !== false) { - $_output .= '[' . $this->_parse_var($_index) . ']'; - } else { - $_output .= "[\$this->_tpl_vars['" . substr($_index, 1) . "']]"; - } - } else { - $_var_parts = explode('.', $_index); - $_var_section = $_var_parts[0]; - $_var_section_prop = isset($_var_parts[1]) ? $_var_parts[1] : 'index'; - $_output .= "[\$this->_sections['$_var_section']['$_var_section_prop']]"; - } - } else if (substr($_index, 0, 1) == '.') { - if (substr($_index, 1, 1) == '$') - $_output .= "[\$this->_tpl_vars['" . substr($_index, 2) . "']]"; - else - $_output .= "['" . substr($_index, 1) . "']"; - } else if (substr($_index,0,2) == '->') { - if(substr($_index,2,2) == '__') { - $this->_syntax_error('call to internal object members is not allowed', E_USER_ERROR, __FILE__, __LINE__); - } elseif($this->security && substr($_index, 2, 1) == '_') { - $this->_syntax_error('(secure) call to private object member is not allowed', E_USER_ERROR, __FILE__, __LINE__); - } elseif (substr($_index, 2, 1) == '$') { - if ($this->security) { - $this->_syntax_error('(secure) call to dynamic object member is not allowed', E_USER_ERROR, __FILE__, __LINE__); - } else { - $_output .= '->{(($_var=$this->_tpl_vars[\''.substr($_index,3).'\']) && substr($_var,0,2)!=\'__\') ? $_var : $this->trigger_error("cannot access property \\"$_var\\"")}'; - } - } else { - $_output .= $_index; - } - } elseif (substr($_index, 0, 1) == '(') { - $_index = $this->_parse_parenth_args($_index); - $_output .= $_index; - } else { - $_output .= $_index; - } - } - } - - return $_output; - } - - /** - * parse arguments in function call parenthesis - * - * @param string $parenth_args - * @return string - */ - function _parse_parenth_args($parenth_args) - { - preg_match_all('~' . $this->_param_regexp . '~',$parenth_args, $match); - $orig_vals = $match = $match[0]; - $this->_parse_vars_props($match); - $replace = array(); - for ($i = 0, $count = count($match); $i < $count; $i++) { - $replace[$orig_vals[$i]] = $match[$i]; - } - return strtr($parenth_args, $replace); - } - - /** - * parse configuration variable expression into PHP code - * - * @param string $conf_var_expr - */ - function _parse_conf_var($conf_var_expr) - { - $parts = explode('|', $conf_var_expr, 2); - $var_ref = $parts[0]; - $modifiers = isset($parts[1]) ? $parts[1] : ''; - - $var_name = substr($var_ref, 1, -1); - - $output = "\$this->_config[0]['vars']['$var_name']"; - - $this->_parse_modifiers($output, $modifiers); - - return $output; - } - - /** - * parse section property expression into PHP code - * - * @param string $section_prop_expr - * @return string - */ - function _parse_section_prop($section_prop_expr) - { - $parts = explode('|', $section_prop_expr, 2); - $var_ref = $parts[0]; - $modifiers = isset($parts[1]) ? $parts[1] : ''; - - preg_match('!%(\w+)\.(\w+)%!', $var_ref, $match); - $section_name = $match[1]; - $prop_name = $match[2]; - - $output = "\$this->_sections['$section_name']['$prop_name']"; - - $this->_parse_modifiers($output, $modifiers); - - return $output; - } - - - /** - * parse modifier chain into PHP code - * - * sets $output to parsed modified chain - * @param string $output - * @param string $modifier_string - */ - function _parse_modifiers(&$output, $modifier_string) - { - preg_match_all('~\|(@?\w+)((?>:(?:'. $this->_qstr_regexp . '|[^|]+))*)~', '|' . $modifier_string, $_match); - list(, $_modifiers, $modifier_arg_strings) = $_match; - - for ($_i = 0, $_for_max = count($_modifiers); $_i < $_for_max; $_i++) { - $_modifier_name = $_modifiers[$_i]; - - if($_modifier_name == 'smarty') { - // skip smarty modifier - continue; - } - - preg_match_all('~:(' . $this->_qstr_regexp . '|[^:]+)~', $modifier_arg_strings[$_i], $_match); - $_modifier_args = $_match[1]; - - if (substr($_modifier_name, 0, 1) == '@') { - $_map_array = false; - $_modifier_name = substr($_modifier_name, 1); - } else { - $_map_array = true; - } - - if (empty($this->_plugins['modifier'][$_modifier_name]) - && !$this->_get_plugin_filepath('modifier', $_modifier_name) - && function_exists($_modifier_name)) { - if ($this->security && !in_array($_modifier_name, $this->security_settings['MODIFIER_FUNCS'])) { - $this->_trigger_fatal_error("[plugin] (secure mode) modifier '$_modifier_name' is not allowed" , $this->_current_file, $this->_current_line_no, __FILE__, __LINE__); - } else { - $this->_plugins['modifier'][$_modifier_name] = array($_modifier_name, null, null, false); - } - } - $this->_add_plugin('modifier', $_modifier_name); - - $this->_parse_vars_props($_modifier_args); - - if($_modifier_name == 'default') { - // supress notifications of default modifier vars and args - if(substr($output, 0, 1) == '$') { - $output = '@' . $output; - } - if(isset($_modifier_args[0]) && substr($_modifier_args[0], 0, 1) == '$') { - $_modifier_args[0] = '@' . $_modifier_args[0]; - } - } - if (count($_modifier_args) > 0) - $_modifier_args = ', '.implode(', ', $_modifier_args); - else - $_modifier_args = ''; - - if ($_map_array) { - $output = "((is_array(\$_tmp=$output)) ? \$this->_run_mod_handler('$_modifier_name', true, \$_tmp$_modifier_args) : " . $this->_compile_plugin_call('modifier', $_modifier_name) . "(\$_tmp$_modifier_args))"; - - } else { - - $output = $this->_compile_plugin_call('modifier', $_modifier_name)."($output$_modifier_args)"; - - } - } - } - - - /** - * add plugin - * - * @param string $type - * @param string $name - * @param boolean? $delayed_loading - */ - function _add_plugin($type, $name, $delayed_loading = null) - { - if (!isset($this->_plugin_info[$type])) { - $this->_plugin_info[$type] = array(); - } - if (!isset($this->_plugin_info[$type][$name])) { - $this->_plugin_info[$type][$name] = array($this->_current_file, - $this->_current_line_no, - $delayed_loading); - } - } - - - /** - * Compiles references of type $smarty.foo - * - * @param string $indexes - * @return string - */ - function _compile_smarty_ref(&$indexes) - { - /* Extract the reference name. */ - $_ref = substr($indexes[0], 1); - foreach($indexes as $_index_no=>$_index) { - if (substr($_index, 0, 1) != '.' && $_index_no<2 || !preg_match('~^(\.|\[|->)~', $_index)) { - $this->_syntax_error('$smarty' . implode('', array_slice($indexes, 0, 2)) . ' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__); - } - } - - switch ($_ref) { - case 'now': - $compiled_ref = 'time()'; - $_max_index = 1; - break; - - case 'foreach': - array_shift($indexes); - $_var = $this->_parse_var_props(substr($indexes[0], 1)); - $_propname = substr($indexes[1], 1); - $_max_index = 1; - switch ($_propname) { - case 'index': - array_shift($indexes); - $compiled_ref = "(\$this->_foreach[$_var]['iteration']-1)"; - break; - - case 'first': - array_shift($indexes); - $compiled_ref = "(\$this->_foreach[$_var]['iteration'] <= 1)"; - break; - - case 'last': - array_shift($indexes); - $compiled_ref = "(\$this->_foreach[$_var]['iteration'] == \$this->_foreach[$_var]['total'])"; - break; - - case 'show': - array_shift($indexes); - $compiled_ref = "(\$this->_foreach[$_var]['total'] > 0)"; - break; - - default: - unset($_max_index); - $compiled_ref = "\$this->_foreach[$_var]"; - } - break; - - case 'section': - array_shift($indexes); - $_var = $this->_parse_var_props(substr($indexes[0], 1)); - $compiled_ref = "\$this->_sections[$_var]"; - break; - - case 'get': - $compiled_ref = ($this->request_use_auto_globals) ? '$_GET' : "\$GLOBALS['HTTP_GET_VARS']"; - break; - - case 'post': - $compiled_ref = ($this->request_use_auto_globals) ? '$_POST' : "\$GLOBALS['HTTP_POST_VARS']"; - break; - - case 'cookies': - $compiled_ref = ($this->request_use_auto_globals) ? '$_COOKIE' : "\$GLOBALS['HTTP_COOKIE_VARS']"; - break; - - case 'env': - $compiled_ref = ($this->request_use_auto_globals) ? '$_ENV' : "\$GLOBALS['HTTP_ENV_VARS']"; - break; - - case 'server': - $compiled_ref = ($this->request_use_auto_globals) ? '$_SERVER' : "\$GLOBALS['HTTP_SERVER_VARS']"; - break; - - case 'session': - $compiled_ref = ($this->request_use_auto_globals) ? '$_SESSION' : "\$GLOBALS['HTTP_SESSION_VARS']"; - break; - - /* - * These cases are handled either at run-time or elsewhere in the - * compiler. - */ - case 'request': - if ($this->request_use_auto_globals) { - $compiled_ref = '$_REQUEST'; - break; - } else { - $this->_init_smarty_vars = true; - } - return null; - - case 'capture': - return null; - - case 'template': - $compiled_ref = "'$this->_current_file'"; - $_max_index = 1; - break; - - case 'version': - $compiled_ref = "'$this->_version'"; - $_max_index = 1; - break; - - case 'const': - if ($this->security && !$this->security_settings['ALLOW_CONSTANTS']) { - $this->_syntax_error("(secure mode) constants not permitted", - E_USER_WARNING, __FILE__, __LINE__); - return; - } - array_shift($indexes); - if (preg_match('!^\.\w+$!', $indexes[0])) { - $compiled_ref = '@' . substr($indexes[0], 1); - } else { - $_val = $this->_parse_var_props(substr($indexes[0], 1)); - $compiled_ref = '@constant(' . $_val . ')'; - } - $_max_index = 1; - break; - - case 'config': - $compiled_ref = "\$this->_config[0]['vars']"; - $_max_index = 3; - break; - - case 'ldelim': - $compiled_ref = "'$this->left_delimiter'"; - break; - - case 'rdelim': - $compiled_ref = "'$this->right_delimiter'"; - break; - - default: - $this->_syntax_error('$smarty.' . $_ref . ' is an unknown reference', E_USER_ERROR, __FILE__, __LINE__); - break; - } - - if (isset($_max_index) && count($indexes) > $_max_index) { - $this->_syntax_error('$smarty' . implode('', $indexes) .' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__); - } - - array_shift($indexes); - return $compiled_ref; - } - - /** - * compiles call to plugin of type $type with name $name - * returns a string containing the function-name or method call - * without the paramter-list that would have follow to make the - * call valid php-syntax - * - * @param string $type - * @param string $name - * @return string - */ - function _compile_plugin_call($type, $name) { - if (isset($this->_plugins[$type][$name])) { - /* plugin loaded */ - if (is_array($this->_plugins[$type][$name][0])) { - return ((is_object($this->_plugins[$type][$name][0][0])) ? - "\$this->_plugins['$type']['$name'][0][0]->" /* method callback */ - : (string)($this->_plugins[$type][$name][0][0]).'::' /* class callback */ - ). $this->_plugins[$type][$name][0][1]; - - } else { - /* function callback */ - return $this->_plugins[$type][$name][0]; - - } - } else { - /* plugin not loaded -> auto-loadable-plugin */ - return 'smarty_'.$type.'_'.$name; - - } - } - - /** - * load pre- and post-filters - */ - function _load_filters() - { - if (count($this->_plugins['prefilter']) > 0) { - foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) { - if ($prefilter === false) { - unset($this->_plugins['prefilter'][$filter_name]); - $_params = array('plugins' => array(array('prefilter', $filter_name, null, null, false))); - require_once(SMARTY_CORE_DIR . 'core.load_plugins.php'); - smarty_core_load_plugins($_params, $this); - } - } - } - if (count($this->_plugins['postfilter']) > 0) { - foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) { - if ($postfilter === false) { - unset($this->_plugins['postfilter'][$filter_name]); - $_params = array('plugins' => array(array('postfilter', $filter_name, null, null, false))); - require_once(SMARTY_CORE_DIR . 'core.load_plugins.php'); - smarty_core_load_plugins($_params, $this); - } - } - } - } - - - /** - * Quote subpattern references - * - * @param string $string - * @return string - */ - function _quote_replace($string) - { - return strtr($string, array('\\' => '\\\\', '$' => '\\$')); - } - - /** - * display Smarty syntax error - * - * @param string $error_msg - * @param integer $error_type - * @param string $file - * @param integer $line - */ - function _syntax_error($error_msg, $error_type = E_USER_ERROR, $file=null, $line=null) - { - $this->_trigger_fatal_error("syntax error: $error_msg", $this->_current_file, $this->_current_line_no, $file, $line, $error_type); - } - - - /** - * check if the compilation changes from cacheable to - * non-cacheable state with the beginning of the current - * plugin. return php-code to reflect the transition. - * @return string - */ - function _push_cacheable_state($type, $name) { - $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4]; - if ($_cacheable - || 0<$this->_cacheable_state++) return ''; - if (!isset($this->_cache_serial)) $this->_cache_serial = md5(uniqid('Smarty')); - $_ret = 'if ($this->caching && !$this->_cache_including): echo \'{nocache:' - . $this->_cache_serial . '#' . $this->_nocache_count - . '}\'; endif;'; - return $_ret; - } - - - /** - * check if the compilation changes from non-cacheable to - * cacheable state with the end of the current plugin return - * php-code to reflect the transition. - * @return string - */ - function _pop_cacheable_state($type, $name) { - $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4]; - if ($_cacheable - || --$this->_cacheable_state>0) return ''; - return 'if ($this->caching && !$this->_cache_including): echo \'{/nocache:' - . $this->_cache_serial . '#' . ($this->_nocache_count++) - . '}\'; endif;'; - } - - - /** - * push opening tag-name, file-name and line-number on the tag-stack - * @param string the opening tag's name - */ - function _push_tag($open_tag) - { - array_push($this->_tag_stack, array($open_tag, $this->_current_line_no)); - } - - /** - * pop closing tag-name - * raise an error if this stack-top doesn't match with the closing tag - * @param string the closing tag's name - * @return string the opening tag's name - */ - function _pop_tag($close_tag) - { - $message = ''; - if (count($this->_tag_stack)>0) { - list($_open_tag, $_line_no) = array_pop($this->_tag_stack); - if ($close_tag == $_open_tag) { - return $_open_tag; - } - if ($close_tag == 'if' && ($_open_tag == 'else' || $_open_tag == 'elseif' )) { - return $this->_pop_tag($close_tag); - } - if ($close_tag == 'section' && $_open_tag == 'sectionelse') { - $this->_pop_tag($close_tag); - return $_open_tag; - } - if ($close_tag == 'foreach' && $_open_tag == 'foreachelse') { - $this->_pop_tag($close_tag); - return $_open_tag; - } - if ($_open_tag == 'else' || $_open_tag == 'elseif') { - $_open_tag = 'if'; - } elseif ($_open_tag == 'sectionelse') { - $_open_tag = 'section'; - } elseif ($_open_tag == 'foreachelse') { - $_open_tag = 'foreach'; - } - $message = " expected {/$_open_tag} (opened line $_line_no)."; - } - $this->_syntax_error("mismatched tag {/$close_tag}.$message", - E_USER_ERROR, __FILE__, __LINE__); - } - -} - -/** - * compare to values by their string length - * - * @access private - * @param string $a - * @param string $b - * @return 0|-1|1 - */ -function _smarty_sort_length($a, $b) -{ - if($a == $b) - return 0; - - if(strlen($a) == strlen($b)) - return ($a > $b) ? -1 : 1; - - return (strlen($a) > strlen($b)) ? -1 : 1; -} - - -/* vim: set et: */ - -?> diff --git a/onyx/smarty/debug.tpl b/onyx/smarty/debug.tpl deleted file mode 100644 index c05ef5d..0000000 --- a/onyx/smarty/debug.tpl +++ /dev/null @@ -1,157 +0,0 @@ -{* Smarty *} -{* debug.tpl, last updated version 2.1.0 *} -{assign_debug_info} -{capture assign=debug_output} - - - - Smarty Debug Console -{literal} - -{/literal} - - - -

Smarty Debug Console

- -

included templates & config files (load time in seconds)

- -
-{section name=templates loop=$_debug_tpls} - {section name=indent loop=$_debug_tpls[templates].depth}   {/section} - - {$_debug_tpls[templates].filename|escape:html} - {if isset($_debug_tpls[templates].exec_time)} - - ({$_debug_tpls[templates].exec_time|string_format:"%.5f"}) - {if %templates.index% eq 0}(total){/if} - - {/if} -
-{sectionelse} -

no templates included

-{/section} -
- -

assigned template variables

- - - {section name=vars loop=$_debug_keys} - - - - {sectionelse} - - {/section} -
{ldelim}${$_debug_keys[vars]|escape:'html'}{rdelim}{$_debug_vals[vars]|@debug_print_var}

no template variables assigned

- -

assigned config file variables (outer template scope)

- - - {section name=config_vars loop=$_debug_config_keys} - - - - {sectionelse} - - {/section} -
{ldelim}#{$_debug_config_keys[config_vars]|escape:'html'}#{rdelim}{$_debug_config_vals[config_vars]|@debug_print_var}

no config vars assigned

- - -{/capture} -{if isset($_smarty_debug_output) and $_smarty_debug_output eq "html"} - {$debug_output} -{else} - -{/if} \ No newline at end of file diff --git a/onyx/smarty/internals/core.assemble_plugin_filepath.php b/onyx/smarty/internals/core.assemble_plugin_filepath.php deleted file mode 100644 index 690d3dd..0000000 --- a/onyx/smarty/internals/core.assemble_plugin_filepath.php +++ /dev/null @@ -1,67 +0,0 @@ -plugins_dir as $_plugin_dir) { - - $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename; - - // see if path is relative - if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $_plugin_dir)) { - $_relative_paths[] = $_plugin_dir; - // relative path, see if it is in the SMARTY_DIR - if (@is_readable(SMARTY_DIR . $_plugin_filepath)) { - $_return = SMARTY_DIR . $_plugin_filepath; - break; - } - } - // try relative to cwd (or absolute) - if (@is_readable($_plugin_filepath)) { - $_return = $_plugin_filepath; - break; - } - } - - if($_return === false) { - // still not found, try PHP include_path - if(isset($_relative_paths)) { - foreach ((array)$_relative_paths as $_plugin_dir) { - - $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename; - - $_params = array('file_path' => $_plugin_filepath); - require_once(SMARTY_CORE_DIR . 'core.get_include_path.php'); - if(smarty_core_get_include_path($_params, $smarty)) { - $_return = $_params['new_file_path']; - break; - } - } - } - } - $_filepaths_cache[$_plugin_filename] = $_return; - return $_return; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.assign_smarty_interface.php b/onyx/smarty/internals/core.assign_smarty_interface.php deleted file mode 100644 index 7e65a73..0000000 --- a/onyx/smarty/internals/core.assign_smarty_interface.php +++ /dev/null @@ -1,43 +0,0 @@ - - * Name: assign_smarty_interface
- * Purpose: assign the $smarty interface variable - * @param array Format: null - * @param Smarty - */ -function smarty_core_assign_smarty_interface($params, &$smarty) -{ - if (isset($smarty->_smarty_vars) && isset($smarty->_smarty_vars['request'])) { - return; - } - - $_globals_map = array('g' => 'HTTP_GET_VARS', - 'p' => 'HTTP_POST_VARS', - 'c' => 'HTTP_COOKIE_VARS', - 's' => 'HTTP_SERVER_VARS', - 'e' => 'HTTP_ENV_VARS'); - - $_smarty_vars_request = array(); - - foreach (preg_split('!!', strtolower($smarty->request_vars_order)) as $_c) { - if (isset($_globals_map[$_c])) { - $_smarty_vars_request = array_merge($_smarty_vars_request, $GLOBALS[$_globals_map[$_c]]); - } - } - $_smarty_vars_request = @array_merge($_smarty_vars_request, $GLOBALS['HTTP_SESSION_VARS']); - - $smarty->_smarty_vars['request'] = $_smarty_vars_request; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.create_dir_structure.php b/onyx/smarty/internals/core.create_dir_structure.php deleted file mode 100644 index 3eecc49..0000000 --- a/onyx/smarty/internals/core.create_dir_structure.php +++ /dev/null @@ -1,79 +0,0 @@ -_dir_perms) && !is_dir($_new_dir)) { - $smarty->trigger_error("problem creating directory '" . $_new_dir . "'"); - return false; - } - $_new_dir .= '/'; - } - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.display_debug_console.php b/onyx/smarty/internals/core.display_debug_console.php deleted file mode 100644 index 1a80f39..0000000 --- a/onyx/smarty/internals/core.display_debug_console.php +++ /dev/null @@ -1,61 +0,0 @@ - - * Name: display_debug_console
- * Purpose: display the javascript debug console window - * @param array Format: null - * @param Smarty - */ -function smarty_core_display_debug_console($params, &$smarty) -{ - // we must force compile the debug template in case the environment - // changed between separate applications. - - if(empty($smarty->debug_tpl)) { - // set path to debug template from SMARTY_DIR - $smarty->debug_tpl = SMARTY_DIR . 'debug.tpl'; - if($smarty->security && is_file($smarty->debug_tpl)) { - $smarty->secure_dir[] = realpath($smarty->debug_tpl); - } - $smarty->debug_tpl = 'file:' . SMARTY_DIR . 'debug.tpl'; - } - - $_ldelim_orig = $smarty->left_delimiter; - $_rdelim_orig = $smarty->right_delimiter; - - $smarty->left_delimiter = '{'; - $smarty->right_delimiter = '}'; - - $_compile_id_orig = $smarty->_compile_id; - $smarty->_compile_id = null; - - $_compile_path = $smarty->_get_compile_path($smarty->debug_tpl); - if ($smarty->_compile_resource($smarty->debug_tpl, $_compile_path)) - { - ob_start(); - $smarty->_include($_compile_path); - $_results = ob_get_contents(); - ob_end_clean(); - } else { - $_results = ''; - } - - $smarty->_compile_id = $_compile_id_orig; - - $smarty->left_delimiter = $_ldelim_orig; - $smarty->right_delimiter = $_rdelim_orig; - - return $_results; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.get_include_path.php b/onyx/smarty/internals/core.get_include_path.php deleted file mode 100644 index 4343241..0000000 --- a/onyx/smarty/internals/core.get_include_path.php +++ /dev/null @@ -1,44 +0,0 @@ - diff --git a/onyx/smarty/internals/core.get_microtime.php b/onyx/smarty/internals/core.get_microtime.php deleted file mode 100644 index f1a28e0..0000000 --- a/onyx/smarty/internals/core.get_microtime.php +++ /dev/null @@ -1,23 +0,0 @@ - diff --git a/onyx/smarty/internals/core.get_php_resource.php b/onyx/smarty/internals/core.get_php_resource.php deleted file mode 100644 index 786d4e7..0000000 --- a/onyx/smarty/internals/core.get_php_resource.php +++ /dev/null @@ -1,80 +0,0 @@ -trusted_dir; - $smarty->_parse_resource_name($params, $smarty); - - /* - * Find out if the resource exists. - */ - - if ($params['resource_type'] == 'file') { - $_readable = false; - if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) { - $_readable = true; - } else { - // test for file in include_path - $_params = array('file_path' => $params['resource_name']); - require_once(SMARTY_CORE_DIR . 'core.get_include_path.php'); - if(smarty_core_get_include_path($_params, $smarty)) { - $_include_path = $_params['new_file_path']; - $_readable = true; - } - } - } else if ($params['resource_type'] != 'file') { - $_template_source = null; - $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0]) - && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0], - array($params['resource_name'], &$_template_source, &$smarty)); - } - - /* - * Set the error function, depending on which class calls us. - */ - if (method_exists($smarty, '_syntax_error')) { - $_error_funcc = '_syntax_error'; - } else { - $_error_funcc = 'trigger_error'; - } - - if ($_readable) { - if ($smarty->security) { - require_once(SMARTY_CORE_DIR . 'core.is_trusted.php'); - if (!smarty_core_is_trusted($params, $smarty)) { - $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted'); - return false; - } - } - } else { - $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable'); - return false; - } - - if ($params['resource_type'] == 'file') { - $params['php_resource'] = $params['resource_name']; - } else { - $params['php_resource'] = $_template_source; - } - return true; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.is_secure.php b/onyx/smarty/internals/core.is_secure.php deleted file mode 100644 index d54abd4..0000000 --- a/onyx/smarty/internals/core.is_secure.php +++ /dev/null @@ -1,59 +0,0 @@ -security || $smarty->security_settings['INCLUDE_ANY']) { - return true; - } - - if ($params['resource_type'] == 'file') { - $_rp = realpath($params['resource_name']); - if (isset($params['resource_base_path'])) { - foreach ((array)$params['resource_base_path'] as $curr_dir) { - if ( ($_cd = realpath($curr_dir)) !== false && - strncmp($_rp, $_cd, strlen($_cd)) == 0 && - substr($_rp, strlen($_cd), 1) == DIRECTORY_SEPARATOR ) { - return true; - } - } - } - if (!empty($smarty->secure_dir)) { - foreach ((array)$smarty->secure_dir as $curr_dir) { - if ( ($_cd = realpath($curr_dir)) !== false) { - if($_cd == $_rp) { - return true; - } elseif (strncmp($_rp, $_cd, strlen($_cd)) == 0 && - substr($_rp, strlen($_cd), 1) == DIRECTORY_SEPARATOR) { - return true; - } - } - } - } - } else { - // resource is not on local file system - return call_user_func_array( - $smarty->_plugins['resource'][$params['resource_type']][0][2], - array($params['resource_name'], &$smarty)); - } - - return false; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.is_trusted.php b/onyx/smarty/internals/core.is_trusted.php deleted file mode 100644 index 4299731..0000000 --- a/onyx/smarty/internals/core.is_trusted.php +++ /dev/null @@ -1,47 +0,0 @@ -trusted_dir)) { - $_rp = realpath($params['resource_name']); - foreach ((array)$smarty->trusted_dir as $curr_dir) { - if (!empty($curr_dir) && is_readable ($curr_dir)) { - $_cd = realpath($curr_dir); - if (strncmp($_rp, $_cd, strlen($_cd)) == 0 - && substr($_rp, strlen($_cd), 1) == DIRECTORY_SEPARATOR ) { - $_smarty_trusted = true; - break; - } - } - } - } - - } else { - // resource is not on local file system - $_smarty_trusted = call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][3], - array($params['resource_name'], $smarty)); - } - - return $_smarty_trusted; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.load_plugins.php b/onyx/smarty/internals/core.load_plugins.php deleted file mode 100644 index 6db1dc5..0000000 --- a/onyx/smarty/internals/core.load_plugins.php +++ /dev/null @@ -1,125 +0,0 @@ -_plugins[$_type][$_name]; - - /* - * We do not load plugin more than once for each instance of Smarty. - * The following code checks for that. The plugin can also be - * registered dynamically at runtime, in which case template file - * and line number will be unknown, so we fill them in. - * - * The final element of the info array is a flag that indicates - * whether the dynamically registered plugin function has been - * checked for existence yet or not. - */ - if (isset($_plugin)) { - if (empty($_plugin[3])) { - if (!is_callable($_plugin[0])) { - $smarty->_trigger_fatal_error("[plugin] $_type '$_name' is not implemented", $_tpl_file, $_tpl_line, __FILE__, __LINE__); - } else { - $_plugin[1] = $_tpl_file; - $_plugin[2] = $_tpl_line; - $_plugin[3] = true; - if (!isset($_plugin[4])) $_plugin[4] = true; /* cacheable */ - } - } - continue; - } else if ($_type == 'insert') { - /* - * For backwards compatibility, we check for insert functions in - * the symbol table before trying to load them as a plugin. - */ - $_plugin_func = 'insert_' . $_name; - if (function_exists($_plugin_func)) { - $_plugin = array($_plugin_func, $_tpl_file, $_tpl_line, true, false); - continue; - } - } - - $_plugin_file = $smarty->_get_plugin_filepath($_type, $_name); - - if (! $_found = ($_plugin_file != false)) { - $_message = "could not load plugin file '$_type.$_name.php'\n"; - } - - /* - * If plugin file is found, it -must- provide the properly named - * plugin function. In case it doesn't, simply output the error and - * do not fall back on any other method. - */ - if ($_found) { - include_once $_plugin_file; - - $_plugin_func = 'smarty_' . $_type . '_' . $_name; - if (!function_exists($_plugin_func)) { - $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", $_tpl_file, $_tpl_line, __FILE__, __LINE__); - continue; - } - } - /* - * In case of insert plugins, their code may be loaded later via - * 'script' attribute. - */ - else if ($_type == 'insert' && $_delayed_loading) { - $_plugin_func = 'smarty_' . $_type . '_' . $_name; - $_found = true; - } - - /* - * Plugin specific processing and error checking. - */ - if (!$_found) { - if ($_type == 'modifier') { - /* - * In case modifier falls back on using PHP functions - * directly, we only allow those specified in the security - * context. - */ - if ($smarty->security && !in_array($_name, $smarty->security_settings['MODIFIER_FUNCS'])) { - $_message = "(secure mode) modifier '$_name' is not allowed"; - } else { - if (!function_exists($_name)) { - $_message = "modifier '$_name' is not implemented"; - } else { - $_plugin_func = $_name; - $_found = true; - } - } - } else if ($_type == 'function') { - /* - * This is a catch-all situation. - */ - $_message = "unknown tag - '$_name'"; - } - } - - if ($_found) { - $smarty->_plugins[$_type][$_name] = array($_plugin_func, $_tpl_file, $_tpl_line, true, true); - } else { - // output error - $smarty->_trigger_fatal_error('[plugin] ' . $_message, $_tpl_file, $_tpl_line, __FILE__, __LINE__); - } - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.load_resource_plugin.php b/onyx/smarty/internals/core.load_resource_plugin.php deleted file mode 100644 index a7d37d1..0000000 --- a/onyx/smarty/internals/core.load_resource_plugin.php +++ /dev/null @@ -1,74 +0,0 @@ -_plugins['resource'][$params['type']]; - if (isset($_plugin)) { - if (!$_plugin[1] && count($_plugin[0])) { - $_plugin[1] = true; - foreach ($_plugin[0] as $_plugin_func) { - if (!is_callable($_plugin_func)) { - $_plugin[1] = false; - break; - } - } - } - - if (!$_plugin[1]) { - $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__); - } - - return; - } - - $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']); - $_found = ($_plugin_file != false); - - if ($_found) { /* - * If the plugin file is found, it -must- provide the properly named - * plugin functions. - */ - include_once($_plugin_file); - - /* - * Locate functions that we require the plugin to provide. - */ - $_resource_ops = array('source', 'timestamp', 'secure', 'trusted'); - $_resource_funcs = array(); - foreach ($_resource_ops as $_op) { - $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op; - if (!function_exists($_plugin_func)) { - $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__); - return; - } else { - $_resource_funcs[] = $_plugin_func; - } - } - - $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true); - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.process_cached_inserts.php b/onyx/smarty/internals/core.process_cached_inserts.php deleted file mode 100644 index 1d78edd..0000000 --- a/onyx/smarty/internals/core.process_cached_inserts.php +++ /dev/null @@ -1,71 +0,0 @@ -_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis', - $params['results'], $match); - list($cached_inserts, $insert_args) = $match; - - for ($i = 0, $for_max = count($cached_inserts); $i < $for_max; $i++) { - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $debug_start_time = smarty_core_get_microtime($_params, $smarty); - } - - $args = unserialize($insert_args[$i]); - $name = $args['name']; - - if (isset($args['script'])) { - $_params = array('resource_name' => $smarty->_dequote($args['script'])); - require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); - if(!smarty_core_get_php_resource($_params, $smarty)) { - return false; - } - $resource_type = $_params['resource_type']; - $php_resource = $_params['php_resource']; - - - if ($resource_type == 'file') { - $smarty->_include($php_resource, true); - } else { - $smarty->_eval($php_resource); - } - } - - $function_name = $smarty->_plugins['insert'][$name][0]; - if (empty($args['assign'])) { - $replace = $function_name($args, $smarty); - } else { - $smarty->assign($args['assign'], $function_name($args, $smarty)); - $replace = ''; - } - - $params['results'] = substr_replace($params['results'], $replace, strpos($params['results'], $cached_inserts[$i]), strlen($cached_inserts[$i])); - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $smarty->_smarty_debug_info[] = array('type' => 'insert', - 'filename' => 'insert_'.$name, - 'depth' => $smarty->_inclusion_depth, - 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $debug_start_time); - } - } - - return $params['results']; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.process_compiled_include.php b/onyx/smarty/internals/core.process_compiled_include.php deleted file mode 100644 index d539423..0000000 --- a/onyx/smarty/internals/core.process_compiled_include.php +++ /dev/null @@ -1,37 +0,0 @@ -_cache_including; - $smarty->_cache_including = true; - - $_return = $params['results']; - - foreach ($smarty->_cache_info['cache_serials'] as $_include_file_path=>$_cache_serial) { - $smarty->_include($_include_file_path, true); - } - - foreach ($smarty->_cache_serials as $_include_file_path=>$_cache_serial) { - $_return = preg_replace_callback('!(\{nocache\:('.$_cache_serial.')#(\d+)\})!s', - array(&$smarty, '_process_compiled_include_callback'), - $_return); - } - $smarty->_cache_including = $_cache_including; - return $_return; -} - -?> diff --git a/onyx/smarty/internals/core.read_cache_file.php b/onyx/smarty/internals/core.read_cache_file.php deleted file mode 100644 index c60e113..0000000 --- a/onyx/smarty/internals/core.read_cache_file.php +++ /dev/null @@ -1,101 +0,0 @@ -force_compile) { - // force compile enabled, always regenerate - return false; - } - - if (isset($content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']])) { - list($params['results'], $smarty->_cache_info) = $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']]; - return true; - } - - if (!empty($smarty->cache_handler_func)) { - // use cache_handler function - call_user_func_array($smarty->cache_handler_func, - array('read', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null)); - } else { - // use local cache file - $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']); - $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id); - $params['results'] = $smarty->_read_file($_cache_file); - } - - if (empty($params['results'])) { - // nothing to parse (error?), regenerate cache - return false; - } - - $_contents = $params['results']; - $_info_start = strpos($_contents, "\n") + 1; - $_info_len = (int)substr($_contents, 0, $_info_start - 1); - $_cache_info = unserialize(substr($_contents, $_info_start, $_info_len)); - $params['results'] = substr($_contents, $_info_start + $_info_len); - - if ($smarty->caching == 2 && isset ($_cache_info['expires'])){ - // caching by expiration time - if ($_cache_info['expires'] > -1 && (time() > $_cache_info['expires'])) { - // cache expired, regenerate - return false; - } - } else { - // caching by lifetime - if ($smarty->cache_lifetime > -1 && (time() - $_cache_info['timestamp'] > $smarty->cache_lifetime)) { - // cache expired, regenerate - return false; - } - } - - if ($smarty->compile_check) { - $_params = array('get_source' => false, 'quiet'=>true); - foreach (array_keys($_cache_info['template']) as $_template_dep) { - $_params['resource_name'] = $_template_dep; - if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) { - // template file has changed, regenerate cache - return false; - } - } - - if (isset($_cache_info['config'])) { - $_params = array('resource_base_path' => $smarty->config_dir, 'get_source' => false, 'quiet'=>true); - foreach (array_keys($_cache_info['config']) as $_config_dep) { - $_params['resource_name'] = $_config_dep; - if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) { - // config file has changed, regenerate cache - return false; - } - } - } - } - - $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']] = array($params['results'], $_cache_info); - - $smarty->_cache_info = $_cache_info; - return true; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.rm_auto.php b/onyx/smarty/internals/core.rm_auto.php deleted file mode 100644 index b251f64..0000000 --- a/onyx/smarty/internals/core.rm_auto.php +++ /dev/null @@ -1,71 +0,0 @@ - $params['auto_base'], - 'level' => 0, - 'exp_time' => $params['exp_time'] - ); - require_once(SMARTY_CORE_DIR . 'core.rmdir.php'); - $_res = smarty_core_rmdir($_params, $smarty); - } else { - $_tname = $smarty->_get_auto_filename($params['auto_base'], $params['auto_source'], $params['auto_id']); - - if(isset($params['auto_source'])) { - if (isset($params['extensions'])) { - $_res = false; - foreach ((array)$params['extensions'] as $_extension) - $_res |= $smarty->_unlink($_tname.$_extension, $params['exp_time']); - } else { - $_res = $smarty->_unlink($_tname, $params['exp_time']); - } - } elseif ($smarty->use_sub_dirs) { - $_params = array( - 'dirname' => $_tname, - 'level' => 1, - 'exp_time' => $params['exp_time'] - ); - require_once(SMARTY_CORE_DIR . 'core.rmdir.php'); - $_res = smarty_core_rmdir($_params, $smarty); - } else { - // remove matching file names - $_handle = opendir($params['auto_base']); - $_res = true; - while (false !== ($_filename = readdir($_handle))) { - if($_filename == '.' || $_filename == '..') { - continue; - } elseif (substr($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, 0, strlen($_tname)) == $_tname) { - $_res &= (bool)$smarty->_unlink($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, $params['exp_time']); - } - } - } - } - - return $_res; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.rmdir.php b/onyx/smarty/internals/core.rmdir.php deleted file mode 100644 index 2166c44..0000000 --- a/onyx/smarty/internals/core.rmdir.php +++ /dev/null @@ -1,54 +0,0 @@ - keep root) - * WARNING: no tests, it will try to remove what you tell it! - * - * @param string $dirname - * @param integer $level - * @param integer $exp_time - * @return boolean - */ - -// $dirname, $level = 1, $exp_time = null - -function smarty_core_rmdir($params, &$smarty) -{ - if(!isset($params['level'])) { $params['level'] = 1; } - if(!isset($params['exp_time'])) { $params['exp_time'] = null; } - - if($_handle = @opendir($params['dirname'])) { - - while (false !== ($_entry = readdir($_handle))) { - if ($_entry != '.' && $_entry != '..') { - if (@is_dir($params['dirname'] . DIRECTORY_SEPARATOR . $_entry)) { - $_params = array( - 'dirname' => $params['dirname'] . DIRECTORY_SEPARATOR . $_entry, - 'level' => $params['level'] + 1, - 'exp_time' => $params['exp_time'] - ); - smarty_core_rmdir($_params, $smarty); - } - else { - $smarty->_unlink($params['dirname'] . DIRECTORY_SEPARATOR . $_entry, $params['exp_time']); - } - } - } - closedir($_handle); - } - - if ($params['level']) { - return @rmdir($params['dirname']); - } - return (bool)$_handle; - -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.run_insert_handler.php b/onyx/smarty/internals/core.run_insert_handler.php deleted file mode 100644 index 71c3845..0000000 --- a/onyx/smarty/internals/core.run_insert_handler.php +++ /dev/null @@ -1,71 +0,0 @@ -debugging) { - $_params = array(); - $_debug_start_time = smarty_core_get_microtime($_params, $smarty); - } - - if ($smarty->caching) { - $_arg_string = serialize($params['args']); - $_name = $params['args']['name']; - if (!isset($smarty->_cache_info['insert_tags'][$_name])) { - $smarty->_cache_info['insert_tags'][$_name] = array('insert', - $_name, - $smarty->_plugins['insert'][$_name][1], - $smarty->_plugins['insert'][$_name][2], - !empty($params['args']['script']) ? true : false); - } - return $smarty->_smarty_md5."{insert_cache $_arg_string}".$smarty->_smarty_md5; - } else { - if (isset($params['args']['script'])) { - $_params = array('resource_name' => $smarty->_dequote($params['args']['script'])); - require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); - if(!smarty_core_get_php_resource($_params, $smarty)) { - return false; - } - - if ($_params['resource_type'] == 'file') { - $smarty->_include($_params['php_resource'], true); - } else { - $smarty->_eval($_params['php_resource']); - } - unset($params['args']['script']); - } - - $_funcname = $smarty->_plugins['insert'][$params['args']['name']][0]; - $_content = $_funcname($params['args'], $smarty); - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $smarty->_smarty_debug_info[] = array('type' => 'insert', - 'filename' => 'insert_'.$params['args']['name'], - 'depth' => $smarty->_inclusion_depth, - 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time); - } - - if (!empty($params['args']["assign"])) { - $smarty->assign($params['args']["assign"], $_content); - } else { - return $_content; - } - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.smarty_include_php.php b/onyx/smarty/internals/core.smarty_include_php.php deleted file mode 100644 index 30c6e76..0000000 --- a/onyx/smarty/internals/core.smarty_include_php.php +++ /dev/null @@ -1,50 +0,0 @@ - $params['smarty_file']); - require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); - smarty_core_get_php_resource($_params, $smarty); - $_smarty_resource_type = $_params['resource_type']; - $_smarty_php_resource = $_params['php_resource']; - - if (!empty($params['smarty_assign'])) { - ob_start(); - if ($_smarty_resource_type == 'file') { - $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']); - } else { - $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']); - } - $smarty->assign($params['smarty_assign'], ob_get_contents()); - ob_end_clean(); - } else { - if ($_smarty_resource_type == 'file') { - $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']); - } else { - $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']); - } - } -} - - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.write_cache_file.php b/onyx/smarty/internals/core.write_cache_file.php deleted file mode 100644 index 72f785b..0000000 --- a/onyx/smarty/internals/core.write_cache_file.php +++ /dev/null @@ -1,96 +0,0 @@ -_cache_info['timestamp'] = time(); - if ($smarty->cache_lifetime > -1){ - // expiration set - $smarty->_cache_info['expires'] = $smarty->_cache_info['timestamp'] + $smarty->cache_lifetime; - } else { - // cache will never expire - $smarty->_cache_info['expires'] = -1; - } - - // collapse nocache.../nocache-tags - if (preg_match_all('!\{(/?)nocache\:[0-9a-f]{32}#\d+\}!', $params['results'], $match, PREG_PATTERN_ORDER)) { - // remove everything between every pair of outermost noache.../nocache-tags - // and replace it by a single nocache-tag - // this new nocache-tag will be replaced by dynamic contents in - // smarty_core_process_compiled_includes() on a cache-read - - $match_count = count($match[0]); - $results = preg_split('!(\{/?nocache\:[0-9a-f]{32}#\d+\})!', $params['results'], -1, PREG_SPLIT_DELIM_CAPTURE); - - $level = 0; - $j = 0; - for ($i=0, $results_count = count($results); $i < $results_count && $j < $match_count; $i++) { - if ($results[$i] == $match[0][$j]) { - // nocache tag - if ($match[1][$j]) { // closing tag - $level--; - unset($results[$i]); - } else { // opening tag - if ($level++ > 0) unset($results[$i]); - } - $j++; - } elseif ($level > 0) { - unset($results[$i]); - } - } - $params['results'] = implode('', $results); - } - $smarty->_cache_info['cache_serials'] = $smarty->_cache_serials; - - // prepend the cache header info into cache file - $_cache_info = serialize($smarty->_cache_info); - $params['results'] = strlen($_cache_info) . "\n" . $_cache_info . $params['results']; - - if (!empty($smarty->cache_handler_func)) { - // use cache_handler function - call_user_func_array($smarty->cache_handler_func, - array('write', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null)); - } else { - // use local cache file - - if(!@is_writable($smarty->cache_dir)) { - // cache_dir not writable, see if it exists - if(!@is_dir($smarty->cache_dir)) { - $smarty->trigger_error('the $cache_dir \'' . $smarty->cache_dir . '\' does not exist, or is not a directory.', E_USER_ERROR); - return false; - } - $smarty->trigger_error('unable to write to $cache_dir \'' . realpath($smarty->cache_dir) . '\'. Be sure $cache_dir is writable by the web server user.', E_USER_ERROR); - return false; - } - - $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']); - $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id); - $_params = array('filename' => $_cache_file, 'contents' => $params['results'], 'create_dirs' => true); - require_once(SMARTY_CORE_DIR . 'core.write_file.php'); - smarty_core_write_file($_params, $smarty); - return true; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.write_compiled_include.php b/onyx/smarty/internals/core.write_compiled_include.php deleted file mode 100644 index c14adb5..0000000 --- a/onyx/smarty/internals/core.write_compiled_include.php +++ /dev/null @@ -1,91 +0,0 @@ -caching && \!\$this->_cache_including\)\: echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\'; endif;'; - $_tag_end = 'if \(\$this->caching && \!\$this->_cache_including\)\: echo \'\{/nocache\:(\\2)#(\\3)\}\'; endif;'; - - preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us', - $params['compiled_content'], $_match_source, PREG_SET_ORDER); - - // no nocache-parts found: done - if (count($_match_source)==0) return; - - // convert the matched php-code to functions - $_include_compiled = "_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n"; - $_include_compiled .= " compiled from " . strtr(urlencode($params['resource_name']), array('%2F'=>'/', '%3A'=>':')) . " */\n\n"; - - $_compile_path = $params['include_file_path']; - - $smarty->_cache_serials[$_compile_path] = $params['cache_serial']; - $_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>"; - - $_include_compiled .= $params['plugins_code']; - $_include_compiled .= "= 5.0) ? '_smarty' : 'this'; - for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) { - $_match =& $_match_source[$_i]; - $source = $_match[4]; - if ($this_varname == '_smarty') { - /* rename $this to $_smarty in the sourcecode */ - $tokens = token_get_all('\n"; - - $_params = array('filename' => $_compile_path, - 'contents' => $_include_compiled, 'create_dirs' => true); - - require_once(SMARTY_CORE_DIR . 'core.write_file.php'); - smarty_core_write_file($_params, $smarty); - return true; -} - - -?> diff --git a/onyx/smarty/internals/core.write_compiled_resource.php b/onyx/smarty/internals/core.write_compiled_resource.php deleted file mode 100644 index b902eff..0000000 --- a/onyx/smarty/internals/core.write_compiled_resource.php +++ /dev/null @@ -1,35 +0,0 @@ -compile_dir)) { - // compile_dir not writable, see if it exists - if(!@is_dir($smarty->compile_dir)) { - $smarty->trigger_error('the $compile_dir \'' . $smarty->compile_dir . '\' does not exist, or is not a directory.', E_USER_ERROR); - return false; - } - $smarty->trigger_error('unable to write to $compile_dir \'' . realpath($smarty->compile_dir) . '\'. Be sure $compile_dir is writable by the web server user.', E_USER_ERROR); - return false; - } - - $_params = array('filename' => $params['compile_path'], 'contents' => $params['compiled_content'], 'create_dirs' => true); - require_once(SMARTY_CORE_DIR . 'core.write_file.php'); - smarty_core_write_file($_params, $smarty); - return true; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/internals/core.write_file.php b/onyx/smarty/internals/core.write_file.php deleted file mode 100644 index 8a3a3b3..0000000 --- a/onyx/smarty/internals/core.write_file.php +++ /dev/null @@ -1,54 +0,0 @@ - $_dirname); - require_once(SMARTY_CORE_DIR . 'core.create_dir_structure.php'); - smarty_core_create_dir_structure($_params, $smarty); - } - - // write to tmp file, then rename it to avoid file locking race condition - $_tmp_file = tempnam($_dirname, 'wrt'); - - if (!($fd = @fopen($_tmp_file, 'wb'))) { - $_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('wrt'); - if (!($fd = @fopen($_tmp_file, 'wb'))) { - $smarty->trigger_error("problem writing temporary file '$_tmp_file'"); - return false; - } - } - - fwrite($fd, $params['contents']); - fclose($fd); - - if (DIRECTORY_SEPARATOR == '\\' || !@rename($_tmp_file, $params['filename'])) { - // On platforms and filesystems that cannot overwrite with rename() - // delete the file before renaming it -- because windows always suffers - // this, it is short-circuited to avoid the initial rename() attempt - @unlink($params['filename']); - @rename($_tmp_file, $params['filename']); - } - @chmod($params['filename'], $smarty->_file_perms); - - return true; -} - -/* vim: set expandtab: */ - -?> \ No newline at end of file diff --git a/onyx/smarty/plugins/block.textformat.php b/onyx/smarty/plugins/block.textformat.php deleted file mode 100644 index 8cd010a..0000000 --- a/onyx/smarty/plugins/block.textformat.php +++ /dev/null @@ -1,103 +0,0 @@ - - * Name: textformat
- * Purpose: format text a certain way with preset styles - * or custom wrap/indent settings
- * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat} - * (Smarty online manual) - * @param array - *
- * Params:   style: string (email)
- *           indent: integer (0)
- *           wrap: integer (80)
- *           wrap_char string ("\n")
- *           indent_char: string (" ")
- *           wrap_boundary: boolean (true)
- * 
- * @author Monte Ohrt - * @param string contents of the block - * @param Smarty clever simulation of a method - * @return string string $content re-formatted - */ -function smarty_block_textformat($params, $content, &$smarty) -{ - if (is_null($content)) { - return; - } - - $style = null; - $indent = 0; - $indent_first = 0; - $indent_char = ' '; - $wrap = 80; - $wrap_char = "\n"; - $wrap_cut = false; - $assign = null; - - foreach ($params as $_key => $_val) { - switch ($_key) { - case 'style': - case 'indent_char': - case 'wrap_char': - case 'assign': - $$_key = (string)$_val; - break; - - case 'indent': - case 'indent_first': - case 'wrap': - $$_key = (int)$_val; - break; - - case 'wrap_cut': - $$_key = (bool)$_val; - break; - - default: - $smarty->trigger_error("textformat: unknown attribute '$_key'"); - } - } - - if ($style == 'email') { - $wrap = 72; - } - - // split into paragraphs - $_paragraphs = preg_split('![\r\n][\r\n]!',$content); - $_output = ''; - - for($_x = 0, $_y = count($_paragraphs); $_x < $_y; $_x++) { - if ($_paragraphs[$_x] == '') { - continue; - } - // convert mult. spaces & special chars to single space - $_paragraphs[$_x] = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'), array(' ',''), $_paragraphs[$_x]); - // indent first line - if($indent_first > 0) { - $_paragraphs[$_x] = str_repeat($indent_char, $indent_first) . $_paragraphs[$_x]; - } - // wordwrap sentences - $_paragraphs[$_x] = wordwrap($_paragraphs[$_x], $wrap - $indent, $wrap_char, $wrap_cut); - // indent lines - if($indent > 0) { - $_paragraphs[$_x] = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraphs[$_x]); - } - } - $_output = implode($wrap_char . $wrap_char, $_paragraphs); - - return $assign ? $smarty->assign($assign, $_output) : $_output; - -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/compiler.assign.php b/onyx/smarty/plugins/compiler.assign.php deleted file mode 100644 index abef377..0000000 --- a/onyx/smarty/plugins/compiler.assign.php +++ /dev/null @@ -1,40 +0,0 @@ - - * Name: assign
- * Purpose: assign a value to a template variable - * @link http://smarty.php.net/manual/en/language.custom.functions.php#LANGUAGE.FUNCTION.ASSIGN {assign} - * (Smarty online manual) - * @author Monte Ohrt (initial author) - * @author messju mohr (conversion to compiler function) - * @param string containing var-attribute and value-attribute - * @param Smarty_Compiler - */ -function smarty_compiler_assign($tag_attrs, &$compiler) -{ - $_params = $compiler->_parse_attrs($tag_attrs); - - if (!isset($_params['var'])) { - $compiler->_syntax_error("assign: missing 'var' parameter", E_USER_WARNING); - return; - } - - if (!isset($_params['value'])) { - $compiler->_syntax_error("assign: missing 'value' parameter", E_USER_WARNING); - return; - } - - return "\$this->assign({$_params['var']}, {$_params['value']});"; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.assign_debug_info.php b/onyx/smarty/plugins/function.assign_debug_info.php deleted file mode 100644 index 6540498..0000000 --- a/onyx/smarty/plugins/function.assign_debug_info.php +++ /dev/null @@ -1,40 +0,0 @@ - - * Name: assign_debug_info
- * Purpose: assign debug info to the template
- * @author Monte Ohrt - * @param array unused in this plugin, this plugin uses {@link Smarty::$_config}, - * {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info} - * @param Smarty - */ -function smarty_function_assign_debug_info($params, &$smarty) -{ - $assigned_vars = $smarty->_tpl_vars; - ksort($assigned_vars); - if (@is_array($smarty->_config[0])) { - $config_vars = $smarty->_config[0]; - ksort($config_vars); - $smarty->assign("_debug_config_keys", array_keys($config_vars)); - $smarty->assign("_debug_config_vals", array_values($config_vars)); - } - - $included_templates = $smarty->_smarty_debug_info; - - $smarty->assign("_debug_keys", array_keys($assigned_vars)); - $smarty->assign("_debug_vals", array_values($assigned_vars)); - - $smarty->assign("_debug_tpls", $included_templates); -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.config_load.php b/onyx/smarty/plugins/function.config_load.php deleted file mode 100644 index db89f63..0000000 --- a/onyx/smarty/plugins/function.config_load.php +++ /dev/null @@ -1,142 +0,0 @@ - - * Name: config_load
- * Purpose: load config file vars - * @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load} - * (Smarty online manual) - * @author Monte Ohrt - * @author messju mohr (added use of resources) - * @param array Format: - *
- * array('file' => required config file name,
- *       'section' => optional config file section to load
- *       'scope' => local/parent/global
- *       'global' => overrides scope, setting to parent if true)
- * 
- * @param Smarty - */ -function smarty_function_config_load($params, &$smarty) -{ - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $_debug_start_time = smarty_core_get_microtime($_params, $smarty); - } - - $_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null; - $_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null; - $_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global'; - $_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false; - - if (!isset($_file) || strlen($_file) == 0) { - $smarty->trigger_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__); - } - - if (isset($_scope)) { - if ($_scope != 'local' && - $_scope != 'parent' && - $_scope != 'global') { - $smarty->trigger_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__); - } - } else { - if ($_global) { - $_scope = 'parent'; - } else { - $_scope = 'local'; - } - } - - $_params = array('resource_name' => $_file, - 'resource_base_path' => $smarty->config_dir, - 'get_source' => false); - $smarty->_parse_resource_name($_params); - $_file_path = $_params['resource_type'] . ':' . $_params['resource_name']; - if (isset($_section)) - $_compile_file = $smarty->_get_compile_path($_file_path.'|'.$_section); - else - $_compile_file = $smarty->_get_compile_path($_file_path); - - if($smarty->force_compile || !file_exists($_compile_file)) { - $_compile = true; - } elseif ($smarty->compile_check) { - $_params = array('resource_name' => $_file, - 'resource_base_path' => $smarty->config_dir, - 'get_source' => false); - $_compile = $smarty->_fetch_resource_info($_params) && - $_params['resource_timestamp'] > filemtime($_compile_file); - } else { - $_compile = false; - } - - if($_compile) { - // compile config file - if(!is_object($smarty->_conf_obj)) { - require_once SMARTY_DIR . $smarty->config_class . '.class.php'; - $smarty->_conf_obj = new $smarty->config_class(); - $smarty->_conf_obj->overwrite = $smarty->config_overwrite; - $smarty->_conf_obj->booleanize = $smarty->config_booleanize; - $smarty->_conf_obj->read_hidden = $smarty->config_read_hidden; - $smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines; - } - - $_params = array('resource_name' => $_file, - 'resource_base_path' => $smarty->config_dir, - $_params['get_source'] = true); - if (!$smarty->_fetch_resource_info($_params)) { - return; - } - $smarty->_conf_obj->set_file_contents($_file, $_params['source_content']); - $_config_vars = array_merge($smarty->_conf_obj->get($_file), - $smarty->_conf_obj->get($_file, $_section)); - if(function_exists('var_export')) { - $_output = ''; - } else { - $_output = ''\\\'', '\\'=>'\\\\')) . '\'); ?>'; - } - $_params = (array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => $_params['resource_timestamp'])); - require_once(SMARTY_CORE_DIR . 'core.write_compiled_resource.php'); - smarty_core_write_compiled_resource($_params, $smarty); - } else { - include($_compile_file); - } - - if ($smarty->caching) { - $smarty->_cache_info['config'][$_file] = true; - } - - $smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars); - $smarty->_config[0]['files'][$_file] = true; - - if ($_scope == 'parent') { - $smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars); - $smarty->_config[1]['files'][$_file] = true; - } else if ($_scope == 'global') { - for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) { - $smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars); - $smarty->_config[$i]['files'][$_file] = true; - } - } - - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - $smarty->_smarty_debug_info[] = array('type' => 'config', - 'filename' => $_file.' ['.$_section.'] '.$_scope, - 'depth' => $smarty->_inclusion_depth, - 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time); - } - -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.counter.php b/onyx/smarty/plugins/function.counter.php deleted file mode 100644 index 1f26db5..0000000 --- a/onyx/smarty/plugins/function.counter.php +++ /dev/null @@ -1,80 +0,0 @@ - - * Name: counter
- * Purpose: print out a counter value - * @author Monte Ohrt - * @link http://smarty.php.net/manual/en/language.function.counter.php {counter} - * (Smarty online manual) - * @param array parameters - * @param Smarty - * @return string|null - */ -function smarty_function_counter($params, &$smarty) -{ - static $counters = array(); - - $name = (isset($params['name'])) ? $params['name'] : 'default'; - if (!isset($counters[$name])) { - $counters[$name] = array( - 'start'=>1, - 'skip'=>1, - 'direction'=>'up', - 'count'=>1 - ); - } - $counter =& $counters[$name]; - - if (isset($params['start'])) { - $counter['start'] = $counter['count'] = (int)$params['start']; - } - - if (!empty($params['assign'])) { - $counter['assign'] = $params['assign']; - } - - if (isset($counter['assign'])) { - $smarty->assign($counter['assign'], $counter['count']); - } - - if (isset($params['print'])) { - $print = (bool)$params['print']; - } else { - $print = empty($counter['assign']); - } - - if ($print) { - $retval = $counter['count']; - } else { - $retval = null; - } - - if (isset($params['skip'])) { - $counter['skip'] = $params['skip']; - } - - if (isset($params['direction'])) { - $counter['direction'] = $params['direction']; - } - - if ($counter['direction'] == "down") - $counter['count'] -= $counter['skip']; - else - $counter['count'] += $counter['skip']; - - return $retval; - -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.cycle.php b/onyx/smarty/plugins/function.cycle.php deleted file mode 100644 index fe78bb8..0000000 --- a/onyx/smarty/plugins/function.cycle.php +++ /dev/null @@ -1,102 +0,0 @@ - - * Name: cycle
- * Date: May 3, 2002
- * Purpose: cycle through given values
- * Input: - * - name = name of cycle (optional) - * - values = comma separated list of values to cycle, - * or an array of values to cycle - * (this can be left out for subsequent calls) - * - reset = boolean - resets given var to true - * - print = boolean - print var or not. default is true - * - advance = boolean - whether or not to advance the cycle - * - delimiter = the value delimiter, default is "," - * - assign = boolean, assigns to template var instead of - * printed. - * - * Examples:
- *
- * {cycle values="#eeeeee,#d0d0d0d"}
- * {cycle name=row values="one,two,three" reset=true}
- * {cycle name=row}
- * 
- * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle} - * (Smarty online manual) - * @author Monte Ohrt - * @author credit to Mark Priatel - * @author credit to Gerard - * @author credit to Jason Sweat - * @version 1.3 - * @param array - * @param Smarty - * @return string|null - */ -function smarty_function_cycle($params, &$smarty) -{ - static $cycle_vars; - - $name = (empty($params['name'])) ? 'default' : $params['name']; - $print = (isset($params['print'])) ? (bool)$params['print'] : true; - $advance = (isset($params['advance'])) ? (bool)$params['advance'] : true; - $reset = (isset($params['reset'])) ? (bool)$params['reset'] : false; - - if (!in_array('values', array_keys($params))) { - if(!isset($cycle_vars[$name]['values'])) { - $smarty->trigger_error("cycle: missing 'values' parameter"); - return; - } - } else { - if(isset($cycle_vars[$name]['values']) - && $cycle_vars[$name]['values'] != $params['values'] ) { - $cycle_vars[$name]['index'] = 0; - } - $cycle_vars[$name]['values'] = $params['values']; - } - - $cycle_vars[$name]['delimiter'] = (isset($params['delimiter'])) ? $params['delimiter'] : ','; - - if(is_array($cycle_vars[$name]['values'])) { - $cycle_array = $cycle_vars[$name]['values']; - } else { - $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); - } - - if(!isset($cycle_vars[$name]['index']) || $reset ) { - $cycle_vars[$name]['index'] = 0; - } - - if (isset($params['assign'])) { - $print = false; - $smarty->assign($params['assign'], $cycle_array[$cycle_vars[$name]['index']]); - } - - if($print) { - $retval = $cycle_array[$cycle_vars[$name]['index']]; - } else { - $retval = null; - } - - if($advance) { - if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) { - $cycle_vars[$name]['index'] = 0; - } else { - $cycle_vars[$name]['index']++; - } - } - - return $retval; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.debug.php b/onyx/smarty/plugins/function.debug.php deleted file mode 100644 index 4345230..0000000 --- a/onyx/smarty/plugins/function.debug.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Name: debug
- * Date: July 1, 2002
- * Purpose: popup debug window - * @link http://smarty.php.net/manual/en/language.function.debug.php {debug} - * (Smarty online manual) - * @author Monte Ohrt - * @version 1.0 - * @param array - * @param Smarty - * @return string output from {@link Smarty::_generate_debug_output()} - */ -function smarty_function_debug($params, &$smarty) -{ - if (isset($params['output'])) { - $smarty->assign('_smarty_debug_output', $params['output']); - } - require_once(SMARTY_CORE_DIR . 'core.display_debug_console.php'); - return smarty_core_display_debug_console(null, $smarty); -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.eval.php b/onyx/smarty/plugins/function.eval.php deleted file mode 100644 index ff0472d..0000000 --- a/onyx/smarty/plugins/function.eval.php +++ /dev/null @@ -1,49 +0,0 @@ - - * Name: eval
- * Purpose: evaluate a template variable as a template
- * @link http://smarty.php.net/manual/en/language.function.eval.php {eval} - * (Smarty online manual) - * @author Monte Ohrt - * @param array - * @param Smarty - */ -function smarty_function_eval($params, &$smarty) -{ - - if (!isset($params['var'])) { - $smarty->trigger_error("eval: missing 'var' parameter"); - return; - } - - if($params['var'] == '') { - return; - } - - $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled); - - ob_start(); - $smarty->_eval('?>' . $_var_compiled); - $_contents = ob_get_contents(); - ob_end_clean(); - - if (!empty($params['assign'])) { - $smarty->assign($params['assign'], $_contents); - } else { - return $_contents; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.fetch.php b/onyx/smarty/plugins/function.fetch.php deleted file mode 100644 index 81b1bfc..0000000 --- a/onyx/smarty/plugins/function.fetch.php +++ /dev/null @@ -1,221 +0,0 @@ - - * Name: fetch
- * Purpose: fetch file, web or ftp data and display results - * @link http://smarty.php.net/manual/en/language.function.fetch.php {fetch} - * (Smarty online manual) - * @author Monte Ohrt - * @param array - * @param Smarty - * @return string|null if the assign parameter is passed, Smarty assigns the - * result to a template variable - */ -function smarty_function_fetch($params, &$smarty) -{ - if (empty($params['file'])) { - $smarty->_trigger_fatal_error("[plugin] parameter 'file' cannot be empty"); - return; - } - - $content = ''; - if ($smarty->security && !preg_match('!^(http|ftp)://!i', $params['file'])) { - $_params = array('resource_type' => 'file', 'resource_name' => $params['file']); - require_once(SMARTY_CORE_DIR . 'core.is_secure.php'); - if(!smarty_core_is_secure($_params, $smarty)) { - $smarty->_trigger_fatal_error('[plugin] (secure mode) fetch \'' . $params['file'] . '\' is not allowed'); - return; - } - - // fetch the file - if($fp = @fopen($params['file'],'r')) { - while(!feof($fp)) { - $content .= fgets ($fp,4096); - } - fclose($fp); - } else { - $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] . '\''); - return; - } - } else { - // not a local file - if(preg_match('!^http://!i',$params['file'])) { - // http fetch - if($uri_parts = parse_url($params['file'])) { - // set defaults - $host = $server_name = $uri_parts['host']; - $timeout = 30; - $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; - $agent = "Smarty Template Engine ".$smarty->_version; - $referer = ""; - $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/'; - $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : ''; - $_is_proxy = false; - if(empty($uri_parts['port'])) { - $port = 80; - } else { - $port = $uri_parts['port']; - } - if(!empty($uri_parts['user'])) { - $user = $uri_parts['user']; - } - if(!empty($uri_parts['pass'])) { - $pass = $uri_parts['pass']; - } - // loop through parameters, setup headers - foreach($params as $param_key => $param_value) { - switch($param_key) { - case "file": - case "assign": - case "assign_headers": - break; - case "user": - if(!empty($param_value)) { - $user = $param_value; - } - break; - case "pass": - if(!empty($param_value)) { - $pass = $param_value; - } - break; - case "accept": - if(!empty($param_value)) { - $accept = $param_value; - } - break; - case "header": - if(!empty($param_value)) { - if(!preg_match('![\w\d-]+: .+!',$param_value)) { - $smarty->_trigger_fatal_error("[plugin] invalid header format '".$param_value."'"); - return; - } else { - $extra_headers[] = $param_value; - } - } - break; - case "proxy_host": - if(!empty($param_value)) { - $proxy_host = $param_value; - } - break; - case "proxy_port": - if(!preg_match('!\D!', $param_value)) { - $proxy_port = (int) $param_value; - } else { - $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'"); - return; - } - break; - case "agent": - if(!empty($param_value)) { - $agent = $param_value; - } - break; - case "referer": - if(!empty($param_value)) { - $referer = $param_value; - } - break; - case "timeout": - if(!preg_match('!\D!', $param_value)) { - $timeout = (int) $param_value; - } else { - $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'"); - return; - } - break; - default: - $smarty->_trigger_fatal_error("[plugin] unrecognized attribute '".$param_key."'"); - return; - } - } - if(!empty($proxy_host) && !empty($proxy_port)) { - $_is_proxy = true; - $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout); - } else { - $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout); - } - - if(!$fp) { - $smarty->_trigger_fatal_error("[plugin] unable to fetch: $errstr ($errno)"); - return; - } else { - if($_is_proxy) { - fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n"); - } else { - fputs($fp, "GET $uri HTTP/1.0\r\n"); - } - if(!empty($host)) { - fputs($fp, "Host: $host\r\n"); - } - if(!empty($accept)) { - fputs($fp, "Accept: $accept\r\n"); - } - if(!empty($agent)) { - fputs($fp, "User-Agent: $agent\r\n"); - } - if(!empty($referer)) { - fputs($fp, "Referer: $referer\r\n"); - } - if(isset($extra_headers) && is_array($extra_headers)) { - foreach($extra_headers as $curr_header) { - fputs($fp, $curr_header."\r\n"); - } - } - if(!empty($user) && !empty($pass)) { - fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n"); - } - - fputs($fp, "\r\n"); - while(!feof($fp)) { - $content .= fgets($fp,4096); - } - fclose($fp); - $csplit = split("\r\n\r\n",$content,2); - - $content = $csplit[1]; - - if(!empty($params['assign_headers'])) { - $smarty->assign($params['assign_headers'],split("\r\n",$csplit[0])); - } - } - } else { - $smarty->_trigger_fatal_error("[plugin] unable to parse URL, check syntax"); - return; - } - } else { - // ftp fetch - if($fp = @fopen($params['file'],'r')) { - while(!feof($fp)) { - $content .= fgets ($fp,4096); - } - fclose($fp); - } else { - $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] .'\''); - return; - } - } - - } - - - if (!empty($params['assign'])) { - $smarty->assign($params['assign'],$content); - } else { - return $content; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.html_checkboxes.php b/onyx/smarty/plugins/function.html_checkboxes.php deleted file mode 100644 index ed8ad7f..0000000 --- a/onyx/smarty/plugins/function.html_checkboxes.php +++ /dev/null @@ -1,143 +0,0 @@ - - * Type: function
- * Name: html_checkboxes
- * Date: 24.Feb.2003
- * Purpose: Prints out a list of checkbox input types
- * Input:
- * - name (optional) - string default "checkbox" - * - values (required) - array - * - options (optional) - associative array - * - checked (optional) - array default not set - * - separator (optional) - ie
or   - * - output (optional) - the output next to each checkbox - * - assign (optional) - assign the output as an array to this variable - * Examples: - *
- * {html_checkboxes values=$ids output=$names}
- * {html_checkboxes values=$ids name='box' separator='
' output=$names} - * {html_checkboxes values=$ids checked=$checked separator='
' output=$names} - *
- * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} - * (Smarty online manual) - * @author Christopher Kvarme - * @author credits to Monte Ohrt - * @version 1.0 - * @param array - * @param Smarty - * @return string - * @uses smarty_function_escape_special_chars() - */ -function smarty_function_html_checkboxes($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); - - $name = 'checkbox'; - $values = null; - $options = null; - $selected = null; - $separator = ''; - $labels = true; - $output = null; - - $extra = ''; - - foreach($params as $_key => $_val) { - switch($_key) { - case 'name': - case 'separator': - $$_key = $_val; - break; - - case 'labels': - $$_key = (bool)$_val; - break; - - case 'options': - $$_key = (array)$_val; - break; - - case 'values': - case 'output': - $$_key = array_values((array)$_val); - break; - - case 'checked': - case 'selected': - $selected = array_map('strval', array_values((array)$_val)); - break; - - case 'checkboxes': - $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING); - $options = (array)$_val; - break; - - case 'assign': - break; - - default: - if(!is_array($_val)) { - $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; - } else { - $smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - } - } - - if (!isset($options) && !isset($values)) - return ''; /* raise error here? */ - - settype($selected, 'array'); - $_html_result = array(); - - if (isset($options)) { - - foreach ($options as $_key=>$_val) - $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); - - - } else { - foreach ($values as $_i=>$_key) { - $_val = isset($output[$_i]) ? $output[$_i] : ''; - $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); - } - - } - - if(!empty($params['assign'])) { - $smarty->assign($params['assign'], $_html_result); - } else { - return implode("\n",$_html_result); - } - -} - -function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) { - $_output = ''; - if ($labels) $_output .= ''; - $_output .= $separator; - - return $_output; -} - -?> diff --git a/onyx/smarty/plugins/function.html_image.php b/onyx/smarty/plugins/function.html_image.php deleted file mode 100644 index 9abae72..0000000 --- a/onyx/smarty/plugins/function.html_image.php +++ /dev/null @@ -1,142 +0,0 @@ - - * Name: html_image
- * Date: Feb 24, 2003
- * Purpose: format HTML tags for the image
- * Input:
- * - file = file (and path) of image (required) - * - height = image height (optional, default actual height) - * - width = image width (optional, default actual width) - * - basedir = base directory for absolute paths, default - * is environment variable DOCUMENT_ROOT - * - path_prefix = prefix for path output (optional, default empty) - * - * Examples: {html_image file="/images/masthead.gif"} - * Output: - * @link http://smarty.php.net/manual/en/language.function.html.image.php {html_image} - * (Smarty online manual) - * @author Monte Ohrt - * @author credits to Duda - wrote first image function - * in repository, helped with lots of functionality - * @version 1.0 - * @param array - * @param Smarty - * @return string - * @uses smarty_function_escape_special_chars() - */ -function smarty_function_html_image($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); - - $alt = ''; - $file = ''; - $height = ''; - $width = ''; - $extra = ''; - $prefix = ''; - $suffix = ''; - $path_prefix = ''; - $server_vars = ($smarty->request_use_auto_globals) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS']; - $basedir = isset($server_vars['DOCUMENT_ROOT']) ? $server_vars['DOCUMENT_ROOT'] : ''; - foreach($params as $_key => $_val) { - switch($_key) { - case 'file': - case 'height': - case 'width': - case 'dpi': - case 'path_prefix': - case 'basedir': - $$_key = $_val; - break; - - case 'alt': - if(!is_array($_val)) { - $$_key = smarty_function_escape_special_chars($_val); - } else { - $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - - case 'link': - case 'href': - $prefix = ''; - $suffix = ''; - break; - - default: - if(!is_array($_val)) { - $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; - } else { - $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - } - } - - if (empty($file)) { - $smarty->trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE); - return; - } - - if (substr($file,0,1) == '/') { - $_image_path = $basedir . $file; - } else { - $_image_path = $file; - } - - if(!isset($params['width']) || !isset($params['height'])) { - if(!$_image_data = @getimagesize($_image_path)) { - if(!file_exists($_image_path)) { - $smarty->trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE); - return; - } else if(!is_readable($_image_path)) { - $smarty->trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE); - return; - } else { - $smarty->trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE); - return; - } - } - if ($smarty->security && - ($_params = array('resource_type' => 'file', 'resource_name' => $_image_path)) && - (require_once(SMARTY_CORE_DIR . 'core.is_secure.php')) && - (!smarty_core_is_secure($_params, $smarty)) ) { - $smarty->trigger_error("html_image: (secure) '$_image_path' not in secure directory", E_USER_NOTICE); - } - - if(!isset($params['width'])) { - $width = $_image_data[0]; - } - if(!isset($params['height'])) { - $height = $_image_data[1]; - } - - } - - if(isset($params['dpi'])) { - if(strstr($server_vars['HTTP_USER_AGENT'], 'Mac')) { - $dpi_default = 72; - } else { - $dpi_default = 96; - } - $_resize = $dpi_default/$params['dpi']; - $width = round($width * $_resize); - $height = round($height * $_resize); - } - - return $prefix . ''.$alt.'' . $suffix; -} - -/* vim: set expandtab: */ - -?> diff --git a/onyx/smarty/plugins/function.html_options.php b/onyx/smarty/plugins/function.html_options.php deleted file mode 100644 index cebadde..0000000 --- a/onyx/smarty/plugins/function.html_options.php +++ /dev/null @@ -1,122 +0,0 @@ - - * Name: html_options
- * Input:
- * - name (optional) - string default "select" - * - values (required if no options supplied) - array - * - options (required if no values supplied) - associative array - * - selected (optional) - string default not set - * - output (required if not options supplied) - array - * Purpose: Prints the list of