Foros del Web » Programando para Internet » PHP »

problema con glosario....

Estas en el tema de problema con glosario.... en el foro de PHP en Foros del Web. Hola [email protected], tengo un problema con un glosario... os cuento lo que he hecho y porqué me da el error... a ver si podemos solucionarlo ...
  #1 (permalink)  
Antiguo 03/07/2006, 04:10
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
problema con glosario....

Hola [email protected], tengo un problema con un glosario... os cuento lo que he hecho y porqué me da el error... a ver si podemos solucionarlo dealguna manera...

Tengo una función que reemplaza las palabras que encuentra del glosario en un parámetro que le envío... entonces, le agrego a la palabra un "?" con un enlace a un popUp con el glosario completo y title con la explicación de la palabra por si el usuario no quiere abrir el popUp... el problema viene cuando en la explicación aparece otra palabra del glosario... porque me vuelve a poner dentro de ese title, la "?" con el correspondiente title de esa nueva palabra encontrada...

se puede solucionar este bucle de alguna forma?? muchas gracias!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 03/07/2006, 04:16
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
pon codigo
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 03/07/2006, 04:43
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
opppsss, uso los parámetros "$temario,$seccion,$sub" para buscar el glosario del temario que el usuario esté viendo, y $txt contiene el texto del tema que llee.

Código PHP:
function ampliarGlo($temario,$seccion,$sub,$txt){
    
$contenido="contenido_".$seccion."_".$sub.sufijo($temario); 
    
$sql="SELECT `textos` FROM `$contenido` WHERE `enlace`='glosario' LIMIT 1";
    
$sql_query=mysql_query($sql);
    
$datos=mysql_fetch_row($sql_query);
    
$glosario=explode("<br />",$datos[0]);
    for (
$i=0;$i<=count($glosario);$i++){
        
$parte=explode(":",$glosario[$i]);
        
$exp="<a href=\"#\" onClick=\"MM_openBrWindow('glosario.php?temario=$temario&seccion=$seccion&sub=$sub#$i','glosario','scrollbars=yes,width=400,height=500');return false\" title=\"$parte[1]\"><sup>?</sup></a>";
        
$txt=str_replace(strtolower(trim($parte[0])),strtolower(trim($parte[0]))."$exp",$txt);
        
$txt=str_replace(ucfirst(trim($parte[0])),ucfirst(trim($parte[0]))."$exp",$txt);
    }
    
mysql_free_result($sql_query);
    return 
$txt;

Gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #4 (permalink)  
Antiguo 03/07/2006, 04:56
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
vaya.. pensé que mirando el codigo podría entender un poco mejor el problema pero veo que no, explicame un poco mejor esta parte anda:

Cita:
el problema viene cuando en la explicación aparece otra palabra del glosario... porque me vuelve a poner dentro de ese title, la "?" con el correspondiente title de esa nueva palabra encontrada...

PD: es lunes.. estoy espeso.. se nota no?.. jajaja
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 03/07/2006, 05:06
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
tienes razón... para ejemplo un botón.. que es lunes :P

Partamos de la base que funcionar funciona... salvo cuando por ejemplo en el texto se encuentra la palabra "mesa"... y en el glosario "mesa" y "patas"

primeramente encuentra "mesa" y sustituye:

Código HTML:
mesa<a href="#" onClick="MM_openBrWindow('glosario.php?temario=10&seccion=3&sub=$s1#50','glosario','scrollbars=yes,width=400,height=500');return false" title=\"tablero con 3 o más patas"><sup>?</sup></a> 
Pero al seguir con el bucle que incluye las demás palabras del glosario... encuentra "patas" dentro del title que anteriormente ha escrito... volviendo a hacer la misma sustitución... pero dentro!!!

Código HTML:
mesa<a href="#" onClick="MM_openBrWindow('glosario.php?temario=10&seccion=3&sub=$s1#50','glosario','scrollbars=yes,width=400,height=500');return false" title=\"tablero con 3 o más patas<a href="#" onClick="MM_openBrWindow('glosario.php?temario=10&seccion=3&sub=$s1#50','glosario','scrollbars=yes,width=400,height=500');return false" title=\"tablero con 3 o más patas"><sup>?</sup></a>"><sup>?</sup></a> 
Un lío.. verdad?? pues no sé cómo solucionarlo...
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 03/07/2006, 05:17
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
ahhh.. ahora entendí el problema... ahora a buscar una solucion jeje..
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 03/07/2006, 05:20
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
mm.. y si vas metiendo las palabras que vas modificando en otro array, y antes de hacer el cambio miras a ver si estan ahi, y si estan no haces el cambio??.. quiero decir:

for ($i=0;$i<=count($glosario);$i++){
//if (no está en el array "usadas") se hace todo esto {
$parte=explode(":",$glosario[$i]);
$exp="<a href=\"#\" onClick=\"MM_openBrWindow('glosario.php?temario=$t emario&seccion=$seccion&sub=$sub#$i','glosario','s crollbars=yes,width=400,height=500');return false\" title=\"$parte[1]\"><sup>?</sup></a>";
$txt=str_replace(strtolower(trim($parte[0])),strtolower(trim($parte[0]))."$exp",$txt);
$txt=str_replace(ucfirst(trim($parte[0])),ucfirst(trim($parte[0]))."$exp",$txt);
//aqui meterias esa palabra en el array "usadas".

//}
//y si está.. no se hace nada


}

por ahora es la unica solucion que se me ocurre.
__________________
ALOZORRO v5.0 (ahora en .es)
  #8 (permalink)  
Antiguo 06/07/2006, 01:50
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
yap... pero la cuestión es que no se sabe cual va primero... es decir, que tal vez la primera palabra del glosario contenga la última,por poner un ejemplo extremo, con lo cual al cambir una sóla vez la última, me cambiaría el "title" de la primera...
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.