跳转到主要内容

django-fluent-contents的Google Maps小部件

项目描述

https://img.shields.io/travis/django-fluent/fluentcms-googlemaps/master.svg?branch=master https://img.shields.io/pypi/v/fluentcms-googlemaps.svg https://img.shields.io/pypi/l/fluentcms-googlemaps.svg https://img.shields.io/codecov/c/github/django-fluent/fluentcms-googlemaps/master.svg

fluentcms-googlemaps

一个插件,用于在网站上显示Google Maps小部件。

此插件仍在开发中。它已在生产中使用,只需知道有两个主要区域需要改进

  • 使用更好的GeoPosition小部件(例如,通过使用灯箱/弹出窗口)

  • 使集群图标可配置。

安装

首先安装模块,最好在虚拟环境中安装。可以从PyPI安装

pip install fluentcms-googlemaps

注意:在Django 1.11上,您必须首先安装以下包

pip -e git+https://github.com/philippbosch/django-geoposition.git@django-1.11#egg=django-geoposition

因为django-geoposition还没有与Django 1.11兼容的版本。

后端配置

首先确保项目已配置为django-fluent-contents

然后添加以下设置

INSTALLED_APPS += (
    'geoposition',
    'fluentcms_googlemaps',
)

GOOGLE_MAPS_API_KEY = None  # Might be needed to define this.

将以下内容添加到urls.py

urlpatterns = [
    ...

    url(r'^api/googlemaps/', include('fluentcms_googlemaps.urls')),
]

之后可以创建数据库表

./manage.py migrate

现在,可以将 MapPlugin 添加到您的 PlaceholderFieldPlaceholderEditorAdmin 管理界面。

前端配置

请确保所有插件媒体文件都通过 django-fluent-contents 暴露。

{% load fluent_contents_tags %}

{% render_content_items_media %}

此标签应放置在页面底部,所有插件渲染之后。有关更多配置选项(例如与 django-compressor 的集成) - 请参阅 模板标签文档

CSS 代码

样式表代码有意省略,因为作者通常喜欢提供自己的样式。

JavaScript 代码

对于 JavaScript 集成不需要配置。

默认情况下,插件包含所有必要的 JavaScript 代码。

如果需要,可以使用以下设置更改包含的资源

MAP_MARKERWITHLABEL_JS = "fluentcms_googlemaps/vendor/markerwithlabel.js"
MAP_MARKERCLUSTERER_JS = "fluentcms_googlemaps/vendor/markerclusterer_compiled.js"
MAPPLUGIN_JS = "fluentcms_googlemaps/js/mapplugin.js"
MAPSEARCH_JS = "fluentcms_googlemaps/js/mapsearch.js"

FLUENTCMS_GOOGLEMAPS_JS = (
    MAP_MARKERWITHLABEL_JS,
    MAP_MARKERCLUSTERER_JS,
    MAPPLUGIN_JS,
)

FLUENTCMS_GOOGLEMAPS_CSS = {}

如果定义的值为 None,则将不包括在前端媒体中。

HTML 代码

如果需要,可以通过重新定义 fluentcms_googlemaps/maps/default.html 来覆盖 HTML 代码。您还可以创建额外的地图样式,并在 FLUENTCMS_GOOGLEMAPS_STYLES 中定义这些样式。默认为

FLUENTCMS_GOOGLEMAPS_STYLES = (
    ('default', {
        'title': _("Default"),
        'template': "fluentcms_googlemaps/maps/default.html",
    }),
    ('search', {
        'title': _("Search field"),
        'template': "fluentcms_googlemaps/maps/search.html",
        'extra_js': (
            MAPSEARCH_JS,   # = "fluentcms_googlemaps/js/mapsearch.js" unless MAPSEARCH_JS is redefined
        ),
    }),
)

默认情况下,将查找以下模板

  • FLUENTCMS_GOOGLEMAPS_STYLES 中的显式 template 选项。

  • 名为: fluentcms_googlemaps/maps/{style}.html 的模板。

  • 默认; fluentcms_googlemaps/maps/default.html

导入数据

标记数据可以从中导入 CSV 文件,并且还可以接收地理编码。可以使用自定义模板调用 import_markers 命令,将 CSV 文件数据映射到标记字段。例如

manage.py import_markers /stores.csv  --title='{{Name}}' --group=1 --geocode='{{Address}} {{Zipcode}} {{City}} {{County}}' --geocoder=google --description="<p>{{Address}}<br>{{Zipcode}} {{City}}<br>{% if County == 'NL'%}The Netherlands{% else %}{{County}}{% endif %}</p>"

建议首先添加 --dry-run,直到所有字段都正确填写。所有标记将在解析结束后一次性创建。

贡献

如果您喜欢此模块,已经将其分支或希望改进它,请告诉我们!我们也欢迎拉取请求。:-)

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

fluentcms-googlemaps-1.4.tar.gz (56.2 kB 查看哈希)

上传时间

构建分发

fluentcms_googlemaps-1.4-py2.py3-none-any.whl (71.8 kB 查看哈希)

上传时间 Python 2 Python 3

由以下支持