Merge branch 'master' of git.gnu.io:gnu/gnu-social into mmn_fixes

Conflicts:
	plugins/Minify/extlib/minify/README.txt
	plugins/Minify/extlib/minify/UPGRADING.txt
	plugins/Minify/extlib/minify/min/README.txt
	plugins/Minify/extlib/minify/min/builder/index.php
	plugins/Minify/extlib/minify/min/lib/JSMin.php
	plugins/Minify/extlib/minify/min/lib/Minify.php
	plugins/Minify/extlib/minify/min/lib/Minify/CSS.php
	plugins/Minify/extlib/minify/min/lib/Minify/CSS/Compressor.php
	plugins/Minify/extlib/minify/min/lib/Minify/Controller/Page.php
	plugins/Minify/extlib/minify/min/lib/Minify/Packer.php
	plugins/Recaptcha/RecaptchaPlugin.php
This commit is contained in:
Mikael Nordfeldth 2016-03-21 03:10:19 +01:00
commit 980085a8a3
249 changed files with 664 additions and 6359 deletions

View File

@ -394,8 +394,7 @@ resource: a unique identifier for the connection to the server. This
is actually used as a prefix for each XMPP component in the system.
password: password for the user account.
host: some XMPP domains are served by machines with a different
hostname. (For example, @gmail.com GTalk users connect to
talk.google.com). Set this to the correct hostname if that's the
hostname. Set this to the correct hostname if that's the
case with your server.
encryption: Whether to encrypt the connection between StatusNet and the
XMPP server. Defaults to true, but you can get
@ -781,5 +780,3 @@ oldschool
enabled: enable certain old-style user settings options, like stream-only mode,
conversation trees, and nicknames in streams. Off by default, and
may not be well supported in future versions.

View File

@ -42,11 +42,10 @@ EndShowUAStyles: End showing custom User-Agent links; good place to add user-age
StartShowScripts: Showing JavaScript links
- $action: the current action
EndShowScripts: End showing JavaScript links; good place to add custom
links like Google Analytics
EndShowScripts: End showing JavaScript links; good place to add custom links
- $action: the current action
StartShowJQueryScripts: Showing JQuery script links (use this to link to e.g. Google mirrors)
StartShowJQueryScripts: Showing JQuery script links
- $action: the current action
EndShowJQueryScripts: End showing JQuery script links

View File

@ -10,13 +10,13 @@ and has a choice of accepting or rejecting the events.
In the simplest case, you can add a function to config.php and use the
Event::addHandler() function to hook an event:
function AddGoogleLink($action)
function AddMyWebsiteLink($action)
{
$action->menuItem('http://www.google.com/', _('Google'), _('Search engine'));
$action->menuItem('http://mywebsite.net/', _('My web site'), _('Example web link'));
return true;
}
Event::addHandler('EndPrimaryNav', 'AddGoogleLink');
Event::addHandler('EndPrimaryNav', 'AddMyWebsiteLink');
This adds a menu item to the end of the main navigation menu. You can
see the list of existing events, and parameters that handlers must

View File

