Welcome to mirror list, hosted at ThFree Co, Russian Federation.

svg_gradient.php « themes - github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e4ef33d94656e24ba5e3d3b95fd688dd7a82ecf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
/**
 * Theme based generator for SVG gradient.
 *
 * @package PhpMyAdmin-theme
 */
declare(strict_types=1);

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 characters
    $opts = ['options' => ['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>