Maintenant, tout dans le executor.php. Fin de tempPreMega.

Ajout d'un super simulateur de tours de Monoï dans la page 404.
This commit is contained in:
Mysaa
2021-06-06 12:48:11 +02:00
parent 228f54d140
commit 38ec48c9fc
55 changed files with 1853 additions and 1042 deletions
+290 -160
View File
@@ -1,6 +1,10 @@
<?php
include_once 'clazz/Zincluder.php;';
session_start ();
include_once 'clazz/Zincluder.php';
if( !isset($_SESSION ['session_id']) or !isset($_SESSION ['session_mdp']) ) {
header ( 'Location:401.php' );
exit ();
}
$me = new Membre ( $_SESSION ['session_id'] );
$me->connect ( $_SESSION ['session_mdp'] );
if ($me->isAdminLevelLowerThan ( 15 )) {
@@ -10,167 +14,293 @@ if ($me->isAdminLevelLowerThan ( 15 )) {
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css/adminStyle.css" />
<meta charset="utf-8" />
<title>La console d'admin</title>
</head>
<body>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<head>
<link rel="stylesheet" href="css/adminStyle.css"/>
<meta charset="utf-8"/>
<title>La console d'admin</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>jQuery.fn.extend({disable: function(state){return this.each(function(){this.disabled=state;});}});</script>
<section class="commander">
<div class="commanderCommandSelector">
Commande :
<select id="commandSelector">
<option value="get" selected="true">get</option>
<option value="set">set</option>
<option value="remove">remove</option>
<option value="add">add</option>
<option value="bdd">bdd</option>
</select><br/>
</div>
<select id="commandSelector">
<option value="get" selected="true">get</option>
<option value="set">set</option>
<option value="remove">remove</option>
<option value="add">add</option>
<option value="BDD">BDD</option>
</select>
<div id="setDiv">
<form id="setFormObject">
Objet<br /> <select class="classSelector" id="setClassSelector">
<!-- Rempli en JS -->
</select><br />
<button id="selectFromObject">S&eacute;l&eacute;ctionner</button>
</form>
<!--
Pour enlever les vilains whitespace
-->
<form id="setChampsForm">
Valeur<br /> <select id="setChamps">
<!-- Rempli en JS -->
</select> <select id="arrayOperation">
<option value="add" selected="selected">add</option>
<option value="set">set</option>
<option value="remove">remove</option>
</select> <input type="text" id="primitiveValueField" />
<button id="selectComplexValue">S&eacute;l&eacute;ctionner</button>
</form>
</div>
<button id="send">Envoyer la requ&ecirc;te</button>
<br />
<samp id="adminDialogAnswer">
Hello !!!<br />
</samp>
<div class="fullscreen opaque">
<div class="screen-vertical-centered">
<form class="screen-horizontal-centered selectorForm">
<!-- ID set en JS (bonjour la galère) -->
<!-- Attributs remplis en JS -->
<span>
<input type="checkbox" />
<h5>Nom du champ</h5>
<select>
<option value="ee">=</option>
<option value="lt">&lt;</option>
<option value="gt">&gt;</option>
<option value="ge">&ge;</option>
<option value="le">&le;</option>
<option value="ne">&ne;</option>
</select>
<input type="text" />
<button id="nomDuChampSelector">Selecteur</button>
</span>
</form>
</div>
</div>
<script type="text/javascript">
function done(){
var objet = $(this).parent().data('object');//SetObjectSelector-projectSelector
var selector = new Array();
/*
$(this).parent().children('div').each(function() {
if($(this).children('input[type="checkbox"]').is(':selected')){
var varName = $(this).parent().children('h5').text();
var operator = $(this).parent().children('h5').text();
}
});
*/
$(this).parent().children('div').children('input[type="checkbox"]:selected').each(function() {
var varName = $(this).parent().children('h5').text();
var operator = $(this).parent().children('select').find(':selected').attr('value');
var value;
if($(this).parent().children('input[type="text"]').length)
value = $(this).parent().children('input[type="text"]').val();
else
value = $(this).parent().children('button').data('selector');
selector[varName] = operator+value;
}
});
$('#'+objet).data('selector',JSON.stringify(selector));
}
function selector(object,clazz) {
var newForm = $('<form></form>');
newForm.data('object',object);
switch(clazz){
case 'membre':
newForm.append(selectorNode('pseudo',true,false,false));
newForm.append(selectorNode('password',true,false,false));
newForm.append(selectorNode('adminLevel',true,false,true));
newForm.append(selectorNode('dateCreation',true,false,true));
newForm.append(selectorNode('requiredBanner',true,false,false));
newForm.append(selectorNode('personnalMessage',true,false,false));
break;
case 'projet':
newForm.append(selectorNode('name',true,false,false));
newForm.append(selectorNode('dateCreation',true,false,true));
newForm.append(selectorNode('owner',false,false,false));
newForm.append(selectorNode('secondaryOwner',false,true,false));
break;
case 'version':
newForm.append(selectorNode('name',true,false,false));
newForm.append(selectorNode('sendDate',true,false,true));
newForm.append(selectorNode('publicFiles',true,true,false));
newForm.append(selectorNode('tags',true,true,false));
newForm.append(selectorNode('project',false,false,false));
newForm.append(selectorNode('language',true,false,false));
break;
<div class="commander" id="getCommander" style="display: block;">
<label for="getCommanderCibleSelector">Cible :</label>
<input type="text" id="getCommanderCibleSelector" alt="Un selecteur" title="Un selecteur"/>
</div>
<div class="commander" id="setCommander" style="display: none;">
<label for="setCommanderCibleSelector">Cible :</label>
<input type="text" id="setCommanderCibleSelector" alt="Un selecteur" title="Un selecteur"/><br/>
<label for="setCommanderAttributeSelector">Attribut :</label>
<input type="text" id="setCommanderAttributeSelector" alt="Un nom d'attribut" title="Un nom d'attribut"/><br/>
<label for="setCommanderValeurSelector">Valeur :</label>
<input type="text" id="setCommanderValeurSelector" alt="Une valeur" title="Une valeur"/><br/>
</div>
<div class="commander" id="addCommander" style="display: none;">
Sujet :
<select id="addClassSelector">
<option value="membre" selected="true">Membre</option>
<option value="discussion">Discussion</option>
<option value="message">Message</option>
<option value="projet">Projet</option>
<option value="version">Version</option>
</select><br/>
<div class="addDivAttribute" id="addDivAttributeMembre" style="display: block;">
<span>Pseudo :<input type="text" class="addCommanderAttribute pseudo" alt="Un pseudonyme valide" title="Un pseudonyme valide"/></span><br/>
<span>Mot de passe :<input type="text" class="addCommanderAttribute mdp" alt="Un mot de passe valide" title="Un mot de passe valide"/></span><br/>
<span>Email :<input type="text" class="addCommanderAttribute email" alt="Une adresse mail valide (outrepasse la vérification)" title="Une adresse mail valide (outrepasse la v&eacute;rification)"/></span><br/>
<span class="facultatif">Date de cr&eacute;ation :<input type="text" class="addCommanderAttribute dateCreation" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te"/></span><br/>
<span class="facultatif">Banni&egrave;re :<input type="text" class="addCommanderAttribute banniere" alt="Un chemin vers une image, si vide, alors utilise la banni&egrave;re de base" title="Un chemin vers une image, si vide, alors utilise la banni&egrave;re de base"/></span><br/>
<span class="facultatif">Message :<input type="text" class="addCommanderAttribute message" alt="Une chaine de caract&egrave;res, si vide, aucun message ne sera affiché" title="Une chaine de caract&egrave;res, si vide, aucun message ne sera affich&eacute;"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeDiscussion" style="display: none;">
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de discussion valide" title="Un nom de discussion valide"/></span><br/>
<span>Cr&eacute;ateur :<input type="text" class="addCommanderAttribute createur" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span><br/>
<span class="facultatif">Date de cr&eacute;ation :<input type="text" class="addCommanderAttribute dateCreation" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te"/></span><br/>
<span class="facultatif">Autorisations :<input type="text" class="addCommanderAttribute autorisations" alt="Une chaine de la forme permission :&#10;a10 -> niveau d'administration &ge; 10&#10;p -> pas de restrictions&#10;x13,35,87 -> autorise les membres &agrave; l'ID &eacute;gal &agrave; 13, 35 ou 87&#10;Si vide, publique" title="Une chaine de la forme permission :&#10;a10 -> niveau d'administration &ge; 10&#10;p -> pas de restrictions&#10;x13,35,87 -> autorise les membres &agrave; l'ID &eacute;gal &agrave; 13, 35 ou 87&#10;Si vide, publique"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeMessage" style="display: none;">
<span>Texte :<input type="text" class="addCommanderAttribute texte" alt="Un texte de message" title="Un texte de message"/></span><br/>
<span>Sender :<input type="text" class="addCommanderAttribute sender" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span><br/>
<span>Discussion :<input type="text" class="addCommanderAttribute discussion" alt="Un selecteur de discussion ou un nombre (ID de la discussion)" title="Un selecteur de discussion ou un nombre (ID de la discussion)"/></span><br/>
<span class="facultatif">Date d'envoi :<input type="text" class="addCommanderAttribute dateEnvoi" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeProjet" style="display: none;">
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de projet valide" title="Un nom de projet valide"/></span><br/>
<div class="pocesseur">
<span>Pocesseur :<input type="text" class="addCommanderAttribute pocesseur" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span><br/>
<button id="addProjetAddPocesseur">Ajouter un pocesseur</button><br/>
</div>
<span class="facultatif">Permissions :<input type="text" class="addCommanderAttribute permissions" alt="Quatre bits pour les permissions, si vide: 1000" title="Quatre bits pour les permissions, si vide: 1000"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeVersion" style="display: none;">
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de version valide" title="Un nom de version valide"/></span><br/>
<span>Projet :<input type="text" class="addCommanderAttribute projet" alt="Un selecteur de projet ou un nombre (ID du projet)" title="Un selecteur de projet ou un nombre (ID du projet)"/></span><br/>
<span class="facultatif">Version absolue :<input type="text" class="addCommanderAttribute versionAbsolue" alt="Un nombre pour trier les versions, si vide, le nombre suivant la plus grande valeur de version absolue pour toute les versions de ce projet" title="Un nombre pour trier les versions, si vide, le nombre suivant la plus grande valeur de version absolue pour toute les versions de ce projet"/></span><br/>
<span class="facultatif">Langage :<input type="text" class="addCommanderAttribute langage" alt="Un nombre correspondant au langage de programmation&#10;0->Java&#10;1->VBA&#10;Si vide, 0 s&eacute;lectionn&eacute; (Java)" title="Un nombre correspondant au langage de programmation&#10;0->Java&#10;1->VBA&#10;Si vide, 0 s&eacute;lectionn&eacute; (Java)"/></span><br/>
</div>
</div>
<div class="commander" id="removeCommander" style="display: none;">
<label for="removeCommanderSelector">Cible :</label>
<input type="text" id="removeCommanderSelector" alt="Un selecteur" title="Un selecteur"/>
</div>
<div class="commander" id="bddCommander" style="display: none;">
Action :
<select id="bddActionSelector">
<option value="sort" selected="true">Sort</option>
<option value="save">Save</option>
<option value="retieve">Retieve</option>
</select><br/>
</div>
</section>
<script type="text/javascript">
function updateCommandSelector(){
$('div.commander').hide();
switch($('#commandSelector').val()){
case 'get':
$('#getCommander').show();
break;
case 'set':
$('#setCommander').show();
break;
case 'add':
$('#addCommander').show();
break;
case 'remove':
$('#removeCommander').show();
break;
case 'bdd':
$('#bddCommander').show();
break;
}
}
newForm.append('<br/>');
newForm.append('<button id="selectorAbort">Annuler</button>')
newForm.append('<button id="selectorDone">Termin&eacute;</button>');
$('form.selectorForm').replaceWith(newForm);
}
function selectorNode(name,primitive,array,number){
var span = $('<span></span>');
span.append('<input type="checkbox" />')
span.append('<h5>'+name+'</h5>')
if(number)
span.append('<select><option value="ee">=</option><option value="lt">&lt;</option><option value="gt">&gt;</option><option value="ge">&ge;</option><option value="le">&le;</option><option value="ne">&ne;</option></select>')
else if(array)
span.append('<select><option value="in">&isin;</option><option value="nn">&notin;</option></select>')
else
span.append('<select><option value="ee">=</option><option value="ne">&ne;</option></select>')
if(primitive)
span.append('<input type="text" />')
else
span.append('<button id="'+name+'Selector">Selecteur</button>')
}
function genClassesSelectors{
$('select.classSelector')
.append('<option value="membre">Membre</option>')
.append('<option value="projet">Projet</option>')
.append('<option value="version">Version</option>')
.append('<option value="discussion">Discussion</option>')
.append('<option value="message">Message</option>');
}
$(window).load(genClassesSelectors);
</script>
$('#commandSelector').change(updateCommandSelector);
function updateAddCommandClassSelector(){
$('div.addDivAttribute').hide();
switch($('#addClassSelector').val()){
case 'membre':
$('#addDivAttributeMembre').show();
break;
case 'discussion':
$('#addDivAttributeDiscussion').show();
break;
case 'message':
$('#addDivAttributeMessage').show();
break;
case 'projet':
$('#addDivAttributeProjet').show();
break;
case 'version':
$('#addDivAttributeVersion').show();
break;
}
}
$('#addClassSelector').change(updateAddCommandClassSelector);
updateCommandSelector();
updateAddCommandClassSelector();
function addProjetAddPocesseur(){
$('#addProjetAddPocesseur').before('<span>Pocesseur :<input type="text" class="addCommanderAttribute pocesseur" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span>');
$($('#addProjetAddPocesseur').prev().children()[0]).keyup(updateCommandOutput);
$('#addProjetAddPocesseur').before('<button class="addProjetRemovePocesseur">-</button>')
$('#addProjetAddPocesseur').prev().click(addProjetRemovePocesseur);
$('#addProjetAddPocesseur').before('<br/>');
updateCommandOutput();
}
$('#addProjetAddPocesseur').click(addProjetAddPocesseur);
function addProjetRemovePocesseur(e){
$(e.target).prev().remove();
$(e.target).next().remove();
$(e.target).remove();
updateCommandOutput();
}
$('.addProjetRemovePocesseur').click(addProjetRemovePocesseur);
var commandMode = 'gui';
function switchCommandMode(){
</body>
</html>
}
$('#switchMode').click(switchCommandMode);
</script>
<script>
var command = "";
var allRequiredFieldsFilled = false;
function updateCommandOutput(e){
switch($('#commandSelector').val()){
case 'get':
var cible = $('#getCommanderCibleSelector').val();
command = 'GET' + ' ' + cible;
allRequiredFieldsFilled = !!cible;
break;
case 'set':
var cible = $('#setCommanderCibleSelector').val();
var attribut = $('#setCommanderAttributeSelector').val();
var valeur = $('#setCommanderValeurSelector').val();
allRequiredFieldsFilled = !!cible && !!attribut && !!valeur;
command = 'SET' + ' ' + cible + ' ' + attribut + ' ' + valeur;
break;
case 'remove':
var cible = $('#removeCommanderSelector').val();
command = 'REMOVE' + ' ' + cible;
allRequiredFieldsFilled = !!cible;
break;
case 'add':
command = 'ADD ' + $('#addClassSelector').val() + ' ';
switch($('#addClassSelector').val()){
case 'membre':
var pseudo = $('#addDivAttributeMembre > span > .pseudo').val();
var mdp = $('#addDivAttributeMembre > span > .mdp').val();
var email = $('#addDivAttributeMembre > span > .email').val();
var dateCreation = $('#addDivAttributeMembre > span > .dateCreation').val();
var banniere = $('#addDivAttributeMembre > span > .banniere').val();
var message = $('#addDivAttributeMembre > span > .message').val();
command += 'pseudo "' + pseudo + '"' + ' mdp "' + mdp + '"' + ' email "' + email + '"' + ((dateCreation!='')?' dateCreation "' + dateCreation + '"' : '') + ((banniere!='')?' banniere "' + banniere + '"' : '') + ((message!='')?' message "' + message + '"' : '');
allRequiredFieldsFilled = !!pseudo && !!mdp && !!email;
break;
case 'discussion':
var nom = $('#addDivAttributeDiscussion > span > .nom').val();
var createur = $('#addDivAttributeDiscussion > span > .createur').val();
var dateCreation = $('#addDivAttributeDiscussion > span > .dateCreation').val();
var autorisations = $('#addDivAttributeDiscussion > span > .autorisations').val();
command += 'nom "' + nom + '"' + ' createur ' + ((createur!='')?createur:'???') + '' + ((dateCreation!='')?' dateCreation "' + dateCreation + '"' : '') + ((autorisations!='')?' autorisations "' + autorisations + '"' : '');
allRequiredFieldsFilled = !!nom && !!createur;
break;
case 'message':
var texte = $('#addDivAttributeMessage > span > .texte').val();
var sender = $('#addDivAttributeMessage > span > .sender').val();
var discussion = $('#addDivAttributeMessage > span > .discussion').val();
var dateEnvoi = $('#addDivAttributeMessage > span > .dateEnvoi').val();
command += 'texte "' + texte + '"' + ' sender ' + ((sender!='')?sender:'???') + ' discussion ' + ((discussion!='')?discussion:'???') + ((dateEnvoi!='')?' dateEnvoi "' + dateEnvoi + '"' : '');
allRequiredFieldsFilled = !!texte && !!sender && !!discussion;
break;
case 'projet':
var nom = $('#addDivAttributeProjet > span > .nom').val();
var permissions = $('#addDivAttributeProjet > span > .permissions').val();
pocesseurs = [];
$('.addCommanderAttribute.pocesseur').each(function(i) {
if($(this).val() != "")pocesseurs.push($(this).val());
});
command += 'nom "' + nom + '"' + ((permissions!='')?' permissions "' + permissions + '"' : '') + ' pocesseurs [ ' + pocesseurs.join(' ') +' ]';
allRequiredFieldsFilled = !!nom && pocesseurs.length > 0;
break;
case 'version':
var nom = $('#addDivAttributeVersion > span > .nom').val();
var projet = $('#addDivAttributeVersion > span > .projet').val();
var versionAbsolue = $('#addDivAttributeVersion > span > .versionAbsolue').val();
var langage = $('#addDivAttributeVersion > span > .langage').val();
command += 'nom "' + nom + '"' + ' projet ' + ((projet!='')?projet:'???') + ((versionAbsolue!='')?' versionAbsolue ' + versionAbsolue:'') + ((langage!='')?' langage ' + langage:'');
allRequiredFieldsFilled = !!nom && !!projet;
}
break;
case 'bdd':
var action = $('#bddActionSelector').val();
command = 'BDD' + ' ' + action;
allRequiredFieldsFilled = true;
break;
}
$('#send').disable(!allRequiredFieldsFilled);
$('#currentCommand').text(command);
}
$('select').change(updateCommandOutput);
$('input[type="text"]').keyup(updateCommandOutput);
</script>
<br/>
<section>
Commande :&laquo;<span id="currentCommand">...</span>&raquo;
<button id="send">Envoyer la requ&ecirc;te</button>
<button id="switchMode">Passer en mode commande</button>
</section>
<br/>
<section class="reponce">
<h3>Dialogue :</h3>
<samp id="adminDialogAnswer">
Hello !!!<br />
</samp>
</section>
<footer>
<h5>Syntaxes :</h5>
GET selector<br/>
SET selector attributeName value<br/>
REMOVE selector<br/>
ADD class attributeName attributeValue attributeName attributeValue<br/>
</footer>
</body>
</html>