function execute($subpage) { global $wgOut, $wgRequest, $wgCookiePrefix; $params = $wgRequest->getValues(); $wgOut->addHTML('<form><select name="subaction"><option>Map sources</option> <option value="near" ' . ($params['subaction'] == 'near' ? ' selected' : '') . '>Nearby places</option> </select>'); # <option value="maparea">Not yet sure what this is</option></select>' ); if ($params['subaction'] == 'near') { $wgOut->addHTML('<select name="dist">'); if (isset($params['dist'])) { $wgOut->addHTML("<option value=\"{$params['dist']}\">{$params['dist']} km</option>"); } $distances = array(1000, 100, 10, 1); foreach ($distances as $d) { $wgOut->addHTML("<option value=\"{$d}\">{$d} km</option>"); } $wgOut->addHTML('</select>'); unset($params['dist']); } unset($params['subaction']); unset($params[$wgCookiePrefix . '_session']); foreach ($params as $key => $val) { $wgOut->addHTML("<input type=\"hidden\" name=\"{$key}\" value=\"{$val}\">\n"); } $wgOut->addHTML("<input type=\"submit\" /></form>\n"); if ($wgRequest->getVal('subaction') == 'near') { require_once 'neighbors.php'; $dist = $wgRequest->getVal('dist', 1000); $bsl = new neighbors($dist); $bsl->show(); } elseif ($wgRequest->getVal('subaction') == 'maparea') { require_once 'maparea.php'; $action = $wgRequest->getVal('action'); $bsl = new maparea(); $bsl->show($action); } else { $bsl = new map_sources(); $bsl->show(); } }
function get_raw_text($id) { # # *EK* hack: allow GIS content to be embedded # NOTE: this is a temporary hack for testing, needs # to b replaced with something more elegant # if (substr($id, 0, 4) == "gis:") { global $gisbasedir; if (isset($gisbasedir)) { $arg = substr($id, 4); $m = new maparea($arg); return $m->make_output(); } global $gisbaseurl; if (isset($gisbaseurl)) { $filename = $gisbaseurl . "?maparea=" . $arg . "&action=raw"; $handle = fopen($filename, "r"); $contents = ''; # *EK* -- couldn't get this to work... while (!feof($handle)) { $contents .= fread($handle, 256 * 1024); } fclose($handle); return $contents; } return ''; } if (MEDIAWIKI) { # Direct connection to mediawiki database via Article/Title class $contents = $this->read_from_article($id); } else { # Over-the-net connection via URL "&action=raw", much slower $contents = $this->read_from_url($id); } # Remove wiki links $contents = str_replace("[[", "", str_replace("]]", "", $contents)); # Return text return $contents; }