[svn r16629] added googlemaps plugin

skala
Juan Carlos Raña 17 years ago
parent d2bb52723a
commit 744718ede8
  1. 118
      main/inc/lib/fckeditor/editor/plugins/googlemaps/dialog/googleMaps.html
  2. 525
      main/inc/lib/fckeditor/editor/plugins/googlemaps/dialog/googleMaps.js
  3. 335
      main/inc/lib/fckeditor/editor/plugins/googlemaps/dialog/polyline.js
  4. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/es.png
  5. 11
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/index.html
  6. 156
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/install.html
  7. 152
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/install_es.html
  8. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/installation.png
  9. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/marker.png
  10. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/preview.png
  11. 59
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/styles.css
  12. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/uk.png
  13. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/user_dialog1.png
  14. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/user_dialog2.png
  15. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/user_dialog3.png
  16. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/user_dialog4.png
  17. 110
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/users.html
  18. 110
      main/inc/lib/fckeditor/editor/plugins/googlemaps/docs/users_es.html
  19. 752
      main/inc/lib/fckeditor/editor/plugins/googlemaps/fckplugin.js
  20. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/images/AddMarker.png
  21. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/images/AddMarkerDown.png
  22. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/images/mapIcon.gif
  23. BIN
      main/inc/lib/fckeditor/editor/plugins/googlemaps/images/maps_res_logo.png
  24. 45
      main/inc/lib/fckeditor/editor/plugins/googlemaps/lang/de.js
  25. 45
      main/inc/lib/fckeditor/editor/plugins/googlemaps/lang/en.js
  26. 45
      main/inc/lib/fckeditor/editor/plugins/googlemaps/lang/es.js
  27. 44
      main/inc/lib/fckeditor/editor/plugins/googlemaps/lang/fr.js
  28. 45
      main/inc/lib/fckeditor/editor/plugins/googlemaps/lang/it.js
  29. 44
      main/inc/lib/fckeditor/editor/plugins/googlemaps/lang/nl.js
  30. 11
      main/inc/lib/fckeditor/editor/plugins/googlemaps/readme.html

@ -0,0 +1,118 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* GoogleMaps Plugin for FCKeditor
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* GMaps Properties dialog window.
-->
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Google Maps</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta content="noindex, nofollow" name="robots">
<script src="googleMaps.js" type="text/javascript"></script>
<style type="text/css">
div.box {
height: 60px;
}
p {
margin:0;
}
</style>
</head>
<body>
<div id="MapInfo" class="box">
<table>
<tr>
<td>
<label for="txtWidth" fckLang="DlgImgWidth">Width</label>
<input id="txtWidth" type="text" size="3">
</td>
<td>
<label for="txtHeight" fckLang="DlgImgHeight">Height</label>
<input id="txtHeight" type="text" size="3">
</td>
<td>
<span fckLang="GMapsZoomLevel">Zoom Level</span>
<select id="cmbZoom">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
</select>
</td>
<td>
<label for="apiKey" fckLang="GMapsKey" id="lblApiKey">API Key</label>
<input id="apiKey" type="text" name="apiKey" size="40" />
</td>
</tr>
</table>
<table>
<tr>
<td>
<label for="txtCenterLatitude" fckLang="txtLatitude">Latitude</label>
<input id="txtCenterLatitude" type="text" size="7">
</td>
<td>
<label for="txtCenterLongitude" fckLang="txtLongitude">Longitude</label>
<input id="txtCenterLongitude" type="text" size="7">
</td>
</tr>
</table>
</div>
<div id="SearchInfo" style="display:none;" class="box">
<label for="searchDirection" fckLang="GMapsSearchLabel">Search a direction</label>
<input type="text" id="searchDirection" size="50" > <input type="button" id="searchButton" value="search" fckLang="GMapsSearch">
</div>
<div id="MarkerInfo" style="display:none;" class="box">
<img id="btnAddNewMarker" src="../images/AddMarker.png" style="cursor:pointer">
<div id="instructions"></div>
</div>
<div id="LineInfo" style="display:none;" class="box">
<p><span fckLang="GMapsLineInstructions">Click on the map</span></p>
<div id="info2" style="display:none">
<textarea id="encodedPolyline"></textarea>
<textarea id="encodedLevels"></textarea>
</div>
</div>
<!-- <span fckLang="DlgImgPreview">Preview</span>-->
<div id="GMapPreview" style="width:300px; height:200px; outline:0;" tabIndex="-1"></div>
</body>
</html>

