PDA

Ver la Versión Completa : Problemas con comillas, y con rutas relativas y absolutas


David
02-03-2010, 00:14:03
Hola

Estoy retocando un componente en joomla, realizado en php y como hay mucho lio de clases y archivos, la solución es poner todas las instrucciones javascript en una etiqueta, pero no me termina de salir, incluso como veis en el código siguiente, he creado dos variables, aunque si se pudiera poner todo en un línea sería ideal, aunque realmente no importa mucho:

$img1 = "javascript:document.getElementById('mas').src='images/boletines/mas1.jpg'";
$img2 = "javascript:document.getElementById('mas').src='images/boletines/mas2.jpg'";
$result->html .=
'<div align="right"><a style="text-decoration:none;" target="_blank" href="'.$link.'" ><img src="images/boletines/mas1.jpg" alt="Ver m&aacute;s informaci&oacute;n" id="mas" width="57" height="31" border="0" onmouseover="'.$img2.'" onmouseout="'.$img1.'"></a></div>';

El resultado en html es este:


<div align="right"><a style="text-decoration:none;" target="_blank" href="http://localhost/joomla/index.php?option=com_content&view=" ><img src="http://localhost/joomla/images/boletines/mas1.jpg" alt="Ver m&aacute;s informaci&oacute;n" id="mas" width="57" height="31" border="0" onmouseover="javascript:document.getElementById('mas').src='images/boletines/mas2.jpg'" onmouseout="javascript:document.getElementById('mas').src='images/boletines/mas1.jpg'">



Como veis, en la función onmouseout tendría que salir esto:

onmouseout="javascript:document.getElementById('mas').src='http://localhost/joomla/images/boletines/mas1.jpg'"

y lo que sale es esto:

onmouseout="javascript:document.getElementById('mas').src='images/boletines/mas1.jpg'"

con la ruta relativa, que no me sirve obviamente. Lo mismo pasa con onmouseover.

Saludos

xEsk
02-03-2010, 03:35:20
Hola, php está haciendo bien su trabajo, ya que "él" no tiene ni idea de si lo que le pones es un path o un chiste (xD), son todo strings.

Lo que puedes hacer, es obtener las variables del servidor.

Ejemplo:
// obtenemos el host actual
$JOOMLA_URL = "http://".$_SERVER["HTTP_HOST"]."/joomla";
// montamos el html
$img1 = "javascript:document.getElementById('mas').src='$JOOMLA_URL/images/boletines/mas1.jpg'";
$img2 = "javascript:document.getElementById('mas').src='$JOOMLA_URL/images/boletines/mas2.jpg'";
$result->html .= '<div align="right"><a style="text-decoration:none;" target="_blank" href="'.$link.'" ><img src="'.$JOOMLA_URL.'"/images/boletines/mas1.jpg" alt="Ver m&aacute;s informaci&oacute;n" id="mas" width="57" height="31" border="0" onmouseover="'.$img2.'" onmouseout="'.$img1.'"></a></div>';

Saludos,
Xesc.

P.D: Lo he escrito directamente, puede que tenga algun fallo, pero sirve para que veas la idea.