Привет всем
Я хочу изменить макет моей капчи в контактной форме. Мне нужно уменьшить количество строк и точек, которые он содержит, чтобы пользователь мог видеть текст более четко.
У кого-нибудь есть идеи как это сделать?
Заранее спасибо.
Привет всем
Я хочу изменить макет моей капчи в контактной форме. Мне нужно уменьшить количество строк и точек, которые он содержит, чтобы пользователь мог видеть текст более четко.
У кого-нибудь есть идеи как это сделать?
Заранее спасибо.
Ответы:
То, как вы ответили выше, не очень хороший подход.
В классе 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 для установки этих переменных.
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
}
Я устанавливаю эти переменные в конструкторе, чтобы изменения работали даже при загрузке страницы, а также при обновлении капчи.
Будет лучше, если вы переопределите вышеуказанную функцию вместо изменения основных файлов мага.
Вы можете изменить уровень шума, используя код ниже.
Перейти к : 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
Для 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;