Viewing file: get_image.js.php (4.36 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Provides the functionality for retreiving images * which may be actual images or an icon from a sprite * * @package PhpMyAdmin */ chdir('..');
// Send correct type: header('Content-Type: text/javascript; charset=UTF-8'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
// Avoid loading the full common.inc.php because this would add many // non-js-compatible stuff like DOCTYPE define('PMA_MINIMUM_COMMON', true); require_once './libraries/common.inc.php';
// Get the data for the sprites, if it's available if (is_readable($_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php')) { include $_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php'; } $sprites = array(); if (function_exists('PMA_sprites')) { $sprites = PMA_sprites(); } // We only need the keys from the array of sprites data, // since they contain the (partial) class names $keys = array(); foreach ($sprites as $key => $value) { $keys[] = "'$key'"; }
?> /** * Returns an HTML IMG tag for a particular image from a theme, * which may be an actual file or an icon from a sprite * * @param string image The name of the file to get * @param string alternate Used to set 'alt' and 'title' attributes of the image * @param object attributes An associative array of other attributes * * @return Object The requested image, this object has two methods: * .toString() - Returns the IMG tag for the requested image * .attr(name) - Returns a particular attribute of the IMG * tag given it's name * .attr(name, value) - Sets a particular attribute of the IMG * tag to the given value * And one property: * .isSprite - Whether the image is a sprite or not */ function PMA_getImage(image, alternate, attributes) { var in_array = function (needle, haystack) { for (var i in haystack) { if (haystack[i] == needle) { return true; } } return false; }; var sprites = [ <?php echo implode($keys, ",\n ") . "\n"; ?> ]; // custom image object, it will eventually be returned by this functions var retval = { data: { // this is private alt: '', title: '', src: (typeof PMA_TEST_THEME == 'undefined' ? '' : '../') + 'themes/dot.gif' }, isSprite: true, attr: function (name, value) { if (value == undefined) { if (this.data[name] == undefined) { return ''; } else { return this.data[name]; } } else { this.data[name] = value; } }, toString: function () { var retval = '<' + 'img'; for (var i in this.data) { retval += ' ' + i + '="' + this.data[i] + '"'; } retval += ' /' + '>'; return retval; } }; // initialise missing parameters if (attributes == undefined) { attributes = {}; } if (alternate == undefined) { alternate = ''; } // set alt if (attributes.alt != undefined) { retval.attr('alt', attributes.alt); } else { retval.attr('alt', alternate); } // set title if (attributes.title != undefined) { retval.attr('title', attributes.title); } else { retval.attr('title', alternate); } // set src var klass = image.replace('.gif', '').replace('.png', ''); if (in_array(klass, sprites)) { // it's an icon from a sprite retval.attr('class', 'icon ic_' + klass); } else { // it's an image file retval.isSprite = false; retval.attr( 'src', "<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>" + image ); } // set all other attrubutes for (var i in attributes) { if (i == 'src') { // do not allow to override the 'src' attribute continue; } else if (i == 'class') { retval.attr(i, retval.attr('class') + ' ' + attributes[i]); } else { retval.attr(i, attributes[i]); } }
return retval; } //
|