Foros del Web » Programando para Internet » PHP »

Actualizar SOLO 1 vez una pagina

Estas en el tema de Actualizar SOLO 1 vez una pagina en el foro de PHP en Foros del Web. Hola a todos, he estado mirando mucho, y encuentro cosillas pero no es exactamente lo que busco. Uso joomfish con el modulo de los flags ...
  #1 (permalink)  
Antiguo 18/04/2011, 15:48
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Actualizar SOLO 1 vez una pagina

Hola a todos,

he estado mirando mucho, y encuentro cosillas pero no es exactamente lo que busco.
Uso joomfish con el modulo de los flags (las banderitas de los idiomas). Bien, cuando pulso la banderita de español, todo se traduce al español excepto un componente que es independiente con los idiomas de Joomla.
Solamente he tenido que añadir un pequeño codigo para cambiar en la tabla de BD el idioma manualmente y asi, el componente tambien cambia el idioma actual, pero tengo que actualizar manualmente la pagina entera para ver los cambios.

Lo que necesito es un pequeño codigo en javascript o html o en php para ponerlo inmediatamente despues de mi consulta y que la pagina entera se refresque SOLO UNA VEZ. Nada de cada x tiempo, porque eso no me sirve....

Sabeis a lo que me refiero?.... que se actualice la pagina activa solo una vez.

Muchisimas gracias por adelantado!!!

Un saludo!!!
  #2 (permalink)  
Antiguo 18/04/2011, 15:56
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Actualizar SOLO 1 vez una pagina

Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/javascript">
  2.  
  3.  
  4. var pagina="http://google.com"
  5.  
  6. function redireccionar()
  7.  
  8. {
  9.  
  10. location.href=pagina
  11.  
  12. }
  13.  
  14. setTimeout ("redireccionar()", 1);
  15.  
  16. </script>

Eso para actualizar... y después, si la función que cambia el idioma se ejecuta únicamente cuando haces click en la banderita no tendrías problema con que se cree un bucle infinito...
__________________
Si te ayude, el karma nunca sobra ;)
  #3 (permalink)  
Antiguo 18/04/2011, 16:09
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Actualizar SOLO 1 vez una pagina

Muchas gracias por tu rapida respuesta bioxido...
efectivamente, el idioma solo se cambia cuando un usuario pulsa la banderita..
Disculpa mi "ignorancia" pero como puedo poner la pagina actual que utilizo?

con tu ejemplo directamente sale google (logico porque le asignas ese valor al ejemplo) y se carga y se para. Pero lo pruebo con mi pagina y se carga infinitamente...
algo estoy haciendo mal...

a ver, mi pagina es esta:
http://localhost/Joomla-def/index.php?option=com_projectfork&Itemid=0&lang=es

pero tampoco puedo poner lo de Localhost porque el dia que suba la pagina a otro servidor petaria no?....

gracias de nuevo!
  #4 (permalink)  
Antiguo 18/04/2011, 16:14
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Actualizar SOLO 1 vez una pagina

Pone lo siguiente en la variable pagina y contame:
<?=$_SERVER['PHP_SELF'];?>

$_SERVER

Tambien es lo mismo hacer echo $_SERVER['PHP_SELF'];

;)
__________________
Si te ayude, el karma nunca sobra ;)
  #5 (permalink)  
Antiguo 18/04/2011, 16:32
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Actualizar SOLO 1 vez una pagina

quieres decir... que le asigne eso a la variable pagina?
puff... estoy mas verde que las lechugas....

pagina = <?=$_SERVER['PHP_SELF'];?>

....
  #6 (permalink)  
Antiguo 18/04/2011, 16:33
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Actualizar SOLO 1 vez una pagina

Exacto.

Ponelo y contame que tal te fue ;)
__________________
Si te ayude, el karma nunca sobra ;)
  #7 (permalink)  
Antiguo 18/04/2011, 16:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Actualizar SOLO 1 vez una pagina

pues... no me hace nada....
lo pongo tal y como me dices, pero no me hace nada....

a ver yo lo estoy poniendo justamente detras de la consulta... evidentemente, el script lo tengo que poner fuera del <?php>...

Te agrego el trozo final del codigo para que lo veas...

// Al pulsar el flag de idioma, el componente ProjectFork cambia de idioma tb
Código HTML:
Ver original
  1. $user = JFactory::getUser();
  2.        $parameter = 'language';
  3.  
  4.        if ($curLanguage->getTag() == 'en-GB') {
  5.             $value = 'english';
  6.        }else if($curLanguage->getTag() == 'es-ES') {
  7.             $value = 'spanish';
  8.        }else{
  9.        }
  10.  
  11.        $query = "UPDATE #__pf_user_profile SET value = '$value' WHERE user_id = '$user->id' AND parameter = '$parameter'";
  12.        $db->setQuery($query);
  13.        $db->query();
  14.  
  15. ?>
  16.  
  17. <script language="JavaScript" type="text/javascript">
  18. var pagina= <?=$_SERVER['PHP_SELF'];?>
  19. function redireccionar() {
  20.     location.href = pagina
  21. }
  22. setTimeout ("redireccionar()", 1);
  23.  
  24.  
  25. <?php>
  26.  
  27. $db->_profile("langmod");
  28. $db->_profile("langlayout",true);
  29. require($layout);
  30. $db->_profile("langlayout");
  31. $version = new JoomFishVersion();
  32. ?>

Última edición por minoyo; 18/04/2011 a las 16:52
  #8 (permalink)  
