* * This source file is subject to the GPL-3.0 license that is bundled * with this source code in the file LICENSE. */ namespace controllers\internals; class Tool extends \descartes\InternalController { /** * 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 parse_phone($number) { $number = preg_replace('#[^-0-9+]#', '', $number); if (preg_match('#^(0|\+[1-9]{1,3}|\+1\-[0-9]{3})[1-9][0-9]{8,10}$#', $number)) { 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 phone_format($number) { $phone_number_util = \libphonenumber\PhoneNumberUtil::getInstance(); $phone_number_o = $phone_number_util->parse($number, null); return $phone_number_util->format($phone_number_o, \libphonenumber\PhoneNumberFormat::INTERNATIONAL); } /** * 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 event_type_to_icon($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 bool : Vrai si la date et valide, faux sinon */ public static function validate_date($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 parse_for_flag($texte) { $returns = []; $results = []; while (preg_match('#\[(.*)(?render($settings['template'], $datas); $content = ob_get_clean(); return mail($to, $settings['subject'], $content); } }