icon.class.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. /**
  3. * Classe icon
  4. *
  5. * Cette classe fournit des méthodes utilitaires pour générer des éléments HTML liés aux icônes.
  6. */
  7. class icon
  8. {
  9. /**
  10. * Récupère la classe CSS correspondant à un type d'icône spécifique.
  11. *
  12. * @param string $_type Le type de l'icône.
  13. * @return string La classe CSS correspondant à l'icône.
  14. */
  15. private static function types(string $_type){
  16. switch ($_type) {
  17. // Alertes
  18. case 'info':
  19. return "bi bi-info-circle";
  20. break;
  21. case 'warning':
  22. return "bi bi-exclamation-diamond";
  23. break;
  24. case 'alert':
  25. return "bi bi-exclamation-triangle";
  26. break;
  27. // Menu Salariés
  28. case 'rh-liste-salaries':
  29. return "bi bi-people-fill";
  30. break;
  31. case 'rh-historique-excel':
  32. return "bi bi-list-check";
  33. break;
  34. case 'rh-mapping':
  35. return "bi bi-clock-history";
  36. break;
  37. case 'stats':
  38. return "bi bi-graph-up";
  39. break;
  40. // Menu Proweb
  41. case 'proweb-salaries':
  42. return "bi bi-people";
  43. break;
  44. case 'proweb-historique-excel':
  45. return "bi bi-list-check";
  46. break;
  47. case 'proweb-export-csv':
  48. return "bi bi-upload";
  49. break;
  50. // Menu Comptes bancaires
  51. case 'courant':
  52. return "bi bi-safe2";
  53. break;
  54. case 'epargne':
  55. return "bi bi-piggy-bank";
  56. break;
  57. case 'compte-historique-csv':
  58. return "bi bi-list-check";
  59. break;
  60. // Menu Documents
  61. case 'documents':
  62. return "bi bi-journal-check";
  63. break;
  64. // Menu Services sociaux
  65. case 'sociale-check-salarie':
  66. return "bi bi-person-check-fill";
  67. break;
  68. // Menu Evènements
  69. case 'evenements':
  70. return "bi bi-calendar2-check";
  71. break;
  72. case 'lotterys':
  73. return "bi bi-dice-6";
  74. break;
  75. // Menu Pratique
  76. case 'pratique':
  77. return "bi bi-link-45deg";
  78. break;
  79. // Menu Parametres
  80. case 'parametres-users':
  81. return "bi bi-person-lines-fill";
  82. break;
  83. case 'parametres-teams':
  84. return "bi bi-person-fill-gear";
  85. break;
  86. case 'parametres-comptes':
  87. return "bi bi-safe2";
  88. break;
  89. case 'parametres-historique':
  90. return "bi bi-list-columns-reverse";
  91. break;
  92. case 'parametres':
  93. return "bi bi-gear-fill";
  94. break;
  95. case 'parametres-tags':
  96. return "bi bi-tags-fill";
  97. break;
  98. case 'parametres-clients':
  99. return "bi bi-building-fill";
  100. break;
  101. case 'parametres-maj':
  102. return "bi bi-git";
  103. break;
  104. case 'parametres-logs':
  105. return "bi bi-list-columns-reverse";
  106. break;
  107. default:
  108. return $_type;
  109. break;
  110. }
  111. }
  112. /**
  113. * Génère le HTML pour une icône avec la configuration spécifiée.
  114. *
  115. * @param array|null $_config Options de configuration pour l'icône. Clés possibles :
  116. * - "type" : Le type de l'icône (string).
  117. * - "icon" : Classe d'icône personnalisée (string).
  118. * - "class" : Classes CSS supplémentaires (string).
  119. * - "color" : Couleur de l'icône (string).
  120. * - "size" : Taille de la police de l'icône (string).
  121. * - "style" : Styles inline supplémentaires (string).
  122. * @return string Le HTML généré pour l'icône.
  123. */
  124. public static function getFont(?array $_config = NULL){
  125. $tmp = '<i class="';
  126. if(!empty($_config["type"])){ $tmp .= self::types($_config["type"]) . ' '; }
  127. elseif(!empty($_config["icon"])){ $tmp .= $_config["icon"] . ' '; }
  128. else{ $tmp .= 'bi bi-braces-asterisk '; }
  129. if(!empty($_config["class"])){ $tmp .= ' ' . $_config["class"]; }
  130. $tmp .= '" style="';
  131. if(!empty($_config["color"])){ $tmp .= 'color: ' . $_config["color"] . ';'; }
  132. if(!empty($_config["size"])){ $tmp .= 'font-size: ' . $_config["size"] . ';'; }
  133. if(!empty($_config["style"])){ $tmp .= $_config["style"]; }
  134. $tmp .= '" ';
  135. $tmp .= '></i>';
  136. return $tmp;
  137. }
  138. }