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
+52 -17
View File
@@ -16,7 +16,7 @@ class Discussion{
if($rep = $req->fetch()){
$this->valid = TRUE;
$this->name = $rep['name'];
$this->creatorID = new Membre($rep['creatorID']);
$this->creator = new Membre($rep['creatorID']);
$this->dateCreation = $rep['dateCreation'];
$this->accessibility = $rep['accessibility'];
}else{
@@ -35,7 +35,7 @@ class Discussion{
$out .= '\tCreator:{' . substr(str_replace('\n\t',';',$this->creator->__toString()),0,-1) . '}\n';
$out .= '\tDate of creation:' . $this->dateCreation . '\n';
$out .= '\tAccessibility:' . $this->accessibility . '\n';
return out;
return $out;
}
//Getters
@@ -48,7 +48,7 @@ class Discussion{
}
public function getCreator(){
return $creator;
return $this->creator;
}
public function getDateCreation(){
@@ -62,13 +62,24 @@ class Discussion{
//Useful Getters
public function canAccess($membre){
$out = $this->accessibility === 'p';
$out = $out or $membre->getID() === $this->creator->getID();
if($this->accessibility === 'p')
return TRUE;
if($membre->getID() === $this->creator->getID())
return TRUE;
if(preg_match ( "#^a[0-9]+$#", $this->accessibility ) == 1)
$out = $out or intval ( substr ( $this->accessibility, 1 ) ) <= $membre->getAdminLevel();
$out = $out or preg_match ( '#^x([0-9]+;)*' . $membre->getID() . '(;[0-9]+)*$#', $disc ['autorized'] ) == 1;
$out = $out or $membre->getAdminLevel() >= 14;
return $out;
if(intval ( substr ( $this->accessibility, 1 ) ) <= $membre->getAdminLevel())
return TRUE;
if(preg_match ( '#^x([0-9]+,)*' . $membre->getID() . '(,[0-9]+)*$#', $this->accessibility ))
return TRUE;
if($membre->getAdminLevel() >= 14)
return TRUE;
return FALSE;
}
public function isPublic(){
if($this->accessibility === 'p')
return TRUE;
return FALSE;
}
@@ -130,37 +141,43 @@ class Discussion{
public static function getFromName($name){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE name=?');
$req->execute(array($name));
return discussionGetterOutput($req);
return Discussion::discussionGetterOutput($req);
}
public static function getFromCreator($creator){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE creatorID=?');
$req->execute(array($creator->getID()));
return discussionGetterOutput($req);
return Discussion::discussionGetterOutput($req);
}
public static function getFromDateCreation($date){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE dateCreation=?');
$req->execute(array($date));
return discussionGetterOutput($req);
return Discussion::discussionGetterOutput($req);
}
public static function getFromAccessibility($accessibility){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE creatorID=?');
$req->execute(array($accessibility));
return discussionGetterOutput($req);
return Discussion::discussionGetterOutput($req);
}
public static function getCreatedLaterThan($date){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE dateCreation>?');
$req->execute(array($date));
return discussionGetterOutput($req);
return Discussion::discussionGetterOutput($req);
}
public static function getCreatedEarlierThan($date){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE dateCreation<?');
$req->execute(array($date));
return discussionGetterOutput($req);
return Discussion::discussionGetterOutput($req);
}
public static function getPublics(){
$req = $GLOBALS['bdd']->prepare('SELECT * FROM discussions WHERE accessibility LIKE "p%"');
$req->execute();
return Discussion::discussionGetterOutput($req);
}
public static function getWhichHeCanAccess($he){
@@ -170,7 +187,7 @@ class Discussion{
$out = array();
while ( $rep = $req->fetch()) {
$disc = new Discussion($rep['ID']);
if ($disc->canAccess($membre))
if ($disc->canAccess($he))
$out[] = $disc;
}
if($out)
@@ -178,6 +195,24 @@ class Discussion{
else
return NULL;
}
//Discussion creator
public static function createDiscussion($name, $owner) {
if(Discussion::getFromName($name))
return Discussion::NAME_ALREADY_USED;
if(strlen($name)>255)
return Discussion::TOO_LONG_NAME;
$regex = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 éèà&mu;_\\-\'()\\[\\]\\\\/,;:.§!ù%£$¤=+\\-*\\#~"|ç@';
$regex = '#^['.$regex.']+$#';
if(preg_match($regex,$name) != 1)
return Discussion::ILLEGAL_NAME;
$req = $GLOBALS ['bdd']->prepare ("INSERT INTO `discussions`(`ID`, `name`, `creatorID`, `dateCreation`, `accessibility`) VALUES (NULL,?,?,NOW(),'p')" );
$req->execute ( array (
$name,
$owner
) );
return 'ok';
}
// Exceptions texts
@@ -196,4 +231,4 @@ class Discussion{
//setDateCreation()
const MALFORMED_DATE = 'La date de cr&eacute;ation doit &ecirc;tre de la forme "AAAA:MM:JJ hh:mm:ss"';
const DATE_CREATION_CHANGED = 'La date de cr&eacute;ation a bien &eacute;t&eacute; chang&eacute;e';
}
}