diff options
Diffstat (limited to 'hugo/js/get_image.js.php')
| -rw-r--r-- | hugo/js/get_image.js.php | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/hugo/js/get_image.js.php b/hugo/js/get_image.js.php new file mode 100644 index 0000000..0861fa3 --- /dev/null +++ b/hugo/js/get_image.js.php @@ -0,0 +1,138 @@ +<?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; +} +//
\ No newline at end of file |
