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; } } ?>