$key_sledrun = $wgContLang->getNSText(NS_CATEGORY) . ':Rodelbahn';
if (array_key_exists($key_sledrun, $categories)) {
// for sledrun titles use the image from the rodelbahnbox
- $dbr = wfGetDB(DB_SLAVE);
+ $dbr = wfGetDB(DB_REPLICA);
$res = $dbr->select('wrsledruncache', 'image', array('page_id' => $title->getArticleID()), __METHOD__);
$image = $dbr->fetchRow($res);
if ($image && !is_null($image['image'])) $file = wfFindFile($image['image']);
$key_inn = $wgContLang->getNSText(NS_CATEGORY) . ':Gasthaus';
if (array_key_exists($key_inn, $categories)) {
// for inn titles use the image from the gasthausbox
- $dbr = wfGetDB(DB_SLAVE);
+ $dbr = wfGetDB(DB_REPLICA);
$res = $dbr->select('wrinncache', 'image', array('page_id' => $title->getArticleID()), __METHOD__);
$image = $dbr->fetchRow($res);
if ($image && !is_null($image['image'])) $file = wfFindFile($image['image']);
// Returns an array of features
public static function sledruns_to_json_features() {
$json_features = array(); // result
- $dbr = wfGetDB(DB_SLAVE);
+ $dbr = wfGetDB(DB_REPLICA);
$res = $dbr->select(array('wrsledruncache', 'wrreportcache'), array('wrsledruncache.page_title', 'position_latitude', 'position_longitude', 'date_report', '`condition`'), array('show_in_overview', 'not under_construction'), __METHOD__, array(), array('wrreportcache' => array('left outer join', 'wrsledruncache.page_id=wrreportcache.page_id')));
while ($sledrun = $dbr->fetchRow($res)) {
$lat = $sledrun['position_latitude'];
$image_url = WrBaseMap::wikipage_to_image($title, 150);
if (!is_null($image_url)) $properties['thumb_url'] = $image_url;
$json_feature = array(
- 'type' => 'feature',
+ 'type' => 'Feature',
'geometry' => array(
'type' => 'Point',
'coordinates' => array($lon, $lat)
$coordinates = WrBaseMap::geo_to_coordinates($feature);
if (count($coordinates) != 1) throw new Exception(wfMessage('wrmap-error-coordinate-count', $feature->getName())->text());
$json_feature = array(
- 'type' => 'feature',
+ 'type' => 'Feature',
'geometry' => array(
'type' => 'Point',
'coordinates' => reset($coordinates)
$properties['strokeWidth'] = $stroke_width;
}
$json_feature = array(
- 'type' => 'feature',
+ 'type' => 'Feature',
'geometry' => array(
'type' => 'LineString',
'coordinates' => WrBaseMap::geo_to_coordinates($feature)
assert(in_array($tagname, array('wrmap', 'wrgmap')));
$parserOutput = $parser->getOutput();
- $parserOutput->addHeadItem('<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyABu68dyE3dB_l-UfB_WuyoPAsSTthI4gc&language=de"></script>', 'googlemaps');
+ // Polyfill für Internet Explorer
+ $parserOutput->addHeadItem('<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,fetch"></script>', 'polyfill_ie');
+ // OpenLayers 6.5.0 does not work with Internet Explorer, see https://github.com/openlayers/openlayers/issues/11870
+ $parserOutput->addHeadItem('<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.5.0/build/ol.js"></script>', 'openlayers_js'); // CDN link for 6.4.3 doesn't work anymore
+ $parserOutput->addHeadItem('<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.5.0/css/ol.css">', 'openlayers_css');
$parserOutput->addModules('ext.wrmap');
// append all sledruns as icon
// Create <div/> element where the map is placed in
global $wgExtensionAssetsPath;
$doc = new WrMapDOMDocument();
- $div = $doc->appendElement('div', array('class' => 'wrmap', 'style' => 'border-style:none;', 'data-ext-path' => "$wgExtensionAssetsPath/wrmap"));
+ $div_map = $doc->appendElement('div', array('class' => 'wrmap', 'style' => 'border-style:none;', 'data-ext-path' => "$wgExtensionAssetsPath/wrmap"));
// progress message
- $div->appendElement('div', array())->appendText(wfMessage('wrmap-loading')->text());
+ $div_map->appendElement('div', array())->appendText(wfMessage('wrmap-loading')->text());
// data
- $div->appendElement('div', array('style' => 'height: 0px; display:none;'))->appendText($json_string);
- return array($doc->saveHTML($div), 'markerType' => 'nowiki');
- }
-
-
- public static function onEnableMobileModules($out, $mode) {
- $out->addModules('ext.wrmap.mobile');
- return true;
+ $div_map->appendElement('div', array('style' => 'height: 0px; display:none;'))->appendText($json_string);
+ // popup
+ $div_popup = $doc->appendElement('div', array('id' => 'popup', 'class' => 'ol-popup'));
+ $div_popup->appendElement('a', array('id' => 'popup-closer', 'href' => '#', 'class' => 'ol-popup-closer'));
+ $div_popup->appendElement('div', array('id' => 'popup-content'));
+ return array($doc->saveHTML($div_map) . $doc->saveHTML($div_popup), 'markerType' => 'nowiki');
}
}