add('name', PLUGIN_EVENT_STATIC_OSM_NAME);
$propbag->add('description', PLUGIN_EVENT_STATIC_OSM_DESCRIPTION);
$propbag->add('copyright', 'GPL');
$propbag->add('configuration', ['compress_gpx']);
$propbag->add('event_hooks', [
'frontend_header' => true,
'backend_image_add' => true
]);
$propbag->add('author', PLUGIN_EVENT_OSM_AUTHOR);
$propbag->add('version', PLUGIN_EVENT_OSM_VERSION);
$propbag->add('requirements', [
'serendipity' => '2.3'
]);
$propbag->add('stackable', false);
$propbag->add('groups', ['FRONTEND_ENTRY_RELATED']);
$this->dependencies = [
'serendipity_event_geo_osm' => 'keep'
];
}
function generate_content(&$title)
{
$title = PLUGIN_EVENT_STATIC_OSM_NAME;
}
function event_hook($event, &$bag, &$eventData, $addData = null)
{
if ($event === 'frontend_header') {
echo ' '.PHP_EOL;
echo ' '.PHP_EOL;
echo ' '.PHP_EOL;
echo ' '.PHP_EOL;
} else if ($event === 'backend_image_add') {
if (preg_match('/\\.gpx$/i', mb_strtolower($eventData)) && $this->get_config('compress_gpx', true) === true) {
$fileName = $eventData;
$tmpFile = tmpfile();
fwrite($tmpFile, '');
$gpx = simplexml_load_file($fileName);
foreach (($gpx->trk ?? []) as $trk) {
fwrite($tmpFile, '');
foreach (($trk->trkseg ?? []) as $seg) {
fwrite($tmpFile, '');
foreach (($seg->trkpt ?? []) as $pt) {
fwrite($tmpFile, ''.$pt->ele.'');
}
fwrite($tmpFile, '');
}
fwrite($tmpFile, '');
}
fwrite($tmpFile, '');
$fileSize = ftell($tmpFile);
unset($gpx);
rewind($tmpFile);
$file = fopen($fileName, 'w');
stream_copy_to_stream($tmpFile, $file, $fileSize);
fclose($file);
fclose($tmpFile);
$fileId = $addData['image_id'];
serendipity_updateImageInDatabase(['size' => $fileSize], $fileId);
}
}
}
function introspect_config_item($name, &$propbag)
{
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;
}
return true;
}
}
?>