Translation update done using Pootle.
[phpmyadmin/madhuracj.git] / js / get_image.js.php
blobb327844bdba3ffdc32f038894f58dccfe1d1851d
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * Provides the functionality for retreiving images
5 * which may be actual images or an icon from a sprite
7 * @package PhpMyAdmin
8 */
9 chdir('..');
11 // Send correct type:
12 header('Content-Type: text/javascript; charset=UTF-8');
13 header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
15 // Avoid loading the full common.inc.php because this would add many
16 // non-js-compatible stuff like DOCTYPE
17 define('PMA_MINIMUM_COMMON', true);
18 require_once './libraries/common.inc.php';
20 // Get the data for the sprites, if it's available
21 if (is_readable($_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php')) {
22 include $_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php';
24 $sprites = array();
25 if (function_exists('PMA_sprites')) {
26 $sprites = PMA_sprites();
28 // We only need the keys from the array of sprites data,
29 // since they contain the (partial) class names
30 $keys = array();
31 foreach ($sprites as $key => $value) {
32 $keys[] = "'$key'";
36 /**
37 * Returns an HTML IMG tag for a particular image from a theme,
38 * which may be an actual file or an icon from a sprite
40 * @param string image The name of the file to get
41 * @param string alternate Used to set 'alt' and 'title' attributes of the image
42 * @param object attributes An associative array of other attributes
44 * @return Object The requested image, this object has two methods:
45 * .toString() - Returns the IMG tag for the requested image
46 * .attr(name) - Returns a particular attribute of the IMG
47 * tag given it's name
48 * .attr(name, value) - Sets a particular attribute of the IMG
49 * tag to the given value
50 * And one property:
51 * .isSprite - Whether the image is a sprite or not
53 function PMA_getImage(image, alternate, attributes) {
54 var in_array = function (needle, haystack) {
55 for (i in haystack) {
56 if (haystack[i] == needle) {
57 return true;
60 return false;
62 var sprites = [
63 <?php echo implode($keys, ",\n ") . "\n"; ?>
65 // custom image object, it will eventually be returned by this functions
66 var retval = {
67 data: {
68 // this is private
69 alt: '',
70 title: '',
71 src: 'themes/dot.gif'
73 isSprite: true,
74 attr: function (name, value) {
75 if (value == undefined) {
76 if (this.data[name] == undefined) {
77 return '';
78 } else {
79 return this.data[name];
81 } else {
82 this.data[name] = value;
85 toString: function () {
86 var retval = '<' + 'img';
87 for (var i in this.data) {
88 retval += ' ' + i + '="' + this.data[i] + '"';
90 retval += ' /' + '>';
91 return retval;
94 // initialise missing parameters
95 if (attributes == undefined) {
96 attributes = {};
98 if (alternate == undefined) {
99 alternate = '';
101 // set alt
102 if (attributes.alt != undefined) {
103 retval.attr('alt', attributes.alt);
104 } else {
105 retval.attr('alt', alternate);
107 // set title
108 if (attributes.title != undefined) {
109 retval.attr('title', attributes.title);
110 } else {
111 retval.attr('title', alternate);
113 // set src
114 var klass = image.replace('.gif', '').replace('.png', '');
115 if (in_array(klass, sprites)) {
116 // it's an icon from a sprite
117 retval.attr('class', 'icon ic_' + klass);
118 } else {
119 // it's an image file
120 retval.isSprite = false;
121 retval.attr('src', "<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>" + image);
123 // set all other attrubutes
124 for (var i in attributes) {
125 if (i == 'src') {
126 // do not allow to override the 'src' attribute
127 continue;
128 } else if (i == 'class') {
129 retval.attr(i, retval.attr('class') + ' ' + attributes[i]);
130 } else {
131 retval.attr(i, attributes[i]);
135 return retval;