Bonjour,

J'ai un problème qui me parait épineux, mais pas irréalisable pour quelqu'un qui connait bien le javascript (c est a dire pas moi) donc bref je cherche de l'aide! Si quelqu'un peut m aider je lui en serais tres reconnaissant!

Je vous explique mon probleme!
Je crée une page html a l'aide d'un script php
Ce script php fait appel a des fichiers .tpl pour créer les différentes parties html!
L'un de ses TPL sert a faire apparaitre les images en mignatures
Le but de mon script est de faire un agrandissement lors d'un OnMouseOver, j'ai récupéré une fonction javascript, elle marche tres bien!
J'ai donc incorporé cette fonction dans mon script tpl entre deux balises literal afin que le serveur les interpretes comme etant du script et non pas du tpl!

Lorsque la page est générée, tout se passe bien a un détail près le fait qu'il y ait plusieurs miniatures sur la page, et le fait que le javascript soit interprété avant le tpl fait que les données relatives a la premiere miniature sont effacées par la seconde, et ainsi de suite! bref au final j ai l'image de la derniere photo presente en grand sur chaque miniature!

Je cherche donc une autre solution (si quelqu'un a je prend aussi! )
J'ai pensé a récupérer dynamiquement les valeurs de la miniature sur laquelle est la souris et donc d'afficher dans ce cas la, la photo correspondante a cette miniature. Ca a l air bien comme ca, mais aucune idée de comment faire?
Il y a une fonction javascript qui permet de récupérer dynamiquement l'url de l'image sur laquelle on est?
Je vous remercie grandement si vous avez une idée ou encore mieux une solution à m apporter!!!


Fonction javascript + <img>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
 
 
{* $Id: product_thumbnail.tpl,v 1.8.2.1 2003/05/20 13:32:38 svowl Exp $ *}
 
{literal}
 
		<script type="text/javascript">
 
/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (<a href="http://www.dyn-web.com" target="_blank">www.dyn-web.com</a>)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at <a href="http://www.dynamicdrive.com/" target="_blank">http://www.dynamicdrive.com/</a> for full source code
***********************************************/
 
/* IMPORTANT: Put script after tooltip div or
	 put tooltip div just before </BODY>. */
 
var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;
 
var origWidth, origHeight;
 
// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }
 
///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 360;
var offX= 20;	// how far from mouse to show tip
var offY= 12;
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "#747170";
var tipBgColor= "#F5F5F5";
var tipBorderColor= "#9A9A9A";
var tipBorderWidth= 1;
var tipBorderStyle= "";
var tipPadding= 0;
 
// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing:
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
 
messages[0] = new Array('../imagelarge.php?productid={/literal}{$productid}{literal}','<center>{/literal}{$product}{literal}</center>');
 
////////////////////  END OF CUSTOMIZATION AREA  ///////////////////
 
// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var i=0; i<messages.length; i++) {
  	theImgs[i] = new Image();
		theImgs[i].src = messages[i][0];
  }
}
 
// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="'+ tipWidth +'"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';
 
////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip.
//		Set styles
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		document.onmousemove = trackMouse;
	}
}
 
window.onload = initTip;
 
/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,num) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	// set colors if included in messages array
	if (messages[num][2])	var curBgColor = messages[num][2];
	else curBgColor = tipBgColor;
	if (messages[num][3])	var curFontColor = messages[num][3];
	else curFontColor = tipFontColor;
	if (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
		tipcss.backgroundColor = curBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}
 
var mouseX, mouseY;
function trackMouse(evt) {
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
	mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	if (tipOn) positionTip(evt);
}
 
/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position,
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
		mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
		mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
	var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip
	if ((mouseX+offX+tpWd)>winWd)
		tipcss.left = mouseX-(tpWd+offX)+"px";
	else tipcss.left = mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt)
		tipcss.top = winHt-(tpHt+offY)+"px";
	else tipcss.top = mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}
 
function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}
 
document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')
 
</script>
 
{/literal}
 
{if $config.Appearance.show_thumbnails eq "Y"} <img src="{if $tmbn_url}{$tmbn_url}{else}{if $full_url}{$http_location}{else}..{/if}/image.php?productid={$productid}{if $file_upload_data.file_path}&tmp=y{/if}{/if}"{if $image_x ne 0} onmouseover="doTooltip(event,0)" onmouseout="hideTip()" class=ThumbDisplay width={$image_x}{/if}{if $image_y ne 0} height={$image_y}{/if} alt="{$product}" border=0>{/if}