2
0

html.class.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. class html {
  3. /**
  4. * Construit le HTML d'un élément <select>.
  5. *
  6. * @param string $config Attributs HTML du <select> sous forme de chaîne.
  7. * @param array $options Tableau associatif des options du <select> (clé = valeur de l'option, valeur = label affiché).
  8. * @param mixed $value Valeur sélectionnée par défaut (facultatif).
  9. *
  10. * @return string Le HTML généré pour l'élément <select>.
  11. */
  12. private static function constructSelect(string $_config, array $_options, $_value = null): string {
  13. $selectHtml = '<select ' . $_config . '>';
  14. foreach ($_options as $optionValue => $label) {
  15. $selected = ($_value !== null && $_value == $optionValue) ? ' selected' : '';
  16. $selectHtml .= sprintf('<option value="%s"%s>%s</option>', htmlspecialchars($optionValue), $selected, htmlspecialchars($label));
  17. }
  18. $selectHtml .= '</select>';
  19. return $selectHtml;
  20. }
  21. /**
  22. * Renvoie le HTML d'un élément <select> sous forme de chaîne.
  23. *
  24. * @param string $config Attributs HTML du <select> sous forme de chaîne.
  25. * @param array $options Tableau associatif des options du <select> (clé = valeur de l'option, valeur = label affiché).
  26. * @param mixed $value Valeur sélectionnée par défaut (facultatif).
  27. *
  28. * @return string Le HTML généré pour l'élément <select>.
  29. */
  30. public static function getSelect(string $_config, array $_options, $_value = null): string {
  31. return self::constructSelect($_config, $_options, $_value);
  32. }
  33. /**
  34. * Affiche directement le HTML d'un élément <select>.
  35. *
  36. * @param string $config Attributs HTML du <select> sous forme de chaîne.
  37. * @param array $options Tableau associatif des options du <select> (clé = valeur de l'option, valeur = label affiché).
  38. * @param mixed $value Valeur sélectionnée par défaut (facultatif).
  39. *
  40. * @return void
  41. */
  42. public static function printSelect(string $_config, array $_options, $_value = null): void {
  43. echo self::constructSelect($_config, $_options, $_value);
  44. }
  45. /**
  46. * Construit le HTML d'un élément <input> de type texte.
  47. *
  48. * @param string $config Attributs HTML de l'élément <input> sous forme de chaîne.
  49. * @param mixed $value Valeur par défaut de l'élément <input> (facultatif).
  50. *
  51. * @return string Le HTML généré pour l'élément <input>.
  52. */
  53. private static function constructInput(string $_config, $_value = null): string {
  54. $value = $_value !== null ? htmlspecialchars((string) $_value) : '';
  55. $inputHtml = sprintf('<input value="%s" %s />', htmlspecialchars($value), $_config);
  56. return $inputHtml;
  57. }
  58. /**
  59. * Renvoie le HTML d'un élément <input> de type texte sous forme de chaîne.
  60. *
  61. * @param string $config Attributs HTML de l'élément <input> sous forme de chaîne.
  62. * @param mixed $value Valeur par défaut de l'élément <input> (facultatif).
  63. *
  64. * @return string Le HTML généré pour l'élément <input>.
  65. */
  66. public static function getInput(string $_config, $_value = null): string {
  67. return self::constructInput($_config, $_value);
  68. }
  69. /**
  70. * Affiche directement le HTML d'un élément <input> de type texte.
  71. *
  72. * @param string $config Attributs HTML de l'élément <input> sous forme de chaîne.
  73. * @param mixed $value Valeur par défaut de l'élément <input> (facultatif).
  74. *
  75. * @return void
  76. */
  77. public static function printInput(string $_config, $_value = null): void {
  78. echo self::constructInput($_config, $_value);
  79. }
  80. }