diff --git a/.htaccess b/.htaccess new file mode 100755 index 0000000..e69de29 diff --git a/TODO b/TODO new file mode 100755 index 0000000..82beaf0 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +- Client support for lang +- Client support for Extended Data +- Server support for XHR Requests \ No newline at end of file diff --git a/addrelease.php b/addrelease.php deleted file mode 100755 index 805bccf..0000000 --- a/addrelease.php +++ /dev/null @@ -1,192 +0,0 @@ -load('data.xml'); - $dataNode = $data->getElementsByTagName('data')->item(0); - $mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0); - $id = $mcupdatesNode->getAttribute('total')+1; - $releaseS = $mcupdatesNode->getElementsByTagName('release'); - $release = $releaseS->item($releaseS->length-1); - - // Creation du noeud XML - $releaseNode = $data->createElement('release'); - $mcupdatesNode->appendChild($releaseNode); - $infosNode = $data->createElement('infos'); - $releaseNode->appendChild($infosNode); - $files = $data->createElement('files'); - $releaseNode->appendChild($files); - - // Extraction et copie de minecraft.jar - $directory = $id.' - '.$lastVersions_e[0].' ('.rand(1, 1000).')'; - if (!mkdir($directory) OR !copy($url, $directory.'/minecraft.jar')) { return 'ERREUR Impossible de copier le fichier ou de cr�er un nouveau dossier.';} - if ($type == 'r') { - $zip = new ZipArchive; - if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/content')) { - $zip->extractTo($directory.'/content'); - $zip->close(); - } - } else { - $zip = new ZipArchive; - if ($zip->open($directory.'/minecraft.jar') AND mkdir($directory.'/extract')) { - $zip->extractTo($directory.'/extract'); - $zip->close(); - $zip2 = new ZipArchive; - if ($zip2->open($directory.'/extract/bin/minecraft.jar') AND mkdir($directory.'/content')) { - $zip2->extractTo($directory.'/content'); - $zip2->close(); - } else { - return 'ERREUR Impossible d\'extraire le fichier ou de cr�er un nouveau dossier².'; - } - } else { - return 'ERREUR Impossible d\'extraire le fichier ou de cr�er un nouveau dossier.'; - } - } - $md5 = md5_file($directory.'/minecraft.jar'); - directoryConstruct($directory.'/content', $files, $data, directoryOld($release)); - - // Detection de $givenName - // Code par @EphysPatato - $minecraft_class = file_get_contents($directory.'/content/net/minecraft/client/Minecraft.class'); - $givenName = 'false'; - if (preg_match('/Minecraft Minecraft (.+)Minecraft main/', $minecraft_class, $matches)) { - $givenName = ''; - $givenName_w = $matches[count($matches)-1]; - for( $i = 0 ; $i < strlen($givenName_w) ; $i++ ) - { - $givenName_cw = substr($givenName_w, $i, 1); - if(($givenName_cw >= 'a' && $givenName_cw <= 'z') || ($givenName_cw >= 'A' && $givenName_cw <= 'Z') || ($givenName_cw >= '0' && $givenName_cw <= '9') || $givenName_cw == '|' || $givenName_cw == '.' || $givenName_cw == '_' || $givenName_cw == '-') - $givenName .= $givenName_cw; - } - } - // Sp�cifications selon le type de release - if ($type == 'r') { - $name = $givenName; - $lastVersions_e[1] = $name; - $lastVersions_e[2] = $md5; - $infosNode->setAttribute('wiki', 'http://www.minecraftwiki.net/wiki/Version_history#'.$name); - } else { - $name = $input; - $lastVersions_e[3] = $name; - $lastVersions_e[4] = $md5; - $infosNode->setAttribute('wiki', 'http://www.minecraftwiki.net/wiki/Version_history/Development_versions#'.$name); - } - - // Mise des infos dans le XML - $releaseNode->setAttribute('id', $id); - $releaseNode->setAttribute('name', $name); - $releaseNode->setAttribute('type', $type); - $infosNode->setAttribute('givenName', $givenName); - $infosNode->setAttribute('directory', $directory); - $infosNode->setAttribute('link', $url); - $infosNode->setAttribute('size', filesize($directory.'/minecraft.jar')); - $infosNode->setAttribute('md5', $md5); - $infosNode->setAttribute('sha1', sha1_file($directory.'/minecraft.jar')); - $infosNode->setAttribute('date', $lastVersions_e[0]); - $infosNode->setAttribute('shortDescription', 'false'); - $mcupdatesNode->setAttribute('total', $id); - - // Sauvegarde finale - $lastVersions_e[0] = time(); - $lastVersions_e[5] = $id; - $lastVersions_e[6] = $name; - $lastVersions_e[7] = $type; - $id = $mcupdatesNode->setAttribute('total', $id); - $lastVersions_f = fopen('lastVersions.txt', 'w'); - $lastError = error_get_last(); - if ($debug) { echo substr($lastError['file'], -14); } - if ($lastError /*AND $lastError['type']!= 2 */AND substr($lastError['file'], -14) == 'addrelease.php') { - fwrite($lastVersions_f, implode('|', $lastVersions_e_backup)); - rrmdir($directory); - return 'ERREUR "'.$lastError['message'].'" (type : '.$lastError['type'].') dans '.$lastError['file'].' ligne '.$lastError['line'].'.'; - } else { - $data->save('data.xml'); - fwrite($lastVersions_f, implode('|', $lastVersions_e)); - fclose($lastVersions_f); - return implode('|', $lastVersions_e); - } -} -function directoryConstruct($directoryName, $XML, $data, $array) { - $directory = opendir($directoryName); - while($file = readdir($directory)) { - if ($file != '.' AND $file != '..') { - if (is_dir($directoryName.'/'.$file)) { - $newDirectory = $data->createElement('dir'); - $XML->appendChild($newDirectory); - $newDirectory->setAttribute('name', $file); - if (isset($array[$file])) { - $newDirectory->setAttribute('comparaison', 'same'); - directoryConstruct($directoryName.'/'.$file, $newDirectory, $data, $array[$file]); - } else { - $newDirectory->setAttribute('comparaison', 'added'); - directoryConstruct($directoryName.'/'.$file, $newDirectory, $data, array()); - } - } else { - $fileXML = $data->createElement('file'); - $XML->appendChild($fileXML); - $fileXML->setAttribute('name', $file); - $fileXML->setAttribute('md5', md5_file($directoryName.'/'.$file)); - if (isset($array[$file])) { - if ($array[$file] == md5_file($directoryName.'/'.$file)) { - $fileXML->setAttribute('comparaison', 'same'); - } else { - $fileXML->setAttribute('comparaison', 'change'); - } - } else { - $fileXML->setAttribute('comparaison', 'added'); - } - // TODO Verifier si un fichier a �t� supprim� - } - } - } -} -function directoryOld($XML) { -$array = array(); - $dirS = $XML->getElementsByTagName('dir'); - for ($c = $dirS->length, $i = 0; $i < $c; $i++) { - $dir = $dirS->item($i); - $array[$dir->getAttribute('name')]= directoryOld($dir); - } - $fileS = $XML->getElementsByTagName('file'); - for ($c = $fileS->length, $i = 0; $i < $c; $i++) { - $file = $fileS->item($i); - $array[$file->getAttribute('name')] = $file->getAttribute('md5'); - } - return $array; -} -function rrmdir($dir) { // Par holger1@NOSPAMzentralplan.de - if (is_dir($dir)) { - $objects = scandir($dir); - foreach ($objects as $object) { - if ($object != "." && $object != "..") { - if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); - } - } - reset($objects); - rmdir($dir); - } - } -?> \ No newline at end of file diff --git a/admin.php b/admin.php new file mode 100755 index 0000000..0165eb2 --- /dev/null +++ b/admin.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/cache/.gitignore b/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/data.xml b/data.xml deleted file mode 100755 index 10aa7c3..0000000 --- a/data.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/engine/check.php b/engine/check.php new file mode 100755 index 0000000..0165eb2 --- /dev/null +++ b/engine/check.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/engine/releases.php b/engine/releases.php new file mode 100755 index 0000000..0165eb2 --- /dev/null +++ b/engine/releases.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/feed.php b/feed.php new file mode 100755 index 0000000..0165eb2 --- /dev/null +++ b/feed.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/images/icons/book.png b/images/icons/book.png deleted file mode 100755 index fe758c8..0000000 Binary files a/images/icons/book.png and /dev/null differ diff --git a/images/icons/bookLess.png b/images/icons/bookLess.png deleted file mode 100755 index bf439e3..0000000 Binary files a/images/icons/bookLess.png and /dev/null differ diff --git a/images/icons/bookMore.png b/images/icons/bookMore.png deleted file mode 100755 index 24ac7e8..0000000 Binary files a/images/icons/bookMore.png and /dev/null differ diff --git a/images/icons/bookshelf.png b/images/icons/bookshelf.png deleted file mode 100755 index c1c3236..0000000 Binary files a/images/icons/bookshelf.png and /dev/null differ diff --git a/images/icons/bookshelfMore.png b/images/icons/bookshelfMore.png deleted file mode 100755 index a07a1ad..0000000 Binary files a/images/icons/bookshelfMore.png and /dev/null differ diff --git a/images/icons/map.png b/images/icons/map.png deleted file mode 100755 index 65e2be2..0000000 Binary files a/images/icons/map.png and /dev/null differ diff --git a/images/icons/painting.png b/images/icons/painting.png deleted file mode 100755 index 81dda60..0000000 Binary files a/images/icons/painting.png and /dev/null differ diff --git a/images/icons/paper.png b/images/icons/paper.png deleted file mode 100755 index a515b28..0000000 Binary files a/images/icons/paper.png and /dev/null differ diff --git a/images/icons/redstoneTorchOff.png b/images/icons/redstoneTorchOff.png deleted file mode 100755 index 50224b7..0000000 Binary files a/images/icons/redstoneTorchOff.png and /dev/null differ diff --git a/images/icons/redstoneTorchOn.png b/images/icons/redstoneTorchOn.png deleted file mode 100755 index 41f4cbb..0000000 Binary files a/images/icons/redstoneTorchOn.png and /dev/null differ diff --git a/images/icons/sign.png b/images/icons/sign.png deleted file mode 100755 index 6f1724d..0000000 Binary files a/images/icons/sign.png and /dev/null differ diff --git a/index.php b/index.php index 19d0864..900e9d9 100755 --- a/index.php +++ b/index.php @@ -1,236 +1,85 @@ load('data.xml'); -$dataNode = $data->getElementsByTagName('data')->item(0); -$mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0); -$releaseS = $mcupdatesNode->getElementsByTagName('release'); -$text = ''; -for ($i = $releaseS->length; $i > 1; $i--) { - $release = $releaseS->item($i-1); - $releaseInfos = $release->getElementsByTagName('infos')->item(0); - $text .= '

