自定义magento本地验证码外观。改变线和点的数量


Answers:


11

您上面回答的方法不是一个好的方法。

该类Zend_Captcha_Image提供了用于更改变量的函数。您可以在同一类中找到函数,如下所示:

public function setDotNoiseLevel ($dotNoiseLevel)
{
    $this->_dotNoiseLevel = $dotNoiseLevel;
    return $this;
}
/**
 * @param int $lineNoiseLevel
 */
public function setLineNoiseLevel ($lineNoiseLevel)
{
    $this->_lineNoiseLevel = $lineNoiseLevel;
    return $this;
}

并且还Zend_Captcha_Image扩展到Mage模型类,即Mage_Captcha_Model_Zend。因此,您可以轻松覆盖此Mage模型类以设置这些变量。

在Mage_Captcha_Model_Zend中:

public function __construct($params)
{
    if (!isset($params['formId'])) {
        throw new Exception('formId is mandatory');
    }
    $this->_formId = $params['formId'];
    $this->setExpiration($this->getTimeout());

    $this->setDotNoiseLevel(10);     // Added code
    $this->setLineNoiseLevel(0);     // Added code
}

我在构造函数中设置了这些变量,以便即使页面加载和验证码刷新也可以使用更改。

如果您覆盖上述功能,而不是修改法师核心文件,将会更好。



3

对于Magento 2:转到vendor \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

您将在此文件中找到以下功能,这些功能可用于自定义验证码图像。

     /**
     * Set dot noise level
     *
     * @param int $dotNoiseLevel
     * @return Zend_Captcha_Image
     */
    public function setDotNoiseLevel ($dotNoiseLevel)
    {
        $this->_dotNoiseLevel = $dotNoiseLevel;
        return $this;
    }

    /**
     * Set line noise level
     *
     * @param int $lineNoiseLevel
     * @return Zend_Captcha_Image
     */
    public function setLineNoiseLevel ($lineNoiseLevel)
    {
        $this->_lineNoiseLevel = $lineNoiseLevel;
        return $this;
    }

您可以从行号122和129更改此函数的值。

/**
 * Number of noise dots on image
 * Used twice - before and after transform
 *
 * @var int
 */
protected $_dotNoiseLevel = 100;
/**
 * Number of noise lines on image
 * Used twice - before and after transform
 *
 * @var int
 */
protected $_lineNoiseLevel = 5;

感谢Dinesh分享。如果您添加一个新问题并将此答案发布为答案,将会更好。这将对那些正在寻找它的人有所帮助。
Jaimin Sutariya
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.