@ -0,0 +1,525 @@
/*
GoogleMaps Plugin for FCKeditor
*/
// Rounds a number to just "precission" decimals
Number.prototype.RoundTo = function( precission )
{
var base = Math.pow(10, precission) ;
return Math.round( this * base ) / base ;
} ;
function Import(aSrc) {
document.write('<scr'+'ipt type="text/javascript" src="' + aSrc + '"></sc' + 'ript>');
}
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKLang = oEditor.FCKLang ;
var FCKConfig = oEditor.FCKConfig ;
var FCKTools = oEditor.FCKTools ;
Import(FCKConfig.FullBasePath + 'dialog/common/fck_dialog_common.js');
Import('http://maps.google.com/maps?file=api&v=2&key=' + FCKConfig.GoogleMaps_Key);
Import('polyline.js');
window.parent.AddTab( 'Map', FCKLang.GMapsMap ) ;
window.parent.AddTab( 'Search', FCKLang.GMapsSearch ) ;
window.parent.AddTab( 'Marker', FCKLang.GMapsMarker ) ;
window.parent.AddTab( 'Line', FCKLang.GMapsLine ) ;
var ActiveTab ;
// Function called when a dialog tag is selected.
function OnDialogTabChange( tabCode )
{
ActiveTab = tabCode ;
ShowE('MapInfo', ( tabCode == 'Map' ) ) ;
ShowE('SearchInfo', ( tabCode == 'Search' ) ) ;
ShowE('MarkerInfo', ( tabCode == 'Marker' ) ) ;
ShowE('LineInfo', ( tabCode == 'Line' ) ) ;
if (tabCode == 'Line')
ShowLinePoints()
else
HideLinePoints();
if (tabCode != 'Marker')
FinishAddMarker() ;
ResizeParent() ;
}
// Get the selected map (if available).
var oFakeImage = FCK.Selection.GetSelectedElement() ;
var oParsedMap ;
if ( oFakeImage )
{
if ( oFakeImage.getAttribute( 'MapNumber' ) )
{
oParsedMap = FCK.GoogleMapsHandler.getMap( oFakeImage.getAttribute( 'MapNumber' ) );
oParsedMap.updateDimensions( oFakeImage );
}
else
oFakeImage = null ;
}
if ( !oParsedMap )
oParsedMap = FCK.GoogleMapsHandler.createNew() ;
window.onload = function()
{
// Garbage collection. The imported function won't be available inmediately.
window.onunload = GUnload ;
// Translate the dialog box texts.
oEditor.FCKLanguageManager.TranslatePage(document) ;
var btn = GetE('btnAddNewMarker') ;
btn.alt = btn.title = FCKLang.GMapsAddMarker ;
// Load the selected element information (if any).
LoadSelection() ;
if ( GetE('apiKey').value.length>0 )
{
GetE('apiKey').style.display = 'none' ;
GetE('lblApiKey').style.display = 'none' ;
}
ConfigureEvents() ;
// Activate the "OK" button.
SetupHelpButton( oEditor.FCKPlugins.Items['googlemaps'].Path + 'docs/' + FCKLang.GMapsUserHelpFile ) ;
window.parent.SetOkButton( true ) ;
//2.6
if (window.parent.Sizer) window.parent.SetAutoSize( true ) ;
} ;
function ConfigureEvents()
{
GetE('txtWidth').onblur = UpdateDimensions ;
GetE('txtHeight').onblur = UpdateDimensions ;
GetE('cmbZoom').onchange = UpdatePreview ;
GetE('btnAddNewMarker').onclick = function () {AddMarker(); return false;};
FCKTools.AddEventListener(GetE('searchDirection') , 'keydown', searchDirection_keydown) ;
GetE('searchButton').onclick = function () {doSearch(); return false;};
}
function searchDirection_keydown(e)
{
if (!e) e = window.event ;
if ( e.keyCode == 13 )
{
doSearch();
if (e.preventDefault) e.preventDefault() ;
if (e.stopPropagation) e.stopPropagation() ;
return false;
}
}
function LoadSelection()
{
GetE('apiKey').value = FCK.GoogleMapsHandler.publicKey ;
GetE('txtWidth').value = oParsedMap.width ;
GetE('txtHeight').value = oParsedMap.height ;
GetE('cmbZoom').value = oParsedMap.zoom ;
GetE('txtCenterLatitude').value = oParsedMap.centerLat ;
GetE('txtCenterLongitude').value = oParsedMap.centerLon ;
var markerPoints = oParsedMap.markerPoints;
GetE('encodedPolyline').value = oParsedMap.LinePoints ;
GetE('encodedLevels').value = oParsedMap.LineLevels ;
SetPreviewElement( oParsedMap.mapType ) ;
UpdatePreview() ;
// Only after we have set the center.
map.setMapType( allMapTypes[ oParsedMap.mapType ] );
for (var i=0; i<markerPoints.length ; i++)
{
var point = new GLatLng(parseFloat(markerPoints[i].lat), parseFloat(markerPoints[i].lon))
AddMarkerAtPoint(point, markerPoints[i].text, false);
}
decodePolyline() ;
}
//#### The OK button was hit.
function Ok()
{
if ( GetE('apiKey').value.length==0 )
{
alert( FCKLang.GMaps_MissingKey );
return false
}
oEditor.FCKUndo.SaveUndoStep() ;
FCK.GoogleMapsHandler.publicKey = GetE('apiKey').value ;
oParsedMap.width = GetE('txtWidth').value ;
oParsedMap.height = GetE('txtHeight').value ;
oParsedMap.zoom = GetE('cmbZoom').value ;
oParsedMap.centerLat = GetE('txtCenterLatitude').value ;
oParsedMap.centerLon = GetE('txtCenterLongitude').value ;
oParsedMap.mapType = GetMapTypeIndex(map);
var markerPoints = [];
for (var i=0; i<markers.length ; i++)
{
var point = markers[i].getPoint() ;
markerPoints.push({lat: point.lat().RoundTo(5), lon:point.lng().RoundTo(5), text:markers[i].text});
}
oParsedMap.markerPoints = markerPoints ;
oParsedMap.LinePoints = GetE('encodedPolyline').value ;
oParsedMap.LineLevels = GetE('encodedLevels').value ;
var script = oParsedMap.BuildScript() ;
if ( !oFakeImage )
oFakeImage = oParsedMap.createHtmlElement() ;
oParsedMap.updateHTMLElement(oFakeImage);
return true ;
}
function GetMapTypeIndex(m)
{
var name = m.getCurrentMapType().getName() ;
for (var i=0; i < allMapTypes.length ; i++)
{
if ( name == allMapTypes[i].getName() )
return i ;
}
return 0;
}
var map ;
var mapDiv ;
var geocoder ;
var markers = [] ;
var activeMarker = null;
var Mode = '' ;
var allMapTypes;
function SetPreviewElement( mapType )
{
mapDiv = document.getElementById("GMapPreview") ;
UpdateDimensions() ;
if(!GBrowserIsCompatible())
return;
allMapTypes = [G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP, G_PHYSICAL_MAP] ;
map = new GMap2(mapDiv, {mapTypes:allMapTypes});
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
GEvent.addListener(map, "zoomend", Map_ZoomEnd);
GEvent.addListener(map, "drag", Map_Drag);
// GEvent.addListener(map, "moveend", Map_MoveEnd);
GEvent.addListener(map, "click", Map_Click);
GEvent.addDomListener(mapDiv, "keydown", DomMap_KeyDown);
}
function Map_ZoomEnd(oldLevel, newLevel)
{
GetE('cmbZoom').value = newLevel ;
}
function Map_Drag()
{
var point = map.getCenter() ;
GetE("txtCenterLatitude").value = point.lat().RoundTo(5) ;
GetE("txtCenterLongitude").value = point.lng().RoundTo(5) ;
}
function Map_MoveEnd()
{
Map_Drag() ;
}
function Map_Click(overlay, point)
{
if ( !overlay )
{
switch(ActiveTab) {
case 'Map':
//Nothing
break;
case 'Marker':
if (Mode == 'AddMarker')
AddMarkerAtPoint( point, FCKConfig.GoogleMaps_MarkerText || FCKLang.GMapsMarkerDefaultText, true ) ;
break;
case 'Line':
createPoint(point.lat(), point.lng(), 3);
createEncodings(false);
break;
}
}
// To get Keyboard events, the map must be focused.
if (!overlay || overlay.focusable)
{
mapDiv.focus();
}
}
function DomMap_KeyDown( e )
{
if ( !e )
e = window.event ;
var iCode = ( e.keyCode || e.charCode ) ;
// Delete: remove current point in the line
if (iCode == 46)
switch(ActiveTab) {
case 'Map':
//Nothing
break;
case 'Marker':
//Nothing
break;
case 'Line':
deletePoint() ;
break;
}
}
function UpdatePreview()
{
if ( !map )
return ;
var zoom = parseInt(GetE('cmbZoom').value, 10) ;
map.setCenter(new GLatLng(GetE('txtCenterLatitude').value, GetE('txtCenterLongitude').value), zoom);
}
function UpdateDimensions()
{
mapDiv.style.width = GetE('txtWidth').value + 'px' ;
mapDiv.style.height = GetE('txtHeight').value + 'px' ;
ResizeParent();
}
function createMarker(point, html)
{
var marker = new GMarker(point, {draggable: true});
marker.text = html ;
GEvent.addListener(marker, "click", function() {
EditMarker(this) ;
});
/*
GEvent.addListener(marker, "drag", function() {
Marker_Drag(this.getPoint());
});
*/
return marker;
}
function generateEditPopupString(text)
{
return '<div style="width:250px; height:7em;">' +
'<label for="txtMarkerText">' + FCKLang.GMapsMarkerText + '</label><br>' +
'<textarea id="txtMarkerText" style="width:250px; height:4em;">' + text.replace(/<br>/g, '\n') + '</textarea><br>' +
'<div style="float:left"><input type="button" id="btnDeleteMarker" onclick="DeleteCurrentMarker()" value="' + FCKLang.GMapsDeleteMarker + '"></div>' +
'<div style="float:right"><input type="button" id="btnOK2" onclick="UpdateCurrentMarker()" value="' + FCKLang.DlgBtnOK + '">' +
'<input type="button" id="btnCancel2" onclick="CloseInfoWindow()" value="' + FCKLang.DlgBtnCancel + '"></div>' +
'</div>'
;
}
function doSearch()
{
if (!geocoder) geocoder = new GClientGeocoder();
function processPoint(point)
{
if (point)
{
GetE("txtCenterLatitude").value = point.lat().RoundTo(5) ;
GetE("txtCenterLongitude").value = point.lng().RoundTo(5) ;
// Create a marker at that direction
AddMarkerAtPoint( point, GetE('searchDirection').value ) ;
UpdatePreview() ;
}
else {
alert( FCKLang.GMapsNotFound.replace("%s", GetE('searchDirection').value) ) ;
}
}
geocoder.getLatLng ( GetE('searchDirection').value, processPoint ) ;
}
// Change mode to enable addition of a new marker.
function AddMarker()
{
if (Mode=='AddMarker')
{
FinishAddMarker() ;
return ;
}
GetE( 'btnAddNewMarker' ).src = '../images/AddMarkerDown.png' ;
GetE( 'instructions' ).innerHTML = FCKLang.GMapsClickToAddMarker ;
Mode = 'AddMarker' ;
// Change cursor type
mapDiv.firstChild.firstChild.style.cursor = "crosshair" ;
}
function AddMarkerAtPoint( point, text, interactive )
{
var marker = createMarker(point, text) ;
map.addOverlay( marker ) ;
markers.push( marker );
FinishAddMarker();
if (interactive)
EditMarker( marker );
}
function FinishAddMarker()
{
Mode = '';
GetE( 'btnAddNewMarker' ).src = '../images/AddMarker.png' ;
GetE( 'instructions' ).innerHTML = '';
// Change cursor type
mapDiv.firstChild.firstChild.style.cursor = "default" ;
}
function EditMarker(obj)
{
if (ActiveTab!='Marker')
{
obj.openInfoWindowHtml(obj.text) ;
return;
}
// We are really editing.
activeMarker = obj ;
Mode = 'EditMarker' ;
obj.openInfoWindowHtml(generateEditPopupString(obj.text));
}
function CloseInfoWindow()
{
Mode = '' ;
map.closeInfoWindow() ;
activeMarker = null ;
}
function UpdateCurrentMarker()
{
activeMarker.text = GetE( 'txtMarkerText' ).value.replace(/\n/g, '<br>');
CloseInfoWindow();
}
function DeleteCurrentMarker()
{
// Remove it from the global array
for ( var j = 0 ; j < markers.length ; j++ )
{
if ( markers[j] == activeMarker)
{
markers.splice(j, 1);
break ;
}
}
var tmp = activeMarker ;
CloseInfoWindow() ;
// Remove it from the map
map.removeOverlay(tmp);
}
// Full resize in x and y and centering
function ResizeParent()
{
var oParentWindow = window.parent;
//2.6
if (window.parent.Sizer) {
oParentWindow.Sizer.RefreshSize() ;
return;
}
var oInnerWindow = window ;
var oInnerDoc = oInnerWindow.document ;
var iDiff, iFrameHeight, iFrameWidth ;
if ( document.all )
iFrameHeight = oInnerDoc.body.offsetHeight ;
else
iFrameHeight = oInnerWindow.innerHeight ;
var iInnerHeight = oInnerDoc.body.scrollHeight ;
iDiff = iInnerHeight - iFrameHeight ;
if ( iDiff !== 0 )
{
if ( document.all )
oParentWindow.dialogHeight = ( parseInt( oParentWindow.dialogHeight, 10 ) + iDiff ) + 'px' ;
else
oParentWindow.resizeBy( 0, iDiff ) ;
}
// Width:
if ( document.all )
iFrameWidth = oInnerDoc.body.offsetWidth ;
else
iFrameWidth = oInnerWindow.innerWidth ;
var iInnerWidth = oInnerDoc.body.scrollWidth ;
iDiff = iInnerWidth - iFrameWidth ;
if ( iDiff !== 0 )
{
if ( document.all )
oParentWindow.dialogWidth = ( parseInt( oParentWindow.dialogWidth, 10 ) + iDiff ) + 'px' ;
else
oParentWindow.resizeBy( iDiff, 0 ) ;
}
}
// Adds a Help button to the parent dialog pointing to the provided url
function SetupHelpButton( url )
{
var doc = window.parent.document ;
var helpButton = doc.createElement( 'INPUT' ) ;
helpButton.type = 'button' ;
helpButton.value = FCKLang.Help ;
helpButton.className = 'Button' ;
helpButton.onclick = function () { window.open( url ); return false; };
var okButton = doc.getElementById( 'btnOk' ) ;
var cell = okButton.parentNode.previousSibling ;
if (cell.nodeName != 'TD')
cell = cell.previousSibling ;
cell.appendChild( helpButton );
}

