Autor Tema: Duda plantilla  (Leído 1764 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado CarlosLSev

  • Sr. Member
  • ****
  • Mensajes: 272
    • Ver Perfil
    • Meteoviso
  • Estación: El Viso del Alcor- ESAND4100000041520A
Duda plantilla
« en: 07 de Febrero del 2021, 18:13:07 pm »
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
« Última modificación: 07 de Febrero del 2021, 18:49:36 pm por CarlosLSev »

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.403
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Duda plantilla
« Respuesta #1 en: 08 de Febrero del 2021, 01:02:18 am »
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: [Seleccionar]
/* 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 );
*/

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  :)


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado CarlosLSev

  • Sr. Member
  • ****
  • Mensajes: 272
    • Ver Perfil
    • Meteoviso
  • Estación: El Viso del Alcor- ESAND4100000041520A
Re:Duda plantilla
« Respuesta #2 en: 09 de Febrero del 2021, 00:59:42 am »
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...
« Última modificación: 09 de Febrero del 2021, 08:59:14 am por CarlosLSev »

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.403
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Duda plantilla
« Respuesta #3 en: 09 de Febrero del 2021, 12:07:40 pm »
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>


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado CarlosLSev

  • Sr. Member
  • ****
  • Mensajes: 272
    • Ver Perfil
    • Meteoviso
  • Estación: El Viso del Alcor- ESAND4100000041520A
Re:Duda plantilla
« Respuesta #4 en: 10 de Febrero del 2021, 22:57:22 pm »
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>


 apla3 apla3 apla3 apla3
Sencillamente funciona, gracias

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.403
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Duda plantilla
« Respuesta #5 en: 11 de Febrero del 2021, 00:03:33 am »
Perfecto  :)


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado CarlosLSev

  • Sr. Member
  • ****
  • Mensajes: 272
    • Ver Perfil
    • Meteoviso
  • Estación: El Viso del Alcor- ESAND4100000041520A
Re:Duda plantilla
« Respuesta #6 en: 14 de Febrero del 2021, 23:26:13 pm »
Ya creo que doy por finalizada la modificación móvil de la plantilla saratoga, he añadido y personalizado a mí gusto. Al final vas cogiéndole el gustillo.
Unas preguntas,  ¿hay algún plugin, addon para saratoga para saber estado de sensores de la estación meteorológica?
Igualmente hay algo para que se nos alerte que la web está sin actualizar, ya sea por fallo de internet en casa o estación.
Actualmente tengo 2 web funcionado, la alojada en la raíz que toma los datos de una Raspberry con cumulusmx. Y la alojada en /webtest que toma los datos de CumulusMx ejecutándose en el servidor web (vps) del sitio web.
Aún no he decidido que opción dejaré.
1.- Tradicional pero a mí entender más fácil que algo falle, cierto es que si falla internet o la luz se va luego parece que los datos registrados se recuperan.
2.- CumulusMX en el vps. A mí entender más estable la.app CumulusMX, ya que se ejecuta en un servidor Cloud, pero no tengo claro en caso de fallo de corriente o internet si se recuperan los registros.
En este caso  aunque se detenga CumulusMx en el vps o fallo de internet o corriente en casa la web sigue actualizándose la hora, como si recibiera por FTP los ficheros (los datos evidentemente no), no se si eso puede corregirse.