thewebmen/silverstripe-addressfield

此包已被废弃且不再维护。作者建议使用 wedevelopnl/silverstripe-addressfield 包。

Silverstripe 模块,用于创建嵌套菜单

1.0.13 2023-10-06 12:58 UTC

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);
    }

待办事项

  • 改进文档