@ -0,0 +1,335 @@
var points = [];
var highlighted_marker = null;
var point_markers = [];
var currentIndex = -1;
// Returns the index of the marker in the polyline.
function findMarkerIndex(point_marker) {
var index = -1;
for (var i = 0; i < point_markers.length; ++i) {
if (point_markers[i] == point_marker) {
index = i;
break;
}
}
return index;
}
// Creates a point and adds it to both the polyline and the list.
function createPoint(lat, lng, pLevel) {
var newPoint = {
lat: lat,
lon: lng,
Level: pLevel
};
if (currentIndex>-1)
points.splice(currentIndex+1, 0, newPoint) ;
else
points.push(newPoint);
var point_marker = createPointMarker(new GLatLng(lat, lng), false);
point_marker.focusable = true ; // To signal that the map must get the focus.
map.addOverlay(point_marker);
if (currentIndex>-1)
point_markers.splice(currentIndex+1, 0, point_marker) ;
else
point_markers.push(point_marker);
highlight(currentIndex+1);
}
// Creates a marker representing a point in the polyline.
function createPointMarker(point, highlighted) {
var clr = highlighted ? "yellow" : "blue";
var point_marker = createColorMarker(point, clr);
GEvent.addListener(point_marker, "drag", function() {
var index = findMarkerIndex(point_marker);
if (index >= 0) {
var nLat = point_marker.getPoint().lat();
var nLng = point_marker.getPoint().lng();
var pLevel = points[index].Level;
var modifiedPoint = {
lat: nLat,
lon: nLng,
Level: pLevel
};
points[index] = modifiedPoint;
createEncodings();
}
});
GEvent.addListener(point_marker, "click", function() {
highlight(findMarkerIndex(point_marker));
});
return point_marker;
}
// Highlights the point specified by index in both the map and the point list.
function highlight(index) {
if (point_markers[index] != null
&& point_markers[index] != highlighted_marker) {
map.removeOverlay(point_markers[index]);
}
if (highlighted_marker != null) {
var oldIndex = findMarkerIndex(highlighted_marker);
map.removeOverlay(highlighted_marker);
if (oldIndex != index) {
point_markers[oldIndex]
= createPointMarker(highlighted_marker.getPoint(), false);
map.addOverlay(point_markers[oldIndex]);
}
}
highlighted_marker = createPointMarker(point_markers[index].getPoint(),
true);
point_markers[index] = highlighted_marker;
map.addOverlay(highlighted_marker);
currentIndex = index ;
}
// Encode a signed number in the encode format.
function encodeSignedNumber(num) {
var sgn_num = num << 1;
if (num < 0) {
sgn_num = ~(sgn_num);
}
return(encodeNumber(sgn_num));
}
// Encode an unsigned number in the encode format.
function encodeNumber(num) {
var encodeString = "";
while (num >= 0x20) {
encodeString += (String.fromCharCode((0x20 | (num & 0x1f)) + 63));
num >>= 5;
}
encodeString += (String.fromCharCode(num + 63));
return encodeString;
}
// Delete a point from the polyline.
function deletePoint() {
if (points.length > 0) {
var point_index = currentIndex;
if (point_index >= 0 && point_index < points.length) {
points.splice(point_index, 1);
if (highlighted_marker == point_markers[point_index]) {
highlighted_marker = null;
currentIndex=-1;
}
map.removeOverlay(point_markers[point_index]);
point_markers.splice(point_index, 1);
createEncodings();
}
if (points.length > 0) {
if (point_index == 0) {
point_index++;
}
highlight(point_index - 1);
}
}
}
// Create the encoded polyline and level strings.
function createEncodings() {
if (points.length==0)
{
document.getElementById('encodedLevels').value = '';
document.getElementById('encodedPolyline').value = '';
if (document.overlay) {
map.removeOverlay(document.overlay);
}
return;
}
var encoded_levels='';
var encoded_points='';
var vZoom, vLevels;
vLevels = 4;
vZoom = 32;
var plat = 0;
var plng = 0;
for(var i = 0; i < points.length; ++i) {
var point = points[i];
var lat = point.lat;
var lng = point.lon;
var level = point.Level;
var late5 = Math.floor(lat * 1e5);
var lnge5 = Math.floor(lng * 1e5);
dlat = late5 - plat;
dlng = lnge5 - plng;
plat = late5;
plng = lnge5;
encoded_points += encodeSignedNumber(dlat) + encodeSignedNumber(dlng);
encoded_levels += encodeNumber(level);
}
document.getElementById('encodedLevels').value = encoded_levels.replace(/\\/g, "\\\\");
document.getElementById('encodedPolyline').value = encoded_points.replace(/\\/g, "\\\\");
if (document.overlay) {
map.removeOverlay(document.overlay);
}
if (points.length > 1) {
document.overlay = GPolyline.fromEncoded({color: "#3333cc",
weight: 5,
points: encoded_points,
zoomFactor: vZoom,
levels: encoded_levels,
numLevels: vLevels
});
map.addOverlay(document.overlay);
}
}
// Decode an encoded polyline into a list of lat/lng tuples.
function decodeLine (encoded) {
var len = encoded.length;
var index = 0;
var array = [];
var lat = 0;
var lng = 0;
while (index < len) {
var b;
var shift = 0;
var result = 0;
do {
b = encoded.charCodeAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
var dlat = ((result & 1) ? ~(result >> 1) : (result >> 1));
lat += dlat;
shift = 0;
result = 0;
do {
b = encoded.charCodeAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
var dlng = ((result & 1) ? ~(result >> 1) : (result >> 1));
lng += dlng;
array.push([lat * 1e-5, lng * 1e-5]);
}
return array;
}
// Decode an encoded levels string into a list of levels.
function decodeLevels(encoded) {
var levels = [];
for (var pointIndex = 0; pointIndex < encoded.length; ++pointIndex) {
var pointLevel = encoded.charCodeAt(pointIndex) - 63;
levels.push(pointLevel);
}
return levels;
}
// Decode the supplied encoded polyline and levels.
function decodePolyline() {
var encoded_points = document.getElementById('encodedPolyline').value;
encoded_points = encoded_points.replace(/\\\\/g, "\\");
if (encoded_points.length==0) {
return;
}
var enc_points = decodeLine(encoded_points);
if (enc_points.length==0) {
return;
}
points = [];
for (var i = 0; i < enc_points.length; ++i) {
createPoint(enc_points[i][0], enc_points[i][1], 3);
}
createEncodings();
}
function ShowLinePoints()
{
if (points.length==0)
return;
for (var i=0; i<points.length ; i++)
{
var point = points[i] ;
var point_marker = createPointMarker(new GLatLng(point.lat, point.lon), false);
map.addOverlay(point_marker);
point_markers.push(point_marker);
}
highlight(points.length-1);
}
function HideLinePoints()
{
for (var i=point_markers.length -1;i>=0 ; i--)
{
map.removeOverlay(point_markers[i]);
}
point_markers = [] ;
highlighted_marker = null;
currentIndex=-1;
}
function createColorMarker(point, color) {
var f = new GIcon();
f.image = "http://labs.google.com/ridefinder/images/mm_20_" + color
+ ".png";
f.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
f.iconSize = new GSize(12,20);
f.shadowSize = new GSize(22,20);
f.iconAnchor = new GPoint(6,20);
f.infoWindowAnchor = new GPoint(6,1);
f.infoShadowAnchor = new GPoint(13,13);
newMarker = new GMarker(point,
{icon: f, draggable: true});
return newMarker;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

@ -0,0 +1,11 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>googlemaps plugin index</title>
<META http-equiv="refresh" content="0;URL=install.html">
</head>
<body>
<p>You should have been redirected <a href="install.html">to the documentation</a></p>
</body>
</html>

@ -0,0 +1,156 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>GoogleMaps plugin</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Google Maps Plugin for FCKeditor</h1>
<div id="languages"> Change your language
<ul>
<li><a href="install_es.html" lang="es"><img src="es.png" alt="Español" width="23" height="15" border="0"></a></li>
</ul>
</div>
<h2>Introduction</h2>
<p>This is a dialog-based plugin to handle insertion and modification of <a href="http://maps.google.com">Google
Maps</a> in <a href="http://www.fckeditor.net">FCKeditor</a></p>
<h3 id="contact">Author:</h3>
<p><a href="mailto:amla70@gmail.com">Alfonso Mart&iacute;nez de Lizarrondo</a></p>
<h3>Sponsored by:</h3>
<p><a href="http://dynamical.biz">Dynamical.biz</a></p>
<p><a href="http://www.uritec.net">Uritec</a></p>
<p><a href="http://www.incontrolsolutions.com">InControl Solutions</a></p>
<h3>Version history: </h3>
<ol>
<li>1.0: 25/08/2007. First version.</li>
<li>1.1: 28/08/2007. Ups, didn't test 2.4.3</li>
<li>1.2: 31/08/2007. New icon by Dynamical.biz. Use IMG instead of DIV as placeholder
for the moment.</li>
<li>1.3: 02/09/2007. Complete documentation in HTML for installation and users. </li>
<li>1.4: 21/09/2007. Use the onload event to generate the maps (to avoid IE issues), and include the call to GUnload call. Automatically remove the toolbar icon if there is no proper Google Key </li>
<li>1.5 30/09/2007. Support for drawing polylines in the map.</li>
<li>1.6 24/10/2007. Support for multiple markers.</li>
<li>1.7 03/02/2008. Support for the new dialogs in FCKeditor 2.6.</li>
<li>1.8 02/05/2008. Support for Terrain view and remembering the selected map type. The preview in the editor now uses the static maps.</li>
<li>1.9 19/05/2008. It respects the values set for width and height (only assumes that they are pixel if they are numbers without any modifier)<br>
Optional configuration parameters: <a href="#WrapperClass">GoogleMaps_WrapperClass</a> and <a href="#PublicKey">GoogleMaps_PublicKey</a> (this code proposed by <a href="http://www.makerweb.it" target="_blank">Makerweb.it</a>) .</li>
<li>1.95 12/09/2008. The preview reflects the real type of the map. It shows also the markers.<br>
Dutch translation added</li>
<li>1.96 14/09/2008. Preserve any previous onload handler.<br>
French translation added</li>
<li>1.97 20/09/2008. Simplified the onload handler according to the advice by Hector Virgen. </li>
</ol>
<p><a href="http://martinezdelizarrondo.com/googlemaps/">Get the latest version and/or updated info</a> </p>
<h3>Known bugs:</h3>
<p>The 'Preview' command in FCKeditor won't work properly if there's a GoogleMap
in the content. This seems related to the way the Google Maps API script loads
and inserts its content. </p>
<p>These threads in the API group point to the same problem:<br>
<a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/7849dfd612181b6c/1c3e5f7fb5fa3301">http://groups.google.com/group/Google-Maps-API/browse_thread/thread/7849dfd612181b6c/1c3e5f7fb5fa3301</a> <br>
<a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/89ea5fa4e0a0ccb9/05c364940447891d">http://groups.google.com/group/Google-Maps-API/browse_thread/thread/89ea5fa4e0a0ccb9/05c364940447891d</a> </p>
<p>A workaround for the problem could be to use the <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1496110&amp;group_id=75348&amp;atid=737639">Server
preview plugin</a> </p>
<h2>Installation</h2>
<h3>1. Copying the files</h3>
<p>Extract the contents of the zip in you plugins directory, so it ends up like
this<br>
<img src="installation.png" alt="Screenshot of installation" width="311" height="346" longdesc="#install"></p>
<pre id="install">
editor\
...
js\
lang\
plugins\
...
googlemaps\
fckplugin.js
readme.html
dialog\
docs\
images\
lang\
...
skins\
</pre>
<h3>2. Adding it to FCKeditor</h3>
<p>Now add in your <em>fckconfig.js</em> or custom js configuration
file the following line:
<code>FCKConfig.Plugins.Add( 'googlemaps', 'de,en,es,fr,it,nl') ;</code>
</p>
<h3>3. Adding it to the toolbarset</h3>
<p>Add the button <strong>'googlemaps'</strong> (lowercase) to your toolbarset:
<code>FCKConfig.ToolbarSets[&quot;Basic&quot;] = [<br>
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink',
'-'<strong>,'googlemaps'</strong>,'-','About']<br>
] ;</code>
</p>
<h3 id="configure">4. Configure the plugin</h3>
<p>The most important part is your GoogleMaps key. It must be set properly for
the
plugin to work, or Google will refuse to serve the maps data. <br>
You must get one for each server where you want to use the plugin, just get
the key for free here after agreeing to the Terms of Use of the GoogleMaps
API: <a href="http://www.google.com/apis/maps/signup.html">http://www.google.com/apis/maps/signup.html</a><br>
(Please don't ask questions about where you can use GoogleMaps or how to get
key,
those items aren't related to this plugin.)<br>
For example the key for &quot;localhost&quot; is<br>
<span class="key">ABQIAAAAlXu5Pw6DFAUgqM2wQn01gxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSy5hTGQdsosYD3dz6faZHVrO-02A</span></p>
<p>Once you get the key, you must set it in the configuration file:
<code>FCKConfig.GoogleMaps_Key = '<span class="key">ABQIAAAAlXu5Pw6DFAUgqM2wQn01gxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSy5hTGQdsosYD3dz6faZHVrO-02A</span>'
;</code>
</p>
<p>(remember to replace the key in green with your own one) </p>
<p>Note: if you leave an empty string then the toolbar icon won't be shown (so you can easily use the same toolbar configuration as the current
setup in FCKeditor doesn't allow to add/remove plugins/ToolbarIcons in a really easy way)</p>
<p>There are several options that you can set to change the default values for
a new map:</p>
<ul>
<li>FCKConfig.<strong>GoogleMaps_Width</strong> : The width of the map area</li>
<li>FCKConfig.<strong>GoogleMaps_Height</strong> : The height of the map area</li>
<li>FCKConfig.<strong>GoogleMaps_CenterLat</strong> : The latitude of the center</li>
<li>FCKConfig.<strong>GoogleMaps_CenterLon</strong> :The longitude of the center</li>
<li>FCKConfig.<strong>GoogleMaps_Zoom</strong> : The zoom level</li>
<li>FCKConfig.<strong>GoogleMaps_MarkerText</strong> : The text for the marker</li>
<li id="WrapperClass">FCKConfig.<strong>GoogleMaps_WrapperClass</strong> : The Google Maps automatically fills the width and height of the generated div,
so if you want to add a little spacing and a border, you need to use a div around it. If this entry contains a non-empty value then such a div
will be generated with this class.<br>
Important: in the preview inside the editor, the class will be applied to an image, not a div!</li>
<li id="PublicKey">FCKConfig.<strong>GoogleMaps_PublicKey</strong> : If you are using the editor in a different domain than the final
location of the web, the maps won't work correctly by default. In this situation you must use this setting. First, set the GoogleMaps_Key
to the key of the domain where FCKeditor will be run, and then you have two options:
<ul>
<li>Set an emtpy value for GoogleMaps_PublicKey (FCKConfig.GoogleMaps_PublicKey = '';) this means that when the user wants to
create a map he must supply the key for the final domain. This is useful if you don't know beforehand all the domains where that
installation will be used. Of course, you must explain to your users how to get an API Key</li>
<li>Set the value of the final domain in GoogleMaps_PublicKey. For the user this means no troubles at all, everything works automatically.</li>
</ul>
</ul>
<p>All these values can be set in the <em>fckconfig.js</em> file, a custom js configuration
file, or at the moment of the <a href="http://alfonsoml.blogspot.com/2008/02/adding-configuration-entries-when.html">creation of the FCKeditor instance using any
language</a>.</p>
<h3>5. Use it</h3>
<p align="right">Now empty the cache of your browser and reload the editor, the new button
<img src="../images/mapIcon.gif" alt="Insert GoogleMap" width="16" height="16"> should
be <a href="users.html">ready to use</a>.</p>
<h2>Final notes</h2>
<p>If you find this plugin useful, consider making a donation so it can be further
improved, any amount can help to keep the development running.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
</form>
<p>If you need some special feature for this plugin, or if you need any other kind of plugin
for FCKeditor then <a href="#contact">contact me</a> and we can discuss it</p>
<h2>Disclaimers</h2>
<p>FCKeditor is &copy; FredCK.com</p>
<p>Google, Google Maps and the Google Maps API are all properties of Google.</p>
</body>
</html>

@ -0,0 +1,152 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>GoogleMaps plugin</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Plugin de Mapas Google para FCKeditor</h1>
<div id="languages"> Cambie su idioma
<ul>
<li><a href="install.html" lang="en"><img src="uk.png" alt="English" width="23" height="15" border="0"></a></li>
</ul>
</div>
<h2>Introducción</h2>
<p>Este es un plugin basado en una ventana de dialogo para controlar la inserción
y modificación de <a href="http://maps.google.com">Mapas Google</a> en <a href="http://www.fckeditor.net">FCKeditor</a></p>
<h3 id="contact">Autor:</h3>
<p><a href="mailto:amla70@gmail.com">Alfonso Mart&iacute;nez de Lizarrondo</a></p>
<h3>Patrocinado por:</h3>
<p><a href="http://dynamical.biz">Dynamical.biz</a></p>
<p><a href="http://www.uritec.net">Uritec</a></p>
<p><a href="http://www.incontrolsolutions.com">InControl Solutions</a></p>
<h3>Historial de versiones : </h3>
<ol>
<li>1.0: 25/08/2007. Primera versión.</li>
<li>1.1: 28/08/2007. Ups, no estaba probado en 2.4.3</li>
<li>1.2: 31/08/2007. Nuevo icono por Dynamical.biz. Utilizar IMG en vez de
DIV para mostrar la situación del mapa por el momento.</li>
<li>1.3: 02/09/2007. Documentación completa en HTML para la instalación y para
usuarios. </li>
<li>1.4: 21/09/2007. Utilizar el evento onload para generar el mapa (para evitar problemas con IE), e incluir la llamada a GUnload.
Eliminar automáticamente el icono de la barra si no existe una clave Google correcta </li>
<li>1.5 30/09/2007. Soporte para poder dibujar lineas en el mapa. </li>
<li>1.6 24/10/2007. Soporte de múltiples marcadores.</li>
<li>1.7 03/02/2008. Soporte de los nuevos cuadros de diálogo en FCKeditor 2.6.</li>
<li>1.8 02/05/2008. Soporte de la vista Terreno y recordar el tipo de vista seleccionado. Se usan los mapas estáticos en el editor.</li>
<li>1.9 19/05/2008. Respeta los valores que se pongan de anchura y altura (solo supone que son pixels si se trata de números sin ningún sufijo)<br>
Parámetros opcionales de configuración: <a href="#WrapperClass">GoogleMaps_WrapperClass</a> y <a href="#PublicKey">GoogleMaps_PublicKey</a> (este código propuesto por <a href="http://www.makerweb.it" target="_blank">Makerweb.it</a>) .</li>
<li>1.95 12/09/2008. The preview reflects the real type of the map. It shows also the markers.</li>
</ol>
<p><a href="http://martinezdelizarrondo.com/googlemaps/">Descarga la última versión
y/o información actualizada </a> </p>
<h3>Problemas conocidos :</h3>
<p>El botón de 'Previsualizar' en FCKeditor no funcionará correctamente si hay
algún mapa en el contenido. El problema parece debido a la forma en que la
API de Google Maps realiza la inserción y carga del contenido adicional. </p>
<p>Estos temas en el grupo del API apuntan al mismo problema :<br>
<a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/7849dfd612181b6c/1c3e5f7fb5fa3301">http://groups.google.com/group/Google-Maps-API/browse_thread/thread/7849dfd612181b6c/1c3e5f7fb5fa3301</a> <br>
<a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/89ea5fa4e0a0ccb9/05c364940447891d">http://groups.google.com/group/Google-Maps-API/browse_thread/thread/89ea5fa4e0a0ccb9/05c364940447891d</a> </p>
<p>Una solución para este problema podría ser utilizar el plugin de <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1496110&amp;group_id=75348&amp;atid=737639">Previsualización
mediante el servidor</a> </p>
<h2>Instalación</h2>
<h3>1. Copiar los ficheros</h3>
<p>Extrae los contenidos del zip en tu carpeta de plugins, de forma que quede
como a continuación<br>
<img src="installation.png" alt="Captura de pantalla de la instalación" width="311" height="346" longdesc="#install"></p>
<pre id="install">
editor\
...
js\
lang\
plugins\
...
googlemaps\
fckplugin.js
readme.html
dialog\
docs\
images\
lang\
...
skins\
</pre>
<h3>2. Añadirlo a FCKeditor</h3>
<p>Ahora incluye en tu <em>fckconfig.js</em> o fichero de configuración que estes
usando la siguiente linea:
<code>FCKConfig.Plugins.Add( 'googlemaps', 'de,en,es,fr,it,nl') ;</code></p>
<h3>3. Añadirlo a la barra de botones </h3>
<p>Añade el botón <strong>'googlemaps'</strong> (en minúsculas) a tu barra de
botones:
<code>FCKConfig.ToolbarSets[&quot;Basic&quot;] = [<br>
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink',
'-'<strong>,'googlemaps'</strong>,'-','About']<br>
] ;</code>
</p>
<h3 id="configure">4. Configurar el plugin</h3>
<p>La parte más importante es tu clave para GoogleMaps. Debe estar establecida
correctamente para que el plugin funcione, ya que sino Google no proporcionará
los datos para el mapa. <br>
Debes obtener una para cada servidor donde quieras utilizar el plugin, puedes
obtenerlas gratuitamente aquí tras aceptar las condiciones de uso de los Mapas
Google: <a href="http://www.google.com/apis/maps/signup.html">http://www.google.com/apis/maps/signup.html</a><br>
(Por favor, no hagais preguntas sobre en que sitios se puede usar GoogleMaps
o cómo conseguir la clave, ya que son temas que no están relacionados con el
plugin.)<br>
Por ejemplo, la clave para &quot;localhost&quot; es<br>
<span class="key">ABQIAAAAlXu5Pw6DFAUgqM2wQn01gxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSy5hTGQdsosYD3dz6faZHVrO-02A</span></p>
<p>Una vez que tengas la clave, has de añadirla a tu fichero de configuración:<br>
<code>FCKConfig.GoogleMaps_Key = '<span class="key">ABQIAAAAlXu5Pw6DFAUgqM2wQn01gxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSy5hTGQdsosYD3dz6faZHVrO-02A</span>'
;</code></p>
<p>(recuerda que has de sustituir la clave en verde por la tuya) </p>
<p>Nota: si dejas esa variable como una cadena en blanco entonces el icono no se mostrará (así se puede reutilizar la misma configuración
de la barra para diferentes situaciones y dependiendo de esa variable se mostrará o no, ya que el sistema actual de FCKeditor no permite
el añadir/eliminar plugins o botones de una forma realmente sencilla)</p>
<p>Hay varias opciones que puedes establecer para cambiar los valores por defecto
con los que se crearán los nuevos mapas:</p>
<ul>
<li>FCKConfig.<strong>GoogleMaps_Width</strong> : La anchura del mapa </li>
<li>FCKConfig.<strong>GoogleMaps_Height</strong> : La altura del mapa</li>
<li>FCKConfig.<strong>GoogleMaps_CenterLat</strong> : La latitud del centro </li>
<li>FCKConfig.<strong>GoogleMaps_CenterLon</strong> : La longitud del centro </li>
<li>FCKConfig.<strong>GoogleMaps_Zoom</strong> : El nivel de zoom </li>
<li>FCKConfig.<strong>GoogleMaps_MarkerText</strong> : El texto para el marcador </li>
<li id="WrapperClass">FCKConfig.<strong>GoogleMaps_WrapperClass</strong> : Los mapas Google automaticamente ocupan toda la altura y anchura del div generado, por lo que si quieres mostrar algo de espacio y/o un borde necesitas añadir un div a su alrededor. Si este parámetro no está vacío, entonces se generará ese div con esta clase.<br>
Importante: ¡en la previsualización en el editor la clase se aplicará a una imagen, no a un div!</li>
<li id="PublicKey">FCKConfig.<strong>GoogleMaps_PublicKey</strong> : Si estás usando el editor en un dominio diferente a la localización final de la web, los mapas no funcionarán correctamente con la configuración por defecto. En esta situación puedes usar este parámetro. Primero, establece en GoogleMaps_Key la clave del dominio donde funcionará FCKeditor y a continuación tienes dos opciones,:
<ul>
<li>Poner un valor en blanco para GoogleMaps_PublicKey (FCKConfig.GoogleMaps_PublicKey = '';) esto significa que el usuario debe proporcionar la clave para el dominio final. Esto es útil si no se sabe de antemano todos los dominios donde esta instalación será usada. Por supuesto, debes explicarle a los usuarios cómo conseguir la clave API correspondiente</li>
<li>Establecer en GoogleMaps_PublicKey la clave adecuada para el dominio final. Para el usuario esto supone que todo funcionará automáticamente sin ningún problema.</li>
</ul>
</ul>
<p>Estos valores pueden establecerse en el fichero <em>fckconfig.js</em>,
un fichero de configuración personalizado o en el <a href="http://alfonsoml.blogspot.com/2008/02/adding-configuration-entries-when.html">momento de creación del FCKeditor
utilizando cualquier lenguaje.</a></p>
<h3>5. Úsalo </h3>
<p align="right">Ahora vacía la caché del navegador, recarga el editor y el nuevo
botón
<img src="../images/mapIcon.gif" alt="Insertar mapa Google" width="16" height="16"> debería
estar <a href="users_es.html">listo para usarse </a>.</p>
<h2>Notas finales</h2>
<p>Si ves que este plugin es útil, considera la opción de realizar una donación
para que pueda ser mejorado, cualquier cantidad ayudará a que el desarrollo
siga adelante.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
</form>
<p>Si necesitas alguna funcionalidad especial para este plugin, o si necesitas
cualquier otro plugin para FCKeditor, <a href="#contact">contacta conmigo</a> y hablaremos sobre el
tema</p>
<h2>Avisos legales </h2>
<p>FCKeditor &copy; FredCK.com</p>
<p>Google, Google Maps y el API de Google Maps son propiedades de Google.</p>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@ -0,0 +1,59 @@
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 90%;
}
h1 {
text-align:center;
font-size:180%;
}
h2 {
border-bottom:2px solid #CCC;
margin:1em 0 0.4em 0;
}
h3 {
margin-bottom:0.4em;
}
p {
margin:0 0 1em 1em;
text-align:justify;
}
ol {
margin:0 0 1.2em 1em;
padding:0;
list-style-type:none;
}
ol li {
margin:0.2em 0;
}
pre, code {
font-size:100%;
font-family:"Courier New", Courier, mono;
background-color: #CCCCCC;
border:1px solid #999;
padding:0.2em 1em;
margin: 0.4em 0;
display:block;
white-space: pre;
overflow: auto;
}
form {
margin:0 0 0 1em;
}
span.key {
color: #006600;
}
#install {
display:none
}
#languages ul {
display:inline;
list-style-type:none;
margin:0;
padding:0;
}
#languages li {
display:inline;
margin:0;
padding:0;
vertical-align:bottom;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>GoogleMaps plugin</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Insertion of Google Maps in FCKeditor</h1>
<div id="languages"> Change your language
<ul>
<li><a href="users_es.html" lang="es"><img src="es.png" alt="Español" width="23" height="15" border="0"></a></li>
</ul>
</div>
<h2>Introduction</h2>
<p>This dialog allows to handle the insertion and modification of <a href="http://maps.google.com">Google
Maps</a> in <a href="http://www.fckeditor.net">FCKeditor</a></p>
<h2>Usage</h2>
<p>Press the <img src="../images/mapIcon.gif" alt="Insert GoogleMap" width="16" height="16"> button
in the FCKeditor toolbar, and a new dialog will open allowing to configure
the parameters of the map that you want to show.</p>
<p><img src="user_dialog1.png" width="427" height="404" border="0" usemap="#MapMap">
<map name="MapMap">
<area shape="rect" coords="10,62,157,86" href="#MapDimensions" alt="Map dimensions controls">
<area shape="rect" coords="158,62,275,86" href="#Zoom" alt="Zoom dropdown">
<area shape="rect" coords="10,87,264,112" href="#MapPosition" alt="Map center controls">
<area shape="rect" coords="197,202,229,248" href="#MarkerPosition" alt="Marker">
<area shape="rect" coords="22,184,52,225" href="#Zoom" alt="Zoom widget">
<area shape="rect" coords="17,126,57,184" href="#MapPosition" alt="Map position widget">
</map>
</p>
<p><img src="user_dialog2.png" width="426" height="93" border="0" usemap="#MapMap2">
<map name="MapMap2">
<area shape="rect" coords="5,31,374,73" href="#Search" alt="Search controls">
</map>
</p>
<p><img src="user_dialog3.png" width="425" height="93" border="0" usemap="#Map">
<map name="Map">
<area shape="rect" coords="8,35,32,56" href="#AddMarker" alt="Marker controls">
</map>
</p>
<p><img src="user_dialog4.png" width="425" height="85" border="0" usemap="#Map2">
<map name="Map2">
<area shape="rect" coords="138,5,171,24" href="#Line">
<area shape="rect" coords="8,30,416,68" href="#Line">
</map></p>
<h3 id="MapDimensions">Map dimensions</h3>
<p>With these inputs you can control the dimensions of the map as they will appear
in your final page. You can also drag and resize the placeholder image that
appears while you are in the editor.</p>
<h3 id="Zoom">Map zoom</h3>
<p>You can control this way the level of zoom of the map. You can use either
the top dropdown or the embeded + and - controls in the map.</p>
<h3 id="MapPosition">Map center</h3>
<p>These inputs set the center of the map. You can also use the arrow buttons
embeded in the map or even drag and drop the map itself.</p>
<h3 id="Search">Location search</h3>
<p>Input here the location that you want to search and if it is properly found
then the map will re-center automatically and add a marker to
that point. To be able to find what you want separate each item with a comma:
&quot;street, city, country&quot; </p>
<h3 id="AddMarker">Add Marker</h3>
<p>By pressing this button you can add a marker at any place in the map. It's
properties window will open and you can change the text or delete the marker.
You can the placement of any marker dragging it around.</p>
<p><img src="marker.png" alt="edit marker" width="403" height="243" border="0" usemap="#Map3">
<map name="Map3">
<area shape="rect" coords="69,61,318,106" href="#MarkerText">
</map>
</p>
<h3 id="MarkerText">Marker text</h3>
<p>This is the text that will appear if the visitor clicks on the marker (you
can test it in the Map tab). </p>
<h3 id="Line">Line</h3>
<p>With this tab you can drag a polyline accross the map, and adjust each of
its points dragging the markers that appear while you are here. </p>
<h2>Additional Info</h2>
<p>When you go close the dialog, a placeholder item will be added to your content
representing the current map. It will have the proper dimensions and a black
border around it, and it will feature a Google Maps logo at the center.</p>
<p>You can click to select it and drag one of the corners to resize it, but remember
that the center of the map and the position of the marker won't change, so
you might need to check again in the editing dialog that everything is fine </p>
<p> <img src="preview.png" alt="preview in the editor" width="308" height="203"></p>
<p>You can add to your page as many maps as you want, the system is prepared
to work with various maps at the same time.</p>
<p>To edit an existing map you can select it and then click again the toolbar
button, or use the entry in the context menu, or even just double click it.
Whatever you want.</p>
<p>Existe un problema por el cual si intentas hacer una previsualización en FCKeditor
de una página que contiene un mapa, la previsualización no se mostrará</p>
<h2>Final notes</h2>
<p>If you find this plugin useful, consider making a donation so it can be further
improved, any amount can help to keep the development running.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
</form>
<p>If you need some special feature for this plugin, or if you need any other kind of plugin
for FCKeditor then contact me and we can discuss it: amla70 at gmail dot com</p>
<h2>Disclaimers</h2>
<p>FCKeditor is &copy; FredCK.com</p>
<p>Google, Google Maps and the Google Maps API are all properties of Google.</p>
</body>
</html>

