additional_plugins/serendipity_event_osm/serendipity_event_static_osm.php

86 lines
3.1 KiB
PHP
Raw Normal View History

2020-02-04 17:05:27 +01:00
<?php
if (IN_serendipity !== true) {
die ("Don't hack!");
}
@serendipity_plugin_api::load_language(dirname(__FILE__));
include dirname(__FILE__) . '/plugin_version.inc.php';
2020-02-04 17:05:27 +01:00
class serendipity_event_static_osm extends serendipity_event
{
function introspect(&$propbag)
{
$propbag->add('name', PLUGIN_EVENT_STATIC_OSM_NAME);
$propbag->add('description', PLUGIN_EVENT_STATIC_OSM_DESCRIPTION);
$propbag->add('copyright', 'GPL');
2020-09-16 11:23:34 +02:00
$propbag->add('configuration', array('compress_gpx'));
$propbag->add('event_hooks', array(
'frontend_header' => true,
'backend_image_add' => true
));
$propbag->add('author', PLUGIN_EVENT_OSM_AUTHOR);
$propbag->add('version', PLUGIN_EVENT_OSM_VERSION);
2020-02-04 17:05:27 +01:00
$propbag->add('requirements', array(
'serendipity' => '2.3'
));
2020-02-04 18:10:43 +01:00
$propbag->add('stackable', false);
2020-02-04 17:05:27 +01:00
$propbag->add('groups', array('FRONTEND_ENTRY_RELATED'));
$this->dependencies = array(
'serendipity_event_geo_osm' => 'keep'
);
2020-02-04 17:05:27 +01:00
}
function generate_content(&$title)
{
$title = PLUGIN_EVENT_STATIC_OSM_NAME;
}
function event_hook($event, &$bag, &$eventData, $addData = null)
{
global $serendipity;
2020-09-16 11:23:34 +02:00
if ($event === 'frontend_header') {
2020-03-11 03:56:02 +01:00
echo ' <link rel="stylesheet" href="'.$this->getFile('ressources/ol.css', 'serendipityHTTPPath').'" type="text/css" />'.PHP_EOL;
echo ' <link rel="stylesheet" href="'.$this->getFile('ressources/osm.css', 'serendipityHTTPPath').'" type="text/css" />'.PHP_EOL;
echo ' <script src="'.$this->getFile('ressources/ol.js', 'serendipityHTTPPath').'"></script>'.PHP_EOL;
echo ' <script src="'.$this->getFile('ressources/osm.js', 'serendipityHTTPPath').'"></script>'.PHP_EOL;
2020-09-16 11:23:34 +02:00
} else if ($event === 'backend_image_add' && $this->get_config('compress_gpx', true) === true) {
$fileName = $eventData;
$file = fopen($fileName.'.temp', 'wb');
fwrite($file, '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><gpx version="1.1" creator="surrim.org" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">');
$gpx = simplexml_load_file($fileName);
foreach ($gpx->trk as $trk) {
fwrite($file, '<trk>');
foreach($trk->trkseg as $seg) {
fwrite($file, '<trkseg>');
foreach($seg->trkpt as $pt) {
fwrite($file, '<trkpt lat="'.$pt['lat'].'" lon="'.$pt['lon'].'"><ele>'.$pt->ele.'</ele></trkpt>');
}
fwrite($file, '</trkseg>');
}
fwrite($file, '</trk>');
}
unset($gpx);
fwrite($file, '</gpx>');
fclose($file);
rename($fileName.'.temp', $fileName);
// TODO: serendipity_updateImageInDatabase(array('size' => @filesize($fileName)), $id);
2020-02-04 17:05:27 +01:00
}
}
function introspect_config_item($name, &$propbag)
{
2020-09-16 11:23:34 +02:00
switch($name) {
case 'compress_gpx':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_STATIC_OSM_COMPRESS_GPX);
$propbag->add('description', PLUGIN_EVENT_STATIC_OSM_COMPRESS_GPX_DESCRIPTION);
$propbag->add('default', true);
break;
default:
return false;
}
2020-02-04 17:05:27 +01:00
return true;
}
}
?>