Magento 2: Снимите флажок Удалить изображение из конфигурации системы типа изображения
Как я могу удалить параметры "Удалить изображение" из устройства загрузки изображений в конфигурации системы
<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>
6
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