Minecraft '.$release->getAttribute('name').' '; - if (isset($prevRelease)) { - if ($release->getAttribute('name') == $prevRelease->getAttribute('name')) { - $text .= '(version enterrée) '; + +$lang = false; + +if (isset($_GET['lang'])) { + if (is_file('lang/'.$_GET['lang'].'.lang')) { + $lang = $_GET['lang']; + setcookie('lang', $lang, time()+32140800); + } +} +if (!$lang AND isset($_COOKIE['lang'])) { + if (is_file('lang/'.$_COOKIE['lang'].'.lang')) { + $lang = $_COOKIE['lang']; + } +} +if (!$lang) { + $lang = 'fr_FR'; #TODO Function wich detct the language + setcookie('lang', $lang, time()+32140800); +} +$langCacheLink = 'cache/index/'.$lang.'.html'; + +if (is_file($langCacheLink)) { // If there is a cache file + echo file_get_contents($langCacheLink); // Send it + end; +} else { // Else, construct it + $langData = fopen('lang/'.$lang.'.lang', 'r'); + $langParsed = array(); + while($langDataLine = fgets($langData)) { + $langDataLineUncommented = explode("#", $langDataLine); + $langDataLineUncommentedExploded = explode('=', $langDataLineUncommented[0]); + if (count($langDataLineUncommentedExploded) == 2) { + $langParsed[ltrim(rtrim($langDataLineUncommentedExploded[0]))] = ltrim(rtrim($langDataLineUncommentedExploded[1])); } } - $shortDescription = $releaseInfos->getAttribute('shortDescription'); - if ($shortDescription == 'false') { - $shortDescription = 'Pas de description.'; - } - $text .= '

