Kategorien
FreewarWiki:Bot/Skripts/LocateRegion.php: Unterschied zwischen den Versionen
< FreewarWiki:Bot | Skripts
Bwoebi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Scriptquelltextverwendung}} <pre> <?php $json = json_decode(file_get_contents("http://www.fwwiki.de/api.php?action=query&prop=info|revisions&titles=Koordinat…“) |
Bwoebi (Diskussion | Beiträge) (+ Hinweis auf PHP 5.3) |
||
Zeile 10: | Zeile 10: | ||
-->{{#vardefine:locateRegion_param_ns|{{{ns|}}}}}<!-- | -->{{#vardefine:locateRegion_param_ns|{{{ns|}}}}}<!-- | ||
Minimap-Setup — immer {{LocateRegion/Init|X1={obere linke Ecke}|X2={obere rechte Ecke}|Y1={untere linke Ecke}|Y2={untere rechte Ecke}}} | Minimap-Setup — immer {{LocateRegion/Init|X1={obere linke Ecke}|X2={obere rechte Ecke}|Y1={untere linke Ecke}|Y2={untere rechte Ecke}}} | ||
Bitte immer automatisch mittels [[FreewarWiki:Bot/Skripts/LocateRegion.php]] generieren lassen (erfordert mindenstens PHP 5.3) | |||
EOT; | EOT; | ||
Zeile 21: | Zeile 23: | ||
preg_match_all("#([0-9-]+?,[0-9-]+?)#U", $gebiete[$i], $match); | preg_match_all("#([0-9-]+?,[0-9-]+?)#U", $gebiete[$i], $match); | ||
$minY = $minX = PHP_INT_MAX; | $minY = $minX = PHP_INT_MAX; | ||
$maxY = $maxX = | $maxY = $maxX = ~PHP_INT_MAX; | ||
foreach ($match[1] as $koordpair) | foreach ($match[1] as $koordpair) | ||
{ | { |
Version vom 4. November 2012, 23:20 Uhr
<?php $json = json_decode(file_get_contents("http://www.fwwiki.de/api.php?action=query&prop=info|revisions&titles=Koordinaten%20(Liste)&rvprop=content&format=json"), true); $page = current($json['query']['pages']); print <<<'EOT' <!-- Pre - Setup -->{{#vardefine:locateRegion_param_1|{{{1}}}}}<!-- -->{{#vardefine:locateRegion_param_ns|{{{ns|}}}}}<!-- Minimap-Setup — immer {{LocateRegion/Init|X1={obere linke Ecke}|X2={obere rechte Ecke}|Y1={untere linke Ecke}|Y2={untere rechte Ecke}}} Bitte immer automatisch mittels [[FreewarWiki:Bot/Skripts/LocateRegion.php]] generieren lassen (erfordert mindenstens PHP 5.3) EOT; $gebiete = explode("\n", $page['revisions'][0]['*']); for ($i = 1; $i < count($gebiete); $i++) { preg_match("#\{\{Gebietslink\|(.+?)\}\}#", $gebiete[$i], $match); print "-->{{LocateRegion/Init|{$match[1]}"; preg_match_all("#([0-9-]+?,[0-9-]+?)#U", $gebiete[$i], $match); $minY = $minX = PHP_INT_MAX; $maxY = $maxX = ~PHP_INT_MAX; foreach ($match[1] as $koordpair) { $koord = explode(",", $koordpair); $y = $koord[1]; $x = $koord[0]; $minY = min($minY, $y); $minX = min($minX, $x); $maxY = max($maxY, $y); $maxX = max($maxX, $x); } print "|X1=$minX|X2=$maxX|Y1=$minY|Y2=$maxY"; print "}}"; if ($i <> count($gebiete) - 1) print "<!--\n"; } print '<noinclude>{{Dokumentation}}</noinclude>';