svg_gradient.php 1.1 KB

123456789101112131415161718192021222324252627282930
  1. <?php
  2. /**
  3. * Theme based generator for SVG gradient.
  4. *
  5. * @package PhpMyAdmin-theme
  6. */
  7. header('Content-Type: image/svg+xml');
  8. header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
  9. function get_color($get_name, $default)
  10. {
  11. // get color from GET args, only alphanumeric chcracters
  12. $opts = array('options' => array('regexp' => '/^[a-z0-9]+$/i'));
  13. $color = filter_input(INPUT_GET, $get_name, FILTER_VALIDATE_REGEXP, $opts);
  14. if (preg_match('/^[a-f0-9]{6}$/', $color)) {
  15. return '#' . $color;
  16. }
  17. return $color ? $color : $default;
  18. }
  19. ?>
  20. <?php echo '<?xml version="1.0" ?>' ?>
  21. <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" version="1.0" width="100%" height="100%">
  22. <defs>
  23. <linearGradient id="linear-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
  24. <stop offset="0%" stop-color="<?php echo get_color('from', 'white') ?>" stop-opacity="1" />
  25. <stop offset="100%" stop-color="<?php echo get_color('to', 'black') ?>" stop-opacity="1" />
  26. </linearGradient>
  27. </defs>
  28. <rect width="100%" height="100%" style="fill:url(#linear-gradient);" />
  29. </svg>