Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 83 lines (79 sloc) 2.553 kb
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* This file generates the CSS code for the sprites of a theme
*
* @package PhpMyAdmin-theme
*/

// unplanned execution path
if (! defined('PMA_MINIMUM_COMMON')) {
    exit();
}

$bg = $_SESSION['PMA_Theme']->getImgPath() . 'sprites.png';
/* Check if there is a valid data file for sprites */
if (is_readable($_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php')) {

?>
/* Icon sprites */
.icon {
margin: 0;
margin-<?php echo $left; ?>: .3em;
padding: 0 !important;
width: 16px;
height: 16px;
background-image: url('<?php echo $bg; ?>') !important;
background-repeat: no-repeat !important;
background-position: top left !important;
}
<?php

    include_once $_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php';
    $sprites = array();
    if (function_exists('PMA_sprites')) {
        $sprites = PMA_sprites();
    }
    $template = ".ic_%s { background-position: 0 -%upx !important;%s%s }\n";
    foreach ($sprites as $name => $data) {
        // generate the CSS code for each icon
        $width = '';
        $height = '';
        // if either the height or width of an icon is 16px,
        // then it's pointless to set this as a parameter,
        //since it will be inherited from the "icon" class
        if ($data['width'] != 16) {
            $width = " width: " . $data['width'] . "px;";
        }
        if ($data['height'] != 16) {
            $height = " height: " . $data['height'] . "px;";
        }
        printf(
            $template,
            $name,
            ($data['position'] * 16),
            $width,
            $height
        );
    }
    // Here we map some of the classes that we
    // defined above to other CSS selectors.
    // The indexes of the array correspond to
    // already defined classes and the values
    // are the selectors that we want to map to.
    $elements = array(
        's_sortable' => 'img.sortableIcon',
        's_asc' => 'th.headerSortUp img.sortableIcon',
        's_desc' => 'th.headerSortDown img.sortableIcon'
    );
    $template = "%s { background-position: 0 -%upx; "
              . "height: %upx; width: %upx; }\n";
    foreach ($elements as $key => $value) {
        if (isset($sprites[$key])) { // If the CSS class has been defined
            printf(
                $template,
                $value,
                ($sprites[$key]['position'] * 16),
                $sprites[$key]['height'],
                $sprites[$key]['width']
            );
        }
    }
}
?>
Something went wrong with that request. Please try again.