*
*/
+use Friendica\App;
use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\DI;
-use Friendica\Core\Config\Util\ConfigFileLoader;
+use Friendica\Core\Config\Util\ConfigFileManager;
use Friendica\Util\Strings;
const OSM_TMS = 'https://www.openstreetmap.org';
Logger::notice("installed openstreetmap");
}
-function openstreetmap_load_config(\Friendica\App $a, ConfigFileLoader $loader)
+function openstreetmap_load_config(ConfigFileManager $loader)
{
- $a->getConfigCache()->load($loader->loadAddonConfig('openstreetmap'));
+ DI::app()->getConfigCache()->load($loader->loadAddonConfig('openstreetmap'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC);
}
-function openstreetmap_alterheader($a, &$navHtml)
+function openstreetmap_alterheader(&$navHtml)
{
- $addScriptTag = '<script type="text/javascript" src="' . DI::baseUrl()->get() . '/addon/openstreetmap/openstreetmap.js"></script>' . "\r\n";
+ $addScriptTag = '<script type="text/javascript" src="' . DI::baseUrl() . '/addon/openstreetmap/openstreetmap.js"></script>' . "\r\n";
DI::page()['htmlhead'] .= $addScriptTag;
}
* If an item has coordinates add link to a tile map server, e.g. openstreetmap.org.
* If an item has a location open it with the help of OSM's Nominatim reverse geocode search.
*
- * @param mixed $a
* @param array& $item
*/
-function openstreetmap_location($a, &$item)
+function openstreetmap_location(array &$item)
{
if (!(strlen($item['location']) || strlen($item['coord']))) {
return;
$nomserver = OSM_NOM;
}
- if ($item['coord'] != "") {
+ if ($item['coord'] != '') {
$coords = explode(' ', $item['coord']);
- if (count($coords) > 1) {
+ if ((count($coords) > 1) && is_numeric($coords[0]) && is_numeric($coords[1])) {
$lat = urlencode(round($coords[0], 5));
$lon = urlencode(round($coords[1], 5));
$target = $tmsserver;
$target = $nomserver.'?q='.urlencode($item['location']);
}
- if ($item['location'] != "") {
+ if ($item['location'] != '') {
$title = $item['location'];
} else {
$title = $item['coord'];
}
- $item['html'] = '<a target="map" title="'.$title.'" href= "'.$target.'">'.$title.'</a>';
+ $item['html'] = '<a target="map" title="' . $title . '" href= "' . $target . '">' . $title . '</a>';
}
-function openstreetmap_get_coordinates($a, &$b)
+function openstreetmap_get_coordinates(array &$b)
{
$nomserver = DI::config()->get('openstreetmap', 'nomserver', OSM_NOM);
$args = '?q=' . urlencode($b['location']) . '&format=json';
- $cachekey = "openstreetmap:" . $b['location'];
+ $cachekey = 'openstreetmap:' . $b['location'];
$j = DI::cache()->get($cachekey);
if (is_null($j)) {
}
}
-function openstreetmap_generate_named_map(&$a, &$b)
+function openstreetmap_generate_named_map(array &$b)
{
- openstreetmap_get_coordinates($a, $b);
+ openstreetmap_get_coordinates($b);
if (!empty($b['lat']) && !empty($b['lon'])) {
- openstreetmap_generate_map($a, $b);
+ openstreetmap_generate_map($b);
}
}
-function openstreetmap_generate_map(&$a, &$b)
+function openstreetmap_generate_map(array &$b)
{
$tmsserver = DI::config()->get('openstreetmap', 'tmsserver', OSM_TMS);
- if (strpos(DI::baseUrl()->get(true), 'https:') !== false) {
+ if (strpos(DI::baseUrl(), 'https:') !== false) {
$tmsserver = str_replace('http:','https:',$tmsserver);
}
Logger::debug('generate_map: ' . $b['html']);
}
-function openstreetmap_addon_admin(&$a, &$o)
+function openstreetmap_addon_admin(string &$o)
{
- $t = Renderer::getMarkupTemplate("admin.tpl", "addon/openstreetmap/");
+ $t = Renderer::getMarkupTemplate('admin.tpl', 'addon/openstreetmap/');
$tmsserver = DI::config()->get('openstreetmap', 'tmsserver', OSM_TMS);
$nomserver = DI::config()->get('openstreetmap', 'nomserver', OSM_NOM);
$zoom = DI::config()->get('openstreetmap', 'zoom', OSM_ZOOM);
]);
}
-function openstreetmap_addon_admin_post(&$a)
+function openstreetmap_addon_admin_post()
{
- $urltms = ($_POST['tmsserver'] ?? '') ?: OSM_TMS;
- $urlnom = ($_POST['nomserver'] ?? '') ?: OSM_NOM;
- $zoom = ($_POST['zoom'] ?? '') ?: OSM_ZOOM;
- $marker = ($_POST['marker'] ?? '') ?: OSM_MARKER;
-
- DI::config()->set('openstreetmap', 'tmsserver', $urltms);
- DI::config()->set('openstreetmap', 'nomserver', $urlnom);
- DI::config()->set('openstreetmap', 'zoom', $zoom);
- DI::config()->set('openstreetmap', 'marker', $marker);
+ DI::config()->set('openstreetmap', 'tmsserver', ($_POST['tmsserver'] ?? '') ?: OSM_TMS);
+ DI::config()->set('openstreetmap', 'nomserver', ($_POST['nomserver'] ?? '') ?: OSM_NOM);
+ DI::config()->set('openstreetmap', 'zoom', ($_POST['zoom'] ?? '') ?: OSM_ZOOM);
+ DI::config()->set('openstreetmap', 'marker', ($_POST['marker'] ?? '') ?: OSM_MARKER);
}