@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>GoogleMaps plugin</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Edición de mapas Google en FCKeditor</h1>
<div id="languages"> Cambie su idioma
<ul>
<li><a href="users.html" lang="en"><img src="uk.png" alt="English" width="23" height="15" border="0"></a></li>
</ul>
</div>
<h2>Introducción</h2>
<p>Esta ventana permite insertar y modificar <a href="http://maps.google.com">Mapas
Google</a> en <a href="http://www.fckeditor.net">FCKeditor</a></p>
<h2>Uso</h2>
<p>Pulsa el botón <img src="../images/mapIcon.gif" alt="Insert GoogleMap" width="16" height="16"> en
la barra de botones de FCKeditor, y se abrirá una ventana para configurar los
parámetros del mapa que quieres mostrar.</p>
<p><img src="user_dialog1.png" width="427" height="404" border="0" usemap="#MapMap">
<map name="MapMap">
<area shape="rect" coords="10,62,157,86" href="#MapDimensions" alt="Map dimensions controls">
<area shape="rect" coords="158,62,275,86" href="#Zoom" alt="Zoom dropdown">
<area shape="rect" coords="10,87,264,112" href="#MapPosition" alt="Map center controls">
<area shape="rect" coords="197,202,229,248" href="#MarkerPosition" alt="Marker">
<area shape="rect" coords="22,184,52,225" href="#Zoom" alt="Zoom widget">
<area shape="rect" coords="17,126,57,184" href="#MapPosition" alt="Map position widget">
</map>
</p>
<p><img src="user_dialog2.png" width="426" height="93" border="0" usemap="#MapMap2">
<map name="MapMap2">
<area shape="rect" coords="5,31,374,73" href="#Search" alt="Search controls">
</map>
</p>
<p><img src="user_dialog3.png" width="425" height="93" border="0" usemap="#Map">
<map name="Map">
<area shape="rect" coords="8,35,32,56" href="#AddMarker" alt="Marker controls">
</map>
</p>
<p><img src="user_dialog4.png" width="425" height="85" border="0" usemap="#Map2">
<map name="Map2">
<area shape="rect" coords="138,5,171,24" href="#Line">
<area shape="rect" coords="8,30,416,68" href="#Line">
</map></p>
<h3 id="MapDimensions">Dimensiones del mapa</h3>
<p>Con estas casillas puedes controlar las dimensiones del mapa que aparecerá
en la página web. También es posible redimensionar directamente el elemento
que aparece durante la edición de la página para ajustar las dimensiones.</p>
<h3 id="Zoom">Zoom del mapa </h3>
<p>Permite controlar el nivel de zoom del mapa. Puede usarse el desplegable superior
o los controles + y - incrustados en el mapa.</p>
<h3 id="MapPosition">Centro del mapa</h3>
<p>Estas casillas establecen cual será el centro del mapa. También es posible
modificarlo mediante las flechas que aparecen incrustadas en el mapa inferior
o incluso hacer click y desplazarlo.</p>
<h3 id="Search">Búsqueda de direcciones</h3>
<p>Escribe aquí la dirección que deseas buscar, y si se encuentra el mapa se
centrará automáticamente en esas coordenadas y un marcador aparecerá en el
punto. Para poder hacer búsquedas adecuadamente, recuerda que hay que separar
cada elemento con una coma: &quot;calle, ciudad, provincia, país&quot;</p>
<h3 id="AddMarker">Añadir marcador</h3>
<p>Al pulsar este botón podrás añadir un marcador en cualquier punto del mapa. Se abrirá su ventana de propiedades y ahí puedes ajustar el texto o borrar el marcador. Puedes ajustar la posición de un marcador arrastrandolo.</p>
<p><img src="marker.png" alt="editar marcador" width="403" height="243" border="0" usemap="#Map3">
<map name="Map3">
<area shape="rect" coords="69,61,318,106" href="#MarkerText">
</map>
</p>
<h3 id="MarkerText">Texto del marcador</h3>
<p>Este es el texto que se mostrará cuando los visitantes hagan click en el marcador (puedes probarlo en la pestaña Mapa).</p>
<h3 id="Line">Lineas</h3>
<p>Aquí puedes dibujar una linea o ruta sobre el mapa, y ajustar cada uno de sus puntos mediante los minimarcadores que se muestran mientras se está aquí. </p>
<h2>Información adicional</h2>
<p>Cuando cierres la ventana, se añadirá en el contenido del editor un elemento
para representar el mapa. Este elemento tendrá las dimensiones apropiadas con
un borde negro alrededor suya y el logo de Google Maps en el centro.</p>
<p>Puedes hacer click para seleccionarlo y arrastrar una de las esquinas para
redimensionarlo, pero recuerda que el centro del mapa y la posición del marcador
no cambiarán, por lo que puede ser conveniente abrir de nuevo la ventana de
edición para verificar que todo está bien. </p>
<p> <img src="preview.png" alt="previsualización en el editor" width="308" height="203"></p>
<p>Puedes incluir en la página tantos mapas como desees, el funcionamiento no
está limitado a un número determinado de mapas.</p>
<p>Para editar un mapa que ya existe simplemente lo puedes seleccionar y hacer
click otra vez en el botón, o hacer click con el botón derecho y escoger la
opción ahí de editar el mapa, o hacer doble click en él. Lo que más te guste.</p>
<p>Existe un problema por el cual si intentas hacer una previsualización en FCKeditor
de una página que contiene un mapa, la previsualización no se mostrará normalmente. </p>
<h2>Notas finales</h2>
<p>Si ves que este plugin es útil, considera la opción de realizar una donación
para que pueda ser mejorado, cualquier cantidad ayudará a que el desarrollo
siga adelante.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
</form>
<p>Si necesitas alguna funcionalidad especial para este plugin, o si necesitas
cualquier otro plugin para FCKeditor, <a href="#contact">contacta conmigo</a> y hablaremos sobre el
tema</p>
<h2>Avisos legales </h2>
<p>FCKeditor &copy; FredCK.com</p>
<p>Google, Google Maps y el API de Google Maps son propiedades de Google.</p>
</body>
</html>

