在DZ上翻旧帖找到的,给坛主参考下,适合6.1
在bbs上加个地图标注功能
Threadtypes.inc.php
查找:
<option value="url"><?=$lang['threadtype_edit_vars_type_url']?></
option>
在下面加入:
<option value="map"><?=$lang['threadtype_edit_vars_type_map']?></
option>
查找:
foreach(array('number', 'text', 'radio', 'checkbox', 'textarea',
'select', 'calendar', 'email', 'url', 'image')
替换成:
foreach(array('number', 'text', 'radio', 'checkbox', 'textarea',
'select', 'calendar', 'email', 'url', 'image','map')
Admincp.lang.php
查找:
'threadtype_edit_vars_type_url' => '超级链接(url)',
在下面加入:
'threadtype_edit_vars_type_map' => '地图标注(map)',
Post_typeoption.htm
查找:
<!--{elseif in_array($option['type'], array('textarea'))}-->
<textarea name="typeoption[{$option[identifier]}]" id="typeoption
[{$option[identifier]}]" rows="10" cols="20" style="width:32%; height:
60px" onBlur="check{$option[identifier]}()" $option[unchangeable]>
$option[value]</textarea>
在下面加入:
<!--{elseif in_array($option['type'], array('map'))}-->
<input type="text" name="typeoption[{$option[identifier]}]"
id="typeoption[{$option[identifier]}]" value="$option[value]"> <a
href="javascript:;" onclick="window.open('mark.php?xy=$option[value]
&i=typeoption[{$option[identifier]}]');">打开地图</a>
新增加mark.php文件
Viewthread.php
查找:
} elseif($_DTYPE[$optionid]['type'] == 'textarea') {
$optionlist[$option['identifier']]['value'] = $optiondata
[$optionid] ? nl2br($optiondata[$optionid]) : '';
在下面加入:
} elseif($_DTYPE[$optionid]['type'] == 'map') {
$optionlist[$option['identifier']]['value'] = $optiondata
[$optionid] ? "<iframe width='400' height='300' border=none
src='mark.php?xy=".$optiondata[$optionid]."'></iframe>" : '';
mark.php 内容:
<?
/*$ Power By Cyon $*/
require_once './include/common.inc.php';
$ex = $xy ? explode(',',$xy) : '';
$x = $xy ? $ex[0] : 11440699;
$y = $xy ? $ex[1] : 2308168;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>地图选择</title>
<script language="javascript" src="
http://api.51ditu.com/js/maps.js
"></script>
</head>
<body style='margin:0px;'>
<div id="myMap" style="position:relative;width:100%; height:100%;"></
div>
<script language="JavaScript">
var maps = new LTMaps("myMap");
maps.centerAndZoom (new LTPoint(<?=$x?>,<?=$y?>),0);
var _control = new LTStandMapControl();
maps.addControl(_control);
<?
if($i){
?>
var control = new LTMarkControl();
maps.addControl(control);
function getPoi(){
var poi = control.getMarkControlPoint();
var x = poi.getLongitude();
var y = poi.getLatitude();
Change(x,y);
}
LTEvent.addListener(control,"mouseup",getPoi);
<?
}
if($x && $y) {
?>
var icon = new LTIcon();
icon.setImageUrl("images/centerPoi.gif");
icon.setWidth(24);
icon.setHeight(24);
var marker3 = new LTMarker(new LTPoint(<?=$x?>,<?=$y?>),icon);
maps.addOverLay(marker3);
<?
if($i){
?>
function Change(x,y){
opener.document.getElementById("<?=$i?>").setAttribute("value",x
+','+y);
window.close();
}
<?
}
}
?>
</script>
</body>
</html>