Magento 2: Как изменить шрифт, Цвет и фон капчи по умолчанию


В Mangeto 2 у нас есть капча по умолчанию, которую нелегко прочитать.

Итак, как изменить/настроить название шрифта, его цвет и фон

enter image description here

enter image description here

Author: Jackson, 2016-10-21

2 answers

Цвет и фон

Magento создает свою модель капчи, которая простирается от класса Zend_Captcha_Image. Итак, в вашем случае мы должны переопределить класс Magento\Captcha\Model\DefaultModel.

<preference for="Magento\Captcha\Model\DefaultModel"
            type="Vendor\Module\Model\DefaultModel"/>

Нам нужно переопределить метод _generateImage.

protected function _generateImage($id, $word)
{
      ......
      $w     = $this->getWidth();
      $h     = $this->getHeight();
      $fsize = $this->getFontSize();
      ......
}

Мы можем удалить шум генерации:

enter image description here

Пользовательский шрифт

Добавьте новый шрифт в конфигурацию по умолчанию:

app/code/Company/Module/etc/config.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
    <default>
        <captcha translate="label">
            <fonts>
                <arial>
                    <label>Arial</label>
                    <path>CustomFont/Arial.ttf</path>
                </arial>
            </fonts>
        </captcha>
    </default>
</config>

Добавьте наш собственный шрифт: lib/internal/CustomFont/Arial.ttf

enter image description here

Взгляните: vendor/magento/module-captcha/Helper/Data.php::getFonts(), чтобы увидеть более подробную информацию.

 3
Author: Khoa TruongDinh, 2020-06-15 08:30:17

Для настройки капчи, я думаю, вам нужно внести изменения в этот файл:

magento2/vendor/magento/zendframework1/library/Zend/Captcha/Image.php
 0
Author: Nikunj Vadariya, 2016-10-21 05:54:29