'.$shortDescription.'
'; - $prevRelease = $release; -} -?> - - + $langIndexText = ' + -Minecraft Checker - - - + + '.$langParsed['general.title'].' + + + - -

Minecraft Checker

-
-

Rechercher des versions

- - -

Versions référencées

-
- -
-
- - + +

'.$langParsed['general.title']; + if ($langParsed['general.version.state'] != '0') { + $langIndexText .= ' '.$langParsed['general.version.state']; + } + $langIndexText .= '

+
+

'.$langParsed['general.description'].'

+

'.$langParsed['allReleases.title'].' '.$langParsed['allReleases.noConnexion'].'

+
+
+
+ - \ No newline at end of file +'; + echo $langIndexText; + if (!is_dir('cache')) { + mkdir('cache'); + } + if (!is_dir('cache/index')) { + mkdir('cache/index'); + } + if ($langCacheData = fopen($langCacheLink, 'w')) { + fwrite($langCacheData, $langIndexText); + } + +} + +?> \ No newline at end of file diff --git a/indexold.php b/indexold.php deleted file mode 100755 index 4d49350..0000000 --- a/indexold.php +++ /dev/null @@ -1,236 +0,0 @@ -load('data.xml'); -$dataNode = $data->getElementsByTagName('data')->item(0); -$mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0); -$releaseS = $mcupdatesNode->getElementsByTagName('release'); -$text = ''; -for ($i = $releaseS->length; $i > 1; $i--) { - $release = $releaseS->item($i-1); - $releaseInfos = $release->getElementsByTagName('infos')->item(0); - $text .= '

