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.


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.



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;

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.