GPS Track BBCode mod

Mod BBCode Database
BBCode che hanno bisogno di editing di file o extra file
Regole del forum
Immagine
Rispondi
Avatar utente
Galandas
Staff phpBB3World
Staff phpBB3World
Messaggi: 792
Iscritto il: 4 nov 2012, 9:18
Località: phpbb3world
Contatta:

GPS Track BBCode mod

Messaggio da Galandas » 16 gen 2013, 12:36

GPS Track BBCode Mod

Autore: John P
Descrizione: Beh, non so se questo è un mod o solo un bbcode personalizzato. E facile da fare, hai solo bisogno di una chiave API di clicca qui e basta inserire la traccia nel tuo forum utilizzando bbcode [GPSies=il tuo trackcode]Il tuo tracktitle[/GPSies]
Ecco come si presenta:
Immagine

Modifiche:

In includes/constants.php cambiare NUM_CORE_BBCODES in 13.

In includes/bbcode.php in function bbcode_second_pass sulla linea 116 aggiungere:

Codice: Seleziona tutto

            if ($bbcode_id == 13)
            {
                if (preg_match("/fileId=([a-z]{12,19})/", $message, $matches))
                {
                        $track = '</iframe>' . gpsies_properties($matches[1]) . '</div><br style="clear:both;" />';
                        $message = preg_replace("~</iframe>~", $track, $message);
                }else
                {
                    $message .= '</div>';
                }
            } 
Su linea 346 in functiion bbcode_cache_init aggiungere:

Codice: Seleziona tutto

                case 13:
                    $this->bbcode_cache[$bbcode_id] = array(
                        'preg' => array(
                            '!\[gpsies=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+):$uid\](.*?)\[/gpsies:$uid\]!is'    => $this->bbcode_tpl('gpsies', $bbcode_id),
                        )
                    );
                break; 
In function bbcode_tpl su linea 425 aggiungere:

Codice: Seleziona tutto

                'gpsies'    => '<div><iframe src="http://www.gpsies.com/mapOnly.do?fileId=$1" style="float:left; width:400px; height:400px; border:none;" scrolling="no" title="$2"></iframe>', 
In functions.php aggiungere alla fine:

Codice: Seleziona tutto

function gpsies_properties($gpsies='')
{
    $gpsies_api_key = 'Your Api key';
    $gpsies_url_api = 'http://www.gpsies.com/api.do?key=';
    $gpsies_url_api .= $gpsies_api_key;
    $gpsies = 'fileId=' . $gpsies . ' show=details';
  
    $defaults = array( 
        CURLOPT_URL => $gpsies_url_api . (strpos($gpsies_url_api, '?') === FALSE ? '?' : '&') . $gpsies, 
        CURLOPT_HEADER => 0, 
        CURLOPT_RETURNTRANSFER => TRUE, 
        CURLOPT_TIMEOUT => 4 
    ); 

    $ch = curl_init(); 
    curl_setopt_array($ch, ($defaults)); 
    if (!$result = curl_exec($ch)) 
    { 
        trigger_error(curl_error($ch)); 
    } 
    curl_close($ch); 
    $xmlresp = $result; 
    
    $xmlgpsies = new SimpleXMLElement($xmlresp);     
    $tracksrev = array_reverse($xmlgpsies->tracks->xpath('track')); 
    $trackinfo = 'No data available!';
    foreach ($tracksrev as $track) 
    {
        $trackinfo ='<div style="float:left; width:250px; font-size:11px; margin-left:10px;">
                    <strong>Track title:</strong> ' . $track->title . '
                    <strong>Track length:</strong> ' . round((real)$track->trackLengthM/1000, 1) . ' km
                    <strong>Altitudes:</strong> ' . $track->altitudeDifferenceM . ' m
                    <strong>Min. height:</strong> ' . $track->altitudeMinHeightM . ' m
                    <strong>Max. height:</strong> ' . $track->altitudeMaxHeightM . ' m
                    <strong>Climb:</strong> ' . $track->totalAscentM . ' m | '.
                    '<strong>Descents:</strong> ' . $track->totalDescentM . ' m
                    <strong>Address:</strong> ' . $track->startPointAddress . '
                    <strong>Latitude:</strong> ' . $track->startPointLat . '
                    <strong>Longitude:</strong> ' . $track->startPointLon . '</div>';
    }
    return $trackinfo;    
}
 
In message_parser.php su linea 128 aggiungere:

Codice: Seleziona tutto

            'gpsies'        => array('bbcode_id' => 13,    'regexp' => array('!\[gpsies=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/gpsies\]!uise' => "\$this->bbcode_gpsies('\$1', '\$2')")), 

e sulla linea 281:

Codice: Seleziona tutto

    /**
    * Parse gpsies tag
    */
    function bbcode_gpsies($stx, $in)
    {
        if (!$this->check_bbcode('gpsies', $in))
        {
            return $in;
        }

        return '[gpsies=' . $stx . ':' . $this->bbcode_uid . ']' . $in . '[/gpsies:' . $this->bbcode_uid . ']';
    } 
Felice monitoraggio
Menu Forum ha scritto:

Rispondi

Torna a “Mod BBCode”

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti