/* * jeu.js * * Script qui manipule les données des jeux * contenues dans data.js * * @author Vabre Lucas */ /* Algorithme qui récupère la valeur de la variable contenue dans l'URL */ let $_GET = {}; // Creer l'objet GET if(document.location.toString().indexOf('?') != -1) { // Verifie si il y a un ? dans l'url var query = document.location // Modifie quelques caractères qui pourrais être mal interprété .toString() .replace(/^.*?\?/, '') .replace(/#.*$/, '') .split('&'); /* Tout ce qu'il se trouve apres le ? va etre traité */ for(var i=0, l=query.length; i * @param {String} content : Contenu du tr * @param {String} argument : Argument */ function MakeTr(content, argument) { return ('' + content + ''); } /** * Créer plus facilement et lisiblement une balise * @param {String} content : Contenu du td * @param {String} argument : Argument */ function MakeTd(content, argument) { return ('' + content + ''); } /** * Créer plus facilement et lisiblement une balise * @param {String} content : Contenu du th * @param {String} argument : Argument */ function MakeTh(content, argument) { return ('' + content + ''); } /** * Créer plus facilement et lisiblement une balise * @param {String} content : Contenu du a * @param {String} argument : Argument */ function MakeA(content, argument) { return ('' + content + ''); } /** * Créer plus facilement et lisiblement une balise * @param {String} argument : Argument */ function MakeImg(argument) { return (''); } /** * Fonction qui permet le bon affichage de jeu.html * en récuperant la variable id dans l'url, puis en * affichant les elements du jeu (de cet id) sur les * element de la page */ function PageJeu () { /* Initialisation des variables */ let id = parseInt($_GET["id"]); let gameElement = game[id]; let title1 = document.getElementById("game-title-0"); let title2 = document.getElementById("game-title-1"); let title3 = document.getElementById("game-title-2"); let description = document.getElementById("game-description"); let developper = document.getElementById("dev"); let editor = document.getElementById("editor"); let pegi = document.getElementById("pegi"); let price = document.getElementById("price"); let payButton = document.getElementById("pay-button"); let ingame = document.getElementById("picture-ingame"); // Image sous la vidéo let gameLogo = document.getElementById("picture-logo"); let video = document.getElementById("video"); // Lien de la video if (-1 < id && id <= (game.length - 1)) { /* Affectation des elements */ title1.innerHTML += gameElement.name; title2.innerHTML = gameElement.name; title3.innerHTML = gameElement.name; description.innerHTML = gameElement.info; developper.innerHTML = gameElement.developper; editor.innerHTML = gameElement.editor; pegi.innerHTML = gameElement.classification; /* Affichage des immages */ ingame.style.backgroundImage = "url('../" + gameElement.ingame + "')"; ingame.alt = "Image de preview du jeu : " + gameElement.name; gameLogo.style.backgroundImage = "url('../" + gameElement.logo + "')"; gameLogo.alt = "Logo du jeu : " + gameElement.name; video.src = "https://www.youtube.com/embed/" + gameElement.video + "?mute=1&autoplay=1"; video.alt = "Video de présentation du jeu : " + gameElement.name; /* Prix */ if (gameElement.price == 0) { // Jeu Gratuit price.innerHTML = ''; payButton.value = 'Jouer'; } else { // Jeu payant /* Calcul de la promotion si il y en à une */ price.innerHTML = gameElement.isInPromo ? CalcPromo(gameElement.promo, gameElement.price) : gameElement.price ; price.innerHTML += " €"; payButton.value = 'Acheter' } } else { // Page non trouvée window.open("error.html"); } } /** * Fonction qui permet d'afficher sous forme de tableaux * toutes les données stockées dans data.js. * Utilisé en tant que commande de débugage, * c'est pourquoi elle figure uniquement dans dev.html */ function ShowGameAll() { let gameList = document.getElementById('game-list').innerHTML; /* Affichage de l'entête du tableau */ gameList = MakeTr(MakeTd('id') + MakeTd('name') + MakeTd('price') + MakeTd('isInPromo') + MakeTd('promo') + MakeTd('info') + MakeTd('developper') + MakeTd('editor') + MakeTd('classification') + MakeTd('imgHorizontal') + MakeTd('imgVertical') + MakeTd('ingame') + MakeTd('video'), 'style="background-color: var(--overlay-color)"'); for (let i = 0; i < game.length; i++) { // Affiche autant de lignes que d'elements dans la liste game gameList += MakeTr(MakeTd(game[i].id) + MakeTd(game[i].name) + MakeTd(game[i].price) + MakeTd(game[i].isInPromo) + MakeTd(game[i].promo) + MakeTd(game[i].info) + MakeTd(game[i].developper) + MakeTd(game[i].editor) + MakeTd(game[i].classification) + MakeTd(game[i].imgHorizontal) + MakeTd(game[i].imgVertical) + MakeTd(game[i].ingame) + MakeTd(game[i].video)); } } /** * Affiche tout les jeux * (image + Nom + developpeur et prix) * Utilisé dans listeJeux.html */ function ShowGameList() { var element = document.getElementById('test'); let price; let link; let image; for (let i = 0; i < game.length; i++) { link = "jeu.html?id=" + game[i].id; image = "../" + game[i].imgHorizontal; if (game[i].price == 0) { price = "Gratuit"; } else { price = game[i].isInPromo ? CalcPromo(game[i].promo, game[i].price) : game[i].price; price += " €"; } element.innerHTML += MakeTr(MakeTh(game[i].id) + MakeTd(MakeA(MakeImg('draggable="false" src="' + image + '" alt="Image de : ' + game[i].name + '"'), 'href="' + link + '"')) + MakeTd('

