Software > Tu Web meteorológica

Duda plantilla

(1/2) > >>

CarlosLSev:
Hola he modificado una plantilla descargada de aquí
https://saratoga-weather.org/scripts-legacy.php
Exactamente la llamada:
MOBILE Dashboard 1.9x Script
REQUIRES Special ajaxWDwx.js

He limpiado a mi gusto, copy and paste del ajax-dashboard.php y otras partes. Hasta conseguir que visiblemente parezca una web versión móvil saratoga.
Mirando el código estará para llorar :;, pero a nivel práctico, funciona. Me ha costado pero funciona.
Mi duda es esta plantilla se actualiza cada 5 minutos. ¿Es posible que lo haga como la original cada 15 seg.?
Es posible que dicha actualización sea por qué la plantilla tome los datos del CUtags.php que se sube cada 5 minutos en vez del realtime que si lo hace cada 15seg.
Os dejo link a dicha plantilla
www.meteoviso.es/mobile.php
Gracias esta vez he intentado darte menos la lata

jmviper:
Hola Carlos

Todo parece actualizarse en esa página menos la hora. El viento está cambiando con el realtime.

Esas actualizaciones "realtime" cada 15 segundos vienen del script ajaxCUwx.js de tu servidor.

La hora no se actualiza porqué está comentada la parte del script que cambia esos valores. Es la sección:


--- Código: ---/* var ntime = realtime[1].substring(0,3);
var ndate = langMonths[ realtime[36] -1 ].substring(0,3) + " " + realtime[35] + " " + realtime[141];
var ndate2 = realtime[35] + "-" +langMonths[ realtime[36] -1 ].substring(0,3) + "-" +  realtime[141];
var myDate = new Date( langMonths[ realtime[36] - 1 ] + " " + realtime[35] + ", " + realtime[141] );
var tday = langDays[myDate.getDay()];
//
set_ajax_obs("ajaxndate", ndate );
set_ajax_obs("ajaxndate2",ndate2);
set_ajax_obs("ajaxntime", ntime );
set_ajax_obs("ajaxntimess", ntime + ":" + realtime[31]);
set_ajax_obs("ajaxdname", tday );
*/
--- Fin del código ---

Como ves está encerrada entre /* y */ que es para encerrar comentarios multilínea por lo que están deshabilitados.

Quítalos y te debería de ir la actualización de la hora.

Buen trabajo  :)

CarlosLSev:
Hola jmviper,, cierto después me di cuenta que solo la hora no actualizaba,  pues si descomento esas lineas sigue sin funcionar, de hecho ahora me indica el tiempo de la proxima actualización 5 minutos (luego no se actualiza). Pienso desde el desconocimiento que no debe ser problema del ajaxCUwx.php, en la plantilla de saratoga, en el index.php si funciona la hora Si en la plantilla funciona y en mobile.php no sera por algo mal hecho en mobile.php.

Finalmente lo solucione asi:
Cree un fichero php con esto
<?php


include("top.php");



?>



     
   <small> <body style='background-color:white'>   <span class="ajax" id="ajaxindicator"><?php langtrans('Actualizado'); ?></span>&nbsp;
          <span class="ajax" id="ajaxdate">
          <?php echo fixup_date($date) . ' ' . fixup_time($time);
           if(isset($timeofnextupdate)) { echo " - " . langtransstr('next update at') . " " . fixup_time($timeofnextupdate);} ?>
          </span>&nbsp;<span class="ajax" id="ajaxtime"></span>
            <?php if(isset($SITE['ajaxScript'])) { ?>
            <script type="text/javascript">
<!--
document.write(' - <?php langtrans(''); ?> <span id="ajaxcounter"></span>&nbsp;<?php langtrans('sec ago'); ?>');
//-->
            </script></small>
            <?php } // there is a ajaxScript ?>
  <?php      


//=========================================================================
// change the hh:mm AM/PM to h:mmam/pm format
function fixup_time ( $WDtime ) {
  global $timeOnlyFormat,$DebugMode;
  if ($WDtime == "00:00: AM") { return ''; }
  $t = explode(':',$WDtime);
  if (preg_match('/p/i',$WDtime)) { $t[0] = $t[0] + 12; }
  if ($t[0] > 23) {$t[0] = 12; }
  if (preg_match('/^12.*a/i',$WDtime)) { $t[0] = 0; }
  $t2 = join(':',$t); // put time back to gether;
  $t2 = preg_replace('/[^\d\:]/is','',$t2); // strip out the am/pm if any
  $r = date($timeOnlyFormat , strtotime($t2));
  if ($DebugMode) {
    $r = "<!-- fixup_time WDtime='$WDtime' t2='$t2' -->" . $r;
    $r = '<span style="color: green;">' . $r . '</span>';
  }
  return ($r);
}

