2015-02-17 16:17:38 +01:00
< ? php
class internalTools extends Controller
{
/**
* Cette fonction parse un numéro pour le retourner sans espaces , etc .
* @ param string $number : Le numéro de téléphone à parser
* @ return mixed : Si le numéro est bien un numéro de téléphone , on retourne le numéro parsé . Sinon , on retourne faux
*/
public static function parsePhone ( $number )
{
2015-08-16 04:39:13 +02:00
$number = preg_replace ( '#[^-0-9+]#' , '' , $number );
if ( preg_match ( '#^(0|\+[1-9]{1,3}|\+1\-[0-9]{3})[1-9][0-9]{8}$#' , $number ))
2015-02-17 16:17:38 +01:00
{
return $number ;
}
return false ;
}
/**
* Cette fonction parse un numéro pour le retourner avec des espaces , etc .
* @ param string $number : Le numéro de téléphone à parser
* @ return mixed : Si le numéro est bien un numéro de téléphone , on retourne le numéro parsé . Sinon , on retourne faux
*/
public static function phoneAddSpace ( $number )
{
return preg_replace ( '#(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})#' , '$1 $2 $3 $4 $5' , $number );
}
/**
* Cette fonction fait la correspondance entre un type d ' evenement et une icone font awesome .
* @ param string $type : Le type de l ' évenement à analyser
* @ return string : Le nom de l ' icone à afficher ( ex : fa - user )
*/
public static function eventTypeToIcon ( $type )
{
switch ( $type )
{
case 'USER_ADD' :
$logo = 'fa-user' ;
break ;
case 'CONTACT_ADD' :
$logo = 'fa-user' ;
break ;
case 'GROUP_ADD' :
$logo = 'fa-group' ;
break ;
case 'SCHEDULED_ADD' :
$logo = 'fa-calendar' ;
break ;
case 'COMMAND_ADD' :
$logo = 'fa-terminal' ;
break ;
default :
$logo = 'fa-question' ;
}
return $logo ;
}
/**
* Cette fonction vérifie une date
* @ param string $date : La date a valider
* @ param string $format : Le format de la date
* @ return boolean : Vrai si la date et valide , faux sinon
*/
public static function validateDate ( $date , $format )
{
$objectDate = DateTime :: createFromFormat ( $format , $date );
return ( $objectDate && $objectDate -> format ( $format ) == $date );
}
/**
* Cette fonction parse un texte , pour en extraire des données contenu dans des drapeaux au format [ FLAG : contenu du drapeau ]
* @ param string $texte : Le texte à parser
* @ return mixed : Tableau de la forme 'FLAG' => 'contenu du drapeau' . si on trouve une forme correcte ( Le contenu de FLAG sera mis en majuscule automatiquement ) . Sinon le tableau vide .
*/
public static function parseForFlag ( $texte )
{
$returns = array ();
$results = array ();
while ( preg_match ( '#\[(.*)(?<!\\\):(.*)(?<!\\\)\]#Uui' , $texte , $results )) //Tant qu'on recuèpre un flag
{
$returns [ mb_strtoupper ( $results [ 1 ])] = $results [ 2 ];
$texte = str_replace ( $results [ 0 ], '' , $texte );
}
return $returns ;
}
/**
* Cette fonction retourne un mot de passe généré aléatoirement
* @ param int $length : Taille du mot de passe à générer
* @ return string : Le mot de passe aléatoire
*/
public static function generatePassword ( $length )
{
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-@()?.:!%*$&/' ;
$password = '' ;
$chars_length = mb_strlen ( $chars ) - 1 ;
$i = 0 ;
while ( $i < $length )
{
$i ++ ;
$password .= $chars [ rand ( 0 , $chars_length )];
}
return $password ;
}
/**
* Cette fonction vérifie si un utilisateur et connecté , et si il ne l ' est pas , redirige sur la page de connexion
* @ return void
*/
public static function verifyConnect ()
{
if ( ! isset ( $_SESSION [ 'connect' ]) || ! $_SESSION [ 'connect' ])
{
$controller = new Controller ();
header ( 'Location: ' . $controller -> generateUrl ( 'connect' ));
die ();
}
}
/**
* Cette fonction vérifie si un argument csrf a été fourni et est valide
* @ param string $csrf : argument optionel , qui est la chaine csrf à vérifier . Si non fournie , la fonction cherchera à utiliser $_GET [ 'csrf' ] ou $_POST [ 'csrf' ] .
* @ return boolean : True si le csrf est valide . False sinon .
*/
public static function verifyCSRF ( $csrf = '' )
{
if ( ! $csrf )
{
$csrf = isset ( $_GET [ 'csrf' ]) ? $_GET [ 'csrf' ] : $csrf ;
$csrf = isset ( $_POST [ 'csrf' ]) ? $_POST [ 'csrf' ] : $csrf ;
}
if ( $csrf == $_SESSION [ 'csrf' ])
{
return true ;
}
return false ;
}
}