54 lines
1.5 KiB
PHP
54 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Theme based generator for SVG gradient.
|
|
*
|
|
* @package PhpMyAdmin-theme
|
|
*/
|
|
header('Content-Type: image/svg+xml');
|
|
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
|
|
|
|
/**
|
|
* Gets single color from GET parameters validating it.
|
|
*
|
|
* @param string $get_name Name of parameter in request
|
|
* @param string $default Default value
|
|
*
|
|
* @return string Color name or code.
|
|
*/
|
|
function PMA_gradientGetColor($get_name, $default)
|
|
{
|
|
// get color from GET args, only alphanumeric chcracters
|
|
$opts = array('options' => array('regexp' => '/^[a-z0-9]+$/i'));
|
|
$color = filter_input(INPUT_GET, $get_name, FILTER_VALIDATE_REGEXP, $opts);
|
|
if (preg_match('/^[a-f0-9]{6}$/', $color)) {
|
|
return '#' . $color;
|
|
}
|
|
return $color ? $color : $default;
|
|
}
|
|
|
|
$from = PMA_gradientGetColor('from', 'white');
|
|
$to = PMA_gradientGetColor('to', 'blank');
|
|
|
|
echo '<?xml version="1.0" ?>';
|
|
?>
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
preserveAspectRatio="none"
|
|
version="1.0" width="100%" height="100%">
|
|
<defs>
|
|
<linearGradient id="linear-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
<stop
|
|
offset="0%"
|
|
stop-color="<?php echo $from; ?>"
|
|
stop-opacity="1"
|
|
/>
|
|
<stop
|
|
offset="100%"
|
|
stop-color="<?php echo $to; ?>"
|
|
stop-opacity="1"
|
|
/>
|
|
</linearGradient>
|
|
</defs>
|
|
<rect width="100%" height="100%" style="fill:url(#linear-gradient);" />
|
|
</svg>
|