Antiguo 18/04/2011, 17:12
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Actualizar SOLO 1 vez una pagina

Aver, intenta con este:


Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/javascript">
  2. var pagina= "<?php echo $_SERVER['PHP_SELF'] ?>"
  3. function redireccionar() {
  4. location.href = pagina
  5. }
  6. setTimeout ("redireccionar()", 1);
  7. </script>
__________________
Si te ayude, el karma nunca sobra ;)
  #9 (permalink)  
Antiguo 18/04/2011, 17:20
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Actualizar SOLO 1 vez una pagina

Por lo que he visto, la unica modificación que añades a tu post es el valor de la variable ...
Código HTML:
Ver original
  1. var pagina= "<?php echo $_SERVER['PHP_SELF'] ?>"

Lo he probado, y ... entra en bucle infinito.... cargando cada segundo el index...
http://localhost/Joomla-def/index.php

puff... muchas gracias por tu tiempo de verdad!...

que puede ser?...
  #10 (permalink)  
Antiguo 18/04/2011, 17:43
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Actualizar SOLO 1 vez una pagina

Ya vi porque es... no había estudiado el código anteriormente...

Parece que la consulta esa que cambia el idioma se realiza cada vez que alguien abre el index.php...

Ahora lo que se me ocurre es lo siguiente:

Código PHP:
<?php

$consulta_lang 
mysql_query("SELECT value FROM #__pf_user_profile WHERE user_id = '$user->id' AND parameter = '$parameter'");
$lenguaje_usuario mysql_fetch_assoc("$consulta_lang");

$usuario_dato = array("english""spanish");
$pc_dato   = array("en-GB""es-ES");

$lenguaje_usuarioo str_replace($usuario_dato$pc_dato$lenguaje_usuario['value']);

if(
$curLanguage->getTag() != "$lenguaje_usuarioo"){
    
$parameter 'language';
&
#160;
&#160;      if ($curLanguage->getTag() == 'en-GB') {
&#160;           $value = 'english';
&#160;      }else if($curLanguage->getTag() == 'es-ES') {
&#160;           $value = 'spanish';
&#160;      }else{
&#160;      }
&#160;
&#160;      $query = "UPDATE #__pf_user_profile SET value = '$value' WHERE user_id = '$user->id' AND parameter = '$parameter'";
&#160;      $db->setQuery($query);
&#160;      $db->query();
&#160;
?>
 
<script language="JavaScript" type="text/javascript">
var pagina= "<?php echo $_SERVER['PHP_SELF'?>"
function redireccionar() {
    location.href = pagina
}
setTimeout ("redireccionar()", 1);
</script>
 
 
<?php
}
?>
Reemplaza desde $parameter = 'language'; hasta </script> por ese código y contame....

La verdad que no estoy muy seguro de que esto valla a funcionar, porque no estoy familiarizado con la DB de Joomla. Pero podría llegar a funcionar jaja

Fijate y contame ;)

NOTA: Quitale el simbolito raro no se porque se pone. Lo haría yo pero me tengo que ir. Suerte ;)
__________________
Si te ayude, el karma nunca sobra ;)
  #11 (permalink)  
Antiguo 18/04/2011, 17:58
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Actualizar SOLO 1 vez una pagina

Muchas gracias bioxido... pero peta!... no funciona vaya....

sigue el bucle infinito y ademas sale un error de sql...
  #12 (permalink)  
Antiguo 18/04/2011, 18:12
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Actualizar SOLO 1 vez una pagina

Muy bien, entonces intentemos esto:

Código PHP:
<?php
$user 
JFactory::getUser();


if(!isset(
$_COOKIE['lenguaje_set'])){
&
#160;      $parameter = 'language';
&#160;
&#160;      if ($curLanguage->getTag() == 'en-GB') {
&#160;           $value = 'english';
&#160;      }else if($curLanguage->getTag() == 'es-ES') {
&#160;           $value = 'spanish';
&#160;      }else{
&#160;      }
&#160;
&#160;      $query = "UPDATE #__pf_user_profile SET value = '$value' WHERE user_id = '$user->id' AND parameter = '$parameter'";
&#160;      $db->setQuery($query);
&#160;      $db->query();
setcookie("lenguaje_set""1"time() + (86400) );
}else{
    
?>
    <script language="JavaScript" type="text/javascript">
var pagina= <?=$_SERVER['PHP_SELF'];?>
function redireccionar() {
    location.href = pagina
}
setTimeout ("redireccionar()", 1);
</script>
    <?php
}
&
#160;
&#160;
$db->_profile("langmod");
$db->_profile("langlayout",true);
require(
$layout);
$db->_profile("langlayout");
$version = new JoomFishVersion();
?>
Este método me convence menos que el anterior...

Aver, decime que error de sql te da ;) Copiame el error tal cual aparece..
__________________
Si te ayude, el karma nunca sobra ;)
  #13 (permalink)  
Antiguo 21/04/2011, 09:09
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Actualizar SOLO 1 vez una pagina

Hola Bioxido....
antes de nada perdona la tardanza... he estado liao con otras cosas y no he tenido tiempo de probar tu ultima sugerencia antes...
Bueno, pues con el ultimo codigo que propones... no me cambia el valor de la tabla, por lo que al pulsar el flag, sigue cambiando toda la pagina pero el componente no.
Antes se modificaba la tabla, pero tenia que hacer el refresco general para que se notara el cambio.
En fin, que sigo en las mismas... no damos con la tecla....

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 21:46.