//=========================================================================
// adjust WD date to desired format
//
function fixup_date ($WDdate) {
  global $timeFormat,$timeOnlyFormat,$dateOnlyFormat,$WDdateMDY,$DebugMode;
  $d = explode('/',$WDdate);      // expect ##/##/## form
  if(!isset($d[2])) {$d = explode('-',$WDdate); } // try ##-##-#### form instead
  if(!isset($d[2])) {$d = explode('.',$WDdate); } // try ##.##.#### form instead
  if ($d[2] > 70 and $d[2] <= 99) {$d[2] += 1900;} // 2 digit dates 70-99 are 1970-1999
  if ($d[2] < 99) {$d[2] += 2000; } // 2 digit dates (left) are assumed 20xx dates.
  if ($WDdateMDY) {
    $new = sprintf('%04d-%02d-%02d',$d[2],$d[0],$d[1]); //  M/D/YYYY -> YYYY-MM-DD
  } else {
    $new = sprintf('%04d-%02d-%02d',$d[2],$d[1],$d[0]); // D/M/YYYY -> YYYY-MM-DD
  }
 
  $r = date($dateOnlyFormat,strtotime($new));
  if ($DebugMode) {
    $r = "<!-- fixup_date WDdate='$WDdate', WDdateUSA='$WDdateMDY' new='$new' -->" . $r;
    $r = '<span style="color: green;">' . $r . '</span>';
  }
  return ($r);
}

      
// end of functions
//=========================================================================
?>

Luego desde el  mobile.php lo incrusto con un iframe 

<div align='left'><iframe src="./hora.php"
marginwidth="0" marginheight="0" name="ventana_iframe" scrolling="no" border="0"
frameborder="0" width="100%" height="16">
</iframe>
Si pongo el codigo de arriba en mobile.php directo los segundos no salen :(

Lo se una chapuza, pero funciona...

jmviper:
La verdad es que es más fácil el asunto.

Hace un tiempo (hace ya 4 años  *-* *-*) hice una especie de tutorial de cómo funcionaba ajax clavado con chincheta en esta misma sección del foro:

https://forum.meteoclimatic.net/index.php/topic,1032.0.html

Las plantillas de Saratoga funcionan así, al igual que la de mi página que está modificada a mis necesidades.

El archivo ajaxCUwx.js (no ajaxCuwx.php) es el que se encarga de eso en el caso de Cumulus. Las etiquetas que le has insertado en ese iframe son las que le podías haber insertado directamente a la página, ya que tanto la página como el iframe están llamando a la función ajax de ajaxCUwx.js . Prueba a poner esas líneas directamente en vez del iframe:


--- Citar ---<div align='center'><small> <body style='background-color:white'>   <span class="ajax" id="ajaxindicator">Actualizado</span>&nbsp;
          <span class="ajax" id="ajaxdate">
            - próxima actualización a las           </span>&nbsp;<span class="ajax" id="ajaxtime"></span>
                        <script type="text/javascript">
<!--
document.write(' - hace <span id="ajaxcounter"></span>&nbsp;segundos');
//-->
            </script></small>
--- Fin de la cita ---

CarlosLSev:

--- Cita de: jmviper en 09 de Febrero de 2021, 12:07:40 ---La verdad es que es más fácil el asunto.

Hace un tiempo (hace ya 4 años  *-* *-*) hice una especie de tutorial de cómo funcionaba ajax clavado con chincheta en esta misma sección del foro:

https://forum.meteoclimatic.net/index.php/topic,1032.0.html

Las plantillas de Saratoga funcionan así, al igual que la de mi página que está modificada a mis necesidades.

El archivo ajaxCUwx.js (no ajaxCuwx.php) es el que se encarga de eso en el caso de Cumulus. Las etiquetas que le has insertado en ese iframe son las que le podías haber insertado directamente a la página, ya que tanto la página como el iframe están llamando a la función ajax de ajaxCUwx.js . Prueba a poner esas líneas directamente en vez del iframe:


--- Citar ---<div align='center'><small> <body style='background-color:white'>   <span class="ajax" id="ajaxindicator">Actualizado</span>&nbsp;
          <span class="ajax" id="ajaxdate">
            - próxima actualización a las           </span>&nbsp;<span class="ajax" id="ajaxtime"></span>
                        <script type="text/javascript">
<!--
document.write(' - hace <span id="ajaxcounter"></span>&nbsp;segundos');
//-->
            </script></small>
--- Fin de la cita ---

--- Fin de la cita ---


 apla3 apla3 apla3 apla3
Sencillamente funciona, gracias

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa