Personaliza la apariencia del captcha nativo de magento. Cambiar la cantidad de líneas y puntos

8

Hola a todos
Quiero cambiar el diseño de mi captcha en el formulario de contacto. Necesito disminuir la cantidad de líneas y puntos que contiene para que el usuario pueda ver el texto con mayor claridad.
¿Alguien tiene alguna idea de cómo hacerlo?
Gracias por adelantado.

Jaimin Sutariya
fuente
Comprobado esto? magecomp.com/magento-new-recaptcha.html
Gaurav Jain

Respuestas:

11

La forma en que respondió anteriormente no es un buen enfoque.

La clase Zend_Captcha_Imageha proporcionado funciones para cambiar las variables. Puede encontrar las funciones en la misma clase que será algo como esto:

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

Y también Zend_Captcha_Imagese extiende a una clase de modelo Mage, es decir Mage_Captcha_Model_Zend. Por lo tanto, puede anular fácilmente esta clase de modelo de Mage para establecer esas variables.

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

Estoy configurando esas variables en el constructor para que los cambios funcionen incluso para la carga de la página y también para la actualización de captcha.

Será mejor si anula la función anterior en lugar de modificar los archivos principales de mage.

SR verde
fuente
8

Puede cambiar el ruido captcha usando el código a continuación.

Ir : lib/Zend/Captcha/Image.php

Cambie los valores variables a continuación según sus requisitos

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

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

Jaimin Sutariya
fuente
3

Para Magento 2: vaya a vendor \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

Encontrará las siguientes funciones en este archivo que se pueden utilizar para personalizar la imagen 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;
    }

Puede cambiar los valores de esta función desde el número de línea 122 y 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
fuente
Gracias Dinesh por compartir esto. Será mejor si agrega una nueva pregunta y publica esta respuesta como respuesta. Será útil para aquellos que lo están buscando.
Jaimin Sutariya