Minecraft '.$release->getAttribute('name').' '; - if (isset($prevRelease)) { - if ($release->getAttribute('name') == $prevRelease->getAttribute('name')) { - $text .= '(version enterrée) '; - } - } - $shortDescription = $releaseInfos->getAttribute('shortDescription'); - if ($shortDescription == 'false') { - $shortDescription = 'Pas de description.'; - } - $text .= '

'.$shortDescription.'
'; - $prevRelease = $release; -} -?> - - - -Minecraft Checker - - - - - -

Minecraft Checker

-
-

Rechercher des versions

- - -

Versions référencées

-
- -
-
- - - - \ No newline at end of file diff --git a/jars/.gitignore b/jars/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/jars/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/lang/de_DE.lang b/lang/de_DE.lang new file mode 100755 index 0000000..82199d9 --- /dev/null +++ b/lang/de_DE.lang @@ -0,0 +1,47 @@ +language.name=Deutsch +language.region=Deutschland +language.code=de_DE +language.codeHTML=de + +general.title=Minecraft Checker +general.version=1.1 +general.version.state=α +general.description=Minecraft Checker kontrollieren Minecraft neue Versionen und warnen Sie. Es erlaubt Sie Informationen über Versionen einfach zu bekommen. + +allReleases.title=Referenzierten Versionen +allReleases.noConnexion=(kein connexion) +allReleases.connexionEtablished=(connexion établie) +allReleases.error=(erreur de connexion) +allReleases.suspended=(connexion au serveur suspendue) +allReleases.updating.waiting=(mise à jour des données) +allReleases.updating.done=(données mises à jour) +allReleases.newRelease.waiting=(nouvelle version détéctée) +allReleases.newRelease.added(nouvelle version ajoutée) + +#release.title.minecraft=Minecraft +#release.title.classic=Classic +#release.title.indev=Indev +#release.title.infdev=Infdev +#release.title.alpha=Alpha +#release.title.beta=Beta +#release.title.official=(version officielle) +release.title.state.developpement=(version de développement) +release.title.state.willUpdate=(informations pas à jour) +release.title.state.updating=(mise à jour des informations) +release.title.state.updated=(informations mises à jour) +release.title.state.error=(impossible de récupérer les informations sur la mise à jour) +release.title.state.newRelease=(version récente) +release.expandButton.more.value=+ +release.expandButton.more.tip=Ouvrir les informations détaillées +release.expandButton.less.value=- +release.expandButton.less.tip=Fermer les informations détaillées +release.expandButton.loading.value=... +release.expandButton.loading.tip=Chargement des informations détaillées + +footer.script=Skript von %1. +footer.help=Mit helfen von %1. +footer.design=Bei ein design von %1. +footer.translation=Übersetzung von %1 (bei weitem nicht perfekt). +footer.translation.author=WebFrogeye +footer.translation.author.link=http://twitter.com/WebFrogeye TODO Does not allow any # in +footer.version=Versionen \ No newline at end of file diff --git a/lang/en_US.lang b/lang/en_US.lang new file mode 100755 index 0000000..93db9bc --- /dev/null +++ b/lang/en_US.lang @@ -0,0 +1,47 @@ +language.name=English +language.region=United-States +language.code=en_US +language.codeHTML=en + +general.title=Minecraft Checker +general.version=1.1 +general.version.state=α +general.description=Minecraft Checker check Minecraft's new versions and alert you. It allow you to get informations about releases simply. + +allReleases.title=Referenced versions +allReleases.noConnexion=(no connexion to server) +allReleases.connexionEtablished=(connexion établie) +allReleases.error=(erreur de connexion) +allReleases.suspended=(connexion au serveur suspendue) +allReleases.updating.waiting=(mise à jour des données) +allReleases.updating.done=(données mises à jour) +allReleases.newRelease.waiting=(nouvelle version détéctée) +allReleases.newRelease.added(nouvelle version ajoutée) + +#release.title.minecraft=Minecraft +#release.title.classic=Classic +#release.title.indev=Indev +#release.title.infdev=Infdev +#release.title.alpha=Alpha +#release.title.beta=Beta +#release.title.official=(version officielle) +release.title.state.developpement=(version de développement) +release.title.state.willUpdate=(informations pas à jour) +release.title.state.updating=(mise à jour des informations) +release.title.state.updated=(informations mises à jour) +release.title.state.error=(impossible de récupérer les informations sur la mise à jour) +release.title.state.newRelease=(version récente) +release.expandButton.more.value=+ +release.expandButton.more.tip=Ouvrir les informations détaillées +release.expandButton.less.value=- +release.expandButton.less.tip=Fermer les informations détaillées +release.expandButton.loading.value=... +release.expandButton.loading.tip=Chargement des informations détaillées + +footer.script=Script by %1. +footer.help=With help of %1. +footer.design=On a design by %1. +footer.translation=Translation by %1 (far from perfect). +footer.translation.author=WebFrogeye +footer.translation.author.link=http://twitter.com/WebFrogeye TODO Does not allow any # in +footer.version=Version \ No newline at end of file diff --git a/lang/fr_FR.lang b/lang/fr_FR.lang new file mode 100755 index 0000000..debcbe6 --- /dev/null +++ b/lang/fr_FR.lang @@ -0,0 +1,46 @@ +language.name=Français +language.region=France +language.code=fr_FR + +general.title=Minecraft Checker +general.version=1.1 +general.version.state=α +general.description=Minecraft Checker vérifie les nouvelles versions de Minecraft et vous en alerte. Il permet aussi d'avoir des informations sur les versions simplement. + +allReleases.title=Versions référencées +allReleases.noConnexion=(pas de connexion au serveur) +allReleases.connexionEtablished=(connexion établie) +allReleases.error=(erreur de connexion) +allReleases.suspended=(connexion au serveur suspendue) +allReleases.updating.waiting=(mise à jour des données) +allReleases.updating.done=(données mises à jour) +allReleases.newRelease.waiting=(nouvelle version détéctée) +allReleases.newRelease.added(nouvelle version ajoutée) + +#release.title.minecraft=Minecraft +#release.title.classic=Classic +#release.title.indev=Indev +#release.title.infdev=Infdev +#release.title.alpha=Alpha +#release.title.beta=Beta +#release.title.official=(version officielle) +release.title.state.developpement=(version de développement) +release.title.state.willUpdate=(informations pas à jour) +release.title.state.updating=(mise à jour des informations) +release.title.state.updated=(informations mises à jour) +release.title.state.error=(impossible de récupérer les informations sur la mise à jour) +release.title.state.newRelease=(version récente) +release.expandButton.more.value=+ +release.expandButton.more.tip=Ouvrir les informations détaillées +release.expandButton.less.value=- +release.expandButton.less.tip=Fermer les informations détaillées +release.expandButton.loading.value=... +release.expandButton.loading.tip=Chargement des informations détaillées + +footer.script=Script par %1. +footer.help=Avec l'aide d'%1. +footer.design=Sur un design de %1. +footer.translation=Traduction de %1. +footer.translation.author=0 +footer.translation.author.link=# TODO Does not allow any # in +footer.version=Version \ No newline at end of file diff --git a/lastVersions.txt b/lastVersions.txt deleted file mode 100755 index 59b955b..0000000 --- a/lastVersions.txt +++ /dev/null @@ -1 +0,0 @@ -1336223378|1.2.5|8e8778078a175a33603a585257f28563|12w18a|37d778548796dd95c4d0ea49a015be06|27|12w18a|apr \ No newline at end of file diff --git a/maintenance.php b/maintenance.php new file mode 100755 index 0000000..59195e2 --- /dev/null +++ b/maintenance.php @@ -0,0 +1,17 @@ + + + + + + Minecraft Checker - Maintenance + + +

