Selaa lähdekoodia

Ajout fichier

Loquicom 6 vuotta sitten
vanhempi
sitoutus
9bb29006a9
4 muutettua tiedostoa jossa 297 lisäystä ja 0 poistoa
  1. 9 0
      footer.php
  2. 14 0
      header.php
  3. 227 0
      index.php
  4. 47 0
      start.php

+ 9 - 0
footer.php

@@ -0,0 +1,9 @@
+    
+    	<div id="float_msg" class="float_message" style="display: none;"></div>
+
+    	<!--JavaScript at end of body for optimized loading-->
+    	<script type="text/javascript" src="js/materialize.min.js"></script>
+    	<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
+    	<script type="text/javascript" src="js/script.js"></script>
+	</body>
+</html>

+ 14 - 0
header.php

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <!--Import Google Icon Font-->
+        <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
+        <!--Import materialize.css-->
+        <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
+        <!--Let browser know website is optimized for mobile-->
+        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+
+        <title>JdR</title>
+    </head>
+
+    <body class="grey lighten-4">

+ 227 - 0
index.php

@@ -0,0 +1,227 @@
+<?php
+
+//Regarde si il y a un cookie avec le nom de la session à charger ou l'info en POST
+if(isset($_POST['salon'])){
+	//Création du cookie
+	setcookie('salon', $_POST['salon'], time() + 60 * 60 * 24, '/', '', false, true);
+	//Recharge la page
+	header('Location: ./');
+	exit;
+} else if(!isset($_COOKIE['salon'])){
+	require 'start.php';
+	exit;
+}
+
+//Activation de la session
+if(!isset($_COOKIE['common-sess'])){
+	//Création du cookie de session commun
+	setcookie('common-sess', $_COOKIE['salon'], time() + 60 * 60 * 24, '/', '', false, true);
+	//Recharge la page
+	header('Location: ./');
+	exit;
+} else if($_COOKIE['common-sess'] != $_COOKIE['salon']){
+	//Changement de la valeur de la session
+	setcookie('common-sess', $_COOKIE['salon'], time() + 60 * 60 * 24, '/', '', false, true);
+	//Recharge la page
+	header('Location: ./');
+	exit;
+}
+
+//Lancement session
+session_name('common-sess');
+session_start();
+
+//Valeur message
+$type = '';
+$value = '';
+
+//Param Get
+if(isset($_GET['reset'])){
+	session_destroy();
+	header('Location: ./?type=ok&value=' . urlencode('Session reset'));
+	exit;
+}
+if(isset($_GET['quit'])){
+	setcookie('salon', '', 0, '/', '', false, true);
+	header('Location: ./');
+	exit;
+}
+if(isset($_GET['type']) && isset($_GET['value'])){
+	$type = $_GET['type'];
+	$value = $_GET['value'];
+}
+
+//Setup session si besoins
+if(!( isset($_SESSION['user']) && isset($_SESSION['roll']) )){
+	$_SESSION['user'] = [];
+	$_SESSION['roll'] = [];
+}
+
+//Traitement formulaire
+if(isset($_POST['roll'])){
+	//Regarde si l'utilisateur est nouveau
+	$name = '';
+	if(isset($_POST['name']) && trim($_POST['name']) != ''){
+		$name = $_POST['name'];
+		if(!isset($_SESSION['user'][$name])){
+			$_SESSION['user'][$name] = $name;
+		}
+	} else if(isset($_POST['save-name'])){
+		$name = $_POST['save-name'];
+	} else {
+		$type = 'err';
+		$value = 'Aucun lanceur';
+	}
+	//Si il y a un bien un utilisateur
+	if($name != ''){
+		//Tirage
+		$roll = mt_rand(1, $_POST['roll']);
+		//Affichage
+		if(isset($_POST['hide'])){
+			header('Location: ./?type&value=' . urlencode('Resultat : ' . $roll . ' / ' . $_POST['roll']));
+			exit;
+		}
+		$_SESSION['roll'][] = [
+			'name' => $name,
+			'roll' => $roll,
+			'dice' => $_POST['roll']
+		];
+	}
+}
+
+//Page web
+require 'header.php';
+?>
+
+<style type="text/css">
+	.center{
+		text-align: center;
+	}
+
+	.float_message {
+    	position: absolute;
+    	width: 800px;
+    	top: 120px;
+    	right: 80px;
+    	z-index: 100;
+    	box-shadow:  12px 12px 2px 1px rgba(0, 0, 255, .2);
+    	margin:  0 0 0 0;
+    	height: 60px;
+    	cursor:  pointer;
+	}
+</style>
+
+<div style="position: absolute; top: 40px; left: 80px; cursor: pointer;">
+	<i id="quit" class="material-icons tooltipped" data-position="right" data-tooltip="Changer de salon" style="font-size: 4em">arrow_back</i>
+</div>
+
+<div style="position: absolute; top: 40px; right: 80px; cursor: pointer;">
+	<i id="reload" class="material-icons tooltipped" data-position="bottom" data-tooltip="Recharger la page" style="font-size: 4em">refresh</i>
+</div>
+
+<div style="position: absolute; top: 40px; right: 160px; cursor: pointer;">
+	<i id="reset" class="material-icons tooltipped" data-position="left" data-tooltip="Reset les lancer" style="font-size: 4em">settings_backup_restore</i>
+</div>
+
+<main class="container">
+	<div class="row">
+		<div class="col s12 center">
+			<h1><b>JdR Roll</b></h1>
+		</div>
+	</div>
+	<form id="form" method="POST" action="./">
+		<div class="row">
+			<div class="col m6 s12">
+				<div class="row">
+		        	<div class="input-field col s12">
+		          		<input id="name" type="text" name="name">
+		          		<label for="name">Nom du lanceur</label>
+		        	</div>
+		      	</div>
+		    </div>
+		    <div class="col m6 s12">
+				<div class="row">
+		        	<div class="input-field col s12">
+		          		<select id="save-name" name="save-name">
+		      				<option value="" disabled selected>Selectionnez un lanceur</option>
+		      				<?php
+		      				foreach ($_SESSION['user'] as $val) {
+		      					?>
+		      					<option><?= $val ?>
+		      					<?php
+		      				}
+		      				?>
+		    			</select>
+		    			<label>Lanceur enregistr&eacute;</label>
+		        	</div>
+		      	</div>
+		    </div>
+		</div>
+		<div class="row">
+			<div class="col m6 s12">
+				<div class="row">
+		        	<div class="input-field col s12">
+		      			<select name="roll">
+		      				<option selected>100</option>
+		      				<?php
+		      				for($i = 90; $i > 0; $i -= 10){
+		      					?>
+		      					<option><?= $i ?></option>
+		      					<?php
+		      				}
+		      				?>
+		    			</select>
+		    			<label>Valeur</label>
+		    		</div>
+		    	</div>
+		    </div>
+		    <div class="col m4 s12 center" style="margin-top: 2em">
+		    	<label>
+        			<input type="checkbox" name="hide">
+        			<span>Cacher le resultat</span>
+      			</label>
+		    </div>
+		</div>
+		<div class="row center">
+			<div class="col s12">
+				<button id="valid" type="button" class="waves-effect waves-light btn" style="margin-top: 1em"><i class="material-icons right">check</i>Valider</button>
+			</div>
+		</div>
+	</form>
+	<div class="row">
+		<div class="col s12 center">
+			<h3><i>Historique</i></h3>
+		</div>
+	</div>
+	<div class="row">
+		<div class="col s12">
+			<table class="responsive-table">
+				<thead>
+					<tr>
+						<td><b>Lanceur</b></td>
+						<td><b>Valeur</b></td>
+						<td><b>D&eacute;</b></td>
+					</tr>
+				</thead>
+				<tbody>
+					<?php
+					$roll = array_reverse($_SESSION['roll']);
+					foreach ($roll as $val) {
+						?>
+						<tr>
+							<td><?= $val['name'] ?></td>
+							<td><?= $val['roll'] ?></td>
+							<td><?= $val['dice'] ?></td>
+						</tr>
+						<?php
+					}
+					?>
+				</tbody>
+			</table>
+		</div>
+	</div>
+</main>
+<input type="hidden" id="msg" data-type="<?= $type ?>" value="<?= $value ?>">
+
+<?php
+require 'footer.php';