@ -0,0 +1,752 @@
/*
GoogleMaps Plugin for FCKeditor
Dialog plugin to handle insertion and modification of Google Maps in FCKeditor
File Author:
Alfonso Martinez de Lizarrondo amla70 at gmail dot com
version 1.97
See readme.html
*/
// Check that the Google key is defined
if ( typeof( FCKConfig.GoogleMaps_Key ) != 'string')
{
alert( 'Error.\r\nThe configuration doesn\'t contain the Google Maps key.\r\n' +
'Please read the Configuration section.') ;
window.open(FCKPlugins.Items['googlemaps'].Path + 'docs/' + FCKLang.GMapsHelpFile + '#configure');
}
// If it's empty automatically remove the button from any toolbar.
if ( !FCKConfig.GoogleMaps_Key || FCKConfig.GoogleMaps_Key.length === 0)
{
for( var name in FCKConfig.ToolbarSets )
RemoveButtonFromToolbarSet( FCKConfig.ToolbarSets[name], 'googlemaps' ) ;
}
/**
Helper function
It does remove a button from an toolbarset.
It's better than leaving it disabled as it will avoid questions about why some button is always disabled.
*/
function RemoveButtonFromToolbarSet(ToolbarSet, CommandName)
{
if (!ToolbarSet)
return;
for ( var x = 0 ; x < ToolbarSet.length ; x++ )
{
var oToolbarItems = ToolbarSet[x] ;
// If the configuration for the toolbar is missing some element or has any extra comma
// this item won't be valid, so skip it and keep on processing.
if ( !oToolbarItems )
continue ;
if ( typeof( oToolbarItems ) == 'object' )
{
for ( var j = 0 ; j < oToolbarItems.length ; j++ )
{
if ( oToolbarItems[j] == CommandName)
{
oToolbarItems.splice(j, 1);
ToolbarSet[x] = oToolbarItems ;
return;
}
}
}
}
}
// Toolbar button
// Register the related command.
FCKCommands.RegisterCommand( 'googlemaps', new FCKDialogCommand( 'googlemaps', FCKLang.DlgGMapsTitle, FCKPlugins.Items['googlemaps'].Path + 'dialog/googleMaps.html', 450, 428 ) ) ;
// Create the "googlemaps" toolbar button.
var oGoogleMapsButton = new FCKToolbarButton( 'googlemaps', FCKLang.GMapsBtn, FCKLang.GMapsBtnTooltip) ;
oGoogleMapsButton.IconPath = FCKPlugins.Items['googlemaps'].Path + 'images/mapIcon.gif' ;
FCKToolbarItems.RegisterItem( 'googlemaps', oGoogleMapsButton ) ;
// Detection of existing maps
/**
FCKCommentsProcessor
---------------------------
It's run after a document has been loaded, it detects all the protected source elements
In order to use it, you add your comment parser with
FCKCommentsProcessor.AddParser( function )
*/
if (typeof FCKCommentsProcessor === 'undefined')
{
var FCKCommentsProcessor = FCKDocumentProcessor.AppendNew() ;
FCKCommentsProcessor.ProcessDocument = function( oDoc )
{
if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
return ;
if ( !oDoc )
return ;
//Find all the comments: <!--{PS..0}-->
//try to choose the best approach according to the browser:
if ( oDoc.evaluate )
this.findCommentsXPath( oDoc );
else
{
if (oDoc.all)
this.findCommentsIE( oDoc.body ) ;
else
this.findComments( oDoc.body ) ;
}
}
FCKCommentsProcessor.findCommentsXPath = function(oDoc) {
var nodesSnapshot = oDoc.evaluate('//body//comment()', oDoc.body, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
for ( var i=0 ; i < nodesSnapshot.snapshotLength; i++ )
{
this.parseComment( nodesSnapshot.snapshotItem(i) ) ;
}
}
FCKCommentsProcessor.findCommentsIE = function(oNode) {
var aComments = oNode.getElementsByTagName( '!' );
for(var i=aComments.length-1; i >=0 ; i--)
{
var comment = aComments[i] ;
if (comment.nodeType == 8 ) // oNode.COMMENT_NODE)
this.parseComment( comment ) ;
}
}
// Fallback function, iterate all the nodes and its children searching for comments.
FCKCommentsProcessor.findComments = function( oNode )
{
if (oNode.nodeType == 8 ) // oNode.COMMENT_NODE)
{
this.parseComment( oNode ) ;
}
else
{
if (oNode.hasChildNodes())
{
var children = oNode.childNodes ;
for (var i = children.length-1; i >=0 ; i--)
this.findComments( children[ i ] );
}
}
}
// We get a comment node
// Check that it's one that we are interested on:
FCKCommentsProcessor.parseComment = function( oNode )
{
var value = oNode.nodeValue ;
// Difference between 2.4.3 and 2.5
var prefix = ( FCKConfig.ProtectedSource._CodeTag || 'PS\\.\\.' ) ;
var regex = new RegExp( "\\{" + prefix + "(\\d+)\\}", "g" ) ;
if ( regex.test( value ) )
{
var index = RegExp.$1 ;
var content = FCKTempBin.Elements[ index ] ;
// Now call the registered parser handlers.
var oCalls = this.ParserHandlers ;
if ( oCalls )
{
for ( var i = 0 ; i < oCalls.length ; i++ )
oCalls[ i ]( oNode, content, index ) ;
}
}
}
/**
The users of the object will add a parser here, the callback function gets two parameters:
oNode: it's the node in the editorDocument that holds the position of our content
oContent: it's the node (removed from the document) that holds the original contents
index: the reference in the FCKTempBin of our content
*/
FCKCommentsProcessor.AddParser = function( handlerFunction )
{
if ( !this.ParserHandlers )
this.ParserHandlers = [ handlerFunction ] ;
else
{
// Check that the event handler isn't already registered with the same listener
// It doesn't detect function pointers belonging to an object (at least in Gecko)
if ( this.ParserHandlers.IndexOf( handlerFunction ) == -1 )
this.ParserHandlers.push( handlerFunction ) ;
}
}
}
/**
END of FCKCommentsProcessor
---------------------------
*/
// Check if the comment it's one of our scripts:
var GoogleMaps_CommentsProcessorParser = function( oNode, oContent, index)
{
if ( FCK.GoogleMapsHandler.detectMapScript( oContent ) )
{
var oMap = FCK.GoogleMapsHandler.createNew() ;
oMap.parse( oContent ) ;
oMap.createHtmlElement( oNode, index ) ;
}
else
{
if ( FCK.GoogleMapsHandler.detectGoogleScript( oContent ) )
oNode.parentNode.removeChild( oNode );
}
}
FCKCommentsProcessor.AddParser( GoogleMaps_CommentsProcessorParser );
// Context menu
FCK.ContextMenu.RegisterListener( {
AddItems : function( menu, tag, tagName )
{
// under what circumstances do we display this option
if ( tagName == 'IMG' && tag.getAttribute( 'MapNumber' ) )
{
// No other options:
menu.RemoveAllItems() ;
// the command needs the registered command name, the title for the context menu, and the icon path
menu.AddItem( 'googlemaps', FCKLang.DlgGMapsTitle, oGoogleMapsButton.IconPath ) ;
}
}}
);
// Double click
FCK.RegisterDoubleClickHandler( editMap, 'IMG' ) ;
function editMap( oNode )
{
if ( !oNode.getAttribute( 'MapNumber' ))
return ;
FCK.Commands.GetCommand( 'googlemaps' ).Execute() ;
}
// Object that handles the common functions about all the maps
FCK.GoogleMapsHandler = {
// Object to store a reference to each map
maps: {},
getMap: function(id){
return this.maps[id];
},
// Verify that the node is a script generated by this plugin.
detectMapScript: function( script )
{
// We only know about version 1:
if ( !(/FCK googlemaps v1\.(\d+)/.test(script)) )
return false;
return true
},
// Self-executed function, we want to run it once at initialization only.
// Public key that will be used for the generated maps,
// while we are editing we will use only FCKConfig.GoogleMaps_Key
publicKey : function() {
// if FCKConfig.GoogleMaps_PublicKey is set to something, then use it
if ( FCKConfig.GoogleMaps_PublicKey )
return FCKConfig.GoogleMaps_PublicKey ;
// else we will use GoogleMaps_Key for both the public and private side.
return FCKConfig.GoogleMaps_Key ;
}(),
// Detects both the google script as well as our ending block
// both must be removed and then added later only if neccesary
detectGoogleScript: function( script )
{
// Our final script
if (/FCK googlemapsEnd v1\./.test(script) )
return true ;
// If it is the Google Maps script, get the public key from here:
if ( !/^<script src="http:\/\/maps\.google\.com\/.*key=(.*)("|&)/.test(script) )
return false;
this.publicKey = RegExp.$1 ;
return ( true ) ;
},
GenerateGoogleScript : function()
{
return '\r\n<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=' + FCKConfig.GoogleMaps_Key + '" type="text/javascript" charset="utf-8"></script>' ;
},
// This can be called from the dialog
createNew: function()
{
var map = new FCKGoogleMap() ;
this.maps[ map.number ] = map;
return map;
},
BuildEndingScript: function()
{
var versionMarker = '// FCK googlemapsEnd v1.97';
var aScript = [] ;
aScript.push('\r\n<script type="text/javascript">') ;
aScript.push( versionMarker ) ;
aScript.push('function AddMarkers( map, aPoints )');
aScript.push('{');
aScript.push(' for (var i=0; i<aPoints.length ; i++)');
aScript.push(' {');
aScript.push(' var point = aPoints[i] ;');
aScript.push(' map.addOverlay( createMarker(new GLatLng(point.lat, point.lon), point.text) );');
aScript.push(' }');
aScript.push('}');
aScript.push('function createMarker( point, html )');
aScript.push('{');
aScript.push(' var marker = new GMarker(point);');
aScript.push(' GEvent.addListener(marker, "click", function() {');
aScript.push(' marker.openInfoWindowHtml(html, {maxWidth:200});');
aScript.push(' });');
aScript.push(' return marker;');
aScript.push('}');
var maps = this.CreatedMapsNames ;
for (var i = 0; i < maps.length; i++)
{
// Append event listeners instead of replacing previous ones
aScript.push('if (window.addEventListener) {');
aScript.push(' window.addEventListener("load", CreateGMap' + maps[i] + ', false);');
aScript.push('} else {');
aScript.push(' window.attachEvent("onload", CreateGMap' + maps[i] + ');');
aScript.push('}');
}
aScript.push('onunload = GUnload ;');
aScript.push('</script>');
return aScript.join('\r\n');
},
// We will use this to track the number of maps that are generated
// This way we know if we must add the Google Script or not.
// We store their names so they are called properly from BuildEndingScript
CreatedMapsNames : [],
// Function that will be injected into the normal core
GetXHTMLAfter: function( node, includeNode, format, Result )
{
if (FCK.GoogleMapsHandler.CreatedMapsNames.length > 0)
{
Result += FCK.GoogleMapsHandler.BuildEndingScript() ;
}
// Reset the counter each time the GetXHTML function is called
FCK.GoogleMapsHandler.CreatedMapsNames = [];
return Result ;
},
// Store any previous processor so nothing breaks
previousProcessor: FCKXHtml.TagProcessors[ 'img' ]
}
// Our object that will handle parsing of the script and creating the new one.
var FCKGoogleMap = function()
{
var now = new Date() ;
this.number = '' + now.getFullYear() + now.getMonth() + now.getDate() + now.getHours() + now.getMinutes() + now.getSeconds() ;
this.width = FCKConfig.GoogleMaps_Width || 400 ;
this.height = FCKConfig.GoogleMaps_Height || 240 ;
this.centerLat = FCKConfig.GoogleMaps_CenterLat || 37.4419 ;
this.centerLon = FCKConfig.GoogleMaps_CenterLon || -122.1419 ;
this.zoom = FCKConfig.GoogleMaps_Zoom || 11 ;
this.markerPoints = [] ;
this.LinePoints = '' ;
this.LineLevels = '' ;
this.mapType = 0 ;
this.WrapperClass = FCKConfig.GoogleMaps_WrapperClass || '' ;
}
FCKGoogleMap.prototype.createHtmlElement = function( oReplacedNode, index)
{
var oFakeNode = FCK.EditorDocument.createElement( 'IMG' ) ;
// Are we creating a new map?
if ( !oReplacedNode )
{
index = FCKTempBin.AddElement( this.BuildScript() ) ;
var prefix = ( FCKConfig.ProtectedSource._CodeTag || 'PS..' ) ;
oReplacedNode = FCK.EditorDocument.createComment( '{' + prefix + index + '}' ) ;
FCK.InsertElement(oReplacedNode);
}
oFakeNode.contentEditable = false ;
// oFakeNode.setAttribute( '_fckfakelement', 'true', 0 ) ;
oFakeNode.setAttribute( '_fckrealelement', FCKTempBin.AddElement( oReplacedNode ), 0 ) ;
oFakeNode.setAttribute( '_fckBinNode', index, 0 ) ;
oFakeNode.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
oFakeNode.style.display = 'block' ;
oFakeNode.style.border = '1px solid black' ;
oFakeNode.style.background = 'white center center url("' + FCKPlugins.Items['googlemaps'].Path + 'images/maps_res_logo.png' + '") no-repeat' ;
oFakeNode.setAttribute("MapNumber", this.number, 0) ;
oReplacedNode.parentNode.insertBefore( oFakeNode, oReplacedNode ) ;
oReplacedNode.parentNode.removeChild( oReplacedNode ) ;
// dimensions
this.updateHTMLElement( oFakeNode );
return oFakeNode ;
}
FCKGoogleMap.prototype.updateScript = function( oFakeNode )
{
this.updateDimensions( oFakeNode ) ;
var index = oFakeNode.getAttribute( '_fckBinNode' );
FCKTempBin.Elements[ index ] = this.BuildScript() ;
}
FCKGoogleMap.prototype.updateHTMLElement = function( oFakeNode )
{
oFakeNode.width = this.width ;
oFakeNode.height = this.height ;
// Static maps preview :-)
oFakeNode.src = this.generateStaticMap() ;
oFakeNode.style.border = 0 ;
// The wrapper class is applied to the IMG not to a wrapping DIV !!!
if ( this.WrapperClass !== '')
oFakeNode.className = this.WrapperClass ;
}
FCKGoogleMap.prototype.generateStaticMap = function()
{
var w = Math.min(this.width, 640);
var h = Math.min(this.height, 640);
var staticMapTypes = ['roadmap', 'satellite', 'hybrid', 'terrain'] ;
return 'http://maps.google.com/staticmap?center=' + this.centerLat + ',' + this.centerLon
+ '&zoom=' + this.zoom + '&size=' + w + 'x' + h
+ '&maptype=' + staticMapTypes[ this.mapType ]
+ this.generateStaticMarkers()
+ '&key=' + FCKConfig.GoogleMaps_Key
}
FCKGoogleMap.prototype.generateStaticMarkers = function()
{
if (this.markerPoints.length==0)
return '';
var aPoints = [];
for (var i=0; i<this.markerPoints.length ; i++)
{
var point = this.markerPoints[i] ;
aPoints.push(point.lat + ',' + point.lon);
}
return ('&markers=' + aPoints.join('|') );
}
// Paths: http://code.google.com/p/gmaps-api-issues/issues/detail?id=205
// Read the dimensions back from the fake node (the user might have manually resized it)
FCKGoogleMap.prototype.updateDimensions = function( oFakeNode )
{
var iWidth, iHeight ;
var regexSize = /^\s*(\d+)px\s*$/i ;
if ( oFakeNode.style.width )
{
var aMatchW = oFakeNode.style.width.match( regexSize ) ;
if ( aMatchW )
{
iWidth = aMatchW[1] ;
oFakeNode.style.width = '' ;
oFakeNode.width = iWidth ;
}
}
if ( oFakeNode.style.height )
{
var aMatchH = oFakeNode.style.height.match( regexSize ) ;
if ( aMatchH )
{
iHeight = aMatchH[1] ;
oFakeNode.style.height = '' ;
oFakeNode.height = iHeight ;
}
}
this.width = iWidth ? iWidth : oFakeNode.width ;
this.height = iHeight ? iHeight : oFakeNode.height ;
}
FCKGoogleMap.prototype.decodeText = function(string)
{
return string.replace(/<\\\//g, "</").replace(/\\n/g, "\n").replace(/\\'/g, "'").replace(/\\\\/g, "\\");
}
FCKGoogleMap.prototype.encodeText = function(string)
{
return string.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/\n/g, "\\n").replace(/<\//g, "<\\/");
}
FCKGoogleMap.prototype.parse = function( script )
{
// We only know about version 1:
if ( !(/FCK googlemaps v1\.(\d+)/.test(script)) )
return false;
var version = parseInt(RegExp.$1, 10) ;
// dimensions:
// document.writeln('<div id="gmap1" style="width: 544px; height: 350px;">.</div>');
var regexpDimensions = /<div id="gmap(\d+)" style="width\:\s*(\d+)px; height\:\s*(\d+)px;">/ ;
if (regexpDimensions.test( script ) )
{
delete FCK.GoogleMapsHandler.maps[this.number] ;
this.number = RegExp.$1 ;
FCK.GoogleMapsHandler.maps[this.number] = this ;
this.width = RegExp.$2 ;
this.height = RegExp.$3 ;
}
// map.setCenter(new GLatLng(42.4298,-8.07756), 8);
var regexpPosition = /map\.setCenter\(new GLatLng\((-?\d{1,3}\.\d{1,6}),(-?\d{1,3}\.\d{1,6})\), (\d{1,2})\);/ ;
if (regexpPosition.test( script ) )
{
this.centerLat = RegExp.$1 ;
this.centerLon = RegExp.$2 ;
this.zoom = RegExp.$3 ;
}
// v <= 1.5
if ( version<=5 )
{
// var text = 'En O Carballino ha estado la d\'elegacion diplomatica japonesa';
var markerText, markerLat=0, markerLon=0;
var regexpText = /var text\s*=\s*("|')(.*)\1;\s*\n/ ;
if (regexpText.test( script ) )
{
markerText = RegExp.$2 ;
}
// var point = new GLatLng(42.4298,-8.07756);
var regexpMarker = /var point\s*=\s*new GLatLng\((-?\d{1,3}\.\d{1,6}),(-?\d{1,3}\.\d{1,6})\)/ ;
if (regexpMarker.test( script ) )
{
markerLat = RegExp.$1 ;
markerLon = RegExp.$2 ;
}
if (markerLat!=0 && markerLon!=0)
this.markerPoints.push( {lat:markerLat, lon:markerLon, text:this.decodeText(markerText)} ) ;
}
else
{
// v > 1.5. multiple points.
// AddMarkers( [{lat:37.45088, lon:-122.21123, text:'Write your text'}] ) ;
var regexpMarkers = /\{lat\:(-?\d{1,3}\.\d{1,6}),\s*lon\:(-?\d{1,3}\.\d{1,6}),\s*text\:("|')(.*)\3}(?:,|])/ ;
var point;
var sampleText = script ;
var startIndex = 0;
var totalLength = sampleText.length;
var result, pos;
while (startIndex != totalLength) {
result = regexpMarkers.exec(sampleText);
if (result && result.length > 0) {
pos = sampleText.indexOf(result[0]);
startIndex += pos;
this.markerPoints.push( {lat:result[1], lon:result[2], text:this.decodeText(result[4])} ) ;
sampleText = sampleText.substr(pos + result[0].length);
startIndex += result[0].length;
} else {
break;
}
}
/*
while (result = regexpMarkers.exec( script ) )
{
this.markerPoints.push( {lat:result[1], lon:result[2], text:result[4]} ) ;
}
*/
}
// var encodedPoints = "iuowFf{kbMzH}N`IbJb@zBpYzO{dAvfF{LwDyN`_@`NzKqB|Ec@|L}BKmBbCoPjrBeEdy@uJ`Mn@zoAer@bjA~Xz{JczBa]pIps@de@tW}rCdxSwhPl`XgikCl{soA{dLdAaaF~cCyxCk_Aao@jp@kEvnCgoJ`]y[pVguKhCkUflAwrEzKk@yzCv^k@?mI";
var regexpLinePoints = /var encodedPoints\s*=\s*("|')(.*)\1;\s*\n/ ;
if (regexpLinePoints.test( script ) )
{
this.LinePoints = RegExp.$2 ;
}
// var encodedLevels = "B????????????????????????????????????B";
var regexpLineLevels = /var encodedLevels\s*=\s*("|')(.*)\1;\s*\n/ ;
if (regexpLineLevels.test( script ) )
{
this.LineLevels = RegExp.$2 ;
}
// 1.8 mapType
// map.setMapType( allMapTypes[ 1 ] );
var regexpMapType = /setMapType\([^\[]*\[\s*(\d+)\s*\]\s*\)/ ;
if (regexpMapType.test( script ) )
{
this.mapType = RegExp.$1 ;
}
// 1.9 wrapper div with custom class
if ( version >= 9 )
{
var regexpWrapper = /<div class=("|')(.*)\1.*\/\/wrapper/ ;
if (regexpWrapper.test( script ) )
this.WrapperClass = RegExp.$2 ;
else
this.WrapperClass = '' ;
}
return true;
}
FCKGoogleMap.prototype.BuildScript = function()
{
var versionMarker = '// FCK googlemaps v1.97' ;
var aScript = [] ;
aScript.push('\r\n<script type="text/javascript">') ;
aScript.push( versionMarker ) ;
if ( this.WrapperClass !== '')
aScript.push('document.write(\'<div class="' + this.WrapperClass + '">\'); //wrapper');
aScript.push('document.write(\'<div id="gmap' + this.number + '" style="width:' + this.width + 'px; height:' + this.height + 'px;">.<\\\/div>\');');
if ( this.WrapperClass !== '')
aScript.push('document.write(\'<\\\/div>\'); ');
aScript.push('function CreateGMap' + this.number + '() {');
aScript.push(' if(!GBrowserIsCompatible()) return;');
aScript.push(' var allMapTypes = [G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP, G_PHYSICAL_MAP] ;');
aScript.push(' var map = new GMap2(document.getElementById("gmap' + this.number + '"), {mapTypes:allMapTypes});');
aScript.push(' map.setCenter(new GLatLng(' + this.centerLat + ',' + this.centerLon + '), ' + this.zoom + ');');
aScript.push(' map.setMapType( allMapTypes[ ' + this.mapType + ' ] );');
aScript.push(' map.addControl(new GSmallMapControl());');
aScript.push(' map.addControl(new GMapTypeControl());');
var aPoints = [];
for (var i=0; i<this.markerPoints.length ; i++)
{
var point = this.markerPoints[i] ;
aPoints.push('{lat:' + point.lat + ', lon:' + point.lon + ', text:\'' + this.encodeText(point.text) + '\'}');
}
aScript.push(' AddMarkers( map, [' + aPoints.join(',\r\n') + '] ) ;') ;
if ((this.LinePoints !== '') && (this.LineLevels !== '' ))
{
aScript.push('var encodedPoints = "' + this.LinePoints + '";');
aScript.push('var encodedLevels = "' + this.LineLevels + '";');
aScript.push('');
aScript.push('var encodedPolyline = new GPolyline.fromEncoded({');
aScript.push(' color: "#3333cc",');
aScript.push(' weight: 5,');
aScript.push(' points: encodedPoints,');
aScript.push(' levels: encodedLevels,');
aScript.push(' zoomFactor: 32,');
aScript.push(' numLevels: 4');
aScript.push(' });');
aScript.push('map.addOverlay(encodedPolyline);');
}
aScript.push('}');
aScript.push('</script>');
return aScript.join('\r\n');
}
// Modifications of the core routines of FCKeditor:
FCKXHtml.GetXHTML = Inject(FCKXHtml.GetXHTML, null, FCK.GoogleMapsHandler.GetXHTMLAfter ) ;
FCKXHtml.TagProcessors.img = function( node, htmlNode, xmlNode )
{
if ( htmlNode.getAttribute( 'MapNumber' ) )
{
var oMap = FCK.GoogleMapsHandler.getMap( htmlNode.getAttribute( 'MapNumber' ) ) ;
FCK.GoogleMapsHandler.CreatedMapsNames.push( oMap.number ) ;
oMap.updateScript( htmlNode );
node = FCK.GetRealElement( htmlNode ) ;
if ( FCK.GoogleMapsHandler.CreatedMapsNames.length == 1 )
{
// If it is the first map, insert the google maps script
var index = FCKTempBin.AddElement( FCK.GoogleMapsHandler.GenerateGoogleScript() ) ;
var prefix = ( FCKConfig.ProtectedSource._CodeTag || 'PS..' ) ;
oScriptCommentNode = xmlNode.ownerDocument.createComment( '{' + prefix + index + '}' ) ;
xmlNode.appendChild( oScriptCommentNode ) ;
}
return xmlNode.ownerDocument.createComment( node.nodeValue ) ;
}
if (typeof FCK.GoogleMapsHandler.previousProcessor == 'function')
node = FCK.GoogleMapsHandler.previousProcessor( node, htmlNode, xmlNode ) ;
else
node = FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
return node ;
};
/**
@desc inject the function
@author Aimingoo&Riceball
*/
function Inject( aOrgFunc, aBeforeExec, aAtferExec ) {
return function() {
if (typeof(aBeforeExec) == 'function') arguments = aBeforeExec.apply(this, arguments) || arguments;
//convert arguments object to array
var Result, args = [].slice.call(arguments);
args.push(aOrgFunc.apply(this, args));
if (typeof(aAtferExec) == 'function') Result = aAtferExec.apply(this, args);
return (typeof(Result) != 'undefined')?Result:args.pop();
} ;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

@ -0,0 +1,45 @@
/*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Google Maps for FCKeditor, German language file.
*/
FCKLang.DlgGMapsTitle = 'Google Maps Eigenschaften';
FCKLang.GMapsBtn = 'Google Maps';
FCKLang.GMapsBtnTooltip = 'Google Map einfügen/editieren';
FCKLang.GMapsMap = 'Karte';
FCKLang.GMapsZoomLevel = 'Zoom-Faktor';
FCKLang.txtLatitude = 'Breite';
FCKLang.txtLongitude = 'Länge';
FCKLang.GMapsMarker = 'Ortsmarke';
FCKLang.GMapsSearchLabel = 'Adresse suchen';
FCKLang.GMapsSearch = 'Suchen';
FCKLang.GMapsNotFound = '%s wurde nicht gefunden.';
FCKLang.GMapsMarkerText = 'Text';
FCKLang.GMapsMarkerDefaultText = 'Geben Sie einen Text ein';
FCKLang.GMapsLine = 'Linie';
FCKLang.GMapsLineInstructions = 'Klicken Sie auf die Karte um den ersten Punkt zu setzten. Jeder weitere Klick setzt einen neuen Punkte.<br>Gesetzte Punkte können Sie auch verschieben und wieder löschen.';
FCKLang.GMapsHelpFile = 'install.html';
FCKLang.GMapsUserHelpFile = 'users.html';
FCKLang.Help = 'Hilfe';
FCKLang.GMapsClickToAddMarker = 'Klicken Sie auf die Karte um eine Ortsmarke zu setzen.';
FCKLang.GMapsDeleteMarker = 'Ortsmarke löschen';
FCKLang.GMapsAddMarker = 'Neue Ortsmarke setzen';
FCKLang.GMaps_MissingKey = 'You must enter the Google Maps Key for your domain.' ;

@ -0,0 +1,45 @@
/*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Google Maps for FCKeditor, English language file.
*/
FCKLang.DlgGMapsTitle = 'Google Maps properties' ;
FCKLang.GMapsBtn = 'Google Maps' ;
FCKLang.GMapsBtnTooltip = 'Insert/Edit a Google Map' ;
FCKLang.GMapsMap = 'Map' ;
FCKLang.GMapsZoomLevel = 'Zoom Level' ;
FCKLang.txtLatitude = 'Latitude' ;
FCKLang.txtLongitude = 'Longitude' ;
FCKLang.GMapsMarker = 'Marker' ;
FCKLang.GMapsSearchLabel = 'Search a direction' ;
FCKLang.GMapsSearch = 'Search' ;
FCKLang.GMapsNotFound = '%s not found.' ;
FCKLang.GMapsMarkerText = 'Text' ;
FCKLang.GMapsMarkerDefaultText = 'Write your text' ;
FCKLang.GMapsLine = 'Line' ;
FCKLang.GMapsLineInstructions = 'Click on the map to place the first point, and then keep on clicking to add more points.<br>You can drag them or delete them using "DEL" in your keyboard' ;
FCKLang.GMapsHelpFile = 'install.html' ;
FCKLang.GMapsUserHelpFile = 'users.html' ;
FCKLang.Help = 'Help' ;
FCKLang.GMapsClickToAddMarker = 'Click on the map to add a new marker' ;
FCKLang.GMapsDeleteMarker = 'Delete marker' ;
FCKLang.GMapsAddMarker = 'Add new marker' ;
FCKLang.GMaps_MissingKey = 'You must enter the Google Maps Key for your domain.' ;

@ -0,0 +1,45 @@
/*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Google Maps for FCKeditor, Spanish language file.
*/
FCKLang.DlgGMapsTitle = 'Propiedades del mapa Google' ;
FCKLang.GMapsBtn = 'Mapas Google' ;
FCKLang.GMapsBtnTooltip = 'Insertar/Editar un mapa Google' ;
FCKLang.GMapsMap = 'Mapa' ;
FCKLang.GMapsZoomLevel = 'Zoom' ;
FCKLang.txtLatitude = 'Latitud' ;
FCKLang.txtLongitude = 'Longitud' ;
FCKLang.GMapsMarker = 'Marcador' ;
FCKLang.GMapsSearchLabel = 'Buscar una dirección' ;
FCKLang.GMapsSearch = 'Buscar' ;
FCKLang.GMapsNotFound = 'No se ha encontrado %s.' ;
FCKLang.GMapsMarkerText = 'Texto' ;
FCKLang.GMapsMarkerDefaultText = 'Escriba el texto' ;
FCKLang.GMapsLine = 'Linea' ;
FCKLang.GMapsLineInstructions = 'Haz click en el mapa para añadir un punto, sigue haciendo clicks para añadir más puntos a la linea.<br>Es posible arrastrarlos, o borrarlos pulsando "SUPR" en el teclado' ;
FCKLang.GMapsHelpFile = 'install_es.html' ;
FCKLang.GMapsUserHelpFile = 'users_es.html' ;
FCKLang.Help = 'Ayuda' ;
FCKLang.GMapsClickToAddMarker = 'Haz click en el mapa para añadir un nuevo marcador' ;
FCKLang.GMapsDeleteMarker = 'Borrar el marcador' ;
FCKLang.GMapsAddMarker = 'Añadir un nuevo marcador' ;
FCKLang.GMaps_MissingKey = 'You must enter the Google Maps Key for your domain.' ;

@ -0,0 +1,44 @@
/*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Google Maps for FCKeditor, French language file.
*/
FCKLang.DlgGMapsTitle = 'Propriétés de Google Maps' ;
FCKLang.GMapsBtn = 'Google Maps' ;
FCKLang.GMapsBtnTooltip = 'Insérer/Editer un plan Google' ;
FCKLang.GMapsMap = 'Plan' ;
FCKLang.GMapsZoomLevel = 'Niveau de zoom' ;
FCKLang.txtLatitude = 'Latitude' ;
FCKLang.txtLongitude = 'Longitude' ;
FCKLang.GMapsMarker = 'Repère' ;
FCKLang.GMapsSearchLabel = 'Rechercher une direction' ;
FCKLang.GMapsSearch = 'Chercher' ;
FCKLang.GMapsNotFound = '%s non trouvé.' ;
FCKLang.GMapsMarkerText = 'Texte' ;
FCKLang.GMapsMarkerDefaultText = 'Ecrivez votre texte' ;
FCKLang.GMapsLine = 'Ligne' ;
FCKLang.GMapsLineInstructions = 'Cliquez sur la carte pour placer le premier point, et continuer a cliquez pour ajouter plus de points.<br>Vous pouvez les déplacer ou les effacer en utilisant "Suppr" sur votre clavier' ;
FCKLang.GMapsHelpFile = 'install.html' ;
FCKLang.GMapsUserHelpFile = 'users.html' ;
FCKLang.Help = 'Aide' ;
FCKLang.GMapsClickToAddMarker = 'Cliquez sur la carte pour ajouter un nouveau repère' ;
FCKLang.GMapsDeleteMarker = 'Effacer un repère' ;
FCKLang.GMapsAddMarker = 'Ajouter un nouveau repère' ;

@ -0,0 +1,45 @@
/*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Google Maps for FCKeditor, English language file.
*/
FCKLang.DlgGMapsTitle = 'Google Maps Proprietà' ;
FCKLang.GMapsBtn = 'Google Maps' ;
FCKLang.GMapsBtnTooltip = 'Inserisci/Modifica una Google Maps' ;
FCKLang.GMapsMap = 'Mappa' ;
FCKLang.GMapsZoomLevel = 'Zoom' ;
FCKLang.txtLatitude = 'Latitudine' ;
FCKLang.txtLongitude = 'Longitudine' ;
FCKLang.GMapsMarker = 'Marker' ;
FCKLang.GMapsSearchLabel = 'Cerca una direzione' ;
FCKLang.GMapsSearch = 'Cerca una località' ;
FCKLang.GMapsNotFound = '%s non trovato.' ;
FCKLang.GMapsMarkerText = 'Testo' ;
FCKLang.GMapsMarkerDefaultText = 'Inserisci il testo' ;
FCKLang.GMapsLine = 'Tracciato' ;
FCKLang.GMapsLineInstructions = 'Clicca sulla mappa per scegliere il primo punto, e successivamente selezionare gli altri sulla mappa.<br>Puoi trascinare i punti già selezionati o cancellarli delete usando "CANC" dalla tua tastiera' ;
FCKLang.GMapsHelpFile = 'install.html' ;
FCKLang.GMapsUserHelpFile = 'users.html' ;
FCKLang.Help = 'Aiuto' ;
FCKLang.GMapsClickToAddMarker = 'Clicca sulla mappa per aggiungere un nuovo marker' ;
FCKLang.GMapsDeleteMarker = 'Cancella marker' ;
FCKLang.GMapsAddMarker = 'Aggiungi un nuovo marker' ;
FCKLang.GMaps_MissingKey = 'You must enter the Google Maps Key for your domain.' ;

@ -0,0 +1,44 @@
/*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Google Maps for FCKeditor, English language file.
*/
FCKLang.DlgGMapsTitle = 'Google Maps eigenschappen' ;
FCKLang.GMapsBtn = 'Google Maps' ;
FCKLang.GMapsBtnTooltip = 'Invoegen/Wijzigen een Google Map' ;
FCKLang.GMapsMap = 'Kaart' ;
FCKLang.GMapsZoomLevel = 'Zoom Level' ;
FCKLang.txtLatitude = 'Latitude' ;
FCKLang.txtLongitude = 'Longitude' ;
FCKLang.GMapsMarker = 'Marker' ;
FCKLang.GMapsSearchLabel = 'Zoek een locatie' ;
FCKLang.GMapsSearch = 'Zoeken' ;
FCKLang.GMapsNotFound = '%s is niet gevonden.' ;
FCKLang.GMapsMarkerText = 'Tekst' ;
FCKLang.GMapsMarkerDefaultText = 'Schrijf je eigen tekst' ;
FCKLang.GMapsLine = 'Lijn' ;
FCKLang.GMapsLineInstructions = 'Klik op de kaart om een een eerste marker te plaaten, blijf dan klikken om meer markers te plaatsen.<br>Je kunt ze slepen of verwijderen met de "DEL" toets' ;
FCKLang.GMapsHelpFile = 'install.html' ;
FCKLang.GMapsUserHelpFile = 'users.html' ;
FCKLang.Help = 'Help' ;
FCKLang.GMapsClickToAddMarker = 'klik op de kaart om de marker toe te voegen' ;
FCKLang.GMapsDeleteMarker = 'Verwijder marker' ;
FCKLang.GMapsAddMarker = 'Voeg nieuwe marker toe' ;

@ -0,0 +1,11 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>googlemaps plugin index</title>
<META http-equiv="refresh" content="0;URL=docs/install.html">
</head>
<body>
<p>You should have been redirected <a href="docs/install.html">to the documentation</a></p>
</body>
</html>
Loading…
Cancel
Save