wedevelopnl / silverstripe-addressfield
用于创建嵌套菜单的 Silverstripe 模块
1.0.13
2023-10-06 12:58 UTC
Requires
- jeroendesloovere/geolocation-php-api: 1.3.*
- silverstripe/cms: ^4.0@dev
- silverstripe/vendor-plugin: ^1.0
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.0
README
简介
具有地理定位功能的地址字段
要求
- Silverstripe CMS
^4 || ^5
- "jeroendesloovere/geolocation-php-api": "1.3.*"
安装
composer require "thewebmen/silverstripe-addressfield" "dev-master"
配置
添加 Google Maps API 密钥
TheWebmen\Addressfield\Forms\GooglePlacesField: maps_api_key: 'API_KEY'
或者将以下变量添加到您的 .env
WDVLP_ADDRESSFIELD_MAPS_API_KEY='API_KEY'
使用方法
将所有数据库字段添加到 db 数组中
private static $db = [
'City' => 'Varchar',
'Country' => 'Varchar',
'ZipCode' => 'Varchar',
'Street' => 'Varchar',
'StreetNumber' => 'Varchar',
'Latitude' => 'Varchar',
'Longitude' => 'Varchar'
];
然后像添加其他字段一样添加该字段
public function updateCMSFields(FieldList $fields) { $fields->addFieldToTab('Root.Address', new AddressField($this->owner)); }
有关所有构造函数选项,请参阅 addressfield 类。
距离助手
该模块包含一个距离助手,用于计算两个经纬度之间的距离,示例用法
$list = ObjectWithLatitudeLongitude::get(); $list = TheWebmen\Addressfield\Helpers\DistanceHelper::addDistance($list, '52.2112', '5.9699'); $list = $list->sort('Distance'); foreach($list as $item){ var_dump($item->Distance); }
待办事项
- 改进文档