diff options
Diffstat (limited to 'applications/core/lib/Zend/Captcha/Base.php')
| -rw-r--r-- | applications/core/lib/Zend/Captcha/Base.php | 176 | 
1 files changed, 176 insertions, 0 deletions
| diff --git a/applications/core/lib/Zend/Captcha/Base.php b/applications/core/lib/Zend/Captcha/Base.php new file mode 100644 index 0000000..aa86297 --- /dev/null +++ b/applications/core/lib/Zend/Captcha/Base.php @@ -0,0 +1,176 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to [email protected] so we can send you a copy immediately. + * + * @category   Zend + * @package    Zend_Captcha + * @subpackage Adapter + * @copyright  Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) + * @license    http://framework.zend.com/license/new-bsd     New BSD License + */ + +/** Zend_Captcha_Adapter */ +require_once 'Zend/Captcha/Adapter.php'; + +/** Zend_Validate_Abstract */ +require_once 'Zend/Validate/Abstract.php'; + +/** + * Base class for Captcha adapters + *  + * Provides some utility functionality to build on + * + * @category   Zend + * @package    Zend_Captcha + * @subpackage Adapter + * @copyright  Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) + * @license    http://framework.zend.com/license/new-bsd     New BSD License + * @version    $Id: $ + */ +abstract class Zend_Captcha_Base extends Zend_Validate_Abstract implements Zend_Captcha_Adapter  +{ +    /** +     * Element name +     *  +     * Useful to generate/check form fields +     * +     * @var string +     */ +    protected $_name; + +    /** +     * Captcha options  +     *  +     * @var array +     */ +    protected $_options = array(); + +    /** +     * Options to skip when processing options +     * @var array +     */ +    protected $_skipOptions = array( +        'options', +        'config', +    ); +     +    /** +     * Get name +     *  +     * @return string +     */ +    public function getName()  +    { +        return $this->_name; +    } +     +    /** +     * Set name  +     *  +     * @param string $name +     */ +    public function setName($name)  +    { +        $this->_name = $name; +        return $this; +    } + +    /** +     * Constructor +     * +     * @param  array|Zend_Config $options  +     * @return void +     */ +    public function __construct($options = null) +    { +        // Set options +        if (is_array($options)) { +            $this->setOptions($options); +        } else if ($options instanceof Zend_Config) { +            $this->setConfig($options); +        }  +    }  +     +    /** +     * Set single option for the object +     * +     * @param string $key +     * @param string $value +     * @return Zend_Form_Element +     */ +    public function setOption($key, $value) +    { +        if (in_array(strtolower($key), $this->_skipOptions)) { +            return $this; +        } + +        $method = 'set' . ucfirst ($key); +        if (method_exists ($this, $method)) { +            // Setter exists; use it +            $this->$method ($value); +            $this->_options[$key] = $value; +        } elseif (property_exists($this, $key)) { +            // Assume it's metadata +            $this->$key = $value; +            $this->_options[$key] = $value; +        } +        return $this; +    } +     +    /** +     * Set object state from options array +     *  +     * @param  array $options  +     * @return Zend_Form_Element +     */ +    public function setOptions($options = null) +    { +        foreach ($options as $key => $value) { +            $this->setOption($key, $value); +        } +        return $this; +    } +     +    /** +     * Retrieve options representing object state +     *  +     * @return array +     */ +    public function getOptions() +    { +        return $this->_options; +    } + +    /** +     * Set object state from config object +     *  +     * @param  Zend_Config $config  +     * @return Zend_Captcha_Base +     */ +    public function setConfig(Zend_Config $config) +    { +        return $this->setOptions($config->toArray()); +    } + +    /** +     * Get optional decorator +     *  +     * By default, return null, indicating no extra decorator needed. +     * +     * @return null +     */ +    public function getDecorator()  +    { +        return null; +    } +} | 
