Source of file IconHelper.php
Size: 4,060 Bytes - Last Modified: 2023-11-16T22:56:02+01:00
/home/websites/teicee/packagist/site/phpdoc/conf/../vendor/teicee/core-bundle/src/Util/IconHelper.php
| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | <?phpnamespace TIC\CoreBundle\Util; /** * Méthodes statiques utilitaires pour la génération d'icones (Bootstrap-Icons ou Font-Awesome). */class IconHelper {/** * This class should not be instantiated. */private function __construct() { } /** * Alias pour les classes de Bootstrap-Icons * * @param string $name * @return string */public static function biName(string $name): string { if ($name === null || $name == '') return ''; if (\substr($name, 0, 3) === 'bi-') return $name; switch ($name) { case 'list' : return 'bi-list'; case 'next' : return 'bi-chevron-right'; case 'prev' : case 'back' : return 'bi-chevron-left'; case 'show' : case 'view' : return 'bi-eye'; case 'create' : case 'new' : return 'bi-plus-circle-fill'; case 'update' : case 'edit' : return 'bi-pencil-square'; case 'close' : return 'bi-x-circle-fill'; case 'submit' : return 'bi-check-circle-fill'; case 'enable' : return 'bi-check-circle'; case 'disable': return 'bi-slash-circle'; case 'reset' : case 'undo' : return 'bi-arrow-counterclockwise'; case 'refresh': case 'redo' : return 'bi-arrow-clockwise'; case 'export' : return 'bi-cloud-download'; case 'import' : return 'bi-cloud-upload'; case 'login' : return 'bi-box-arrow-in-right'; case 'logged' : return 'bi-person-circle'; case 'home' : return 'bi-house-door-fill'; case 'mail' : return 'bi-envelope'; } return 'bi-' . $name; } /** * Alias pour les classes de Font-Awesome * * @param string $name * @return string */public static function faName(string $name): string { if ($name === null || $name == '') return ''; if (\substr($name, 0, 2) === 'fa') return $name; switch ($name) { case 'list' : return 'fas-list'; case 'next' : return 'fas-chevron-right'; case 'prev' : case 'back' : return 'fas-chevron-left'; case 'show' : case 'view' : return 'fas-eye'; case 'create' : case 'new' : return 'fas-plus-circle'; case 'update' : case 'edit' : return 'fas-edit'; case 'close' : return 'fas-circle-xmark'; case 'submit' : return 'fas-check-circle'; case 'enable' : return 'far-check-circle'; case 'disable': return 'fas-ban'; case 'reset' : case 'undo' : return 'far-rotate-left'; case 'refresh': case 'redo' : return 'far-rotate-right'; case 'export' : return 'far-cloud-arrow-down'; case 'import' : return 'far-cloud-arrow-up'; case 'login' : return 'fas-right-to-bracket'; case 'logged' : return 'far-circle-user'; case 'home' : return 'far-house'; case 'mail' : return 'fas-envelope'; } return 'fa-' . $name; } /** * Génération d'un tag HTML pour afficher un icone Bootstrap-Icons (avec quelques alias utiles). * * @param string $name Nom de l'icone (classe 'bi-###' ou juste '###' ou alias) * @param string $class Classe(s) à ajouer au tag HTML de l'icone * @return string Balise HTML pour l'affichage de l'icone */public static function biTag(string $name, string $class=''): string { $name = self::biName($name); if (\preg_match('/^(bi)-([a-z\-]*)$/', $name, $m)) return \sprintf( '<i class="tic-icon bi bi-%1$s %2$s" aria-hidden="true" aria-label="%1$s" role="img"></i>', $m[2], $class ); return ''; } /** * Génération d'un tag HTML pour afficher un icone Font-Awesome (avec quelques alias utiles). * * @param string $name Nom de l'icone (classe 'fa#-###' ou juste '###' ou alias) * @param string $class Classe(s) à ajouer au tag HTML de l'icone * @return string Balise HTML pour l'affichage de l'icone */public static function faTag(string $name, string $class=''): string { $name = self::faName($name); if (\preg_match('/^(fa[srlb]?)-(.*)$/', $name, $m)) return \sprintf( '<i class="tic-icon %1$s fa-%2$s %3$s" aria-hidden="true" aria-label="%2$s" role="img"></i>', $m[1], $m[2], $class ); return ''; } } |