Passen Sie das Erscheinungsbild von Magento Native Captcha an. Ändern Sie die Anzahl der Linien und Punkte

8

Hallo zusammen,
ich möchte das Layout meines Captchas auf dem Kontaktformular ändern. Ich muss die Anzahl der darin enthaltenen Linien und Punkte verringern, damit ein Benutzer den Text klarer sehen kann.
Hat jemand eine Idee, wie es geht?
Danke im Voraus.

Jaimin Sutariya
quelle
Überprüft das? magecomp.com/magento-new-recaptcha.html
Gaurav Jain

Antworten:

11

Die Art und Weise, wie Sie oben geantwortet haben, ist kein guter Ansatz.

Die Klasse Zend_Captcha_Imagehat Funktionen zum Ändern der Variablen bereitgestellt. Sie finden die Funktionen in derselben Klasse, die ungefähr so ​​aussehen wird:

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

Und Zend_Captcha_Imagewird auch auf eine Mage-Modellklasse erweitert, dh Mage_Captcha_Model_Zend. Sie können diese Mage-Modellklasse also einfach überschreiben, um diese Variablen festzulegen.

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

Ich setze diese Variablen im Konstruktor so, dass die Änderungen auch beim Laden von Seiten und auch beim Auffrischen von Captchas funktionieren.

Es ist besser, wenn Sie die obige Funktion überschreiben, anstatt die Magierkerndateien zu ändern.

Herr Green
quelle
8

Sie können das Captcha-Rauschen mit dem folgenden Code ändern.

Gehe zu : lib/Zend/Captcha/Image.php

Ändern Sie die Werte unter den Variablen gemäß Ihren Anforderungen

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

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

Jaimin Sutariya
quelle
3

Für Magento 2: Gehen Sie zu Vendor \ Magento \ Zendframework1 \ Library \ Zend \ Captcha \ Image.php

In dieser Datei finden Sie unten Funktionen, mit denen Sie das Captcha-Bild anpassen können.

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

Sie können die Werte dieser Funktion in den Zeilennummern 122 und 129 ändern.

/**
 * 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
quelle
Danke Dinesh, dass du das geteilt hast. Es ist besser, wenn Sie eine neue Frage hinzufügen und diese Antwort als Antwort veröffentlichen. Es wird für diejenigen hilfreich sein, die danach suchen.
Jaimin Sutariya