+ 47 - 0
start.php

@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <!--Import Google Icon Font-->
+        <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
+        <!--Import materialize.css-->
+        <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
+        <!--Let browser know website is optimized for mobile-->
+        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+
+        <title>JdR</title>
+    </head>
+
+    <body class="grey lighten-4">
+
+    	<style type="text/css">
+    		.center{
+    			text-align: center;
+    		}
+
+    		.v-center {
+  				margin-top: 50vh; /* poussé de la moitié de hauteur de viewport */
+  				transform: translateY(-50%); /* tiré de la moitié de sa propre hauteur */
+			}
+    	</style>
+
+    	<main class="container">
+    		<div class="v-center">
+    			<form method="POST" action="./">
+	    			<div class="row center">
+	    				<div class="col s12">
+	    					<h3>Nom du salon</h3>
+	    					<input type="text" name="salon" autocomplete="off">
+	    					<button type="submit" class="waves-effect waves-light btn">Rejoindre</button>
+	    				</div>
+	    			</div>
+    			</form>
+    		</div>
+    	</main>
+
+    	<div id="float_msg" class="float_message" style="display: none;"></div>
+
+    	<!--JavaScript at end of body for optimized loading-->
+    	<script type="text/javascript" src="js/materialize.min.js"></script>
+    	<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
+	</body>
+</html>