<?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); define('PMA_PATH_TO_BASEDIR', '../'); require_once './libraries/common.inc.php'; $buffer = PMA\libraries\OutputBuffering::getInstance(); $buffer->start(); register_shutdown_function( function () { echo PMA\libraries\OutputBuffering::getInstance()->getContents(); } ); // 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', escapeHtml(attributes.alt)); } else { retval.attr('alt', escapeHtml(alternate)); } // set title if (attributes.title != undefined) { retval.attr('title', escapeHtml(attributes.title)); } else { retval.attr('title', escapeHtml(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; } if (i == 'class') { retval.attr(i, retval.attr('class') + ' ' + attributes[i]); } else { retval.attr(i, attributes[i]); } } return retval; } //
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
codemirror | Folder | 0755 |
|
|
jqplot | Folder | 0755 |
|
|
jquery | Folder | 0755 |
|
|
openlayers | Folder | 0755 |
|
|
pmd | Folder | 0755 |
|
|
tracekit | Folder | 0755 |
|
|
transformations | Folder | 0755 |
|
|
ajax.js | File | 28.9 KB | 0644 |
|
big_ints.js | File | 1.88 KB | 0644 |
|
chart.js | File | 17.84 KB | 0644 |
|
common.js | File | 18.36 KB | 0644 |
|
config.js | File | 25.86 KB | 0644 |
|
console.js | File | 57.53 KB | 0644 |
|
cross_framing_protection.js | File | 468 B | 0644 |
|
db_central_columns.js | File | 10.63 KB | 0644 |
|
db_operations.js | File | 5.76 KB | 0644 |
|
db_qbe.js | File | 2.04 KB | 0644 |
|
db_search.js | File | 8.42 KB | 0644 |
|
db_structure.js | File | 15.42 KB | 0644 |
|
db_tracking.js | File | 3.22 KB | 0644 |
|
doclinks.js | File | 20.16 KB | 0644 |
|
error_report.js | File | 9.87 KB | 0644 |
|
export.js | File | 28.66 KB | 0644 |
|
functions.js | File | 162.06 KB | 0644 |
|
get_image.js.php | File | 4.65 KB | 0644 |
|
get_scripts.js.php | File | 1.93 KB | 0644 |
|
gis_data_editor.js | File | 14.33 KB | 0644 |
|
import.js | File | 5.49 KB | 0644 |
|
indexes.js | File | 26.3 KB | 0644 |
|
keyhandler.js | File | 3.25 KB | 0644 |
|
line_counts.php | File | 36.92 KB | 0644 |
|
makegrid.js | File | 95.13 KB | 0644 |
|
menu-resizer.js | File | 6.48 KB | 0644 |
|
messages.php | File | 38.55 KB | 0644 |
|
microhistory.js | File | 11.22 KB | 0644 |
|
multi_column_sort.js | File | 2.83 KB | 0644 |
|
navigation.js | File | 53.8 KB | 0644 |
|
normalization.js | File | 26.39 KB | 0644 |
|
page_settings.js | File | 1.66 KB | 0644 |
|
replication.js | File | 3.03 KB | 0644 |
|
rte.js | File | 46.45 KB | 0644 |
|
server_databases.js | File | 4.96 KB | 0644 |
|
server_plugins.js | File | 525 B | 0644 |
|
server_privileges.js | File | 16.23 KB | 0644 |
|
server_status_advisor.js | File | 3.6 KB | 0644 |
|
server_status_monitor.js | File | 84.43 KB | 0644 |
|
server_status_processes.js | File | 5.97 KB | 0644 |
|
server_status_queries.js | File | 950 B | 0644 |
|
server_status_sorter.js | File | 2.51 KB | 0644 |
|
server_status_variables.js | File | 3.57 KB | 0644 |
|
server_user_groups.js | File | 1.34 KB | 0644 |
|
server_variables.js | File | 5.93 KB | 0644 |
|
sprintf.js | File | 7.21 KB | 0644 |
|
sql.js | File | 32.71 KB | 0644 |
|
tbl_change.js | File | 27.8 KB | 0644 |
|
tbl_chart.js | File | 13.61 KB | 0644 |
|
tbl_find_replace.js | File | 1.55 KB | 0644 |
|
tbl_gis_visualization.js | File | 10.64 KB | 0644 |
|
tbl_operations.js | File | 12.99 KB | 0644 |
|
tbl_relation.js | File | 8.35 KB | 0644 |
|
tbl_select.js | File | 15.07 KB | 0644 |
|
tbl_structure.js | File | 20.41 KB | 0644 |
|
tbl_tracking.js | File | 3.44 KB | 0644 |
|
tbl_zoom_plot_jqplot.js | File | 22.55 KB | 0644 |
|
whitelist.php | File | 1.1 KB | 0644 |
|