Author Mike Hallbauer Last update 20.01.2009 HOWTO use com.zms.captcha: - extract *.py from this package to ZOPE_INSTANCE/lib/python/ (inclusive packed folders) - import com.zms.captcha in ZMS - add a Captcha Meta-Attribute attribute to your target object - use com.zms.captcha->CaptchaLib->captcha_getContent to get HTML-code-snippet with captcha-content in your implementation - add com.zms-captcha->CatpchaLib->captcha_isValid to verify a posted captcha-code in your implementation - select a captcha-service in your target-object-instance HOWTO develop new captcha-services: external python-service: - inherit from C_Captcha_Basic - overwrite function GetContent which returns a HTML-code-snippet with captcha-content (i.e. captcha-pic, input-field) - overwrite function IsCodeValid which returns a tupel with a boolean (is valid or not) and a string (i.e. error message) - register new service in C_Handler_Captcha's constructor - add new service-name in com.zms.captcha->CaptchaConfig->captchaService internal service: - create a methode to deliver a HTML-code-snippet with captcha-content (i.e. captcha-pic, input-field) - create a methode to check a posted captcha-code and deliver a tupel with a boolean (is valid or not) and a string (i.e. error message) - register new service in com.zms.captcha->CaptchaLib->captcha_getContent and call corresponding function to get HTML-code-snippet - register new service in com.zms.captcha->CaptchaLib-captcha_isValid, call correspondig function to verify posted captcha-code and get the result-tupel - add new service-name in com.zms.captcha->CaptchaConfig->captchaService in both cases: - add javascript code to show/hide your optionally service-special in com.zms.captcha->CaptchaConfig->Interface