bcom/clazz/2/Utility.class.php

154 lines
3.9 KiB
PHP

<?php
class InvalidOperatorException extends Exception{
public $type;
public $operator;
public function __construct ($type,$operator){
parent::__construct('Invalid operator "'.$operator.'" for the type '.$type);
}
}
class Utility{
/*
* <> ou !=
...les deux valeurs ne sont pas égales
<
...la valeur de gauche est strictement inférieure à celle de droite
>
...la valeur de gauche est strictement supérieure à celle de droite
<=
...la valeur de gauche est strictement inférieure ou égale à celle de droite
>=
...la valeur de gauche est strictement supérieure ou égale à celle de droite
BETWEEN..AND
...la valeur testée est située entre deux valeurs données
IN
...la valeur testée se situe dans une liste valeurs données
NOT IN
...la valeur testée ne se situe pas dans une liste de valeurs données
LIKE
...la valeur de gauche correspond à celle de droite (celle de droite peux utiliser le caractère % pour simuler n'importe quel nombre de caractère, et _ pour un seul caractère
NOT LIKE
...les deux valeurs ne correspondent pas
REGEXP ou RLIKE
...la valeur de gauche correspond à l'expression régulière donnée
NOT REGEXP
...la valeur de gauche ne correspond pas à l'expression régulière donnée
*/
public static function getIntegerSqlOperator($operator){
switch ($operator){
case '=':
return '=';
case '<':
return '<';
case '>':
return '>';
case '<=':
return '<=';
case '>=':
return '>=';
case '=<':
return '<=';
case '<>':
return '<>';
case '!=':
return '!=';
case '!<':
return '!<';
case '!>':
return '!>';
default:
throw new InvalidOperatorException('integer',$operator);
}
}
public static function getStringSqlOperator($operator){
switch ($operator){
case '=':
return '=';
case '&like;':
return 'LIKE';
default:
throw new InvalidOperatorException('string',$operator);
}
}
public static function getDateSqlOperator($operator){
switch ($operator){
case '=':
return '=';
case '<':
return '<';
case '>':
return '>';
case '<=':
return '<=';
case '>=':
return '>=';
case '=<':
return '<=';
case '<>':
return '<>';
case '!=':
return '!=';
case '!<':
return '!<';
case '!>':
return '!>';
default:
throw new InvalidOperatorException('date',$operator);
}
}
public static function arrayIfNot($var){
if(!is_array($var))
return $var!=NULL?array($var):NULL;
return $var;
}
public static function getHierarchicCouple(){
return array("Pr&eacute;sident","Ministres");
}
public static function sqlProcedure($procedureName,$params,$output){
$Nparams = array();
$Oparams = array();
foreach($params AS $value)
switch(gettype($value)){
case 'boolean':$Nparams[]=($value)?'TRUE':'FALSE';break;
case 'integer':$Nparams[]=strval($value);break;
case 'double':$Nparams[]=strval($value);break;
case 'string':$Nparams[]=PDO::quote($value);break;
default:$Nparams[]='NULL';break;
}
for($i=0;$i<count($output);$i++){
$Nparams[]='@'.strval($i);
$Oparams[]='@'.strval($i).' AS '.PDO::quote($output[$i]);
}
$rep = $GLOBALS['bdd']->exec('CALL '.PDO::quote($procedureName).'('.implode($Nparams,',').'); SELECT @p2 AS `outputCode`;');
}
const SUCESSFULLY_REGISTERED = 'Vous avez d&eacute;j&agrave; &eacute;t&eacute; correctement inscrit sur bernard.com';
const SUCESSFULLY_LOGGED_IN = 'Vous &ecirc;tes bien connect&eacute; (vous l\'avez &eacute;t&eacute; et le serez &eacute;galement)!';
const SUCESSFULLY_CHANGED_PASSWORD = 'Vos dispositifs d\'identification ont &eacute;t&eacute; correctement chang&eacute;s';
const SUCESSFULLY_CREATED_DISCUSSION = 'C\'est fait !!! (la cr&eacute;ation de ta discussion bien s&ucirc;r)';
const LOGIN_NEEDED_FOR_PROJECTS = 'Je veut bien &ecirc;tre un site web parfait, mais j\'aimerai bien qut tu te conn&egrave;cte pour que je puisse te montrer tes projets';
}