Tùy chỉnh xuất hiện captcha bản địa magento. Thay đổi số lượng dòng và dấu chấm


8

Xin chào Tất cả
tôi muốn thay đổi bố cục hình ảnh xác thực của mình trên biểu mẫu liên hệ. Tôi cần phải giảm số lượng dòng và dấu chấm chứa trong đó, người dùng có thể thấy văn bản rõ ràng hơn.
Có ai có bất cứ ý tưởng làm thế nào để làm điều đó?
Cảm ơn trước.


Câu trả lời:


11

Cách bạn đã trả lời ở trên không phải là một cách tiếp cận tốt.

Lớp Zend_Captcha_Imageđã cung cấp các hàm để thay đổi các biến. Bạn có thể tìm thấy các hàm trong cùng một lớp sẽ giống như thế này:

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

Và cũng Zend_Captcha_Imageđược mở rộng cho một lớp mô hình Mage tức là Mage_Captcha_Model_Zend. Vì vậy, bạn có thể dễ dàng ghi đè lớp mô hình Mage này để đặt các biến đó.

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

Tôi đang đặt các biến đó trong hàm tạo để các thay đổi sẽ hoạt động ngay cả khi tải trang và cũng để làm mới captcha.

Sẽ tốt hơn nếu bạn ghi đè chức năng trên thay vì sửa đổi các tập tin lõi mage.


8

Bạn có thể thay đổi nhiễu captcha bằng mã bên dưới.

Đi đến : lib/Zend/Captcha/Image.php

Thay đổi dưới các giá trị biến theo yêu cầu của bạn

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

Tham khảo: http://magentoforall.blogspot.com.au/2012/11/magento-change-captcha-background-lines.html


3

Đối với Magento 2: Chuyển đến nhà cung cấp \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

Bạn sẽ tìm thấy các chức năng dưới đây trong tập tin này có thể được sử dụng để tùy chỉnh hình ảnh xác thực.

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

bạn có thể thay đổi các giá trị của hàm này từ số dòng 122 và 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;

Cảm ơn Dinesh đã chia sẻ điều này. Sẽ tốt hơn nếu bạn thêm một câu hỏi mới và đăng câu trả lời này làm câu trả lời. Nó sẽ hữu ích cho những người đang tìm kiếm nó.
Jaimin Sutariya
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.