server_collations.lib.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * functions for displaying server Character Sets and Collations
  5. *
  6. * @usedby server_collations.php
  7. *
  8. * @package PhpMyAdmin
  9. */
  10. if (! defined('PHPMYADMIN')) {
  11. exit;
  12. }
  13. /**
  14. * Returns the html for server Character Sets and Collations.
  15. *
  16. * @param Array $mysqlCharsets Mysql Charsets list
  17. * @param Array $mysqlCollations Mysql Collations list
  18. * @param Array $mysqlCharsetsDesc Charsets descriptions
  19. * @param Array $mysqlDftCollations Default Collations list
  20. * @param Array $mysqlCollAvailable Available Collations list
  21. *
  22. * @return string
  23. */
  24. function PMA_getHtmlForCharsets($mysqlCharsets, $mysqlCollations,
  25. $mysqlCharsetsDesc, $mysqlDftCollations,
  26. $mysqlCollAvailable
  27. ) {
  28. /**
  29. * Outputs the result
  30. */
  31. $html = '<div id="div_mysql_charset_collations">' . "\n"
  32. . '<table class="data noclick">' . "\n"
  33. . '<tr><th id="collationHeader">' . __('Collation') . '</th>' . "\n"
  34. . ' <th>' . __('Description') . '</th>' . "\n"
  35. . '</tr>' . "\n";
  36. $table_row_count = count($mysqlCharsets) + count($mysqlCollations);
  37. foreach ($mysqlCharsets as $current_charset) {
  38. $html .= '<tr><th colspan="2" class="right">' . "\n"
  39. . ' ' . htmlspecialchars($current_charset) . "\n"
  40. . (empty($mysqlCharsetsDesc[$current_charset])
  41. ? ''
  42. : ' (<i>' . htmlspecialchars(
  43. $mysqlCharsetsDesc[$current_charset]
  44. ) . '</i>)' . "\n")
  45. . ' </th>' . "\n"
  46. . '</tr>' . "\n";
  47. $html .= PMA_getHtmlForCollationCurrentCharset(
  48. $current_charset,
  49. $mysqlCollations,
  50. $mysqlDftCollations,
  51. $mysqlCollAvailable
  52. );
  53. }
  54. unset($table_row_count);
  55. $html .= '</table>' . "\n"
  56. . '</div>' . "\n";
  57. return $html;
  58. }
  59. /**
  60. * Returns the html for Collations of Current Charset.
  61. *
  62. * @param String $currCharset Current Charset
  63. * @param Array $mysqlColl Collations list
  64. * @param Array $mysqlDefaultColl Default Collations list
  65. * @param Array $mysqlCollAvailable Available Collations list
  66. *
  67. * @return string
  68. */
  69. function PMA_getHtmlForCollationCurrentCharset(
  70. $currCharset, $mysqlColl,
  71. $mysqlDefaultColl, $mysqlCollAvailable
  72. ) {
  73. $odd_row = true;
  74. $html = '';
  75. foreach ($mysqlColl[$currCharset] as $current_collation) {
  76. $html .= '<tr class="'
  77. . ($odd_row ? 'odd' : 'even')
  78. . ($mysqlDefaultColl[$currCharset] == $current_collation
  79. ? ' marked'
  80. : '')
  81. . ($mysqlCollAvailable[$current_collation] ? '' : ' disabled')
  82. . '">' . "\n"
  83. . ' <td>' . htmlspecialchars($current_collation) . '</td>' . "\n"
  84. . ' <td>' . PMA_getCollationDescr($current_collation) . '</td>' . "\n"
  85. . '</tr>' . "\n";
  86. $odd_row = !$odd_row;
  87. }
  88. return $html;
  89. }
  90. ?>