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:
+52
-17
@@ -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 éèàμ_\\-\'()\\[\\]\\\\/,;:.§!ù%£$¤=+\\-*\\#~"|ç@';
|
||||
$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éation doit être de la forme "AAAA:MM:JJ hh:mm:ss"';
|
||||
const DATE_CREATION_CHANGED = 'La date de création a bien été changée';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user