Personnalisez l'apparence du captcha natif de magento. Modifier le nombre de lignes et de points

8

Bonjour à tous
Je souhaite modifier la disposition de mon captcha sur le formulaire de contact. J'ai besoin de diminuer la quantité de lignes et de points qu'il contient afin qu'un utilisateur puisse voir le texte plus clairement.
Quelqu'un a-t-il une idée de comment le faire?
Merci d'avance.

Jaimin Sutariya
la source
Vous avez vérifié cela? magecomp.com/magento-new-recaptcha.html
Gaurav Jain

Réponses:

11

La façon dont vous avez répondu ci-dessus n'est pas une bonne approche.

La classe Zend_Captcha_Imagea fourni des fonctions pour changer les variables. Vous pouvez trouver les fonctions dans la même classe qui ressemblera à ceci:

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

Et Zend_Captcha_Imageest également étendu à une classe de modèle Mage ie Mage_Captcha_Model_Zend. Ainsi, vous pouvez facilement remplacer cette classe de modèle Mage pour définir ces variables.

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

Je mets ces variables dans le constructeur pour que les changements fonctionnent même pour le chargement de la page et également pour le rafraîchissement du captcha.

Il sera préférable de remplacer la fonction ci-dessus au lieu de modifier les fichiers principaux de mage.

Monsieur green
la source
8

Vous pouvez modifier le bruit captcha en utilisant le code ci-dessous.

Aller à : lib/Zend/Captcha/Image.php

Modifiez les valeurs variables ci-dessous selon vos besoins

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

Référence: http://magentoforall.blogspot.com.au/2012/11/magento-change-captcha-background-lines.html

Jaimin Sutariya
la source
3

Pour Magento 2: accédez à vendor \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

Vous trouverez ci-dessous des fonctions dans ce fichier qui peuvent être utilisées pour personnaliser l'image 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;
    }

vous pouvez modifier les valeurs de cette fonction à partir des numéros de ligne 122 et 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
la source
Merci Dinesh pour ce partage. Ce sera mieux si vous ajoutez une nouvelle question et postez cette réponse comme réponse. Il sera utile à ceux qui le recherchent.
Jaimin Sutariya