Human readable captcha for z3cform
Project description
Introduction
collective.z3cform.norobots provides a “human” captcha widget based on a list of questions/answers.
This captcha can be used as a plone.app.discussiom captcha plugin.
The widget is based on z3c.form.TextWidget.
Requirements
tested with Plone 4.0 as a plugin for plone.app.discussion, should work with Plone 3
plone.app.z3cform
Installation
Just a simple easy_install collective.z3cform.norobots is enough.
Alternatively, buildout users can install collective.z3cform.norobots as part of a specific project’s buildout, by having a buildout configuration such as:
[buildout] ... eggs = collective.z3cform.norobots ... [instance] ... zcml = collective.z3cform.norobots
In portal_setup, apply the profile collective.z3cform.norobots:default.
Add a new question
In the Plone Property Sheet “norobots_properties” (portal_properties/norobots_properties), add a new property:
Name: The question id (ex: "question4") Value: your_question::the_answer (ex: "What is 10 + 12 ?::22") Type: string
Answer can contain multiple values delimited by semicolon:
Name: The question id (ex: "question8") Value: your_question::the_answer;another_answer (ex: "What is 5 + 5 ?::10;ten") Type: string
Usage
You can use this widget setting the “widgetFactory” property of a form field:
from zope import interface, schema from z3c.form import interfaces, form, field, button, validator from plone.app.z3cform.layout import wrap_form from collective.z3cform.norobots.i18n import MessageFactory as _ from collective.z3cform.norobots.widget import NorobotsFieldWidget from collective.z3cform.norobots.validator import NorobotsValidator class INorobotsForm(interface.Interface): norobots = schema.TextLine(title=_(u'Are you a human ?'), description=_(u'In order to avoid spam, please answer the question below.'), required=True) class NorobotsForm(form.Form): fields = field.Fields(INorobotsForm) fields['norobots'].widgetFactory = NorobotsFieldWidget # wrap the form with plone.app.z3cform's Form wrapper NorobotsFormView = wrap_form(NorobotsForm) # Register Norobots validator for the correponding field in the IContactInfo interface validator.WidgetValidatorDiscriminators(NorobotsValidator, field=INorobotsForm['norobots'])
for more information see contact_info.py in the plone_forms directory in the package.
Possible problems
I have the following error: “We already have: zope.schema 3.5.4 but z3c.form 2.4.1 requires ‘zope.schema>=3.6.0’.” => You should add this extra version restriction to your buildout: http://good-py.appspot.com/release/plone.app.z3cform/0.5.0
I have the following error when launching the tests: “ImportError: No module named lxml.html” => In order to run the tests you need lxml. You can add for example “z3c.form [test]” to your buildout. See http://plone.293351.n2.nabble.com/Custom-Dexterity-Widgets-td5594532.html for more details.
Credits
Changelog
1.3.1 (2012-03-28)
Add simplified chinese translation [Aijun Jian]
1.3 (2012-02-27)
Allow multiple answers for a question [naro]
Added danish translation [tmog]
1.2.1 (2010-11-05)
Added german translation [petschki]
1.2 (2010-10-31)
Fix tests for Plone 4 [sylvainb]
Added Czech translation [naro]
1.1 - 2010-09-15
Support for using as a plone.app.discussion captcha plugin (Plone 4) [Petri Savolainen]
Finnish translations [Petri Savolainen]
1.0
Initial release [sylvainb]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file collective.z3cform.norobots-1.3.1.zip
.
File metadata
- Download URL: collective.z3cform.norobots-1.3.1.zip
- Upload date:
- Size: 39.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
0a50fc1edf040b1e0c55c6e46f8a7e8d62bfc4bcb6ca143682b0c0bdedcc9f4c
|
|
MD5 |
b58db76db628fa78a1f6810fcc59a15f
|
|
BLAKE2b-256 |
9f41bb30c6ce0fcb0598776f1d7d04e619e517a5035fc32308ff60f6bf9c6561
|