' + MakeA(game[i].name, 'href="' + link + '"') + '

') + MakeTd('

' + game[i].developper + '

') + MakeTd('

' + price + '

')) + MakeTr(MakeTd('
','colspan="5"')); } } /** * Fonction qui permet d'automatiser la création de "cartes" * sur la page index.html. * * @param card : l'élement cible qui a la classe "card" * @param disposition : deux valeurs possibles "vertical" ou "horizontal" * permet de produire une carte verticale ou horizontale * @param id : Valeur de l'id du jeu (voir dans data.js) * @param isIndex : boolean si cette fonction * est executé dans index.html => true */ function CreateCard(card, disposition, id, isIndex) { let indexConvertor = [2]; let link; let gamePricePromo; let priceShow; let image; image = (disposition == "vertical") ? game[id].imgVertical : game[id].imgHorizontal; if (isIndex) { indexConvertor[0] = "html\\"; indexConvertor[1] = ""; } else { indexConvertor[0] = ""; indexConvertor[1] = "..\\"; } link = indexConvertor[0] + "jeu.html?id=" + id; /* Calcul de l'éventuelle promotion */ gamePricePromo = game[id].isInPromo ? CalcPromo(game[id].promo, game[id].price) : 0.0; /* Stockage de la partie "prix" */ if (game[id].isInPromo) {/* Gestion de la promotion */ priceShow = '-' + game[id].promo + '%' + ' ' + game[id].price +'€ ' + gamePricePromo + '€' } else if(game[id].price == 0) { /* Si le jeu est gratuit */ priceShow = 'Gratuit'; } else { priceShow = game[id].price + '€'; } /* Remplissage de la carte */ card.innerHTML += MakeA(MakeImg('draggable="false" alt="Image de : ' + game[id].name + '" src="' + indexConvertor[1] + image + '"'), 'href="' + link + '" class="card-picture ' + disposition + '"') + '
' + MakeA('

' + game[id].name + '

', 'href="' + link + '"') + '

' + game[id].editor + '

' + '

' + priceShow + '

' + '
'; }