跳转到主要内容

一个用于动态创建联系表单的Django CMS插件。

项目描述

# 关于cmsplugin_contact_plus

[cmsplugin-contact-plus](https://github.com/arteria/cmsplugin-contact-plus/) 允许你在Django CMS项目中构建所需字段的表单
以你想要的方式排序,只需最少的努力。

除了常规输入字段外,还有“auto”字段,例如提交推荐页面或额外的隐藏值。
表单将提交到每个表单定义的电子邮件地址。这允许使用单个简单的插件覆盖许多用例。

从v1.3.5开始,该插件与Django >= 1.5兼容

cmsplugin-contact-plus采用MIT许可证。

## 快速入门

1. 从[PyPI](https://pypi.python.org/pypi/cmsplugin_contact_plus/)安装,在你的虚拟环境中运行

```
pip install cmsplugin_contact_plus
```

或者要从GitHub获取最新提交

```
pip install -e git+git://github.com/arteria/cmsplugin_contact_plus.git#egg=cmsplugin_contact_plus
```
2. cmsplugin-contact-plus需要https://github.com/iambrandontaylor/django-admin-sortable作为依赖项。请查看[README](https://github.com/iambrandontaylor/django-admin-sortable/blob/master/README.md)中的“支持的Django版本”、“安装”和“配置”部分。

3. 在你的`settings.py`部分的`INSTALLED_APPS`中放置`cmsplugin_contact_plus`和`adminsortable`,并确保已设置[ADMINS](https://docs.django.ac.cn/en/dev/ref/settings/#admins)设置。

4. 不要忘记迁移你的数据库。
5. 适当配置Django的[电子邮件设置](https://docs.django.ac.cn/en/1.8/topics/email/#quick-example)。

## 配置/设置

### ``CONTACT_PLUS_FROM_EMAIL``

在你的项目设置中指定``DEFAULT_FROM_EMAIL`` (https://docs.django.ac.cn/en/dev/ref/settings/#default-from-email),以从特定地址发送电子邮件。否则将使用Django的默认值'webmaster@localhost'。

### ``CONTACT_PLUS_REPLY_EMAIL_LABEL``

要自动设置电子邮件的“回复到”标题,请在您的项目设置中指定“CONTACT_PLUS_REPLY_EMAIL_LABEL”。例如,如果标签是“您的电子邮件”,则设置“CONTACT_PLUS_REPLY_EMAIL_LABEL='your-email'”——基本上是用于查找回复电子邮件地址的slugified字段标签。

### “CONTACT_PLUS_SEND_COPY_TO_REPLY_EMAIL”

要向提交者发送副本,可以将“CONTACT_PLUS_SEND_COPY_TO_REPLY_EMAIL”设置为“True”。如果存在带有“email”标签的字段,则此电子邮件将用作Cc标题。

### “CONTACT_PLUS_REQUIRED_CSS_CLASS”

定义所需的CSS类,默认为“required”。

### “CMSPLUGIN_CONTACT_PLUS_TEMPLATES”

要允许用户在多个联系表单模板之间进行选择,请按照如下方式在项目设置中指定模板选项

```python
CMSPLUGIN_CONTACT_PLUS_TEMPLATES = [
('cmsplugin_contact_plus/contact.html', '联系表单'),
('cmsplugin_contact_plus/contact_newsletter.html', '新闻通讯表单'),
]
```

确保模板可以被Django加载。

### “CMSPLUGIN_CONTACT_FORM_VALIDATORS”

在项目设置中指定“CMSPLUGIN_CONTACT_FORM_VALIDATORS”,用于与CharFieldWithValidator字段一起使用的验证器函数。预期是一个字符串列表,每个字符串应指向一个通过其完整路径指定的验证器函数。例如

```python
CMSPLUGIN_CONTACT_FORM_VALIDATORS = [
'myproject.utils.validators.phone_number_validator',
]
```

### reCAPTCHA

要使reCAPTCHA字段类型可用,请将“captcha”添加到您的`INSTALLED_APPS`中,并定义您的`RECAPTCHA_PUBLIC_KEY`和`RECAPTCHA_PRIVATE_KEY`,方法如[django-recaptcha的README](https://github.com/praekelt/django-recaptcha/blob/develop/README.rst)中所述。每个页面支持单个reCAPTCHA实例。

## 模板

如果您不是使用Django的默认模板设置,请确保将“'django.template.loaders.app_directories.Loader'”添加到`settings.py`文件中的`TEMPLATES.OPTIONS.loaders`列表。同样,如果您的Django版本小于1.8,请确保上述加载器在您的`TEMPLATE_LOADERS`列表中。

## 功能

- 动态表单创建
- 包含迁移
- 将数据存储在数据库中
- 多语言:目前有英语和西班牙语翻译
- reCAPTCHA和简单数学验证码
- django CMS 3.0兼容
- 模板支持
- 跟踪/传递隐藏数据
- 信号
- 多个文件和图片字段用于媒体上传
- 处理同一页面上位于不同位置的多份表单

## 注意事项

- 由于我们依赖于[此](https://github.com/divio/django-cms/blob/3.0.6/cms/migrations_django/0003_auto_20140926_2347.py)迁移文件,因此只有在使用django-cms >= 3.0.6时才可用迁移。
- 如果`from.is_multipart`为True(即表单有附件),则无法收集数据
- 如果您手动渲染表单字段,请确保其名称为:“`name="{{ field.label|slugify }}"`”。这对于表单的正确验证是必要的。

## TODO和计划中的功能。
- 每个字段的Widget支持。
- 提供示例和实际案例研究
- 格式化电子邮件消息,HTML? .as_p, ?
- 允许在不同的页面上重用表单。
- 添加可选Honeypot字段支持。
- 支持更多语言
- (您的伟大功能在这里)

| cmsplugin-contact-plus是免费软件。如果您认为它很有用并希望回馈,请考虑使用[Bitcoin](https://blockchain.info/payment_request?address=1AJkbQdcNkrHzxi91mB1kkPxh4t4BJ4hu4)或[PayPal](https://www.paypal.me/arteriagmbh)进行捐赠。谢谢! |
| ----- |


## 更新日志
### 开发

请查看最新提交的正在进行的开发版本。

### 1.3.12 - 28. 08. 2017
- 在收件人的电子邮件中安全地显示值并优化布尔字段显示

### 1.3.11 - 27. 04. 2017
- 添加输入占位符

### 1.3.10 - 12. 04. 2017
- 添加 DateField 和 DateTimeField

### 1.3.9 - 10. 04. 2017
- CSV 导出:恢复 Python 2 兼容性

### 1.3.8 - 10. 04. 2017
- CSV 导出:正确序列化布尔字段

### 1.3.7 - 22. 03. 2017
- 在电子邮件和联系记录中正确引用媒体 URL

### 1.3.6 - 21. 03. 2017
- 删除未经文档记录的模板自动发现功能

**升级**:如果您依赖 Contact Plus 自动发现多个表单模板选择,请确保现在在您的设置中明确列出这些选择,如此处所述:https://github.com/arteria/cmsplugin-contact-plus#cmsplugin_contact_plus_templates

### 1.3.5 - 22. 02. 2017
- 丢弃 Django 1.4 支持
- 将 https://github.com/centralniak/django-inline-ordering 依赖项替换为 https://github.com/iambrandontaylor/django-admin-sortable。

**升级**:从 `INSTALLED_APPS` 中删除 `'inline_ordering'` 并添加 `'adminsortable'`。为确保新依赖项与您的项目 Django 版本的兼容性,请查看 [README](https://github.com/iambrandontaylor/django-admin-sortable/blob/master/README.md) 中的“支持的 Django 版本”、“安装”和“配置”部分。

### 1.3.2 - 07. 12. 2016
- 修复 `MANIFEST.in`。现在正确包含区域文件

### 1.3.1 - 07. 11. 2016
- 添加缺失的迁移

### 1.3.0 - 10. 10. 2016
- 将插件字段 `submit` 重命名为 `submit_button_text` 以实现 django CMS 3.3/3.4 兼容性。请迁移您的数据库并更新您的模板。

### 1.2.7 - 29. 03. 2016

- 法语翻译
- 修复 setuptools 兼容性问题

### 1.2.6 - 05. 01. 2015

- 添加支持验证器的 CharFieldWithValidator 字段
- 使用插件设置中定义的电子邮件主题
- 设置联系表单的 `required_css_class`
- 使用更具体的设置 `CONTACT_PLUS_FROM_EMAIL`,并使用 `DEFAULT_FROM_EMAIL` 作为后备

### 1.2.5 - 10. 11. 2015

- 处理同一页面上多个表单。有关更多信息,请参阅相关的两个提交 [7749d44](https://github.com/arteria/cmsplugin-contact-plus/commit/7749d44d39f1b106a1b4c980615fab7a6a810a37) 和 [b8793f7](https://github.com/arteria/cmsplugin-contact-plus/commit/b8793f7bc0ce573bbed1bb9ffa20f9b87191fa8b)。请修改您的模板。

### 1.2.3

- reCAPTCHA 支持

### 1.1.14 - 20. 03. 2015

- 多个文件和图像字段 / 上传文件和图像,上传将直接放置在 ``MEDIA_ROOT``。

### 1.1.13 - 17. 11. 2014

- 添加西班牙语翻译
- 支持 django __1.7__ 和 django cms __3.0.6__ 的迁移

### 1.1.12

- 支持回复到电子邮件
- 添加 ContactRecords 以将联系历史存储在数据库中。

### 1.1.11

- 集成简单的数学 captcha (PR #16)

### 1.1.10

- 移除无序数据 (cleaned_data)。现在使用 ordered_data 代替。
- 修复错别字

### 1.1.9

- 修复 lower() 与 slugify() 用于键查找的问题。

### 1.1.8

- 电子邮件中的字段排序现在等于定义。

### 1.1.7

- django CMS 3.0 缓存兼容性。

### 1.1.6

- 修复错误,缺少模板信息,https://github.com/arteria/cmsplugin-contact-plus/commit/1fa9236

### 1.1.5

- 当成功发送消息时触发信号 ``contact_message_sent``。请参阅 signals.py。
- 多个模板支持,在您的项目设置中定义

```
CMSPLUGIN_CONTACT_PLUS_TEMPLATES = [
('cmsplugin_contact_plus/contact.html', 'contact.html'),
('cmsplugin_contact_plus/hello.html', 'hello.html'),
# 更多模板在这里
]
```

为了能够使用新功能,请手动迁移

``` ALTER TABLE `cmsplugin_contactplus` ADD `template` varchar(255) NOT NULL AFTER `submit`; ```

### 1.1.4

- 修改了针对 PyPI 的打包。
- PyPI 上传脚本。内部说明:只需执行 ``./upload-to-pypi.sh``。


### 1.1.3
- 电子邮件的可读性更好。

### 1.1.2
- PyPI 的补丁版本,修正了 Manifest.in,见问题 #4。

### 1.1.1
- 在 Manifest.in 中添加了模板的包含,修复了问题 #4。

### 1.1.0
- 通用查询参数 (GET 键) 到隐藏字段。用于在表单中附加其他隐藏数据。用于 GET 参数键查找的 slugified 标签。例如。
标签是 'Favorite Color',则在 URL 中的查找是基于 'favorite-color',在 www.example.com?favorite-color=blue 中将 {..., u'favorite-color':'blue', ...} 传递到电子邮件。


### 1.0.4
- 在 `settings.py` 中未定义 ``ADMINS`` 的情况下修复默认的“发件人电子邮件地址”。(问题 #2)
- 修复错别字并添加翻译标记。

### 1.0.3
- 改进了文档
- 添加了 ``auto_TextArea`` 快捷键以创建文本区域。注意:当前插件中定义的小部件被忽略。
- 隐藏“推荐页面”字段。从请求中读取推荐信息。
- 通用隐藏字段。将此与JavaScript/jQuery结合使用,以便向通过电子邮件发送的表单附加更多数据。

例如,“CharField as HiddenInput”的字段标签被命名为“对象描述”。
使用标签名称,输入字段的ID将是 'id_object-description',名称将是 'object-description'。

使用jQuery存储数据非常简单。


$('#id_object-description').val('Hello Hidden World'); // 字符串 'Hello Hidden World' 将与电子邮件一起发送。



### 1.0.2
修复了 setup.py 中的缩进/EOF问题。


### 1.0.1
修复了 setup.py 中的 IndentationError。

### 1.0.0
[arteria](https://github.com/arteria/) 以MIT许可证开源了 cmsplugin_contact_plus。此插件是在 [cmsplugin_contact](https://github.com/rtpm/cmsplugin_contact) 的分支上构建的。太棒了!

项目详情


下载文件

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

源分发

cmsplugin_contact_plus-1.3.12.tar.gz (18.6 kB 查看哈希值)

上传时间

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面