prendere dei valori da Plugin e inserirli nel database joomla

camminateinfriuli

Nuovo Utente
20 Mag 2022
3
0
1
Ho costruito un sito web non a scopo di lucro di camminate, ora lo sto rifacendo in J4.
Per i miei itinerari ho la necessità come nel vecchio sito in J3 di avere una tabella riepilogativa, a suo tempo usavo GPXTRACKMAP ma non è più sviluppato e supportato.

La tabella al momento sono riuscito ad averla usando il plugin aggpxtrack che usa leaflet-gpx.
Ora avrei bisogno di estrapolare alcuni dati dalla traccia con i metodi:
get_distance(): returns the total track distance, in meters
get_total_time(): returns the total track time, in milliseconds
get_total_speed(): returns the average total speed in km per hour
get_elevation_min(): returns the lowest elevation, in meters
get_elevation_max(): returns the highest elevation, in meters
get_elevation_gain() returns the cumulative elevation gain, in meters
get_elevation_loss(): returns the cumulative elevation loss, in meters


Lo so che per te la spiegazione sembra semplice ma io senza un esempio non riesco proprio a venirne fuori.
La cosa che mi servirebbe è salvare quei valori nel database joomla nella tabella dei campi aggiuntivi creati (distanza, tempo totale, velocità, dislivello, altitudine minima, altitudine massima, guadagno in salita e guadagno in discesa) nella posizione dell'articolo corrente.
Avevo pensato di modificare questo codice per aggiornare i valori nel database:


PHP:
<?php

defined('_JEXEC') or die('Restricted Access');

 

use Joomla\CMS\Factory;

 

$db = Factory::getDbo();

     $session =& JFactory::getSession();

     $articleid = $session->get('articleid');

 

 

if ($articleid->id == 0)

{

             echo "Not article select";

}

else

{

             $email = $me->email;

             // change the case of the email address

             $email_uppercase = strtoupper($email);

             if ($email == $email_uppercase)

             {

                         $new_email = strtolower($email);

             }

             else

             {

                         $new_email = $email_uppercase;

             }

            

             $query = $db->getQuery(true);

 

             $fields = array($db->quoteName('email') . " = '{$new_email}'");

 

             $conditions = array($db->quoteName('id') . ' = ' . $me->id);

 

             $query->update($db->quoteName('#__users'))->set($fields)->where($conditions);

 

             echo $db->replacePrefix((string) $query);

            

             $db->setQuery($query);

 

             if ($result = $db->execute())

             {

                         echo "Email case successfully changed!";

             }

}


Voglio imparare ma non è facile, la cosa più difficile è l’interazione tra il codice e il sistema.
Mi basta l'esempio per un solo campo poi mi do da fare, qualcuno può aiutarmi?
 

Discussioni simili