@ -32,8 +32,8 @@ polls, announce events, or other social activities
(and you can add more!). Users can choose which
people to "follow" and receive only their friends'
or colleagues' status messages. It provides a
similar service to sites like Twitter, Google+ or
Facebook, but is much more awesome.
similar service to proprietary social network sites,
but is much more awesome.
With a little work, status messages can be sent to
mobile phones, instant messenger programs (using
@ -248,4 +248,3 @@ built the fediverse network to what it is today.
### License help from
* Bradley M. Kuhn

View File

@ -92,7 +92,7 @@
<truncated>false</truncated>
<created_at>Wed Mar 31 01:33:02 +0000 2010</created_at>
<in_reply_to_status_id/>
<source>&lt;a href="http://code.google.com/p/microblog-purple/"&gt;mbpidgin&lt;/a&gt;</source>
<source>&lt;a href="http://somesourcecode.net/microblog/"&gt;mbpidgin&lt;/a&gt;</source>
<id>26674201</id>
<in_reply_to_user_id/>
<in_reply_to_screen_name/>

View File

@ -27,12 +27,12 @@ VALUES
('IdentiCurse','IdentiCurse','http://identicurse.net/', now()),
('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()),
('identitwitch','IdentiTwitch','http://richfish.org/identitwitch/', now()),
('Jiminy','Jiminy','http://code.google.com/p/jiminy/', now()),
('Jiminy','Jiminy','', now()),
('LaTwit','LaTwit','http://latwit.mac65.com/', now()),
('LiveTweeter', 'LiveTweeter', 'http://addons.songbirdnest.com/addon/1204', now()),
('livetweeter', 'livetweeter', 'http://addons.songbirdnest.com/addon/1204', now()),
('maisha', 'Maisha', 'http://maisha.grango.org/', now()),
('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()),
('mbpidgin','mbpidgin','', now()),
('Mobidentica', 'Mobidentica', 'http://www.substanceofcode.com/software/mobidentica/', now()),
('moconica','Moconica','http://moconica.com/', now()),
('mustard', 'mustard', 'http://mustard.macno.org', now()),
@ -41,10 +41,10 @@ VALUES
('Pikchur','Pikchur','http://www.pikchur.com/', now()),
('Ping.fm','Ping.fm','http://ping.fm/', now()),
('pingvine','PingVine','http://pingvine.com/', now()),
('pocketwit','PockeTwit','http://code.google.com/p/pocketwit/', now()),
('pocketwit','PockeTwit','', now()),
('posty','Posty','http://spreadingfunkyness.com/posty/', now()),
('qtwitter','qTwitter','http://qtwitter.ayoy.net/', now()),
('qwit', 'Qwit', 'http://code.google.com/p/qwit/', now()),
('qwit', 'Qwit', '', now()),
('royalewithcheese','Royale With Cheese','http://p.hellyeah.org/', now()),
('rssdent','rssdent','http://github.com/zcopley/rssdent/tree/master', now()),
('rygh.no','rygh.no','http://rygh.no/', now()),

View File

@ -130,8 +130,6 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
// <http://ja.wikipedia.org/wiki/MS_明朝>. See
// the CSS3 spec for more examples:
// <http://www.w3.org/TR/2011/WD-css3-fonts-20110324/localizedfamilynames.png>
// You can see live samples of these on the Internet:
// <http://www.google.co.jp/search?q=font-family++明朝|ゴシック>
// However, most of these fonts have ASCII equivalents:
// for example, 'MS Mincho', and it's considered
// professional to use ASCII font names instead of

View File

@ -9,7 +9,7 @@ DEFAULT: NULL
absolute URIs into another URI, usually a URI redirection service.
This directive accepts a URI, formatted with a <code>%s</code> where
the url-encoded original URI should be inserted (sample:
<code>http://www.google.com/url?q=%s</code>).
<code>https://searx.laquadrature.net/?q=%s</code>).
</p>
<p>
Uses for this directive:

View File

@ -27,7 +27,7 @@ class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector
if (strpos($token->data, '://') === false) {
// our really quick heuristic failed, abort
// this may not work so well if we want to match things like
// "google.com", but then again, most people don't
// "domainname.com", but then again, most people don't
return;
}

View File

@ -770,7 +770,6 @@ class OAuthUtil {
// parameters, has to do some unescaping
// Can filter out any non-oauth parameters if needed (default behaviour)
// May 28th, 2010 - method updated to tjerk.meesters for a speed improvement.
// see http://code.google.com/p/oauth/issues/detail?id=163
public static function split_header($header, $only_allow_oauth_parameters = true) {
$params = array();
if (preg_match_all('/('.($only_allow_oauth_parameters ? 'oauth_' : '').'[a-z_-]*)=(:?"([^"]*)"|([^,]*))/', $header, $matches)) {

View File

@ -84,7 +84,7 @@ and the URLs are listed here for your convenience.
- PEAR Net_Socket, if you use the SMTP factory for notifications
http://pear.php.net/package/Net_Socket
- XMPPHP, the follow-up to Class.Jabber.php. Probably the best XMPP
library available for PHP. http://xmpphp.googlecode.com/. Note that
library available for PHP. https://github.com/heshanlk/XMPPHP. Note that
as of this writing the version of this library that is available in
the extlib directory is *significantly different* from the upstream
version (patches have been submitted). Upgrading to the upstream

View File

@ -28,7 +28,7 @@ Why?
I got used to having gettext work even without gettext
library. It's there in my favourite language Python, so I was
surprised that I couldn't find it in PHP. I even Googled for it,
surprised that I couldn't find it in PHP. I even searched for it,
but to no avail.
So, I said, what the heck, I'm going to write it for this

View File

@ -14626,7 +14626,6 @@ color.fn = jQuery.extend( color.prototype, {
color.fn.parse.prototype = color.fn;
// hsla conversions adapted from:
// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
function hue2rgb( p, q, h ) {
h = ( h + 1 ) % 1;

1
js/extlib/jquery.js vendored
View File

@ -9083,7 +9083,6 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
// Support: Safari<7+, Chrome<37+
// Add the top/left cssHooks using jQuery.fn.position
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
// getComputedStyle returns percent when specified for top/left/bottom/right;
// rather than make the css module depend on the offset module, just check for it here
jQuery.each( [ "top", "left" ], function( i, prop ) {

View File

@ -1,217 +0,0 @@
// A shim to implement the W3C Geolocation API Specification using Gears or the Ajax API
if (typeof navigator.geolocation == "undefined" || navigator.geolocation.shim ) { (function(){
// -- BEGIN GEARS_INIT
(function() {
// We are already defined. Hooray!
if (window.google && google.gears) {
return;
}
var factory = null;
// Firefox
if (typeof GearsFactory != 'undefined') {
factory = new GearsFactory();
} else {
// IE
try {
factory = new ActiveXObject('Gears.Factory');
// privateSetGlobalObject is only required and supported on WinCE.
if (factory.getBuildInfo().indexOf('ie_mobile') != -1) {
factory.privateSetGlobalObject(this);
}
} catch (e) {
// Safari
if ((typeof navigator.mimeTypes != 'undefined') && navigator.mimeTypes["application/x-googlegears"]) {
factory = document.createElement("object");
factory.style.display = "none";
factory.width = 0;
factory.height = 0;
factory.type = "application/x-googlegears";
document.documentElement.appendChild(factory);
}
}
}
// *Do not* define any objects if Gears is not installed. This mimics the
// behavior of Gears defining the objects in the future.
if (!factory) {
return;
}
// Now set up the objects, being careful not to overwrite anything.
//
// Note: In Internet Explorer for Windows Mobile, you can't add properties to
// the window object. However, global objects are automatically added as
// properties of the window object in all browsers.
if (!window.google) {
google = {};
}
if (!google.gears) {
google.gears = {factory: factory};
}
})();
// -- END GEARS_INIT
var GearsGeoLocation = (function() {
// -- PRIVATE
var geo = google.gears.factory.create('beta.geolocation');
var wrapSuccess = function(callback, self) { // wrap it for lastPosition love
return function(position) {
callback(position);
self.lastPosition = position;
};
};
// -- PUBLIC
return {
shim: true,
type: "Gears",
lastPosition: null,
getCurrentPosition: function(successCallback, errorCallback, options) {
var self = this;
var sc = wrapSuccess(successCallback, self);
geo.getCurrentPosition(sc, errorCallback, options);
},
watchPosition: function(successCallback, errorCallback, options) {
geo.watchPosition(successCallback, errorCallback, options);
},
clearWatch: function(watchId) {
geo.clearWatch(watchId);
},
getPermission: function(siteName, imageUrl, extraMessage) {
geo.getPermission(siteName, imageUrl, extraMessage);
}
};
});
var AjaxGeoLocation = (function() {
// -- PRIVATE
var loading = false;
var loadGoogleLoader = function() {
if (!hasGoogleLoader() && !loading) {
loading = true;
var s = document.createElement('script');
s.src = (document.location.protocol == "https:"?"https://":"http://") + 'www.google.com/jsapi?callback=_google_loader_apiLoaded';
s.type = "text/javascript";
document.getElementsByTagName('body')[0].appendChild(s);
}
};
var queue = [];
var addLocationQueue = function(callback) {
queue.push(callback);
};
var runLocationQueue = function() {
if (hasGoogleLoader()) {
while (queue.length > 0) {
var call = queue.pop();
call();
}
}
};
window['_google_loader_apiLoaded'] = function() {
runLocationQueue();
};
var hasGoogleLoader = function() {
return (window['google'] && google['loader']);
};
var checkGoogleLoader = function(callback) {
if (hasGoogleLoader()) { return true; }
addLocationQueue(callback);
loadGoogleLoader();
return false;
};
loadGoogleLoader(); // start to load as soon as possible just in case
// -- PUBLIC
return {
shim: true,
type: "ClientLocation",
lastPosition: null,
getCurrentPosition: function(successCallback, errorCallback, options) {
var self = this;
if (!checkGoogleLoader(function() {
self.getCurrentPosition(successCallback, errorCallback, options);
})) { return; }
if (google.loader.ClientLocation) {
var cl = google.loader.ClientLocation;
var position = {
coords: {
latitude: cl.latitude,
longitude: cl.longitude,
altitude: null,
accuracy: 43000, // same as Gears accuracy over wifi?
altitudeAccuracy: null,
heading: null,
speed: null
},
// extra info that is outside of the bounds of the core API
address: {
city: cl.address.city,
country: cl.address.country,
country_code: cl.address.country_code,
region: cl.address.region
},
timestamp: new Date()
};
successCallback(position);
this.lastPosition = position;
} else if (errorCallback === "function") {
errorCallback({ code: 3, message: "Using the Google ClientLocation API and it is not able to calculate a location."});
}
},
watchPosition: function(successCallback, errorCallback, options) {
this.getCurrentPosition(successCallback, errorCallback, options);
var self = this;
var watchId = setInterval(function() {
self.getCurrentPosition(successCallback, errorCallback, options);
}, 10000);
return watchId;
},
clearWatch: function(watchId) {
clearInterval(watchId);
},
getPermission: function(siteName, imageUrl, extraMessage) {
// for now just say yes :)
return true;
}
};
});
// If you have Gears installed use that, else use Ajax ClientLocation
navigator.geolocation = (window.google && google.gears) ? GearsGeoLocation() : AjaxGeoLocation();
})();
}

View File

@ -394,8 +394,7 @@ class Action extends HTMLOutputter // lawsuit
{
$theme = new Theme($mainTheme);
// Some themes may have external stylesheets, such as using the
// Google Font APIs to load webfonts.
// Some themes may have external stylesheets
foreach ($theme->getExternals() as $url) {
$this->cssLink($url, $mainTheme, $media);
}

View File

@ -137,7 +137,7 @@ class SearchAction extends Action
* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)
* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)
* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)
* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)
* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)
"), $qe, $qe, $qe, $qe);
$message .= "\n";

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10620,7 +10620,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10620,7 +10620,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10558,7 +10558,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10528,7 +10528,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10497,7 +10497,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10497,9 +10497,9 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "You can also try your search on other engines:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "You can also try your search on other engines:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
#. TRANS: Menu item in search group navigation panel.
#: lib/searchgroupnav.php:74

View File

@ -10497,7 +10497,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10497,9 +10497,9 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Puedes intentar tu búsqueda con otros buscadores:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Puedes intentar tu búsqueda con otros buscadores:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
#. TRANS: Menu item in search group navigation panel.
#: lib/searchgroupnav.php:74

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10499,7 +10499,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10558,7 +10558,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10466,7 +10466,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10498,7 +10498,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10497,9 +10497,9 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Puoi provare a fare una ricerca su altri motori di ricerca:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Puoi provare a fare una ricerca su altri motori di ricerca:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
#. TRANS: Menu item in search group navigation panel.
#: lib/searchgroupnav.php:74

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10527,7 +10527,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10527,7 +10527,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10527,7 +10527,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10497,7 +10497,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10528,7 +10528,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10499,9 +10499,9 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Você pode também tentar pesquisar em outros mecanismos:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Você pode também tentar pesquisar em outros mecanismos:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
#. TRANS: Menu item in search group navigation panel.
#: lib/searchgroupnav.php:74

View File

@ -10527,7 +10527,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10559,9 +10559,9 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Вы также можете попытаться поискать при помощи других поисковиков:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr "Вы также можете попытаться поискать при помощи других поисковиков:\n\n* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
#. TRANS: Menu item in search group navigation panel.
#: lib/searchgroupnav.php:74

View File

@ -10558,7 +10558,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10527,7 +10527,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -9792,7 +9792,7 @@ msgid ""
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+"
"%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+"
"%s)\n"
msgstr ""

View File

@ -10497,7 +10497,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10496,7 +10496,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10498,7 +10498,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10527,7 +10527,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10497,7 +10497,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10465,7 +10465,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -10467,7 +10467,7 @@ msgid ""
"\n"
"* [DuckDuckGo](https://duckduckgo.com/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Ixquick](https://ixquick.com/do/search?query=site%%3A%%%%site.server%%%%+%s)\n"
"* [Google](https://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Searx](https://searx.laquadrature.net/?q=site%%3A%%%%site.server%%%%+%s)\n"
"* [Yahoo!](https://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)\n"
msgstr ""

View File

@ -111,7 +111,6 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
*/
protected function query($url)
{
// http://code.google.com/p/bitly-api/wiki/ApiDocumentation#/shorten
$params = http_build_query(array(
'login' => $this->getLogin(),
'apiKey' => $this->getApiKey()), '', '&');

View File

@ -306,7 +306,6 @@ class ExtendedProfileWidget extends Form
'facebook' => 'Facebook',
'linkedin' => 'LinkedIn',
'flickr' => 'Flickr',
'google' => 'Google Profile',
'other' => 'Other',
'twitter' => 'Twitter'
),

View File

@ -29,4 +29,4 @@ msgstr "%1$s erabiltzailea ezin izan da %2$s taldera gehitu."
msgid ""
"Allows forced group memberships and forces all notices to appear in groups "
"that users were forced in."
msgstr "<a href=\"http://www.google.com/analytics/\">Google Analytics</a> erabiltzen du web gunera atzipenak jarraitu ahal izateko."
msgstr ""

View File

@ -37,7 +37,6 @@ if (!defined('GNUSOCIAL')) { exit(1); }
class Discovery
{
const LRDD_REL = 'lrdd';
const UPDATESFROM = 'http://schemas.google.com/g/2010#updates-from';
const HCARD = 'http://microformats.org/profile/hcard';
const MF2_HCARD = 'http://microformats.org/profile/h-card'; // microformats2 h-card
@ -199,5 +198,3 @@ class Discovery
return $template;
}
}

View File

@ -49,9 +49,9 @@ class MapstractionPlugin extends Plugin
const VERSION = GNUSOCIAL_VERSION;
/** provider name, one of:
'cloudmade', 'google', 'microsoft', 'openlayers', 'yahoo' */
'cloudmade', 'microsoft', 'openlayers', 'yahoo' */
public $provider = 'openlayers';
/** provider API key (or 'appid'), if required ('google' and 'yahoo' only) */
/** provider API key (or 'appid'), if required ('yahoo' only) */
public $apikey = null;
/**
@ -97,10 +97,6 @@ class MapstractionPlugin extends Plugin
case 'cloudmade':
$action->script('http://tile.cloudmade.com/wml/0.2/web-maps-lite.js');
break;
case 'google':
$action->script(sprintf('http://maps.google.com/maps?file=api&v=2&sensor=false&key=%s',
urlencode($this->apikey)));
break;
case 'microsoft':
$action->script((GNUsocial::isHTTPS()?'https':'http') + '://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6');
break;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +0,0 @@
.olLayerGoogleCopyright {
right: 3px;
bottom: 2px;
left: auto;
}
.olLayerGooglePoweredBy {
left: 2px;
bottom: 2px;
}

View File

@ -13,14 +13,6 @@ div.olLayerDiv {
-moz-user-select: none;
}
.olLayerGoogleCopyright {
left: 2px;
bottom: 2px;
}
.olLayerGooglePoweredBy {
left: 2px;
bottom: 15px;
}
.olControlAttribution {
font-size: smaller;
right: 3px;

View File

@ -240,7 +240,7 @@ LatLonPoint: {
// TODO: Add provider code
},
fromProprietary: function(googlePoint) {
fromProprietary: function(point) {
// TODO: Add provider code
}

View File

@ -16,7 +16,7 @@ mxn.register('cloudmade', {
me.click.fire({'location': new mxn.LatLonPoint(location.lat(), location.lng())});
}
// If the user puts their own Google markers directly on the map
// If the user puts their own markers directly on the map
// then there is no location and this event should not fire.
if ( location ) {
me.clickHandler(location.lat(),location.lng(),location,me);

View File

@ -20,7 +20,7 @@ var init = function() {
* @name mxn.Mapstraction
* @constructor
* @param {String} element The HTML element to replace with a map
* @param {String} api The API to use, one of 'google', 'googlev3', 'yahoo', 'microsoft', 'openstreetmap', 'multimap', 'map24', 'openlayers', 'mapquest'. If omitted, first loaded provider implementation is used.
* @param {String} api The API to use, one of 'yahoo', 'microsoft', 'openstreetmap', 'multimap', 'map24', 'openlayers', 'mapquest'. If omitted, first loaded provider implementation is used.
* @param {Bool} debug optional parameter to turn on debug support - this uses alert panels for unsupported actions
* @exports Mapstraction as mxn.Mapstraction
*/
@ -583,9 +583,6 @@ Mapstraction.prototype.declutterMarkers = function(opts) {
// case 'yahoo':
//
// break;
// case 'google':
//
// break;
// case 'openstreetmap':
//
// break;

View File

@ -103,9 +103,6 @@ mxn.register('geocommons', {
case mxn.Mapstraction.SATELLITE:
map.setMapProvider("BlueMarble");
break;
case mxn.Mapstraction.HYBRID:
map.setMapProvider("Google Hybrid");
break;
default:
map.setMapProvider(type);
}
@ -184,7 +181,7 @@ mxn.register('geocommons', {
// TODO: Add provider code
},
fromProprietary: function(googlePoint) {
fromProprietary: function(point) {
// TODO: Add provider code
}

View File

@ -1,519 +0,0 @@
mxn.register('google', {
Mapstraction: {
init: function(element,api) {
var me = this;
if (GMap2) {
if (GBrowserIsCompatible()) {
this.maps[api] = new GMap2(element);
GEvent.addListener(this.maps[api], 'click', function(marker,location) {
if ( marker && marker.mapstraction_marker ) {
marker.mapstraction_marker.click.fire();
}
else if ( location ) {
me.click.fire({'location': new mxn.LatLonPoint(location.y, location.x)});
}
// If the user puts their own Google markers directly on the map
// then there is no location and this event should not fire.
if ( location ) {
me.clickHandler(location.y,location.x,location,me);
}
});
GEvent.addListener(this.maps[api], 'moveend', function() {
me.moveendHandler(me);
me.endPan.fire();
});
GEvent.addListener(this.maps[api], 'zoomend', function() {
me.changeZoom.fire();
});
this.loaded[api] = true;
me.load.fire();
}
else {
alert('browser not compatible with Google Maps');
}
}
else {
alert(api + ' map script not imported');
}
},
applyOptions: function(){
var map = this.maps[this.api];
if(this.options.enableScrollWheelZoom){
map.enableContinuousZoom();
map.enableScrollWheelZoom();
}
if (this.options.enableDragging) {
map.enableDragging();
} else {
map.disableDragging();
}
},
resizeTo: function(width, height){
this.currentElement.style.width = width;
this.currentElement.style.height = height;
this.maps[this.api].checkResize();
},
addControls: function( args ) {
var map = this.maps[this.api];
// remove old controls
if (this.controls) {
while ((ctl = this.controls.pop())) {
// Google specific method
map.removeControl(ctl);
}
} else {
this.controls = [];
}
c = this.controls;
// Google has a combined zoom and pan control.
if (args.zoom || args.pan) {
if (args.zoom == 'large'){
this.addLargeControls();
} else {
this.addSmallControls();
}
}
if (args.scale) {
this.controls.unshift(new GScaleControl());
map.addControl(this.controls[0]);
this.addControlsArgs.scale = true;
}
if (args.overview) {
c.unshift(new GOverviewMapControl());
map.addControl(c[0]);
this.addControlsArgs.overview = true;
}
if (args.map_type) {
this.addMapTypeControls();
}
},
addSmallControls: function() {
var map = this.maps[this.api];
this.controls.unshift(new GSmallMapControl());
map.addControl(this.controls[0]);
this.addControlsArgs.zoom = 'small';
this.addControlsArgs.pan = true;
},
addLargeControls: function() {
var map = this.maps[this.api];
this.controls.unshift(new GLargeMapControl());
map.addControl(this.controls[0]);
this.addControlsArgs.zoom = 'large';
this.addControlsArgs.pan = true;
},
addMapTypeControls: function() {
var map = this.maps[this.api];
this.controls.unshift(new GMapTypeControl());
map.addControl(this.controls[0]);
this.addControlsArgs.map_type = true;
},
setCenterAndZoom: function(point, zoom) {
var map = this.maps[this.api];
var pt = point.toProprietary(this.api);
map.setCenter(pt, zoom);
},
addMarker: function(marker, old) {
var map = this.maps[this.api];
var gpin = marker.toProprietary(this.api);
map.addOverlay(gpin);
GEvent.addListener(gpin, 'infowindowopen', function() {
marker.openInfoBubble.fire();
});
GEvent.addListener(gpin, 'infowindowclose', function() {
marker.closeInfoBubble.fire();
});
return gpin;
},
removeMarker: function(marker) {
var map = this.maps[this.api];
map.removeOverlay(marker.proprietary_marker);
},
removeAllMarkers: function() {
var map = this.maps[this.api];
// FIXME: got a feeling this doesn't only delete markers
map.clearOverlays();
},
declutterMarkers: function(opts) {
throw 'Not implemented';
},
addPolyline: function(polyline, old) {
var map = this.maps[this.api];
gpolyline = polyline.toProprietary(this.api);
map.addOverlay(gpolyline);
return gpolyline;
},
removePolyline: function(polyline) {
var map = this.maps[this.api];
map.removeOverlay(polyline.proprietary_polyline);
},
getCenter: function() {
var map = this.maps[this.api];
var pt = map.getCenter();
var point = new mxn.LatLonPoint(pt.lat(),pt.lng());
return point;
},
setCenter: function(point, options) {
var map = this.maps[this.api];
var pt = point.toProprietary(this.api);
if(options && options.pan) {
map.panTo(pt);
}
else {
map.setCenter(pt);
}
},
setZoom: function(zoom) {
var map = this.maps[this.api];
map.setZoom(zoom);
},
getZoom: function() {
var map = this.maps[this.api];
return map.getZoom();
},
getZoomLevelForBoundingBox: function( bbox ) {
var map = this.maps[this.api];
// NE and SW points from the bounding box.
var ne = bbox.getNorthEast();
var sw = bbox.getSouthWest();
var gbox = new GLatLngBounds( sw.toProprietary(this.api), ne.toProprietary(this.api) );
var zoom = map.getBoundsZoomLevel( gbox );
return zoom;
},
setMapType: function(type) {
var map = this.maps[this.api];
switch(type) {
case mxn.Mapstraction.ROAD:
map.setMapType(G_NORMAL_MAP);
break;
case mxn.Mapstraction.SATELLITE:
map.setMapType(G_SATELLITE_MAP);
break;
case mxn.Mapstraction.HYBRID:
map.setMapType(G_HYBRID_MAP);
break;
default:
map.setMapType(type || G_NORMAL_MAP);
}
},
getMapType: function() {
var map = this.maps[this.api];
var type = map.getCurrentMapType();
switch(type) {
case G_NORMAL_MAP:
return mxn.Mapstraction.ROAD;
case G_SATELLITE_MAP:
return mxn.Mapstraction.SATELLITE;
case G_HYBRID_MAP:
return mxn.Mapstraction.HYBRID;
default:
return null;
}
},
getBounds: function () {
var map = this.maps[this.api];
var ne, sw, nw, se;
var gbox = map.getBounds();
sw = gbox.getSouthWest();
ne = gbox.getNorthEast();
return new mxn.BoundingBox(sw.lat(), sw.lng(), ne.lat(), ne.lng());
},
setBounds: function(bounds){
var map = this.maps[this.api];
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var gbounds = new GLatLngBounds(new GLatLng(sw.lat,sw.lon),new GLatLng(ne.lat,ne.lon));
map.setCenter(gbounds.getCenter(), map.getBoundsZoomLevel(gbounds));
},
addImageOverlay: function(id, src, opacity, west, south, east, north, oContext) {
var map = this.maps[this.api];
map.getPane(G_MAP_MAP_PANE).appendChild(oContext.imgElm);
this.setImageOpacity(id, opacity);
this.setImagePosition(id);
GEvent.bind(map, "zoomend", this, function() {
this.setImagePosition(id);
});
GEvent.bind(map, "moveend", this, function() {
this.setImagePosition(id);
});
},
setImagePosition: function(id, oContext) {
var map = this.maps[this.api];
var topLeftPoint; var bottomRightPoint;
topLeftPoint = map.fromLatLngToDivPixel( new GLatLng(oContext.latLng.top, oContext.latLng.left) );
bottomRightPoint = map.fromLatLngToDivPixel( new GLatLng(oContext.latLng.bottom, oContext.latLng.right) );
oContext.pixels.top = topLeftPoint.y;
oContext.pixels.left = topLeftPoint.x;
oContext.pixels.bottom = bottomRightPoint.y;
oContext.pixels.right = bottomRightPoint.x;
},
addOverlay: function(url, autoCenterAndZoom) {
var map = this.maps[this.api];
var geoXML = new GGeoXml(url);
map.addOverlay(geoXML, function() {
if(autoCenterAndZoom) {
geoXML.gotoDefaultViewport(map);
}
});
},
addTileLayer: function(tile_url, opacity, copyright_text, min_zoom, max_zoom, map_type) {
var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0, "copyleft");
var copyrightCollection = new GCopyrightCollection(copyright_text);
copyrightCollection.addCopyright(copyright);
var tilelayers = [];
tilelayers[0] = new GTileLayer(copyrightCollection, min_zoom, max_zoom);
tilelayers[0].isPng = function() {
return true;
};
tilelayers[0].getOpacity = function() {
return opacity;
};
tilelayers[0].getTileUrl = function (a, b) {
url = tile_url;
url = url.replace(/\{Z\}/g,b);
url = url.replace(/\{X\}/g,a.x);
url = url.replace(/\{Y\}/g,a.y);
return url;
};
if(map_type) {
var tileLayerOverlay = new GMapType(tilelayers, new GMercatorProjection(19), copyright_text, {
errorMessage:"More "+copyright_text+" tiles coming soon"
});
this.maps[this.api].addMapType(tileLayerOverlay);
} else {
tileLayerOverlay = new GTileLayerOverlay(tilelayers[0]);
this.maps[this.api].addOverlay(tileLayerOverlay);
}
this.tileLayers.push( [tile_url, tileLayerOverlay, true] );
return tileLayerOverlay;
},
toggleTileLayer: function(tile_url) {
for (var f=0; f<this.tileLayers.length; f++) {
if(this.tileLayers[f][0] == tile_url) {
if(this.tileLayers[f][2]) {
this.maps[this.api].removeOverlay(this.tileLayers[f][1]);
this.tileLayers[f][2] = false;
}
else {
this.maps[this.api].addOverlay(this.tileLayers[f][1]);
this.tileLayers[f][2] = true;
}
}
}
},
getPixelRatio: function() {
var map = this.maps[this.api];
var projection = G_NORMAL_MAP.getProjection();
var centerPoint = map.getCenter();
var zoom = map.getZoom();
var centerPixel = projection.fromLatLngToPixel(centerPoint, zoom);
// distance is the distance in metres for 5 pixels (3-4-5 triangle)
var distancePoint = projection.fromPixelToLatLng(new GPoint(centerPixel.x + 3, centerPixel.y + 4), zoom);
//*1000(km to m), /5 (pythag), *2 (radius to diameter)
return 10000/distancePoint.distanceFrom(centerPoint);
},
mousePosition: function(element) {
var locDisp = document.getElementById(element);
if (locDisp !== null) {
var map = this.maps[this.api];
GEvent.addListener(map, 'mousemove', function (point) {
var loc = point.lat().toFixed(4) + ' / ' + point.lng().toFixed(4);
locDisp.innerHTML = loc;
});
locDisp.innerHTML = '0.0000 / 0.0000';
}
}
},
LatLonPoint: {
toProprietary: function() {
return new GLatLng(this.lat,this.lon);
},
fromProprietary: function(googlePoint) {
this.lat = googlePoint.lat();
this.lon = googlePoint.lng();
}
},
Marker: {
toProprietary: function() {
var infoBubble, event_action, infoDiv, div;
var options = {};
if(this.labelText){
options.title = this.labelText;
}
if(this.iconUrl){
var icon = new GIcon(G_DEFAULT_ICON, this.iconUrl);
icon.printImage = icon.mozPrintImage = icon.image;
if(this.iconSize) {
icon.iconSize = new GSize(this.iconSize[0], this.iconSize[1]);
var anchor;
if(this.iconAnchor) {
anchor = new GPoint(this.iconAnchor[0], this.iconAnchor[1]);
}
else {
// FIXME: hard-coding the anchor point
anchor = new GPoint(this.iconSize[0]/2, this.iconSize[1]/2);
}
icon.iconAnchor = anchor;
}
if(typeof(this.iconShadowUrl) != 'undefined') {
icon.shadow = this.iconShadowUrl;
if(this.iconShadowSize) {
icon.shadowSize = new GSize(this.iconShadowSize[0], this.iconShadowSize[1]);
}
} else { // turn off shadow
icon.shadow = '';
icon.shadowSize = '';
}
if(this.transparent) {
icon.transparent = this.transparent;
}
if(this.imageMap) {
icon.imageMap = this.imageMap;
}
options.icon = icon;
}
if(this.draggable){
options.draggable = this.draggable;
}
var gmarker = new GMarker( this.location.toProprietary('google'),options);
if(this.infoBubble){
infoBubble = this.infoBubble;
if(this.hover) {
event_action = "mouseover";
}
else {
event_action = "click";
}
GEvent.addListener(gmarker, event_action, function() {
gmarker.openInfoWindowHtml(infoBubble, {
maxWidth: 100
});
});
}
if(this.hoverIconUrl){
GEvent.addListener(gmarker, "mouseover", function() {
gmarker.setImage(this.hoverIconUrl);
});
GEvent.addListener(gmarker, "mouseout", function() {
gmarker.setImage(this.iconUrl);
});
}
if(this.infoDiv){
infoDiv = this.infoDiv;
div = this.div;
if(this.hover) {
event_action = "mouseover";
}
else {
event_action = "click";
}
GEvent.addListener(gmarker, event_action, function() {
document.getElementById(div).innerHTML = infoDiv;
});
}
return gmarker;
},
openBubble: function() {
var gpin = this.proprietary_marker;
gpin.openInfoWindowHtml(this.infoBubble);
},
hide: function() {
this.proprietary_marker.hide();
},
show: function() {
this.proprietary_marker.show();
},
update: function() {
point = new mxn.LatLonPoint();
point.fromGoogle(this.proprietary_marker.getPoint());
this.location = point;
}
},
Polyline: {
toProprietary: function() {
var gpoints = [];
for (var i = 0, length = this.points.length ; i< length; i++){
gpoints.push(this.points[i].toProprietary('google'));
}
if (this.closed || gpoints[0].equals(gpoints[length-1])) {
return new GPolygon(gpoints, this.color, this.width, this.opacity, this.fillColor || "#5462E3", this.opacity || "0.3");
} else {
return new GPolyline(gpoints, this.color, this.width, this.opacity);
}
},
show: function() {
throw 'Not implemented';
},
hide: function() {
throw 'Not implemented';
}
}
});

View File

@ -1,179 +0,0 @@
/*
Copyright (c) 2007, Andrew Turner
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the Mapstraction nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// Use http://jsdoc.sourceforge.net/ to generate documentation
// TODO: add reverse geocoding support
/**
* MapstractionGeocoder instantiates a geocoder with some API choice
* @param {Function} callback The function to call when a geocode request returns (function(waypoint))
* @param {String} api The API to use, currently only 'mapquest' is supported
* @param {Function} error_callback The optional function to call when a geocode request fails
* @constructor
*/
function MapstractionGeocoder(callback, api, error_callback) {
this.api = api;
this.callback = callback;
this.geocoders = new Object();
if(error_callback == null) {
this.error_callback = this.geocode_error
} else {
this.error_callback = error_callback;
}
// This is so that it is easy to tell which revision of this file
// has been copied into other projects.
this.svn_revision_string = '$Revision: 107 $';
this.addAPI(api);
}
/**
* Internal function to actually set the router specific parameters
*/
MapstractionGeocoder.prototype.addAPI = function(api) {
me = this;
switch (api) {
case 'google':
this.geocoders[api] = new GClientGeocoder();
break;
case 'mapquest':
//set up the connection to the geocode server
var proxyServerName = "";
var proxyServerPort = "";
var ProxyServerPath = "mapquest_proxy/JSReqHandler.php";
var serverName = "geocode.access.mapquest.com";
var serverPort = "80";
var serverPath = "mq";
this.geocoders[api] = new MQExec(serverName, serverPath, serverPort, proxyServerName,
ProxyServerPath, proxyServerPort );
break;
default:
alert(api + ' not supported by mapstraction-geocoder');
}
}
/**
* Change the Routing API to use
* @param {String} api The API to swap to
*/
MapstractionGeocoder.prototype.swap = function(api) {
if (this.api == api) { return; }
this.api = api;
if (this.geocoders[this.api] == undefined) {
this.addAPI($(element),api);
}
}
/**
* Default Geocode error function
*/
MapstractionGeocoder.prototype.geocode_error = function(response) {
alert("Sorry, we were unable to geocode that address");
}
/**
* Default handler for geocode request completion
*/
MapstractionGeocoder.prototype.geocode_callback = function(response, mapstraction_geocoder) {
var return_location = new Object();
// TODO: what if the api is switched during a geocode request?
// TODO: provide an option error callback
switch (mapstraction_geocoder.api) {
case 'google':
if (!response || response.Status.code != 200) {
mapstraction_geocoder.error_callback(response);
} else {
return_location.street = "";
return_location.locality = "";
return_location.region = "";
return_location.country = "";
var place = response.Placemark[0];
if(place.AddressDetails.Country.AdministrativeArea != null) {
return_location.region = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
if(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea != null) {
if(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality != null) {
return_location.locality = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
if(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare != null)
return_location.street = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
}
}
}
return_location.country = place.AddressDetails.Country.CountryNameCode;
return_location.address = place.address;
return_location.point = new mxn.LatLonPoint(place.Point.coordinates[1],
place.Point.coordinates[0]);
mapstraction_geocoder.callback(return_location);
}
break;
case 'mapquest':
break;
}
}
/**
* Performs a geocoding and then calls the specified callback function with the location
* @param {Object} address The address object to geocode
*/
MapstractionGeocoder.prototype.geocode = function(address) {
var return_location = new Object();
// temporary variable for later using in function closure
var mapstraction_geocoder = this;
switch (this.api) {
case 'google':
if (address.address == null || address.address == "")
address.address = address.street + ", " + address.locality + ", " + address.region + ", " + address.country
this.geocoders[this.api].getLocations(address.address, function(response) { mapstraction_geocoder.geocode_callback(response, mapstraction_geocoder); });
break;
case 'mapquest':
var mqaddress = new MQAddress();
var gaCollection = new MQLocationCollection("MQGeoAddress");
//populate the address object with the information from the form
mqaddress.setStreet(address.street);
mqaddress.setCity(address.locality);
mqaddress.setState(address.region);
mqaddress.setPostalCode(address.postalcode);
mqaddress.setCountry(address.country);
this.geocoders[this.api].geocode(mqaddress, gaCollection);
var geoAddr = gaCollection.get(0);
var mqpoint = geoAddr.getMQLatLng();
return_location.street = geoAddr.getStreet();
return_location.locality = geoAddr.getCity();
return_location.region = geoAddr.getState();
return_location.country = geoAddr.getCountry();
return_location.point = new mxn.LatLonPoint(mqpoint.getLatitude(), mqpoint.getLongitude());
this.callback(return_location, this);
break;
default:
alert(api + ' not supported by mapstraction-geocoder');
break;
}
}

View File

@ -1,443 +0,0 @@
mxn.register('googlev3', {
Mapstraction: {
init: function(element, api){
var me = this;
if ( google && google.maps ){
// by default no controls and road map
var myOptions = {
disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(element, myOptions);
// deal with click
google.maps.event.addListener(map, 'click', function(location){
me.clickHandler(location.latLng.lat(),location.latLng.lng(),location,me);
});
// deal with zoom change
google.maps.event.addListener(map, 'zoom_changed', function(){
me.changeZoom.fire();
});
// deal with map movement
google.maps.event.addListener(map, 'dragend', function(){
me.moveendHandler(me);
me.endPan.fire();
});
this.maps[api] = map;
this.loaded[api] = true;
me.load.fire();
}
else {
alert(api + ' map script not imported');
}
},
applyOptions: function(){
var map = this.maps[this.api];
var myOptions = [];
if (this.options.enableDragging) {
myOptions.draggable = true;
}
if (this.options.enableScrollWheelZoom){
myOptions.scrollwheel = true;
}
map.setOptions(myOptions);
},
resizeTo: function(width, height){
this.currentElement.style.width = width;
this.currentElement.style.height = height;
var map = this.maps[this.api];
google.maps.event.trigger(map,'resize');
},
addControls: function( args ) {
var map = this.maps[this.api];
// remove old controls
// Google has a combined zoom and pan control.
if (args.zoom || args.pan) {
if (args.zoom == 'large'){
this.addLargeControls();
} else {
this.addSmallControls();
}
}
if (args.scale){
var myOptions = {
scaleControl:true,
scaleControlOptions: {style:google.maps.ScaleControlStyle.DEFAULT}
};
map.setOptions(myOptions);
this.addControlsArgs.scale = true;
}
},
addSmallControls: function() {
var map = this.maps[this.api];
var myOptions = {
navigationControl: true,
navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}
};
map.setOptions(myOptions);
this.addControlsArgs.pan = false;
this.addControlsArgs.scale = false;
this.addControlsArgs.zoom = 'small';
},
addLargeControls: function() {
var map = this.maps[this.api];
var myOptions = {
navigationControl:true,
navigationControlOptions: {style:google.maps.NavigationControlStyle.DEFAULT}
};
map.setOptions(myOptions);
this.addControlsArgs.pan = true;
this.addControlsArgs.zoom = 'large';
},
addMapTypeControls: function() {
var map = this.maps[this.api];
var myOptions = {
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DEFAULT}
};
map.setOptions(myOptions);
this.addControlsArgs.map_type = true;
},
setCenterAndZoom: function(point, zoom) {
var map = this.maps[this.api];
var pt = point.toProprietary(this.api);
map.setCenter(pt);
map.setZoom(zoom);
},
addMarker: function(marker, old) {
return marker.toProprietary(this.api);
},
removeMarker: function(marker) {
// doesn't really remove them, just hides them
marker.hide();
},
removeAllMarkers: function() {
var map = this.maps[this.api];
// TODO: Add provider code
},
declutterMarkers: function(opts) {
var map = this.maps[this.api];
// TODO: Add provider code
},
addPolyline: function(polyline, old) {
var map = this.maps[this.api];
return polyline.toProprietary(this.api);
},
removePolyline: function(polyline) {
var map = this.maps[this.api];
// TODO: Add provider code
},
getCenter: function() {
var map = this.maps[this.api];
var pt = map.getCenter();
return new mxn.LatLonPoint(pt.lat(),pt.lng());
},
setCenter: function(point, options) {
var map = this.maps[this.api];
var pt = point.toProprietary(this.api);
if(options && options.pan) {
map.panTo(pt);
}
else {
map.setCenter(pt);
}
},
setZoom: function(zoom) {
var map = this.maps[this.api];
map.setZoom(zoom);
},
getZoom: function() {
var map = this.maps[this.api];
return map.getZoom();
},
getZoomLevelForBoundingBox: function( bbox ) {
var map = this.maps[this.api];
var sw = bbox.getSouthWest().toProprietary(this.api);
var ne = bbox.getNorthEast().toProprietary(this.api);
var gLatLngBounds = new google.maps.LatLngBounds(sw, ne);
map.fitBounds(gLatLngBounds);
return map.getZoom();
},
setMapType: function(type) {
var map = this.maps[this.api];
switch(type) {
case mxn.Mapstraction.ROAD:
map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
break;
case mxn.Mapstraction.SATELLITE:
map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
break;
case mxn.Mapstraction.HYBRID:
map.setMapTypeId(google.maps.MapTypeId.HYBRID);
break;
default:
map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
}
},
getMapType: function() {
var map = this.maps[this.api];
var type = map.getMapTypeId();
switch(type) {
case google.maps.MapTypeId.ROADMAP:
return mxn.Mapstraction.ROAD;
case google.maps.MapTypeId.SATELLITE:
return mxn.Mapstraction.SATELLITE;
case google.maps.MapTypeId.HYBRID:
return mxn.Mapstraction.HYBRID;
//case google.maps.MapTypeId.TERRAIN:
// return something;
default:
return null;
}
},
getBounds: function () {
var map = this.maps[this.api];
var gLatLngBounds = map.getBounds();
var sw = gLatLngBounds.getSouthWest();
var ne = gLatLngBounds.getNorthEast();
return new mxn.BoundingBox(sw.lat(), sw.lng(), ne.lat(), ne.lng());
},
setBounds: function(bounds){
var map = this.maps[this.api];
var sw = bounds.getSouthWest().toProprietary(this.api);
var ne = bounds.getNorthEast().toProprietary(this.api);
var gLatLngBounds = new google.maps.LatLngBounds(sw, ne);
map.fitBounds(gLatLngBounds);
},
addImageOverlay: function(id, src, opacity, west, south, east, north, oContext) {
var map = this.maps[this.api];
// TODO: Add provider code
},
setImagePosition: function(id, oContext) {
var map = this.maps[this.api];
var topLeftPoint; var bottomRightPoint;
// TODO: Add provider code
//oContext.pixels.top = ...;
//oContext.pixels.left = ...;
//oContext.pixels.bottom = ...;
//oContext.pixels.right = ...;
},
addOverlay: function(url, autoCenterAndZoom) {
var map = this.maps[this.api];
// TODO: Add provider code
},
addTileLayer: function(tile_url, opacity, copyright_text, min_zoom, max_zoom, map_type) {
var map = this.maps[this.api];
// TODO: Add provider code
},
toggleTileLayer: function(tile_url) {
var map = this.maps[this.api];
// TODO: Add provider code
},
getPixelRatio: function() {
var map = this.maps[this.api];
// TODO: Add provider code
},
mousePosition: function(element) {
var map = this.maps[this.api];
// TODO: Add provider code
}
},
LatLonPoint: {
toProprietary: function() {
return new google.maps.LatLng(this.lat, this.lon);
},
fromProprietary: function(googlePoint) {
this.lat = googlePoint.lat();
this.lon = googlePoint.lng();
}
},
Marker: {
toProprietary: function() {
var options = {};
// do we have an Anchor?
var ax = 0; // anchor x
var ay = 0; // anchor y
if (this.iconAnchor) {
ax = this.iconAnchor[0];
ay = this.iconAnchor[1];
}
var gAnchorPoint = new google.maps.Point(ax,ay);
if (this.iconUrl) {
options.icon = new google.maps.MarkerImage(
this.iconUrl,
new google.maps.Size(this.iconSize[0],
this.iconSize[1]),
new google.maps.Point(0,0),
gAnchorPoint
);
// do we have a Shadow?
if (this.iconShadowUrl) {
if (this.iconShadowSize) {
var x = this.iconShadowSize[0];
var y = this.iconShadowSize[1];
options.shadow = new google.maps.MarkerImage(
this.iconShadowUrl,
new google.maps.Size(x,y),
new google.maps.Point(0,0),
gAnchorPoint
);
}
else {
options.shadow = new google.maps.MarkerImage(this.iconShadowUrl);
}
}
}
if (this.draggable){
options.draggable = this.draggable;
}
if (this.labelText){
options.title = this.labelText;
}
if (this.imageMap){
options.shape = {
coord: this.imageMap,
type: 'poly'
};
}
options.position = this.location.toProprietary(this.api);
options.map = this.map;
var marker = new google.maps.Marker(options);
if (this.infoBubble){
var infowindow = new google.maps.InfoWindow({
content: this.infoBubble
});
var event_action = "click";
if (this.hover) {
event_action = "mouseover";
}
google.maps.event.addListener(marker, event_action, function() { infowindow.open(this.map,marker); });
}
if (this.hoverIconUrl){
var gSize = new google.maps.Size(this.iconSize[0],
this.iconSize[1]);
var zerozero = new google.maps.Point(0,0);
var hIcon = new google.maps.MarkerImage(
this.hoverIconUrl,
gSize,
zerozero,
gAnchorPoint
);
var Icon = new google.maps.MarkerImage(
this.iconUrl,
gSize,
zerozero,
gAnchorPoint
);
google.maps.event.addListener(
marker,
"mouseover",
function(){
marker.setIcon(hIcon);
}
);
google.maps.event.addListener(
marker,
"mouseout",
function(){ marker.setIcon(Icon); }
);
}
google.maps.event.addListener(marker, 'click', function() {
marker.mapstraction_marker.click.fire();
});
return marker;
},
openBubble: function() {
var infowindow = new google.maps.InfoWindow({
content: this.infoBubble
});
infowindow.open(this.map,this.proprietary_marker);
},
hide: function() {
this.proprietary_marker.setOptions({visible:false});
},
show: function() {
this.proprietary_marker.setOptions({visible:true});
},
update: function() {
// TODO: Add provider code
}
},
Polyline: {
toProprietary: function() {
throw 'Not implemented';
},
show: function() {
throw 'Not implemented';
},
hide: function() {
throw 'Not implemented';
}
}
});

View File

@ -403,29 +403,6 @@ mxn.util = {
return miles * 1.609344;
},
// stuff to convert google zoom levels to/from degrees
// assumes zoom 0 = 256 pixels = 360 degrees
// zoom 1 = 256 pixels = 180 degrees
// etc.
/**
*
* @param {Object} pixels
* @param {Object} zoom
*/
getDegreesFromGoogleZoomLevel: function(pixels, zoom) {
return (360 * pixels) / (Math.pow(2, zoom + 8));
},
/**
*
* @param {Object} pixels
* @param {Object} degrees
*/
getGoogleZoomLevelFromDegrees: function(pixels, degrees) {
return mxn.util.logN((360 * pixels) / degrees, 2) - 8;
},
/**
*
* @param {Object} number

View File

@ -250,40 +250,12 @@ mxn.register('openlayers', {
setMapType: function(type) {
var map = this.maps[this.api];
throw 'Not implemented (setMapType)';
// switch(type) {
// case mxn.Mapstraction.ROAD:
// map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
// break;
// case mxn.Mapstraction.SATELLITE:
// map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
// break;
// case mxn.Mapstraction.HYBRID:
// map.setMapTypeId(google.maps.MapTypeId.HYBRID);
// break;
// default:
// map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
// }
},
getMapType: function() {
var map = this.maps[this.api];
// TODO: implement actual layer support
return mxn.Mapstraction.ROAD;
// var type = map.getMapTypeId();
// switch(type) {
// case google.maps.MapTypeId.ROADMAP:
// return mxn.Mapstraction.ROAD;
// case google.maps.MapTypeId.SATELLITE:
// return mxn.Mapstraction.SATELLITE;
// case google.maps.MapTypeId.HYBRID:
// return mxn.Mapstraction.HYBRID;
// //case google.maps.MapTypeId.TERRAIN:
// // return something;
// default:
// return null;
// }
},
getBounds: function () {

Some files were not shown because too many files have changed in this diff Show More