Настроить magento родной внешний вид капчи. Изменить количество линий и точек


8

Привет всем
Я хочу изменить макет моей капчи в контактной форме. Мне нужно уменьшить количество строк и точек, которые он содержит, чтобы пользователь мог видеть текст более четко.
У кого-нибудь есть идеи как это сделать?
Заранее спасибо.


Ответы:


11

То, как вы ответили выше, не очень хороший подход.

В классе Zend_Captcha_Imageпредусмотрены функции для изменения переменных. Вы можете найти функции в том же классе, который будет примерно таким:

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

А также Zend_Captcha_Imageраспространяется на модели класса , т.е. Mage Mage_Captcha_Model_Zend. Таким образом, вы можете легко переопределить этот класс модели Mage для установки этих переменных.

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

Я устанавливаю эти переменные в конструкторе, чтобы изменения работали даже при загрузке страницы, а также при обновлении капчи.

Будет лучше, если вы переопределите вышеуказанную функцию вместо изменения основных файлов мага.


8

Вы можете изменить уровень шума, используя код ниже.

Перейти к : lib/Zend/Captcha/Image.php

Измените значения переменных ниже ваших требований

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

Ссылка: http://magentoforall.blogspot.com.au/2012/11/magento-change-captcha-background-lines.html


3

Для Magento 2: Перейдите в vendor \ magento \ zendframework1 \ library \ Zend \ Captcha \ Image.php

В этом файле вы найдете следующие функции, которые можно использовать для настройки изображения с картинки.

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

Вы можете изменить значения этой функции из строк № 122 и 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;

Спасибо Динеш за то, что поделился этим. Будет лучше, если вы добавите новый вопрос и опубликуете этот ответ в качестве ответа. Это будет полезно для тех, кто ищет это.
Джаймин Сутария
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.