Sesuaikan penampilan captcha asli magento. Ubah jumlah garis dan titik

8

Halo Semua
Saya ingin mengubah tata letak captcha saya pada formulir kontak. Saya perlu mengurangi jumlah garis dan titik-titik yang dikandungnya sehingga, pengguna dapat melihat teks lebih jelas.
Adakah yang tahu cara melakukannya?
Terima kasih sebelumnya.

Jaimin Sutariya
sumber
Sudah memeriksanya? magecomp.com/magento-new-recaptcha.html
Gaurav Jain

Jawaban:

11

Cara Anda menjawab di atas bukanlah pendekatan yang baik.

Kelas Zend_Captcha_Imagetelah menyediakan fungsi untuk mengubah variabel. Anda dapat menemukan fungsi-fungsi di kelas yang sama yang akan menjadi seperti ini:

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

Dan juga Zend_Captcha_Imagediperluas ke kelas model Mage yaitu Mage_Captcha_Model_Zend. Jadi, Anda dapat dengan mudah mengganti kelas model Mage ini untuk mengatur variabel-variabel tersebut.

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

Saya mengatur variabel-variabel tersebut dalam konstruktor sehingga perubahan akan berfungsi bahkan untuk memuat halaman dan juga untuk menyegarkan captcha.

Akan lebih baik jika Anda mengganti fungsi di atas daripada memodifikasi file inti mage.

Tuan_Green
sumber
8

Anda dapat mengubah kebisingan captcha menggunakan kode di bawah ini.

Pergi ke : lib/Zend/Captcha/Image.php

Ubah nilai variabel di bawah ini sesuai kebutuhan Anda

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

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

Jaimin Sutariya
sumber
3

Untuk Magento 2: Buka vendor \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

Anda akan menemukan fungsi di bawah ini dalam file ini yang dapat digunakan untuk menyesuaikan gambar 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;
    }

Anda dapat mengubah nilai fungsi ini dari nomor baris 122 dan 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
sumber
Terima kasih Dinesh untuk berbagi ini. Akan lebih baik jika Anda menambahkan pertanyaan baru dan memposting jawaban ini sebagai jawabannya. Ini akan sangat membantu bagi mereka yang mencarinya.
Jaimin Sutariya