Minecraft Checker - Maintenance

+
+

Minecraft Checker is currently in maintenance. It will be back soon.

+

Minecraft Checker est en mantenance. Il reviendra sous peu. Pour plus d'informations, consultez le compte twitter de @WebFrogeye.

+
+ + \ No newline at end of file diff --git a/moreinfos.php b/moreinfos.php deleted file mode 100755 index 3b24812..0000000 --- a/moreinfos.php +++ /dev/null @@ -1,143 +0,0 @@ -load('data.xml'); - $dataNode = $data->getElementsByTagName('data')->item(0); - $mcupdatesNode = $dataNode->getElementsByTagName('mcupdates')->item(0); - $releaseS = $mcupdatesNode->getElementsByTagName('release'); - // $lastVersions_e = explode('|', file_get_contents('lastVersions.txt')); - $prevRelease = false; - for ($c = $releaseS->length, $i = 0; $i < $c; $i++) { - $release = $releaseS->item($i); - if ($_GET['i'] == $release->getAttribute('id')) { - $releaseInfos = $release->getElementsByTagName('infos')->item(0); - $releaseDateE = explode('/', $releaseInfos->getAttribute('date')); - $date = $releaseInfos->getAttribute('date'); - echo 'Sortie le '.date('d', $date).'/'.date('m', $date).'/'.date('Y', $date); - /*if (date('G', $date) != 0 OR date('i', $date) != 0) { - echo ' à '.date('G', $date).':'.date('i', $date).' (environ)'; - }*/ - echo '.
'; - if ($release->getAttribute('name') != $releaseInfos->getAttribute('givenName')) { - echo 'Le nom de la version donné dans le jeu est '.$releaseInfos->getAttribute('givenName').' mais le nom réel est '.$release->getAttribute('name').'.
'; - } - // Téléchargement - echo '

