Personalize a aparência do captcha nativo do magento. Alterar a quantidade de linhas e pontos

8

Olá a todos
, quero alterar o layout do meu captcha no formulário de contato. Preciso diminuir a quantidade de linhas e pontos que ele contém para que um usuário possa ver o texto mais claramente.
Alguém tem alguma idéia de como fazer isso?
Desde já, obrigado.

Jaimin Sutariya
fonte
Verificou isso? magecomp.com/magento-new-recaptcha.html
Gaurav Jain

Respostas:

11

A maneira como você respondeu acima não é uma boa abordagem.

A classe Zend_Captcha_Imageforneceu funções para alterar as variáveis. Você pode encontrar as funções na mesma classe que serão mais ou menos assim:

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

E também Zend_Captcha_Imageé estendido a uma classe de modelo Mage, ie Mage_Captcha_Model_Zend. Portanto, você pode facilmente substituir essa classe de modelo Mage para definir essas variáveis.

Em 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
}

Estou definindo essas variáveis ​​no construtor para que as alterações funcionem mesmo no carregamento da página e também na atualização do captcha.

Será melhor que você substitua a função acima em vez de modificar os arquivos principais do mage.

Senhor Verde
fonte
8

Você pode alterar o ruído do captcha usando o código abaixo.

Vamos para : lib/Zend/Captcha/Image.php

Altere abaixo dos valores variáveis ​​conforme suas necessidades

protected $_dotNoiseLevel = 10; // Increase the value if you want to increase amount of dots
protected $_lineNoiseLevel = 0; // Increase the value if you want to increase amount of lines

Referência: http://magentoforall.blogspot.com.au/2012/11/magento-change-captcha-background-lines.html

Jaimin Sutariya
fonte
3

Para Magento 2: Vá para vendor \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

Você encontrará abaixo as funções deste arquivo que podem ser usadas para personalizar a imagem captcha.

     /**
     * 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;
    }

você pode alterar os valores desta função dos números de linha 122 e 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 Yadav
fonte
Obrigado Dinesh por compartilhar isso. Será melhor se você adicionar uma nova pergunta e postar esta resposta como resposta. Será útil para quem está procurando.
Jaimin Sutariya