0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
14.1-0
/
standard
/
htdocs
/
lib
/
map
/
[
Home
]
File: usermap.php
<?php // (c) Copyright 2002-2015 by authors of the Tiki Wiki CMS Groupware Project // // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // $Id: usermap.php 53803 2015-02-06 00:42:50Z jyhem $ //this script may only be included - so its better to die if called directly. if (strpos($_SERVER["SCRIPT_NAME"], basename(__FILE__)) !== false) { header("location: index.php"); exit; } /** * MapsLib * * @uses TikiLib */ class MapsLib extends TikiLib { function makeusermap() { global $prefs, $tikidomain; $smarty = TikiLib::lib('smarty'); if (!isset($prefs['ogr2ogr']) || !is_executable($prefs['ogr2ogr'])) { return (tra("No valid ogr2ogr executable")); } // User preferences screen if ($prefs['feature_userPreferences'] != 'y') { return (tra('This feature is disabled').': '.$prefs['feature_userPreferences']); } $pres = 100000; // Precision for lat lon convertion $tdo = "user"; if ($tikidomain) $tdo = "$tikidomain.user"; $miffile = $prefs['map_path'] . "data/$tdo.mif"; $midfile = $prefs['map_path'] . "data/$tdo.mid"; $symbol = "Symbol (34,16711680,9)"; $fdmif = @fopen($miffile, "w"); if (!$fdmif) { return (tra("Could not create \$tdo.mif in data directory")); } $fdmid = @fopen($midfile, "w"); if (!$fdmid) { return (tra("Could not create \$tdo.mid in data directory")); } fwrite($fdmif, "Version 300\n"); fwrite($fdmif, "Charset \"WindowsLatin1\"\n"); fwrite($fdmif, "Delimiter \",\"\n"); fwrite($fdmif, "CoordSys Earth Projection 1, 104\n"); fwrite($fdmif, "Columns 7\n"); fwrite($fdmif, " user Char(20)\n"); fwrite($fdmif, " realName Char(100)\n"); fwrite($fdmif, " gender Char(20)\n"); fwrite($fdmif, " country Char(100)\n"); fwrite($fdmif, " avatar Char(250)\n"); fwrite($fdmif, " Lon float\n"); fwrite($fdmif, " Lat float\n"); fwrite($fdmif, "Data\n"); // Prepare the data $query = "SELECT login,avatarType,avatarLibName,prefName,value FROM `users_users`,`tiki_user_preferences` WHERE `user`=`login` "; $result = $this->query($query, array()); $res = $result->fetchRow(); while ($res) { $login = substr($res["login"], 0, 20); unset($lat); unset($lon); // get the avatar $image = $tikilib->get_user_avatar($res); $style = "style='float:left;margin-right:5px;'"; $gender = tra("unknown"); $country = tra("Other"); while ($login==substr($res["login"], 0, 20) && $res) { if (!isset($res["value"]) or is_null($res["value"])) { $value = ""; } else { $value = str_replace("\n", "", $res["value"]); $value = str_replace("\"", "", $value); } if ($res["prefName"] == "lat") { $lat = $value; } if ($res["prefName"] == "lon") { $lon = $value; } if ($res["prefName"] == "realName") { $realName = $value; } if ($res["prefName"] == "gender") { $gender=substr(tra($value), 0, 20); } if ($res["prefName"] == "country") { $country = substr(tra($value), 0, 100); } $res = $result->fetchRow(); } $realName = substr($realName, 0, 100); if (isset($lat) && isset($lon)) { if ($lat >= 0) { $lat = (($lat * $pres) % (90 * $pres)) / $pres; } else { $lat=-((-$lat * $pres) % (90 * $pres)) / $pres; } if ($lon >= 0) { $lon = (($lon * $pres) % (360 * $pres)) / $pres; if ($lon > 180) { $lon = $lon - 360; } } else { $lon=-((-$lon * $pres) % (360 * $pres)) / $pres; if ($lon < -180) { $lon = $lon + 360; } } if ($prefs['mapzone']==360 && $lon<0) { $lon = 360 + $lon; } fwrite($fdmid, "\"" . $login . "\","); fwrite($fdmid, "\"" . $realName . "\","); fwrite($fdmid, "\"" . $gender . "\","); fwrite($fdmid, "\"" . $country . "\","); fwrite($fdmid, "\"" . $image . "\","); fwrite($fdmid, $lon . "," . $lat . "\n"); fwrite($fdmif, "Point " . $lon . " " . $lat . "\n"); fwrite($fdmif, " " . $symbol . "\n"); } } fclose($fdmid); fclose($fdmif); if (is_file($prefs['map_path'] . "/data/$tdo.dbf")) { unlink($prefs['map_path'] . "/data/$tdo.dbf"); } if (is_file($prefs['map_path'] . "/data/$tdo.prj")) { unlink($prefs['map_path'] . "/data/$tdo.prj"); } if (is_file($prefs['map_path']."/data/$tdo.shp")) { unlink($prefs['map_path'] . "/data/$tdo.shp"); } if (is_file($prefs['map_path'] . "/data/$tdo.shx")) { unlink($prefs['map_path'] . "/data/$tdo.shx"); } $ret = exec($prefs['ogr2ogr'] . " -f \"ESRI Shapefile\" " . $prefs['map_path'] . "data/$tdo.shp " . $prefs['map_path'] . "data/$tdo.mif"); return (tra("User Map Generated in:") . $prefs['map_path'] . "data/" . $tdo . ".shp"); } function makeimagemap($tdo, $galleryId) { global $prefs, $tikidomain; $smarty = TikiLib::lib('smarty'); if (!isset($prefs['ogr2ogr']) || !is_executable($prefs['ogr2ogr'])) { return (tra("No valid ogr2ogr executable")); } // User preferences screen if ($prefs['feature_userPreferences'] != 'y') { return (tra('This feature is disabled') . ': ' . $prefs['feature_userPreferences']); } $miffile = $prefs['map_path'] . "data/$tdo.mif"; $midfile = $prefs['map_path'] . "data/$tdo.mid"; $symbol = "Symbol (34,16711680,9)"; $fdmif = @fopen($miffile, "w"); if (!$fdmif) { return (tra("Could not create \$tdo.mif in data directory")); } $fdmid = @fopen($midfile, "w"); if (!$fdmid) { return (tra("Could not create \$tdo.mid in data directory")); } fwrite($fdmif, "Version 300\n"); fwrite($fdmif, "Charset \"WindowsLatin1\"\n"); fwrite($fdmif, "Delimiter \",\"\n"); fwrite($fdmif, "CoordSys Earth Projection 1, 104\n"); fwrite($fdmif, "Columns 5\n"); fwrite($fdmif, " name Char(200)\n"); fwrite($fdmif, " description Char(250)\n"); fwrite($fdmif, " image Char(250)\n"); fwrite($fdmif, " Lon float\n"); fwrite($fdmif, " Lat float\n"); fwrite($fdmif, "Data\n"); $query = "select * from `tiki_images` Where `galleryID`=?"; $result = $this->query($query, array($galleryId)); $pres = 100000; // Precision for lat lon convertion while ($res = $result->fetchRow()) { $name = substr($res["name"], 0, 20); $description = substr($res["description"], 0, 250); $lat = $res["lat"]; $lon = $res["lon"]; $link = "<img src='show_image.php?id=" . $res["imageId"] . "' />"; if (isset($lat) && isset($lon)) { if ($lat >= 0) { $lat = (($lat * $pres) % (90 * $pres)) / $pres; } else { $lat=-((-$lat * $pres) % (90 * $pres)) / $pres; } if ($lon >= 0) { $lon = (($lon * $pres) % (360 * $pres)) / $pres; if ($lon > 180) { $lon = $lon-360; } } else { $lon=-((-$lon * $pres) % (360 * $pres)) / $pres; if ($lon < -180) { $lon = $lon + 360; } } if ($prefs['mapzone'] == 360 && $lon < 0) { $lon = 360+$lon; } fwrite($fdmid, "\"" . $name . "\","); fwrite($fdmid, "\"" . $description . "\","); fwrite($fdmid, "\"" . $link . "\","); fwrite($fdmid, $lon . "," . $lat . "\n"); fwrite($fdmif, "Point " . $lon . " " . $lat . "\n"); fwrite($fdmif, " " . $symbol . "\n"); } } fclose($fdmid); fclose($fdmif); if (is_file($prefs['map_path'] . "/data/$tdo.dbf")) { unlink($prefs['map_path'] . "/data/$tdo.dbf"); } if (is_file($prefs['map_path'] . "/data/$tdo.prj")) { unlink($prefs['map_path'] . "/data/$tdo.prj"); } if (is_file($prefs['map_path'] . "/data/$tdo.shp")) { unlink($prefs['map_path'] . "/data/$tdo.shp"); } if (is_file($prefs['map_path'] . "/data/$tdo.shx")) { unlink($prefs['map_path'] . "/data/$tdo.shx"); } $ret = exec($prefs['ogr2ogr'] . " -f \"ESRI Shapefile\" " . $prefs['map_path'] . "data/$tdo.shp " . $prefs['map_path'] . "data/$tdo.mif"); return (tra("Image Map Generated in:") . $prefs['map_path'] . "data/" . $tdo . ".shp"); } } global $mapslib; $mapslib = new MapsLib;