Téléchargement

-Nom : minecraft.jar -Taille : '.$releaseInfos->getAttribute('size').' octets
-MD5 : '.$releaseInfos->getAttribute('md5').'
-SHA-1 : '.$releaseInfos->getAttribute('sha1').'
'; - if (is_dir($releaseInfos->getAttribute('directory'))) { - $downloadLocal = $releaseInfos->getAttribute('directory').'/minecraft.jar'; } - if (@fopen($releaseInfos->getAttribute('link'), 'r') AND ($release->getAttribute('type') != 'r' OR $i+1 == $c)) { - $downloadServer = $releaseInfos->getAttribute('link'); - } else { - // TODO AR? Prévoir ça (variable $changes par exemple) - } - // TODO AR $downloadWiki - if (isset($downloadLocal) OR isset($downloadServer) OR isset($downloadWiki)) { - if (isset($downloadLocal)) { - echo 'Depuis ce serveur
'; } - if (isset($downloadServer)) { - echo 'Depuis minecraft.net
'; } - if (isset($downloadWiki)) { - echo 'Depuis Minecaft Wiki
'; } - } else { - echo 'Aucun lien de téléchargement n\'est disponible.'; - } - echo '
'; - echo '
-

Changelog

-Langue : Français
-Lien vers le wiki
-
'; - $text = '