Magento 2: Снимите флажок Удалить изображение из конфигурации системы типа изображения


Как я могу удалить параметры "Удалить изображение" из устройства загрузки изображений в конфигурации системы

enter image description here

<field id="image_path" translate="label" type="image" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
 <label>Select Image</label>
 <backend_model>Demo\Generalconfiguration\Model\Config\Backend\Image</backend_model>
 <base_url type="media" scope_info="1">images</base_url>
</field>
Author: Muhammad Hasham, 2019-02-07

2 answers

Вам следует создать пользовательский рендеринг для изображения. и создал класс в своем модуле

[Пространство имен]_[Модуль]_block_adminhtml_helper_image_required

С таким содержанием

class Required extends \Magento\Framework\Data\Form\Element\Image
{
    protected function _getDeleteCheckbox()
    {
        return '';
    }
}

Затем в вашем блоке формы, прямо над полем, добавлены следующие строки

$fieldset->addType('required_image', 'Namespace\Module\Block\Adminhtml\Helper\Image\Required');

И определяемое поле следующим образом:

    $fieldset->addField(
    'image',
    'required_image',               [
    'name' => 'image',
    'label' => __('Image'),
    'id' => 'image',
    'title' => __('Image'),
    'class' => 'required-entry',
    'required' => true,
    ]
);

Я надеюсь, что это поможет

 11
Author: Muhammad Hasham, 2019-02-07 06:32:54

С помощью ответа Мухаммеда Хашама мне удалось удалить флажок удалить из конфигурации системы

Image.php

<?php

namespace Demo\Generalconfiguration\Data\Form\Element;

use Magento\Framework\UrlInterface;

class Image extends \Magento\Framework\Data\Form\Element\Image
{
   public function getElementHtml()
   {
    $html = '';

    if ((string)$this->getValue()) {
        $url = $this->_getUrl();

        if (!preg_match("/^http\:\/\/|https\:\/\//", $url)) {
            $url = $this->_urlBuilder->getBaseUrl(['_type' => UrlInterface::URL_TYPE_MEDIA]) .'images/'. $url;
        }

        $html = '<a href="' .
            $url .
            '"' .
            ' onclick="imagePreview(\'' .
            $this->getHtmlId() .
            '_image\'); return false;" ' .
            $this->_getUiId(
                'link'
            ) .
            '>' .
            '<img src="' .
            $url .
            '" id="' .
            $this->getHtmlId() .
            '_image" title="' .
            $this->getValue() .
            '"' .
            ' alt="' .
            $this->getValue() .
            '" height="22" width="22" class="small-image-preview v-middle"  ' .
            $this->_getUiId() .
            ' />' .
            '</a> ';
    }
    $this->setClass('input-file');
    $html .= parent::getElementHtml();

    return $html;
}
}

System.xml

<field id="image_path" translate="label" type="Demo\Generalconfiguration\Data\Form\Element\Image" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Select Image</label>
<backend_model>Magento\Config\Model\Config\Backend\Image</backend_model>
<upload_dir config="system/filesystem/media" scope_info="1">images</upload_dir>
<base_url type="media" scope_info="1">images</base_url>
</field>
 3
Author: Hiren, 2019-05-11 11:24:02