zarocknz/silverstripe-geodata-uploadfield

地理位置文件上传字段(用于照片等)

安装: 10

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 2

公开问题: 0

语言:JavaScript

类型:silverstripe-module

0.1.0 2016-03-10 23:40 UTC

This package is not auto-updated.

Last update: 2024-09-26 00:24:46 UTC


README

Build Status Latest Stable Version Latest Unstable Version Scrutinizer Code Quality Total Downloads License

用于带有谷歌地图的表单的文件上传字段,允许用户设置上传媒体的位置,例如照片。

当表单提交时,纬度、经度和缩放字段将保存到与上传字段对应的同一DataObject中。

如果文件中包含地理定位标签,一旦文件被选择,地图上的标记将自动移动到该位置(如果用户想要的话,可以手动调整)。

注意,目前这仅在前端表单上有效。

要求

* Silverstripe 3.1.x+
* JQuery-1.7.1+

使用示例

将以下字段添加到您的表单提交保存到的DataObject中...

'Latitude'  => 'Varchar(255)',
'Longitude' => 'Varchar(255)',
'Zoom'      => 'Int',

同时确保您的数据对象有一个图像(或其他允许文件上传的对象)...

private static $has_one = array(
    'Image' => 'Image',
);

然后使用GeodataUploadField创建表单,而不是使用普通的Silverstripe上传字段...

public function getFrontEndFields($params = null)
{
   $fields = parent::getFrontEndFields($params);

   // Create GeoData Upload field.
   $upload = GeoDataUploadField::create('Image', 'Image');

   // Set options to prevent selection of existing or access to the filesystem as per Silverstripe docs.
   $upload->setCanAttachExisting(false);
   $upload->setCanPreviewFolder(false);

   $fields->replaceField('Image', $upload);

   return $fields;
}

构造函数选项

除了字段名称和标题之外,您还可以向构造函数传递一些其他内容。对于第三个参数,您可以传递一个数组,该数组将覆盖_config/geodata-uploadfield.yml中的默认地图选项。

如果您在DataObject中为纬度、经度或缩放字段指定了不同的名称,您需要将它们的名称作为最后三个参数传递给构造函数,否则在表单提交时将不会保存任何内容。

以下示例展示了创建一个GeoDataUploadField,传递一些选项和不同命名的lat和lng字段...

$upload = GeoDataUploadField::create(
   'Image',                // Name.
   'Select an Image',      // Title
   array(                  // Options.
      'map' => array(
         'zoom' => 10
      )
   ),
   'theLatField',          // Latitude field name.
   'theLngField',          // Longitude field name.
   'theZomField'           // Zoom field name.
);

记住,只要您在数据对象上为纬度、经度和缩放字段命名,您就不需要将它们的名称传递给构造函数。

致谢

此模块主要基于Will Morgan和其他人编写的BetterBrief/silverstripe-googlemapfield,该模块具有BSD许可证。

此模块还包括Jacob Seidelin编写的JavaScript EXIF Reader - jQuery插件0.1.3,该插件具有MPL许可证。

我所做的只是将这两个模块结合起来,并根据项目需求进行了修改。

我要感谢这些仓库/库的创作者和贡献者。

维护者

zarocknz - https://github.com/zarocknz

待办事项

* Try to get this working CMS side.